Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. Tree-sitter aims to be:
There are currently bindings that allow Tree-sitter to be used from the following languages:
A list of known parsers can be found in the wiki.
The design of Tree-sitter was greatly influenced by the following research papers: