mirror of
https://github.com/tree-sitter/tree-sitter.git
synced 2026-09-10 07:36:22 -04:00
This commit adds an `eof()` function for grammars, which is easier to use than the NUL byte directly. It compiles down to a constraint that the enclosing production can only reduce at end of input, not to a shiftable token. BREAKING CHANGE: Public error types for `tree-sitter-generate` were modified. Co-authored-by: Will Lillis <will.lillis24@gmail.com>
12 lines
426 B
JavaScript
12 lines
426 B
JavaScript
// Both branches reduce `line` to the same single `'text'` child, differing only in
|
|
// whether the reduce is gated on end of input. Identical actions are not a conflict,
|
|
// but they still have to be compared on precedence rather than skipped.
|
|
export default grammar({
|
|
name: 'eof_duplicate_reduction',
|
|
|
|
rules: {
|
|
source_file: $ => repeat($.line),
|
|
line: _ => choice('text', seq('text', eof())),
|
|
}
|
|
});
|