An incremental parsing system for programming tools https://tree-sitter.github.io
Find a file
Eli Schwartz af498bc0c3
Add a simple Makefile-based build system.
This produces static/shared libraries as well as a pkg-config file, and
installs them to the standard Unix hierarchy. GNU Make is assumed as
features like $(wildcard ...) or $(shell uname) may not work elsewhere,
but it should otherwise build on most/all Unix platforms.

Note that we assume the following POSIX default rules/macros exist, so
we don't bother redefining them:
- pattern rules for compiling .c -> .o
- $(CC)
- $(AR)

Special note on the .pc file generation: we do most variable
replacements in one go, but delay @PREFIX@ so that we can first find
existing substring instances of the prefix value (if libdir/includedir
reside within the prefix), and update them to use a literal pkg-config
variable '${prefix}'. This is fairly compact (one single sed) while
still letting us produce pkg-config files that support runtime
redefinition à la cross-compilation.
2020-04-21 23:49:19 -04:00
cli Fix incorrect parent values after call to child_by_field_name 2020-04-03 11:21:51 -07:00
docs Fix typos in docu section about highlighting (#591) 2020-04-07 13:27:30 -07:00
highlight Remove unused serde dependency from highlight crate 2020-03-25 12:49:11 -07:00
lib Fix exporting get/set timeout in web binding (#592) 2020-04-11 08:21:59 -07:00
script Fix incremental parsing problem with non-terminal extras 2020-03-02 14:17:12 -08:00
tags Clear QueryCursor state between exec calls 2020-03-26 16:10:39 -07:00
test Update error recovery test to reflect JS grammar changes 2020-01-28 09:16:36 -08:00
.appveyor.yml Build and test wasm on CI 2019-04-26 14:38:13 -07:00
.gitattributes lib: remove utf8proc dependency (#436) 2019-10-14 11:18:39 -07:00
.gitignore Build and test wasm on CI 2019-04-26 14:38:13 -07:00
.travis.yml Fix home directory name in travis config file 2019-11-22 13:05:46 -08:00
Cargo.lock Merge branch 'master' into tags 2020-03-25 12:49:15 -07:00
Cargo.toml Move code into cli directory 2019-01-04 16:50:52 -08:00
LICENSE Add boilerplate 2018-05-17 14:46:29 -07:00
Makefile Add a simple Makefile-based build system. 2020-04-21 23:49:19 -04:00
README.md Use https README docs site link 2019-04-30 13:00:27 -07:00
tree-sitter.pc.in Add a simple Makefile-based build system. 2020-04-21 23:49:19 -04:00

tree-sitter

Build Status Build status

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

Documentation