#tree-sitter #erlang #incremental #parser

tree-sitter-erlang

erlang grammar for the tree-sitter parsing library

13 breaking releases

new 0.13.0 Mar 11, 2025
0.11.0 Feb 4, 2025
0.9.0 Oct 21, 2024
0.7.0 Jul 15, 2024
0.0.1 Oct 20, 2022

#71 in Text editors

Download history 399/week @ 2024-11-18 326/week @ 2024-11-25 289/week @ 2024-12-02 497/week @ 2024-12-09 301/week @ 2024-12-16 34/week @ 2024-12-23 92/week @ 2024-12-30 149/week @ 2025-01-06 216/week @ 2025-01-13 585/week @ 2025-01-20 467/week @ 2025-01-27 741/week @ 2025-02-03 456/week @ 2025-02-10 323/week @ 2025-02-17 355/week @ 2025-02-24 433/week @ 2025-03-03

1,600 downloads per month
Used in 7 crates (3 directly)

MIT license

2MB
72K SLoC

C 71K SLoC // 0.0% comments JavaScript 1K SLoC // 0.0% comments Scheme 138 SLoC // 0.3% comments Rust 30 SLoC // 0.2% 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][] constant 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();
let language = tree_sitter_erlang::LANGUAGE;
parser
    .set_language(&language.into())
    .expect("Error loading Erlang parser");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

Dependencies

~4–310KB