Projects / LEPL

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.

Tags
Licenses
Operating Systems
Implementation

RSS Recent releases

  •  21 Mar 2011 17:07

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 14:26

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.

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 07:03

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 08:48

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

Screenshot

Project Spotlight

Sketsa SVG Editor

A cross-platform WYSIWYG SVG editor.

Screenshot

Project Spotlight

Cainteoir Engine

Software to listen to and record electronic documents.