#erlang #parser #incremental

tree-sitter-erlang

erlang grammar for the tree-sitter parsing library

6 releases (breaking)

0.5.0 Mar 18, 2024
0.4.0 Dec 15, 2023
0.3.0 Nov 27, 2023
0.2.0 Oct 5, 2023
0.0.1 Oct 20, 2022

#54 in Text editors

Download history 7/week @ 2023-12-22 31/week @ 2023-12-29 50/week @ 2024-01-05 80/week @ 2024-01-12 113/week @ 2024-01-19 268/week @ 2024-01-26 861/week @ 2024-02-02 832/week @ 2024-02-09 2139/week @ 2024-02-16 2254/week @ 2024-02-23 1885/week @ 2024-03-01 1357/week @ 2024-03-08 1414/week @ 2024-03-15 1196/week @ 2024-03-22 686/week @ 2024-03-29 394/week @ 2024-04-05

3,888 downloads per month

MIT license

1.5MB
53K SLoC

C 52K SLoC JavaScript 845 SLoC // 0.1% comments Scheme 138 SLoC // 0.3% comments Rust 28 SLoC // 0.6% comments

Tree Sitter Erlang

This represents tree-sitter grammar used for the Erlang language in the ELP project.

It started as a direct clone of https://github.com/AbstractMachinesLab/tree-sitter-erlang at 7b436e1ca50f0002f6765a9a2a00f6156b2cc881, but was later heavily modified for completeness.

Usage

Install the required toolchain with

make deps

Edit the grammar.js file and re-generate the code with:

make gen

Useful test command, parses foo.erl and opens a browser window to show the process, with pretty pictures of the generated AST.

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

License

tree-sitter-erlang is Apache licensed.


lib.rs:

This crate provides Erlang language support for the tree-sitter parsing library.

Typically, you will use the language function to add this language to a tree-sitter Parser, and then use the parser to parse some code:

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());

Dependencies

~2.7–4MB
~71K SLoC