| Ply |
Docstrings are used to associate lexer or parser rules with actions. The lexer uses Python regular expressions. |
LGPL |
v3.6 4/2015 |
LALR(1) |
lesscpy |
ply-hack group |
| pyparsing |
Direct parser objects in python, built to parallel the grammar. |
MIT |
v2.0.3 8/2014 |
|
twill |
|
| ANTLR |
Parser and lexical analyzer generator in Java. Generates parsing code in Python (as well as Java, C++, C#, Ruby, etc). |
BSD |
v4.4 7/2014 |
LL(*) |
|
|
| pyPEG |
A parsing expression grammar toolkit for Python. |
GPL |
v 2.15 1/2015 |
PEG |
|
|
| pydsl |
A language workbench written in Python. |
GPLv3 |
v 0.5.2 11/2014 |
|
|
|
| LEPL |
A recursive descent parser. |
dual licensed MPL/LGPL |
v 5.1.3 9/2012 |
|
|
Discontinued |
| Codetalker |
Python-based grammar definitions. |
MIT |
v 1.1 3/2014 |
|
|
|
| funcparserlib |
Recurisve descent parsing library for Python based on functional combinators. |
MIT |
v0.3.6 5/2013 |
|
|
|
| picoparse |
|
|
v0.9 3/2009 |
|
|
|
| Aperiot |
|
Apache 2.0 |
v0.1.12 1/2012 |
|
|
|
| PyGgy |
Lexes with DFA from a specification in a .pyl file. Parses GLR grammars from a specification in a .pyg file. Rules in both files have Python action code. Unlike most parser generators, the rule actions are all executed in a post-processing step. The parser isn't represented as a discrete object, but as globals in a module. |
Public Domain |
v0.4 8/2004 |
|
|
Python 3 compatible fork 0.4.1, discussion group |
| Parsing |
LR(1) parser generator as well as CFSM and GLR parser drivers. |
MIT |
v1.4 12/2012 |
LR(1), CFSM, and GLR |
|
|
| Rparse |
|
GPL |
v 1.1.0. 4/2010 |
LL(1) parser generator with AST generation. |
|
|
| SableCC |
Java-based parser and lexical analyzer generator. Generates parsing code in Java, with alternative generators for other languages including Python. |
LGPL |
v 3.7 11/2012 |
|
|
|
| GOLD Parser |
|
zlib/libpng |
v 5.2.0 8/2012 |
LALR |
|
|
| Plex |
Python module for constructing lexical analysers. |
LGPL |
v 2.0 12/2009 |
|
|
compiles all of the regular expressions into a single DFA. |
| Plex3 |
Python3 port of Plex |
|
8/2012 |
|
|
No official release |
| yeanpypa |
Yeanpypa is (yet another) framework to create recursive-descent parsers in Python. |
Public Domain |
4/2010 |
|
|
Parsers are created by writing an EBNF-like grammar as Python expressions. |
| ZestyParser |
|
MIT |
v 0.8.1 4/2007 |
|
|
|
| BisonGen |
|
|
v 0.8.0b1 4/2005 |
|
|
|
| DParser for Python |
A scannerless GLR parser |
BSD |
v 1.3.0 3/2013 |
|
|
Charming Python: DParser for Python: Exploring Another Python Parser |
| Yapps |
Produces recursive-descent parsers, as a human would write. Designed to be easy to use rather than powerful or fast. Better suited for small parsing tasks like email addresses, simple configuration scripts, etc. |
MIT |
v 2.1.1 8/2003 |
|
|
|
| PyBison |
Python binding to the Bison (yacc) and Flex (lex) parser-generator utilities |
GPL |
v 0.1.8 6/2004 |
LALR(1) |
|
Doesn't yet support Windows. |
| Yappy |
|
|
v 1.9.4 8/2014 |
SLR, LR(1) and LALR(1) |
|
Uses python strings to declare the grammar. |
| Toy Parser Generator |
|
LGPL |
v 3.2.2 12/2013 |
|
|
|
| kwParsing |
An experimental parser generator implemented in Python which generates parsers implemented in Python. |
Python License |
v 1.3 |
SLR |
Gadfly |
|
| Martel |
Martel uses regular expression format definition to generate a parser for flat- and semi-structured files. The parse tree information is passed back to the caller using XML SAX events. In other words, Martel lets you parse flat files as if they are in XML. |
BSD |
v 0.8 12/2001 |
|
BioPython versions 1.4-1.48 |
Last version included in BioPython |
| SimpleParse |
Lexing and parsing in one step, but only deterministic grammars. |
BSD |
2.11a2 8/2010 |
|
|
|
| mxTextTools |
An unusual table-based parser. There is no generation step, the parser is hand-coded using primitives provided by the package. The parser is implemented in C for speed. (just above). |
eGenix Public License, similar to Python, compatible with GPL. |
v 3.2.8 7/2014 |
|
SimpleParse, Martel |
|
| SPARK |
Uses docstrings to associate productions with actions. Unlike other tools, also includes semantic analysis and code generation phases. |
MIT |
v 0.7 pre-alpha 7 5/2002 |
|
|
|
| FlexModule and BisonModule |
Macros to allow Flex and Bison to produce idiomatic lexers and parsers for Python. The generated lexers and parsers are in C, compiled into loadable modules. |
Pythonesque |
v 2.1 3/2002 |
|
|
|
| Bison in a box |
Uses standard Bison to generate pure Python parsers. It actually reads the bison-generated .c file and generates Python code. |
GPL |
v 0.1.0 6/2001 |
LALR(1) |
|
|
| Berkeley YACC |
Classic YACC, extended to generate Python code. Python support seems to be undocumented. |
Public Domain |
v 20141128 11/2014 |
LALR(1) |
|
|
| PyLR |
Lexer is based on regular expressions. |
|
12/1997 |
LR |
|
|
| PyLR |
PyLR is a partial Python implementation of the OpenLR specification |
Apache 2.0 |
12/2014 |
|
|
announcement |
| Construct |
A declarative parser (and builder) for binary data. |
BSD |
v 2.5.2 4/2014 |
|
|
|
| ModGrammar |
A general-purpose library for constructing language parsers and interpreters for context-free grammar definitions. |
BSD |
v 0.10 2/2013 |
|
|
|
| lrparsing |
Differs from other Python LR(1) parsers in using Python expressions as grammars, and offers disambiguation tools. |
AGPLv3 |
v 1.0.11 3/2015 |
LR(1) parser and a tokeniser |
|
|
| docopt |
Generates a parser based on formalized conventions that are used for help messages and man pages for program interface description. |
MIT |
v 0.6.2 6/2014 |
|
|
|