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