ext/ply/ply/lex.py:
ext/ply/ply/yacc.py:
ext/ply/CHANGES:
ext/ply/README:
ext/ply/TODO:
ext/ply/doc/ply.html:
ext/ply/example/ansic/clex.py:
ext/ply/example/ansic/cparse.py:
ext/ply/example/calc/calc.py:
ext/ply/example/hedit/hedit.py:
ext/ply/example/optcalc/calc.py:
ext/ply/test/README:
ext/ply/test/calclex.py:
ext/ply/test/lex_doc1.exp:
ext/ply/test/lex_doc1.py:
ext/ply/test/lex_dup1.exp:
ext/ply/test/lex_dup1.py:
ext/ply/test/lex_dup2.exp:
ext/ply/test/lex_dup2.py:
ext/ply/test/lex_dup3.exp:
ext/ply/test/lex_dup3.py:
ext/ply/test/lex_empty.py:
ext/ply/test/lex_error1.py:
ext/ply/test/lex_error2.py:
ext/ply/test/lex_error3.exp:
ext/ply/test/lex_error3.py:
ext/ply/test/lex_error4.exp:
ext/ply/test/lex_error4.py:
ext/ply/test/lex_hedit.exp:
ext/ply/test/lex_hedit.py:
ext/ply/test/lex_ignore.exp:
ext/ply/test/lex_ignore.py:
ext/ply/test/lex_re1.exp:
ext/ply/test/lex_re1.py:
ext/ply/test/lex_rule1.py:
ext/ply/test/lex_token1.py:
ext/ply/test/lex_token2.py:
ext/ply/test/lex_token3.py:
ext/ply/test/lex_token4.py:
ext/ply/test/lex_token5.exp:
ext/ply/test/lex_token5.py:
ext/ply/test/yacc_badargs.exp:
ext/ply/test/yacc_badargs.py:
ext/ply/test/yacc_badprec.exp:
ext/ply/test/yacc_badprec.py:
ext/ply/test/yacc_badprec2.exp:
ext/ply/test/yacc_badprec2.py:
ext/ply/test/yacc_badrule.exp:
ext/ply/test/yacc_badrule.py:
ext/ply/test/yacc_badtok.exp:
ext/ply/test/yacc_badtok.py:
ext/ply/test/yacc_dup.exp:
ext/ply/test/yacc_dup.py:
ext/ply/test/yacc_error1.exp:
ext/ply/test/yacc_error1.py:
ext/ply/test/yacc_error2.exp:
ext/ply/test/yacc_error2.py:
ext/ply/test/yacc_error3.exp:
ext/ply/test/yacc_error3.py:
ext/ply/test/yacc_inf.exp:
ext/ply/test/yacc_inf.py:
ext/ply/test/yacc_missing1.exp:
ext/ply/test/yacc_missing1.py:
ext/ply/test/yacc_nodoc.exp:
ext/ply/test/yacc_nodoc.py:
ext/ply/test/yacc_noerror.exp:
ext/ply/test/yacc_noerror.py:
ext/ply/test/yacc_nop.exp:
ext/ply/test/yacc_nop.py:
ext/ply/test/yacc_notfunc.exp:
ext/ply/test/yacc_notfunc.py:
ext/ply/test/yacc_notok.exp:
ext/ply/test/yacc_notok.py:
ext/ply/test/yacc_rr.exp:
ext/ply/test/yacc_rr.py:
ext/ply/test/yacc_simple.exp:
ext/ply/test/yacc_simple.py:
ext/ply/test/yacc_sr.exp:
ext/ply/test/yacc_sr.py:
ext/ply/test/yacc_term1.exp:
ext/ply/test/yacc_term1.py:
ext/ply/test/yacc_unused.exp:
ext/ply/test/yacc_unused.py:
ext/ply/test/yacc_uprec.exp:
ext/ply/test/yacc_uprec.py:
Import patch ply.diff
src/arch/isa_parser.py:
everything is now within the ply package
--HG--
rename : ext/ply/lex.py => ext/ply/ply/lex.py
rename : ext/ply/yacc.py => ext/ply/ply/yacc.py
extra : convert_revision : fca8deabd5c095bdeabd52a1f236ae1404ef106e
48 lines
1.8 KiB
Plaintext
48 lines
1.8 KiB
Plaintext
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) |