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});