Commit graph

137 commits

Author SHA1 Message Date
Bruno BELANYI b836117a21 Add literals highlighting 2022-06-02 22:20:37 +02:00
Bruno BELANYI b9376ccd35 Add comment syntax highlighting 2022-06-02 22:20:37 +02:00
Bruno BELANYI 84d25af8d5 Add language information to 'package.json'
Apparently this is needed by the 'tree-sitter' tooling for syntax
highlighting.
2022-06-02 22:20:37 +02:00
Bruno BELANYI 5866cd4a82 Add 'tree-sitter' pre-commit hook
Make sure you don't break anything when committing.
2022-06-02 22:20:37 +02:00
Bruno BELANYI b3e91d9aad Add 'tree-sitter-files' pre-commit hook
This is too ensure that generated files are always in lock-step with the
grammar.
2022-06-02 22:20:37 +02:00
Bruno BELANYI 8f752e0f94 Add 'clang-format' pre-commit hook 2022-06-02 22:20:37 +02:00
Bruno BELANYI 5be01b43fb Add clang-format rules
Since we now have an external scanner, might as well have good looking
code.
2022-06-02 22:20:37 +02:00
Bruno BELANYI 50a0eaa071 Add support for nested comments
Unfortunately, the 'extras' array expects single tokens only, so one
can't really use a recursive parsing rule to express nesting comments...
2022-06-02 22:20:37 +02:00
Bruno BELANYI 75bb2c7009 Add comments
For now it only supports non-nested comments. It seems like I *will*
need to write an external lexer to account for nesting properly.
2022-06-02 17:07:30 +02:00
Bruno BELANYI e5e958cac9 Add tests for sequence expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI e59aeed31a Remove nested 'parameters' field
The 'parameters' production rule does not need itself to have a
'parameters' field, this is redundant information.
2022-06-02 17:07:30 +02:00
Bruno BELANYI 76b558a982 Add return type to function declarations 2022-06-02 17:07:30 +02:00
Bruno BELANYI 1e5f7cd5d5 Add array types 2022-06-02 17:07:30 +02:00
Bruno BELANYI dd0af53fa0 Add record types 2022-06-02 17:07:30 +02:00
Bruno BELANYI 506fab8896 Add type declarations
For now, simplified to type aliases only.
2022-06-02 17:07:30 +02:00
Bruno BELANYI e898312c95 Add function declarations 2022-06-02 17:07:30 +02:00
Bruno BELANYI 3eb6b0a0d0 Add variable declarations 2022-06-02 17:07:30 +02:00
Bruno BELANYI 3cf701dbb1 Add top-level declarations 2022-06-02 17:07:30 +02:00
Bruno BELANYI 1449aa939f Add let expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI 68aac9a0ae Delineate expressions in grammar 2022-06-02 17:07:30 +02:00
Bruno BELANYI d32fd4fd6c Add break expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI bb6875a11d Add for expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI 26999482a3 Add while expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI 19c1f11414 Add if expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI 93cd163707 Add assignment expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI 6a3e4663ed Add lvalue expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI 8921953bbb Add function calls 2022-06-02 17:07:30 +02:00
Bruno BELANYI 136924cb26 Add record expression 2022-06-02 17:07:30 +02:00
Bruno BELANYI babf666642 Add array expression 2022-06-02 17:07:30 +02:00
Bruno BELANYI 02f83784b1 Use explicit 'nil_literal' rule
Makes the dumped AST more readable, and will probably help in writing
future queries.
2022-06-02 17:07:30 +02:00
Bruno BELANYI 0bc7e59fc7 Disable keyword extraction
For now bare keywords are errors, since we have not included them as
valid expressions.
2022-06-02 17:07:30 +02:00
Bruno BELANYI 50c8e3c0e6 Centralise precedence values
Makes it easier to ensure correct precedence relative to the rest of the
grammar later on.
2022-06-02 17:07:30 +02:00
Bruno BELANYI 03fa0427cf Add arithmetic expressions 2022-06-02 17:07:30 +02:00
Bruno BELANYI e7ba93870e Add simple atoms 2022-06-01 22:19:04 +02:00
Bruno BELANYI 30b2e50367 Bootstrap tree-sitter parser architecture 2022-06-01 16:39:18 +02:00
Bruno BELANYI 4b1d0f7744 Ignore nix-generated files 2022-06-01 16:23:17 +02:00
Bruno BELANYI 00f3013af0 Bootstrap nix flake environment 2022-06-01 16:23:17 +02:00