CoffeeGrinder, Earley and GLL parsers in Java
CoffeeGrinder implements both Earley and GLL parsers. Both are capable of using ambiguous grammars. CoffeeGrinder parses (grinds?) a sequence of tokens and returns a Shared Packed Parse Forest. Individual parse trees can be obtained from the forest.
This parser is a fairly literal implementation of the parser in §5 of SPPF-Style Parsing From Earley Recognisers. It has been extended slightly to return a little more information in the SPPF and to support parses that match only a prefix of the input sequence.
References
Packages
Package
Description
CoffeeGrinder exceptions.
The GLL parser classes.
The parser classes.
The token classes.
The tree classes.
Utility classes.
Logging framework.