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