LanguageParsing

系统 2070 0

LanguageParsing

4/21/2009 4:04:53 PM

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

shlex

C

included in distribution

Plex

C

lexical analysis module for Python, foundation for Pyrex

Spark

GLR

Python

Yapps

LL(1)

Python

1-any, 2-1.5+

PyLR - (broken link)

LR(1) LALR(1)

C

kwParsing

PyBison

C

bison grammar with python code actions

Trap

LR

1.5.1+

PLY

SLR LALR(1)

Python

Python Lex-Yacc

ToyParserGenerator

2.2+

DParser

GLR

C

2.2+

grammar in doc strings

PyGgy

GLR

Python

2.2.1

SimpleParse

-

2.0+

requires mxTextTools

Martel

Python

2.0+

requires mxTextTools

mxTextTools

-

C

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

pyparsing

Python

2.2+

ANTLR

LL1+

Python

stand-alone tool in Java. Latest version can produce Python code

Yappy

LALR

Python

2.2+

ZestyParser

Python

Object-oriented, Pythonic parsing

Parsing

LR(1)

Python

2.5+

aperiot

LL(1)

Python

uses separate grammar files

yeanpypa

Python

inspired by pyparsing and boost::spirit

Wisent

LR(1)

Python

2.4+

RP

na

Python

2.6+

Simple parser using rule defined in BNF format

LEPL

Any

Python

2.6+

Recursive descent with full backtracking and optional memoisation (which can handle left recursive grammars). So equivalent to GLR, but based on LL(k) core.

For faster performance, 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 Python page , which is a heavily revised and upgraded version of the ANTLR C parser that is in cgram (broken link). The lastest verson has been refactored to move some of the complexity from ANTLR to Python.

Martin von Loewis presented a paper at Python10, titled "Towards a Standard Parser Generator" that surveyed the available parser generators for Python.

Ned Batchelder maintains additional information on these and other parsers at Python Parsing Tools .

Books

EditText (2009-04-07 12:54:26由 252-149-222-201 编辑)

LanguageParsing


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论