This is a set of Haskell bindings to the tree-sitter parsing library. tree-sitter is a modern incremental parsing toolkit with a great many useful features, including:
- Incremental, error-correcting parses: one syntax error in a file will not prevent the rest of the file from being parsed.
- Speed: tree-sitter is capable of parsing large files on every keystroke of a text editor.
- A GLR algorithm capable of parsing nondeterministic and ambiguous grammars.
The interface is somewhat low-level: if you use this package, you'll
probably want to add a step that munges a given
a more Haskell-amenable data structure.