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)