Bug#753992: ITP: libmarpa -- BNF grammar parser
Package: wnpp
Severity: wishlist
Owner: Jonas Smedegaard <dr@jones.dk>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
* 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,
Marpa Lotsawa.
This library is currently part of libmarpa-r2-perl, but will be provided
as a separate shared library in future releases.
- Jonas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQF8BAEBCgBmBQJTubbqXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ3NjQ4ODQwMTIyRTJDNTBFQzUxRDQwRTI0
RUMxQjcyMjM3NEY5QkQ2AAoJEE7BtyI3T5vWECIIALoU2x3l3fvHanbhA8QkSH85
pV+QaJXkbqj/qkduvPOxM5CH2NloXq7KrFrPO0W0YpmXEaUXP7T++PlyirO0eoYJ
LvGC34ycRRU5kcH2MiBxqgFQgN0gBo2+Wv3UaxH0YFuaT9OOPwPuxzVvQTKm97Tf
lgUYySTy4yr6Hed7NYqhu4BP8/XlqkAx2FubYpuUkRks8hC5uxeyOBVApyirGtSj
qn7FNxcc3NBRdGZiTl2AOjcsSmVP1ojsy+yEWohZc+7lWGFYQ87Q07intgPPO9BB
GFBO3oMWDrMPuRi0+/QXOF9scGthMJJ1HHsOLJOsOUSX+gG78j4r2+/mTGJtKMU=
=3Xk7
-----END PGP SIGNATURE-----
Reply to: