Tree-sitter parser for Koto.
The parser is mostly usable, but there are some bugs that result in valid Koto expressions not being correctly processed.
Contributions would be very welcome! See the failing tests for a couple of examples of expressions that could be worked on.
The justfile contains some commands that are
useful during development, in particular just test
which will generate the
tree-sitter parser from grammar.js
and then run the tests
contained in test/corpus
.
just watch test
will re-run just test
when files are updated.
Arguments can be passed to just watch test
,
e.g. just watch test --debug -f identifiers
will generate the parser with
debug logging enabled, and then run only the identifiers
test.
src/scanner.c
contains the external scanner used
by the grammar, handling some of the more complex aspects of parsing Koto code.
Debug logging for the scanner can be enabled via a preprocesser definition at the
top of the file.