Repository navigation
Release 4.5.0
Summary
- Add a built-in grammar and generated C# parser for
.astrewrite descriptions, sotrparsecan produce their parse trees. - Have
trinterpcompile one.astmapping alongside one parser grammar and embed the rewrite table in the parser.interpfile. Mapping inputs are recognized by their parse-tree root, including when read from stdin or a non-.astfilename. - Have the AllStar interpreter construct the AST during parsing from the embedded table. Remove the separate
trparse --ast-mapoption. - Keep Earley from caching an unsupported mapped interpreter; AllStar also detects a cached runtime that is missing its embedded mapping instead of silently returning a CST.
- Update the arithmetic and LINVAST-style C, Java, Kotlin, and Lua examples to use the parse → interp → AllStar pipeline. The LINVAST example links to its original ANTLR4-based source.
- Bring
desc.xsdin line with trgen's EOF-based start-rule selection and supported descriptor fields, and update command documentation and 4.5.0 tool versions. - Repair the generated AST C# project's launch, test, benchmark, and clean commands to use
ast.dllorast.csprojrather than nonexistentTest.exeorTest.csproj. Benchmark failures now propagate a nonzero exit status.
Validation
- Earlier full
AllStarParserTestsrun: 573 passed. - After the review fixes: 9 AST-mapping tests and 42 related G4X interpreter tests passed.
examples/ast-during-parse/run-example.shandexamples/linvast-ast/run-example.shpassed.- Direct Windows builds of the AST and ABNF grammar projects produced their DLLs and
.exeapphosts. The AST Bash and PowerShell launchers, watchdog invocation, and MSBuild Test target ran successfully.
Current scope
Embedded AST mappings require ordinary --allstar parsing. They are not yet compatible with indirect left recursion, context-aware lexing, or runtime XQuery hooks. Earley explicitly rejects mapped interpreters.