| 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) |