48 lines
1.8 KiB
Text
48 lines
1.8 KiB
Text
|
February 19, 2007
|
||
|
|
||
|
Announcing : PLY-2.3 (Python Lex-Yacc)
|
||
|
|
||
|
http://www.dabeaz.com/ply
|
||
|
|
||
|
I'm pleased to announce a significant new update to PLY---a 100% Python
|
||
|
implementation of the common parsing tools lex and yacc. PLY-2.3 is
|
||
|
a minor bug fix release, but also features improved performance.
|
||
|
|
||
|
If you are new to PLY, here are a few highlights:
|
||
|
|
||
|
- PLY is closely modeled after traditional lex/yacc. If you know how
|
||
|
to use these or similar tools in other languages, you will find
|
||
|
PLY to be comparable.
|
||
|
|
||
|
- PLY provides very extensive error reporting and diagnostic
|
||
|
information to assist in parser construction. The original
|
||
|
implementation was developed for instructional purposes. As
|
||
|
a result, the system tries to identify the most common types
|
||
|
of errors made by novice users.
|
||
|
|
||
|
- PLY provides full support for empty productions, error recovery,
|
||
|
precedence rules, and ambiguous grammars.
|
||
|
|
||
|
- Parsing is based on LR-parsing which is fast, memory efficient,
|
||
|
better suited to large grammars, and which has a number of nice
|
||
|
properties when dealing with syntax errors and other parsing
|
||
|
problems. Currently, PLY can build its parsing tables using
|
||
|
either SLR or LALR(1) algorithms.
|
||
|
|
||
|
- PLY can be used to build parsers for large programming languages.
|
||
|
Although it is not ultra-fast due to its Python implementation,
|
||
|
PLY can be used to parse grammars consisting of several hundred
|
||
|
rules (as might be found for a language like C). The lexer and LR
|
||
|
parser are also reasonably efficient when parsing normal
|
||
|
sized programs.
|
||
|
|
||
|
More information about PLY can be obtained on the PLY webpage at:
|
||
|
|
||
|
http://www.dabeaz.com/ply
|
||
|
|
||
|
PLY is freely available and is licensed under the terms of the Lesser
|
||
|
GNU Public License (LGPL).
|
||
|
|
||
|
Cheers,
|
||
|
|
||
|
David Beazley (http://www.dabeaz.com)
|