1module.exports = grammar({
2 name: 'test_grammar',
3
4 extras: $ => [/\s/, $.comment],
5
6 rules: {
7 expression: $ => choice(
8 $.sum,
9 $.number,
10 $.variable,
11 seq('(', $.expression, ')')
12 ),
13 sum: $ => prec.left(1, seq(field('left', $.expression), '+', field('right', $.expression))),
14 number: $ => /\d+/,
15 comment: $ => token(seq('//', /.*/)),
16 variable: $ => /[a-zA-Z]\\w*/,
17 }
18});