I asked Ron Savage to create a new web site to be the public face of
Marpa -- an "unofficial official" web site. (Ron has editorial control,
and mine <http://jeffreykegler.github.io/Marpa-web-site/> remains the
"official official" web site.) Ron generously agreed and it is under
construction here <http://savage.net.au/Marpa.html>.
While rethinking all this, I wrote up a new top-level description of
Marpa, aimed at those who are totally new to it:
The Marpa parser is intended to replace, and to go well beyond, recursive
descent and the yacc family of parsers. It is a new algorithm, based
on prior work by Jay Earley, Joop Leo, John Aycock and R. Nigel Horspool.
* Marpa is fast. It parses in linear time
* All unambiguous grammars, unless they have unbounded middle
recursions which are unmarked. (The LR-regular, or LRR, grammars.)
* Ambiguous grammars, if they are the unions of a
finite set of LRR grammars.
* All the grammars that recursive descent parses.
(These are the LL(k) grammars, a subset of LRR.)
* All grammars that the yacc family parses.
(These are the LALR grammars, a small subset of LR(k), which is in
turn a subset of LRR.)
* Marpa is powerful. Marpa will parse anything you can write in BNF,
including any mixture of left, right and middle recursion, as well
as cycles.
* Marpa is flexible. Like recursive descent, Marpa allows you to stop
and do your own custom processing. Unlike recursive descent, Marpa
makes available to you detailed information about the parse so far --
which rules and symbols have been recognized, with their locations,
and which rules and symbols are expected next.
Comments welcome.
Jeffrey
--
You received this message because you are subscribed to the Google Groups "marpa
parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.