Tree-sitter (parser generator)
Parser generator and library
From Wikipedia, the free encyclopedia
Tree-sitter is a free and open-source parser generator and incremental parsing library. It is used to parse source code into concrete syntax trees usable in compilers, interpreters, text editors, and static analyzers.[2][3] It is specialized for use in text editors, as it supports incremental parsing for updating parse trees while code is edited in real time,[4] and provides a built-in S-expression query system for analyzing code.[5]
| Tree-sitter | |
|---|---|
| Original author | Max Brunsfeld |
| Initial release | 2018 |
| Stable release | |
| Written in | Rust, C |
| Platform | Cross-platform |
| Type | Parser generator |
| License | MIT License |
| Website | tree-sitter |
| Repository | |
Text editors which have official integrations with Tree-sitter include GNU Emacs,[6] Neovim,[7] Lapce,[8] Zed,[9] Helix,[10] and Atom.[11] Language bindings allow it to be used from programming languages including Go, Haskell, Java, JavaScript (with Node.js and WASM), Kotlin, Lua, OCaml, Perl, Python, Ruby, Rust, Swift, and Zig. Tree-sitter parsers have been written for these languages and many others.[12] GitHub uses Tree-sitter to support in-browser symbolic code navigation in Git repositories.[13]
Tree-sitter uses a GLR parser, a type of LR parser.[14][15][13]
Tree-sitter was originally developed by GitHub for use in the Atom text editor, where it was first released in 2018.[16][11]