tree-sitter/docs/index.md
Andrew Hlynskyi 613382c70a docs: update badges; fix markdown lint complains
Linter config `.vscode/settings.json`:
```json
{
    "[markdown]": {
        "files.trimTrailingWhitespace": false,
    },
    "markdownlint.config": {
        "default": true,
        // "ul-style": {
        //     "style": "asterisk"
        // },
        "MD001": false,
        "MD024": false,
        "MD025": false,
        "MD033": false,
        "MD041": false,
        "MD053": false,
    },
}
```
2023-04-16 23:39:08 +03:00

9.5 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:

By convention, bindings are named with the language first, eg. ruby-tree-sitter.

Parsers

By convention, parsers are named with the language last, eg. tree-sitter-ruby.

Talks on Tree-sitter

Underlying Research

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