2 个版本
| 0.1.1 | 2022年10月14日 |
|---|---|
| 0.1.0 | 2022年4月16日 |
#309 in 解析工具
45KB
1K SLoC
s-expr
Rust 编译器中用于 S-expression 类型的解析和打印库
- 解析器跟踪跨度,以及表示(例如数字基数)
- 数字和十进制不限制大小
- 只依赖于
unicode-xid1 个依赖项
S-expressions 功能
不是通常 s-expressions 中的额外功能(无法关闭)
- 二进制和十六进制数字,当数字以相应的
0b或0x前缀开始时。 - 数字中的
_字符,例如0xfedc__1240__abcd或100_000_000以提高可读性
目前不支持
- 有空格的符号
- 负整数和十进制文字,目前
-123将被标记为标识符-后跟数字123。 - 十进制数字的科学记数法
6.022e23将被解析为十进制6.022然后是标识符e,然后是数字23
存在许多 S-expression 的变体,因此解析器允许解析各种可选功能,这些功能可以根据用户的需求启用/禁用
- 分号行注释
- 格式为 :
#8BADF00D#的字节字符串 - 花括号
{ }和方括号[ ]组,它们的行为类似于( ),但提供了等效的分组平衡检查和分组风格