earley item
Marpa and nullable symbols
The Marpa parser was intended to make the best results in the academic literature on Earley's algorithm available as a practical general parser. Earley-based parsers have had issues handling nullable symbols. Initially, we dealt with nullable symbols by following the approach in Aycock and Horspool's 2002 paper. This paper reports our experience with the approach in that paper, and the approach to handling nullables that we settled on in reaction to that experience.
Marpa, A practical general parser: the recognizer
The Marpa recognizer is described. Marpa is a practical and fully implemented algorithm for the recognition, parsing and evaluation of context-free grammars. The Marpa recognizer is the first to unite the improvements to Earley's algorithm found in Joop Leo's 1991 paper to those in Aycock and Horspool's 2002 paper. Marpa tracks the full state of the parse, as it proceeds, in a form convenient for the application. This greatly improves error detection and enables event-driven parsing. One such technique is "Ruby Slippers" parsing, in which the input is altered in response to the parser's expectations.