#tree-sitter #sql #parser #incremental

devgen-tree-sitter-sql

SQL grammar for the tree-sitter parsing library

1 unstable release

new 0.21.0 Nov 18, 2024

#376 in Text editors


Used in devgen-splitter

MIT license

36MB
1M SLoC

C 1M SLoC JavaScript 1.5K SLoC // 0.0% comments C++ 130 SLoC Scheme 104 SLoC Rust 41 SLoC // 0.1% comments

Node.js CI

SQL syntax for tree-sitter

This project initially focuses on PostgreSQL flavor of SQL

Try it out

You can try out the parser here: Tree Sitter SQL Playground

Development

Install pre-commit and run pre-commit install in the root of this repo. This will ensure that code follows code style of this repo.

File describing grammar is grammar.js

Every time the grammar file changes code generation needs to be run by invoking npm run gen

npm test command automatically performs code generation

Tests files are located in test/corpus

Here is the documentation on test file syntax

Running tests

npm install --also=dev
npm test

Debbuging

  • npm run parse <file.sql> outputs a syntax tree
  • npm run extract-error <file.sql> shows first offending line

Goals

This parser is supposed to be used in text editors. As a result:

  • it's very lax in what it considers valid SQL parse
  • adding extra nodes to have convenient selection anchors is okay

Other projects

Dependencies

~2.8–4MB
~76K SLoC