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:

Language Bindings

There are currently bindings that allow Tree-sitter to be used from the following languages:

Available Parsers

Parsers for these languages are fairly complete:

Parsers for these languages are in development:

Talks on Tree-sitter

Underlying Research

The design of Tree-sitter was greatly influenced by the following research papers: