tree-sitter/test/fixtures/test_grammars/inline_rules/grammar.js
2025-09-16 02:24:11 -04:00

22 lines
545 B
JavaScript

export default grammar({
name: "inline_rules",
extras: $ => [/\s/],
inline: $ => [$.expression],
rules: {
program: $ => repeat1($.statement),
statement: $ => seq($.expression, ";"),
expression: $ => choice(
$.sum,
$.product,
$.number,
$.parenthesized_expression,
),
parenthesized_expression: $ => seq("(", $.expression, ")"),
sum: $ => prec.left(seq($.expression, "+", $.expression)),
product: $ => prec.left(2, seq($.expression, "*", $.expression)),
number: $ => /\d+/,
}
})