mirror of
https://github.com/tree-sitter/tree-sitter.git
synced 2026-09-09 23:26:20 -04:00
Some node-types bookkeeping still used the type name without its named status. This caused anonymous nodes to inherit extra metadata from named nodes with the same text, and could create false supertype cycles when a named supertype and anonymous alias shared a name. Key extra metadata and supertype dependencies by the complete (type, named) identity. Reject named aliases that collide with a canonical supertype. Such an identity cannot be represented as both a concrete node and an abstract supertype in node-types.json, and previously caused generation to panic. All output entries now come from the map keyed by (type, named), so no two entries can reach the final sort with the same identity. Remove the unreachable root and extra tie-breakers and the now-redundant deduplication. BREAKING CHANGE: Alters a public error enum for the generate crate. |
||
|---|---|---|
| .cargo | ||
| .github | ||
| .zed | ||
| crates | ||
| docs | ||
| lib | ||
| test/fixtures | ||
| .dockerignore | ||
| .editorconfig | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| .taplo.toml | ||
| build.zig | ||
| build.zig.zon | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| FUNDING.json | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
tree-sitter
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