Releases: nineml/coffeegrinder
3.2.6
This release is partly a patch to get the current version aligned with the documentation. A build oversight meant that updates after 3.2.5 were being published in the 3.2.5 documentation. That’s potentially confusing; releasing 3.2.6 brings the documentation and the release back into alignment. Apologies for any confusion.
No significant changes; dependencies updated to the latest version.
3.2.5
Allow undefined tokens in grammars by defining them such that they match nothing. Fixed a bug where undefined symbols were not identified as unreachable (even when they were). Fixed (or worked around a bug) where extracting a tree from the GLL parse forest could fail.
3.2.4
3.2.3
3.2.2
This release is mostly a large refactor of how the documentation is organized, managed, and produced. There are also significant new sections about the CoffeeGrinder and CoffeeFilter APIs.
Other aspects of the build have also been improved: the Maven artifacts now explicitly identify either Saxon 11 or Saxon 12 as dependencies; build automation now tests against both versions of Saxon, and the default build dependency is Saxon-HE.
Javadoc clarifications and improvements. Made parser options more consistent in parsers and results.
3.2.1
3.2.0
3.1.0
3.0.0
-
Many improvements and bug fixes in the GLL parser. It is now often (slightly) faster than the Earley parser and should be just as reliable.
-
Refactored how trees are returned from the forest. In principle, it is possible to retrieve all of the trees.
-
When prefix parsing is enabled, it is now possible to continue the parse with a different parser.
-
Refactored tests to use JUnit 5 exclusively, many new and improved tests.
-
Refactored and improved how and where terminals can be matched with regular expressions. Regular expression matches work with both parsers.
-
Many improvements to the
forest2dot.xsl
stylesheet that produces forest diagrams. -
Added an option to analyze the grammar for ambiguity with Anders Møller’s ambiguity analyzer. (Note that the analyzer jar file is included in the repository, but it isn’t bundled with CoffeeGrinder, you need to add it to your class path. It is bundled with CoffeePot.)
-
Parser attributes (used internally to track marks and other features) have been renamed so that they’re all URIs. Added an attribute to track nonterminal priority. (To guide selection in ambiguous forests.)
-
Added an option to normalize line endings on input.
-
Added an option to mark ambiguities. When enabled, this option identifies places in the tree where an ambiguous choice was made. (It currently only works for “vertical” ambiguities between nonterminals.)
3.0.0l
This is a beta release for version 3.0.0. There are a lot of changes in this release and many of them impact the public APIs.
Fixed a bug where the element names in a GLL parse were sometimes wrong. Also fixed a bug where the set of nullable nonterminals was sometimes wrong for a GLL parse.