LEPL is a recursive descent parser library written
in Python. It is based on parser combinator
libraries popular in functional programming, but
also exploits Python language features. Operators
provide a friendly syntax, and the consistent use
of generators supports full backtracking and
resource management. Backtracking implies that a
wide variety of grammars are supported; appropriate memoisation ensures that even left-recursive grammars terminate.