A Janet grammar for tree-sitter.
Usable, but as tree-sitter is pre-1.0, don't forget the salt.
This repository currently provides "source" files such as:
grammar.js
- can be used to generateparser.c
using thetree-sitter
generate
subcommand, butnode
is then requiredpackage.json
- without this file, thetree-sitter
cli's capabilities will be somewhat impacted.
Also, things that are provided (which are actually generated) but might disappear at some point:
src/parser.c
and friends [1] - other projects have come to expect these to be committed to a grammar repository, but there are forces in the world wanting to remove them, so depending on how things go, these may disappear.
Used to provide but no longer do:
-
Node.js bindings - it seems there isn't much love and care going to node-tree-sitter upstream and I don't use or test these. I felt it was a bit misleading to be providing them so I removed them. They can be regenerated using an appropriate invocation of
tree-sitter generate
though. -
Rust bindings - like with the Node.js bindings, it's possible to generate these using an appropriate invocation of
tree-sitter generate
.
[1] Currently these files are generated to have ABI 13.
Coincidentally, it appears another effort by GrayJack was started at about the same time.
The main difference between these two is that GrayJack's grammar
supports higher level constructs (e.g. def
is recognized by the
grammar) at the cost of accuracy.
There might end up being different trade-offs in either approach and my belief is that there is room in the world for multiple attempts (especially for lisp-like languages).
- 314eter - handling null characters
- Aerijo - Guide to your first Tree-sitter grammar
- ahelwer - tree-sitter discussions
- ahlinc - tree-sitter work and discussions
- andrewchambers - janet-uri
- bakpakin - janet
- dannyfreeman - tree-sitter-clojure discussions, investigations, and work
- GrayJack - tree-sitter-janet
- Grazfather -
short_fn_lit
discussion - maxbrunsfeld - tree-sitter and related
- NoahTheDuke - tree-sitter-clojure discussions and investigations
- pyrmont - various discussions