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 解析器实现

Download history 59/week @ 2024-04-22 21/week @ 2024-04-29 17/week @ 2024-05-06 103/week @ 2024-05-13 173/week @ 2024-05-20 132/week @ 2024-05-27 138/week @ 2024-06-03 81/week @ 2024-06-10 66/week @ 2024-06-17 64/week @ 2024-06-24 24/week @ 2024-07-01 11/week @ 2024-07-08 29/week @ 2024-07-15 23/week @ 2024-07-22 322/week @ 2024-07-29 24/week @ 2024-08-05

400 每月下载量
5 crates 中使用

MIT 许可协议

33KB
998

Rust 中的 Cirru 解析器

用法

crate .

Rust 文档.

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