This project initially focuses on PostgreSQL flavor of SQL
You can try out the parser here: Tree Sitter SQL Playground
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
npm install --also=dev
npm test
npm run parse <file.sql>
outputs a syntax treenpm run extract-error <file.sql>
shows first offending line
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