LEPL is a recursive descent parser library writtenin Python. It is based on parser combinatorlibraries popular in functional programming, butalso exploits Python language features. Operatorsprovide a friendly syntax, and the consistent useof generators supports full backtracking andresource management. Backtracking implies that awide variety of grammars are supported, but onlyLL(k) are guaranteed to terminate.
License: GNU Lesser General Public License (LGPL)
Changes:
This release introduces several new features while keeping the same basic syntax for grammars (expressed as Python code). These include: evaluation via trampolining, which avoids any limits on recursion due to the small Python stack; memoisation, allowing both packrat parsing (Norvig 1991) and left-recursive grammars (Frost and Hafiz 2006); matcher graph rewriting, allowing manipulation of the grammar before parsing starts.
More...