3 个版本 (重大更新)

0.3.0 2023年2月5日
0.2.0 2023年2月4日
0.1.0 2023年1月31日

#4#squirrel

MIT 许可证

245KB
5.5K SLoC

sqparse

Crates.io Docs.rs MIT licensed Build status

这是一个用 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