ANNOUNCE revision 4479
14479Sbinkertn@umich.eduFebruary 19, 2007 24479Sbinkertn@umich.edu 34479Sbinkertn@umich.edu Announcing : PLY-2.3 (Python Lex-Yacc) 44479Sbinkertn@umich.edu 54479Sbinkertn@umich.edu http://www.dabeaz.com/ply 64479Sbinkertn@umich.edu 74479Sbinkertn@umich.eduI'm pleased to announce a significant new update to PLY---a 100% Python 84479Sbinkertn@umich.eduimplementation of the common parsing tools lex and yacc. PLY-2.3 is 94479Sbinkertn@umich.edua minor bug fix release, but also features improved performance. 104479Sbinkertn@umich.edu 114479Sbinkertn@umich.eduIf you are new to PLY, here are a few highlights: 124479Sbinkertn@umich.edu 134479Sbinkertn@umich.edu- PLY is closely modeled after traditional lex/yacc. If you know how 144479Sbinkertn@umich.edu to use these or similar tools in other languages, you will find 154479Sbinkertn@umich.edu PLY to be comparable. 164479Sbinkertn@umich.edu 174479Sbinkertn@umich.edu- PLY provides very extensive error reporting and diagnostic 184479Sbinkertn@umich.edu information to assist in parser construction. The original 194479Sbinkertn@umich.edu implementation was developed for instructional purposes. As 204479Sbinkertn@umich.edu a result, the system tries to identify the most common types 214479Sbinkertn@umich.edu of errors made by novice users. 224479Sbinkertn@umich.edu 234479Sbinkertn@umich.edu- PLY provides full support for empty productions, error recovery, 244479Sbinkertn@umich.edu precedence rules, and ambiguous grammars. 254479Sbinkertn@umich.edu 264479Sbinkertn@umich.edu- Parsing is based on LR-parsing which is fast, memory efficient, 274479Sbinkertn@umich.edu better suited to large grammars, and which has a number of nice 284479Sbinkertn@umich.edu properties when dealing with syntax errors and other parsing 294479Sbinkertn@umich.edu problems. Currently, PLY can build its parsing tables using 304479Sbinkertn@umich.edu either SLR or LALR(1) algorithms. 314479Sbinkertn@umich.edu 324479Sbinkertn@umich.edu- PLY can be used to build parsers for large programming languages. 334479Sbinkertn@umich.edu Although it is not ultra-fast due to its Python implementation, 344479Sbinkertn@umich.edu PLY can be used to parse grammars consisting of several hundred 354479Sbinkertn@umich.edu rules (as might be found for a language like C). The lexer and LR 364479Sbinkertn@umich.edu parser are also reasonably efficient when parsing normal 374479Sbinkertn@umich.edu sized programs. 384479Sbinkertn@umich.edu 394479Sbinkertn@umich.eduMore information about PLY can be obtained on the PLY webpage at: 404479Sbinkertn@umich.edu 414479Sbinkertn@umich.edu http://www.dabeaz.com/ply 424479Sbinkertn@umich.edu 434479Sbinkertn@umich.eduPLY is freely available and is licensed under the terms of the Lesser 444479Sbinkertn@umich.eduGNU Public License (LGPL). 454479Sbinkertn@umich.edu 464479Sbinkertn@umich.eduCheers, 474479Sbinkertn@umich.edu 484479Sbinkertn@umich.eduDavid Beazley (http://www.dabeaz.com)