3 个版本 (重大更新)
0.3.0 | 2023年2月5日 |
---|---|
0.2.0 | 2023年2月4日 |
0.1.0 | 2023年1月31日 |
#4 在 #squirrel
245KB
5.5K SLoC
sqparse
这是一个用 Rust 编写的 Squirrel 语言解析器。它主要设计用于解析 Respawn 的自定义 Squirrel 方言,但应该也能处理 Squirrel 2 和 3 的代码。
功能
- 完全保留源代码:输入字符串中的所有标记和注释都包含在 AST 中。这使得它非常适合代码格式化等源代码修改操作。
- 友好的错误信息:一般来说,解析器旨在显示语法错误信息,并提供有用的上下文信息。但由于语法歧义,特别是在 Respawn 的类型系统中,这并不总是可能的。
- 成功解析了所有 Northstar 脚本 和 R5Reloaded 脚本。结果 AST 未经验证。
可能存在一些错误。
示例
包含了一些示例。使用 cargo 运行它们
- 打印 AST 调试输出
$ cargo run --example print_ast
- 打印一个示例词法错误
$ cargo run --example print_lexer_error
- 打印一个示例解析错误
$ cargo run --example print_parser_error
- 在单个文件或目录树上运行解析器的干运行
$ cargo run --release --example dryrun -- [path to file or directory]
依赖
~2MB
~28K SLoC