tree-sitter.tree-sitter/test/fixtures/test_grammars/eof_repeat_terminated/grammar.js
Amaan Qureshi 74b7d0c951 feat!: add an eof function
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>
2026-08-21 20:02:58 -04:00

11 lines
330 B
JavaScript

// A repeat item ending in `eof()` can match at most once. The EOF-gated
// reduce must survive table minimization, so a second `text` is a parse
// error rather than being silently accepted.
export default grammar({
name: 'eof_repeat_terminated',
rules: {
source_file: $ => repeat(seq('text', eof())),
}
});