diff options
Diffstat (limited to 'tree-sitter/dsk/test-build/grammar.js')
-rw-r--r-- | tree-sitter/dsk/test-build/grammar.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tree-sitter/dsk/test-build/grammar.js b/tree-sitter/dsk/test-build/grammar.js new file mode 100644 index 0000000..697a76d --- /dev/null +++ b/tree-sitter/dsk/test-build/grammar.js @@ -0,0 +1,48 @@ +/** + * Simple test grammar for build system verification + */ + +module.exports = grammar({ + name: 'test_lang', + + word: $ => $.identifier, + + rules: { + // Root rule + source_file: $ => repeat(choice($.statement, $.expression)), + + // Basic tokens + identifier: $ => /[a-zA-Z_][a-zA-Z0-9_]*/, + number: $ => /\d+/, + string: $ => /"[^"]*"/, + + // Expressions + expression: $ => choice( + $.identifier, + $.number, + $.string + ), + + // Statements + statement: $ => choice( + $.variable_declaration + ), + + // Variable declaration + variable_declaration: $ => seq( + 'let', + $.identifier, + '=', + $.expression, + ';' + ), + + // Comments + line_comment: $ => seq('//', /[^\n]*/) + }, + + extras: $ => [ + /\s/, + $.line_comment + ] +}); |