Differences between revisions 2 and 24 (spanning 22 versions)
Revision 2 as of 2002-08-23 20:33:38
Size: 1131
Editor: MikeRovner
Comment: PLY added
Revision 24 as of 2004-03-05 18:41:11
Size: 2864
Editor: MikeRovner
Comment: SeeGramWrap added
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
  * ["shlex"] (http://www.python.org/doc/current/lib/module-shlex.html)
  * ["Plex"] (http://www.cosc.canterbury.ac.nz/~greg/python/Plex)
  * SimpleParse (http://members.rogers.com/mcfletch/programming/simpleparse/simpleparse.html)
  * ["Spark"] (http://pages.cpsc.ucalgary.ca/~aycock/spark/)
  * ["Yapps"] (http://theory.stanford.edu/~amitp/Yapps/)
  * ["PyLR"] (http://starship.python.net/crew/scott/PyLR.html)
  * ["kwParsing"] (http://www.pythonpros.com/arw/kwParsing/kwParsing.html)
  * PyBison (http://www-db.stanford.edu/~hassan/Python/pybison.tar.gz)
  * ["mcf.parse"] (http://starship.python.net/crew/mcfletch/)
  * ["Trap"] (http://www.first.gmd.de/smile/trap/)
  * ["PLY"] (http://systems.cs.uchicago.edu/ply/)
(!) Please keep wiki links as wiki links, use external links only if there is no existing page for the tool.
Line 15: Line 5:
Also see Python ParserSig @ http://www.python.org/sigs/parser-sig/ to discuss and select a standard parser generator for Python. || Name || Grammar || Module|| Python || Comment ||
||[http://www.python.org/doc/current/lib/module-shlex.html shlex]|| || C || || included in distribution||
||[http://www.cosc.canterbury.ac.nz/~greg/python/Plex Plex]||  || C||  ||lexical analysis module for Python, foundation for ["Pyrex"]||
||[http://pages.cpsc.ucalgary.ca/~aycock/spark/ Spark]||  || Python||   || ||
||["Yapps"]|| LL(1) || Python|| 1-any, 2-1.5+|| ||
||[http://starship.python.net/crew/scott/PyLR.html PyLR]|| LR(1) LALR(1) || C || || ||
||[http://www.pythonpros.com/arw/kwParsing/kwParsing.html kwParsing]|| || || || ||
||PyBison || || C ||  ||bison grammar with python code actions ||
||[http://www.first.gmd.de/smile/trap/ Trap] || LR || ||1.5.1+|| ||
||[http://systems.cs.uchicago.edu/ply/ PLY]|| ||Python || ||Python Lex-Yacc ||
||[http://christophe.delord.free.fr/en/tpg/ ToyParserGenerator]|| || || 2.2+ || ||
||[http://staff.washington.edu/sabbey/py_dparser/ DParser]|| GLR || C || 2.2+ || grammar in doc strings||
||[http://www.lava.net/~newsham/pyggy/ PyGgy]|| GLR || Python || 2.2.1 || ||
||[http://simpleparse.sourceforge.net/ SimpleParse]||-|| ||2.0+||requires mxTextTools||
||[http://biopython.org/docs/api/Martel/README.html Martel]|| || Python || 2.0+ ||requires mxTextTools||
||[http://www.lemburg.com/files/python/mxTextTools.html mxTextTools]||-||C|| || is not exactly a parser like we're used to, but it is a fast text-processing engine||
||[http://pyparsing.sourceforge.net/ pyparsing]|| || Python || 2.2+ || ||
Line 17: Line 23:
Also see the Python ParserSig @ http://www.python.org/sigs/parser-sig/ to discuss and select a standard parser generator for Python.
Line 21: Line 28:
  * ["ANTLR"] (http://www.antlr.org/) C++ output (an older version with C output also available)   * ["ANTLR"] (http://www.antlr.org/) generates C++ output (an older version with C output also available)
  * ["Spirit"] (http://spirit.sourceforge.net/) framework for writing EBNF as C++ code
  * FlexBisonModule (http://www.cs.utexas.edu/users/mcguire/software/fbmodule/)
  * [http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&selm=61g0ff%2439g%241%40vishnu.jussieu.fr cocktail compiler tools] approach

Example of such usage is SeeGramWrap available from Edward C. Jones
[http://members.tripod.com/~edcjones/pycode.html Python page], which is a heavily revised and upgraded version of the ANTLR C parser that is in [http://members.tripod.com/~edcjones/cgram.tar.gz cgram]. The lastest verson has been refactored to move some of the complexity from ANTLR to Python.

Small discussion and evaluation of different parsers.

(!) Please keep wiki links as wiki links, use external links only if there is no existing page for the tool.

Name

Grammar

Module

Python

Comment

[http://www.python.org/doc/current/lib/module-shlex.html shlex]

 

C

 

included in distribution

[http://www.cosc.canterbury.ac.nz/~greg/python/Plex Plex]

 

C

 

lexical analysis module for Python, foundation for ["Pyrex"]

[http://pages.cpsc.ucalgary.ca/~aycock/spark/ Spark]

 

Python

 

 

["Yapps"]

LL(1)

Python

1-any, 2-1.5+

 

[http://starship.python.net/crew/scott/PyLR.html PyLR]

LR(1) LALR(1)

C

 

 

[http://www.pythonpros.com/arw/kwParsing/kwParsing.html kwParsing]

 

 

 

 

PyBison

 

C

 

bison grammar with python code actions

[http://www.first.gmd.de/smile/trap/ Trap]

LR

 

1.5.1+

 

[http://systems.cs.uchicago.edu/ply/ PLY]

 

Python

 

Python Lex-Yacc

[http://christophe.delord.free.fr/en/tpg/ ToyParserGenerator]

 

 

2.2+

 

[http://staff.washington.edu/sabbey/py_dparser/ DParser]

GLR

C

2.2+

grammar in doc strings

[http://www.lava.net/~newsham/pyggy/ PyGgy]

GLR

Python

2.2.1

 

[http://simpleparse.sourceforge.net/ SimpleParse]

-

 

2.0+

requires mxTextTools

[http://biopython.org/docs/api/Martel/README.html Martel]

 

Python

2.0+

requires mxTextTools

[http://www.lemburg.com/files/python/mxTextTools.html mxTextTools]

-

C

 

is not exactly a parser like we're used to, but it is a fast text-processing engine

[http://pyparsing.sourceforge.net/ pyparsing]

 

Python

2.2+

 

Also see the Python ParserSig @ http://www.python.org/sigs/parser-sig/ to discuss and select a standard parser generator for Python.

For some speed up one may use other parser generator systems and plug them in as modules.

For example:

Example of such usage is SeeGramWrap available from Edward C. Jones [http://members.tripod.com/~edcjones/pycode.html Python page], which is a heavily revised and upgraded version of the ANTLR C parser that is in [http://members.tripod.com/~edcjones/cgram.tar.gz cgram]. The lastest verson has been refactored to move some of the complexity from ANTLR to Python.

LanguageParsing (last edited 2022-01-27 20:15:14 by joente)

Unable to edit the page? See the FrontPage for instructions.