[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: