Bug#753992: ITP: libmarpa -- BNF grammar parser
Owner: Jonas Smedegaard <firstname.lastname@example.org>
-----BEGIN PGP SIGNED MESSAGE-----
* Package name : libmarpa
Version : 6.1.0
Upstream Author : Jeffrey Kegler
* URL : https://jeffreykegler.github.io/Marpa-web-site/libmarpa.html
* License : LGPL-3+~Marpa
Programming Lang: C
Description : BNF grammar parser
Libmarpa is a C implementation of the core of Marpa parsing algorithm.
* Marpa parses anything you can write in BNF, including ambiguous and
even infinitely ambiguous grammars.
* Marpa easily and efficiently handles both left- and right-recursion.
* If a grammar is in one of the classes in practical use today, Marpa
parses it in O(n) (linear) time.
* Marpa never goes exponential. Worst case, even for wildly ambiguous
grammars, is O(n3) (cubic) time.
* Marpa's run-time error detection is revolutionary. Marpa has
complete situational awareness. It knows at all times which rules it
is attempting to apply, how far it has progressed in them, and
exactly which tokens it can accept. And Marpa can communicate its
situational awareness back to the application.
* Marpa allows the application to efficiently retry rejected input.
This, combined with its situational awareness, allows
"Ruby Slippers" parsing: When an application has a token rejected,
it can ask the parse engine which tokens would be acceptable. It can
then create a virtual token that allows the parse to continue -- the
application can make the parse engine's "wishes" come true. The Ruby
Slippers are easy to use and surprisingly wide in their application.
Marpa is named after the legendary 11th century Tibetan translator,
This library is currently part of libmarpa-r2-perl, but will be provided
as a separate shared library in future releases.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
-----END PGP SIGNATURE-----