Menu Close

The ea2 release and early access release scheduling

The second early access release is now available. ea2 represents a cleanup of the ANTLR Yggdrasil runtime and the StringTemplate compiler (STC). STC formatting now conforms to the StringTemplate3 formatting rules, and all expressions are handled properly. There are also bug fixes to the LGLL implementation and GrammarGen to enable GrammarGen to process an annotated C grammar.

After going through the initial runtime code cleanup to get the ea2 release out, I have a good idea of what steps remain. My tentative plans (fixing user-reported issues could add a few rapid releases) for future early access releases are:

ea3: Fix attribute dependency management in GrammarGen (the current code predates fixes to graph input and output code, and was broken by those fixes), incorporate error management syntax and support code—the LGLL implementation makes pinpoint error reporting and recovery possible—and enhance the recognition code that involves recursion. At this point, the Java target should be fairly mature.

ea4: Implement retargeting tool and add C++ target. The general plan for language targets is to follow the Java implementation and use a Java to target translator for runtime conversion rather than using language-specific models. This simplifies conversion and maintenance, and makes it easier for multi-target users, even though some of the individual targets will appear somewhat uncouth by targeted language standards.

ea5: Add further targets (Python; others by request), and conversion tools for antlr 2,3,4 and bison/yacc grammars.

ea6: Final cleanup and addition of graph processing support (modify code used in LGLL implementation for library use and enable graph parsing and graph construction support) before commercial release. Graph processing is an essential feature for implementing many compiler optimizations.

Early access releases should appear at about six week intervals, although unexpected defect repairs can drag this out a bit.

Leave a Reply

Your email address will not be published. Required fields are marked *