mirror of
https://github.com/hanzoai/ast.git
synced 2026-11-02 19:28:21 +00:00
These tests are easier to write and maintain if the grammars are just JS, like grammars normally are. It doesn't slow the tests down significantly to shell out to `node` for each of these grammars.
16 lines
451 B
JavaScript
16 lines
451 B
JavaScript
module.exports = grammar({
|
|
name: 'conflicting_precedence',
|
|
|
|
rules: {
|
|
expression: $ => choice(
|
|
$.sum,
|
|
$.product,
|
|
$.other_thing,
|
|
),
|
|
|
|
sum: $ => prec.left(0, seq($.expression, '+', $.expression)),
|
|
product: $ => prec.left(1, seq($.expression, '*', $.expression)),
|
|
other_thing: $ => prec.left(-1, seq($.expression, '*', '*')),
|
|
identifier: $ => /[a-zA-Z]+/
|
|
}
|
|
}); |