#解析器 #增量 #rslox

tree-sitter-rslox

lox(rust) 语法解析库的语法

2 个版本

0.1.1 2023年7月4日
0.1.0 2023年7月4日

#334文本编辑器

MIT 许可证

165KB
6.5K SLoC

C 6K SLoC JavaScript 153 SLoC // 0.1% comments Scheme 90 SLoC // 0.2% comments Rust 33 SLoC // 0.4% comments

tree-sitter-rslox

适配 Lox 编程语言 的语法高亮解析器

本地设置

先安装 tree-sitter-cli

cargo install tree-sitter-cli

通过以下命令生成绑定

tree-sitter generate

更改语法后,只需再次运行 tree-sitter generate

运行测试

tree-sitter test

生成 wasm

如果想要生成 wasm,执行:

npm run build:wasm

注:打包成 wasm 需要依赖 emscripten 或 docker 环境

查看效果:

npm install
node main.js

参考


lib.rs:

此 crate 为 tree-sitter 解析库提供 rslox 语言支持。

通常,您将使用 language 函数将此语言添加到 tree-sitter Parser,然后使用解析器解析一些代码

let code = "";
let mut parser = tree_sitter::Parser::new();
parser.set_language(tree_sitter_rslox::language()).expect("Error loading rslox grammar");
let tree = parser.parse(code, None).unwrap();

依赖关系

~2.7–4MB
~71K SLoC