Skip to content

Releases: nineml/coffeegrinder

3.2.6

04 Sep 17:14
@ndw ndw
6093946
Compare
Choose a tag to compare

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

02 Sep 19:15
@ndw ndw
6093946
Compare
Choose a tag to compare

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

28 Aug 16:39
@ndw ndw
6093946
Compare
Choose a tag to compare

No significant changes; dependencies updated to the latest version.

3.2.3

27 Aug 07:39
@ndw ndw
6093946
Compare
Choose a tag to compare

Fixes a bug in the Maven POM file (the version range reference was incorrect). There are other changes in this release.

3.2.2

26 Aug 09:24
@ndw ndw
6093946
Compare
Choose a tag to compare

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

06 Aug 21:04
@ndw ndw
6093946
Compare
Choose a tag to compare

Fixes a bug in prefix parsing.

3.2.0

04 Aug 11:20
@ndw ndw
6093946
Compare
Choose a tag to compare

Reworked how the Arborist classes track and provide descriptions of how ambiguity was resolved.

3.1.0

02 Aug 15:15
@ndw ndw
6093946
Compare
Choose a tag to compare
  1. Added support for marking horizontal ambiguities with processing instructions.

3.0.0

29 Jul 17:07
@ndw ndw
6093946
Compare
Choose a tag to compare
  1. 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.

  2. Refactored how trees are returned from the forest. In principle, it is possible to retrieve all of the trees.

  3. When prefix parsing is enabled, it is now possible to continue the parse with a different parser.

  4. Refactored tests to use JUnit 5 exclusively, many new and improved tests.

  5. Refactored and improved how and where terminals can be matched with regular expressions. Regular expression matches work with both parsers.

  6. Many improvements to the forest2dot.xsl stylesheet that produces forest diagrams.

  7. 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.)

  8. 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.)

  9. Added an option to normalize line endings on input.

  10. 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

26 Jul 18:44
@ndw ndw
6093946
Compare
Choose a tag to compare
3.0.0l Pre-release
Pre-release

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.