2 个版本

0.1.1 2022年10月14日
0.1.0 2022年4月16日

#309 in 解析工具

MIT/Apache

45KB
1K SLoC

s-expr

Rust 编译器中用于 S-expression 类型的解析和打印库

  • 解析器跟踪跨度,以及表示(例如数字基数)
  • 数字和十进制不限制大小
  • 只依赖于 unicode-xid 1 个依赖项

S-expressions 功能

不是通常 s-expressions 中的额外功能(无法关闭)

  • 二进制和十六进制数字,当数字以相应的 0b0x 前缀开始时。
  • 数字中的 _ 字符,例如 0xfedc__1240__abcd100_000_000 以提高可读性

目前不支持

  • 有空格的符号
  • 负整数和十进制文字,目前 -123 将被标记为标识符 - 后跟数字 123
  • 十进制数字的科学记数法 6.022e23 将被解析为十进制 6.022 然后是标识符 e,然后是数字 23

存在许多 S-expression 的变体,因此解析器允许解析各种可选功能,这些功能可以根据用户的需求启用/禁用

  • 分号行注释
  • 格式为 : #8BADF00D# 的字节字符串
  • 花括号 { } 和方括号 [ ] 组,它们的行为类似于 ( ),但提供了等效的分组平衡检查和分组风格

依赖项