7.7 KiB
7.7 KiB
| title |
|---|
| Introduction |
Introduction
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:
- General enough to parse any programming language
- Fast enough to parse on every keystroke in a text editor
- Robust enough to provide useful results even in the presence of syntax errors
- Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application
Language Bindings
There are currently bindings that allow Tree-sitter to be used from the following languages:
Parsers
- Agda
- Bash
- C#
- C++
- Clojure
- CMake
- Comment
- Common Lisp
- CSS
- CUDA
- C
- Dart
- Dockerfile
- Dockerfile
- DOT
- D
- Elixir
- Elm
- Emacs Lisp
- Eno
- ERB / EJS
- Erlang
- Fennel
- Fish
- Fortran
- gitattributes
- gitignore
- GLSL (OpenGL Shading Language)
- Go mod
- Go work
- Go
- Graphql
- Hack
- Haskell
- HCL
- HTML
- JavaScript
- Java
- JSON5
- JSON
- Julia
- Kotlin
- Latex
- LLVM
- Lua
- Make
- Markdown
- Markdown
- Nix
- Objective-C
- OCaml
- Org
- Pascal
- Perl
- PHP
- PowerShell
- Protocol Buffers
- Python
- Racket
- Regex
- reStructuredText
- Ruby
- Rust
- R
- S-expressions
- Scala
- Scheme
- Scss
- Sourcepawn
- SPARQL
- SQL-PostgreSQL
- SQL-Sqlite
- SSH
- Svelte
- Swift
- SystemRDL
- TOML
- Tree-sitter query
- Turtle
- Twig
- TypeScript
- Verilog
- VHDL
- Vue
- WASM
- WGSL WebGPU Shading Language
- YAML
- Zig
Talks on Tree-sitter
Underlying Research
The design of Tree-sitter was greatly influenced by the following research papers: