ANN: PLY-2.3

David Beazley dave-announce at
Tue Feb 20 04:58:53 CET 2007

February 19, 2007

                   Announcing :  PLY-2.3 (Python Lex-Yacc)


I'm pleased to announce a 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:


PLY is freely available and is licensed under the terms of the Lesser
GNU Public License (LGPL).


David Beazley (

More information about the Python-announce-list mailing list