Projects / LEPL


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.

Operating Systems

Recent releases

  •  21 Mar 2011 11:27

    Release Notes: This release contains a significant rewrite to simplify the internal handling of the input stream. This improves reliability, efficiency, and will allow further extension in the future. As a consequence, the internal API for streams has changed. The handling of memoization and offside (whitespace significant) parsing has also been modified to address issues found while testing the new streams. Finally, it is now possible to use LEPL to parse documents larger than the available memory.

    •  11 Jun 2010 13:16

      Release Notes: This release adds a minor bugfix for SOL and EOL matchers, used to explicitly match the start- and end-of-line markers when line-aware parsing is enabled.

      •  10 Jun 2010 18:46

        Release Notes: Line-aware parsing (without the offside rule) has been simplified in response to user feedback. A related bug that affected automatic token generation has been fixed.

        •  01 Jun 2010 00:04

          Release Notes: Fixes were made to LineAwareAlphabet, which improve the use of matchers within tokens when using offside parsing. A new example of offside parsing has been added to the documentation.

          •  21 May 2010 00:52

            Release Notes: This release fixes an error in which the rewriter lost transformations (typically "Drop") when converting a matcher to a regular expression.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.