#erlang #parser #incremental

tree-sitter-erlang

tree-sitter解析库的Erlang语法

8个版本 (破坏性更新)

0.7.0 2024年7月15日
0.6.0 2024年5月16日
0.5.0 2024年3月18日
0.4.0 2023年12月15日
0.0.1 2022年10月20日

#76 in 文本编辑器

Download history 130/week @ 2024-05-03 265/week @ 2024-05-10 376/week @ 2024-05-17 233/week @ 2024-05-24 234/week @ 2024-05-31 233/week @ 2024-06-07 148/week @ 2024-06-14 349/week @ 2024-06-21 194/week @ 2024-06-28 137/week @ 2024-07-05 347/week @ 2024-07-12 193/week @ 2024-07-19 284/week @ 2024-07-26 234/week @ 2024-08-02 275/week @ 2024-08-09 244/week @ 2024-08-16

每月 1,074 次下载
utils-tree-sitter 中使用

MIT 许可协议

1.5MB
57K SLoC

C 55K SLoC // 0.0% comments JavaScript 1K SLoC // 0.0% comments Scheme 138 SLoC // 0.3% comments Rust 33 SLoC // 0.5% comments

Tree Sitter Erlang

这代表在ELP项目中用于Erlang语言的tree-sitter语法。

最初是 https://github.com/AbstractMachinesLab/tree-sitter-erlang 的直接克隆,但后来为了完整性而进行了大量修改。

用法

使用以下命令安装所需的工具链

make deps

编辑 grammar.js 文件,并使用以下命令重新生成代码

make gen

有用的测试命令,解析 foo.erl 并打开浏览器窗口以显示进程,并显示生成的AST的漂亮图片。

npm run parse -- --debug-graph testdata/foo.erl

许可协议

tree-sitter-erlang遵循Apache许可证


lib.rs:

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

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

let code = r#"
"#;
let mut parser = tree_sitter::Parser::new();
parser.set_language(&tree_sitter_erlang::language()).expect("Error loading Erlang grammar");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

依赖关系

~2.8–4MB
~72K SLoC