@lezer/generator
[ WEBSITE | ISSUES | FORUM | CHANGELOG ]
This is an LR(1) (more precisely pseudo-LALR,with opt-in GLR) parser generator which outputs grammars that can be used by the Lezer parser.
This package exports both a command-line parser generator tool called lezer-generator
and a programming interface.
The grammar format that the tool accepts is documented in the system guide.
See test/cases/
for some simple example grammars, or lezer-javascript for a real grammar.
You can import "@lezer/generator/rollup"
to get a Rollup plugin that will transform files ending in .grammar
or .grammar.terms
(a pseudo-source referring to the terms produced by the .grammar
file) as part of the rollup build process.
import {lezer} from "@lezer/generator/rollup"
export default {
input: "./in.js",
output: {file: "out.js", format: "cjs"},
plugins: [lezer()]
}
The plugin can be passed lezer({exportName})
option to configure the name of the parser export.
The code is licensed under an MIT license.
1.7.2 (2024-12-06)
Bug fixes
Fix an issue where the terms file could contain tokens named eval
or arguments
, which isn't allowed in strict mode.
The Rollup plugin will now ignore sources starting with null characters in its resolve hook.