Skip to content

Release 4.8.0

Choose a tag to compare

@kaby76 kaby76 released this 26 Oct 07:44
· 22 commits to main since this release

Summary

Release 4.8.0 updates interpreted parsing, makes generated grammar tests usable from isolated directories, and improves regression and CI diagnostics.

Parsing and prediction

  • Make ALL(*) the default for ordinary input outside a Generated-CSharp... directory. A generated parser remains available from its directory or with -p/--parser (or -t gen); recognized grammar files still use their built-in parsers.
  • Add --earley to select the Earley interpreter explicitly. Piped interpreter bundles can also select an existing parser/lexer .interp pair by path.
  • Add --sll for pure SLL prediction without full-context LL fallback, including the AllStar interpreter and generated-parser path. Document its correctness caveat and add parser tests.
  • Add examples/antlr-sll-predicate-cache with nested inputs and scripts comparing ANTLR 4.13.1 C# with AllStar. It demonstrates the predicate-context merge regression discussed in antlr/antlr4#4987 and distinguishes that regression from AllStar's normal full-LL fallback cost.

Generated drivers and tests

  • Update trgen's generated Bash and PowerShell test scripts across targets to find source examples when the generated app runs elsewhere, write parse outputs under the generated app, and compare them with expected results without modifying source examples.
  • Make generated shell scripts use Unix line endings; fix Linux test execution, MSYS Java classpaths, and target-independent XQuery assertion checks.
  • Improve the top-level test scripts so CI reports the specific failing nested test, and correct escaping in the C++ driver template.

Other changes

  • Add trxml2 --file-name to prefix each output path with its input filename (or <stdin>), with documentation and tests.
  • Bump tool, package, script, and documentation versions to 4.8.0.

Validation

The branch adds regression coverage for SLL behavior, trparse parser selection and output, trxml2 --file-name, trgen start-rule handling, and the new SLL example.

See PR #756 for the full changes.