A general/permissive SQL grammar for tree-sitter.
We don't commit the generated parser files to the main branch. Instead, you can find them on the
gh-pages branch. We're open to feedback & encourage you
to open an issue to discuss any problems.
They are also hosted on the GitHub pages site and available for download here: github://derekstride/tree-sitter-sql/gh-pages.tar.gz.
Plugin maintainers ensure to specify the HEAD (or a specific revision) of the gh-pages branch when integrating
with this project.
Using git
git clone https://github.com/DerekStride/tree-sitter-sql.git
cd tree-sitter-sql
git checkout gh-pagesUsing curl
curl -LO https://github.com/DerekStride/tree-sitter-sql/archive/refs/heads/gh-pages.tar.gz
tar -xzf gh-pages.tar.gz
cd tree-sitter-sql-gh-pagesTree-sitter parsers need to be compiled as a shared-object / dynamic-library, you can enable this by passing the
-shared & -fPIC flags to your compiler.
cc -shared -fPIC -I./src src/parser.c src/scanner.c -o sql.soUsing cargo
cargo add tree-sitter-sequelUsing npm
npm i @derekstride/tree-sitter-sqlUsing pip
pip install tree-sitter-sqlSee CONTRIBUTING.md for documentation on how to set up the project for development.
For a complete list of features see the the tests
- Wikipedia#SQL_syntax - I consulted wikipedia for naming conventions, though I may not have been strict early on in the prototyping.
- Phoenix Language Reference - A reference diagram.
- SQLite's railroad diagram for expr - Another reference diagram.
- Postgresql syntax documentation
- Mariadb syntax documentation