41 个版本
0.1.31 | 2024年6月2日 |
---|---|
0.1.29 | 2024年2月18日 |
0.1.25 | 2023年8月2日 |
0.1.24 | 2022年8月23日 |
0.1.1 | 2021年4月30日 |
#860 in 解析器实现
400 每月下载量
在 5 crates 中使用
33KB
998 行
Rust 中的 Cirru 解析器
用法
在 crate .
cargo install cirru_parser
use cirru_parser::{parse};
parse("defn f (x)\n x"); // returns Result<Vec<Cirru>, String>
使用 writer
use cirru_parser::{format, CirruWriterOptions, escape_cirru_leaf}
let writer_options = CirruWriterOptions { use_inline: false };
format(tree, writer_options); // tree is Vec<Cirru>
escape_cirru_leaf("a b");
许可协议
MIT
lib.rs
:
Cirru 解析器
这个小巧的解析器将基于缩进语法的文本解析成嵌套向量,然后可以作为 S-表达式进行评估或代码生成。
defn fib (x)
if (<= x 2) 1
+
fib $ dec x
fib $ - x 2
解析到
[ ["defn" "fib" [ "x" ]
[ "if" [ "<=" "x" "2" ] "1"
[ "+" [ "fib" ["dec" "x"] ] [ "fib" ["-" "x" "2"] ] ]
]
] ]
更多信息请访问 http://text.cirru.org/ .
依赖关系
~255–560KB
~13K SLoC