Ply

Latest version: v3.11

Safety actively analyzes 626157 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 5

1.8

------------------------------
08/02/06: beazley
Fixed a problem related to the handling of default actions in LALR(1)
parsing. If you experienced subtle and/or bizarre behavior when trying
to use the LALR(1) engine, this may correct those problems. Patch
contributed by Russ Cox. Note: This patch has been superceded by
revisions for LALR(1) parsing in Ply-2.0.

08/02/06: beazley
Added support for slicing of productions in yacc.
Patch contributed by Patrick Mezard.

1.7

------------------------------
03/02/06: beazley
Fixed infinite recursion problem ReduceToTerminals() function that
would sometimes come up in LALR(1) table generation. Reported by
Markus Schoepflin.

03/01/06: beazley
Added "reflags" argument to lex(). For example:

lex.lex(reflags=re.UNICODE)

This can be used to specify optional flags to the re.compile() function
used inside the lexer. This may be necessary for special situations such
as processing Unicode (e.g., if you want escapes like \w and \b to consult
the Unicode character property database). The need for this suggested by
Andreas Jung.

03/01/06: beazley
Fixed a bug with an uninitialized variable on repeated instantiations of parser
objects when the write_tables=0 argument was used. Reported by Michael Brown.

03/01/06: beazley
Modified lex.py to accept Unicode strings both as the regular expressions for
tokens and as input. Hopefully this is the only change needed for Unicode support.
Patch contributed by Johan Dahl.

03/01/06: beazley
Modified the class-based interface to work with new-style or old-style classes.
Patch contributed by Michael Brown (although I tweaked it slightly so it would work
with older versions of Python).

1.6

------------------------------
05/27/05: beazley
Incorporated patch contributed by Christopher Stawarz to fix an extremely
devious bug in LALR(1) parser generation. This patch should fix problems
numerous people reported with LALR parsing.

05/27/05: beazley
Fixed problem with lex.py copy constructor. Reported by Dave Aitel, Aaron Lav,
and Thad Austin.

05/27/05: beazley
Added outputdir option to yacc() to control output directory. Contributed
by Christopher Stawarz.

05/27/05: beazley
Added rununit.py test script to run tests using the Python unittest module.
Contributed by Miki Tebeka.

1.5

------------------------------
05/26/04: beazley
Major enhancement. LALR(1) parsing support is now working.
This feature was implemented by Elias Ioup (ezioupalumni.uchicago.edu)
and optimized by David Beazley. To use LALR(1) parsing do
the following:

yacc.yacc(method="LALR")

Computing LALR(1) parsing tables takes about twice as long as
the default SLR method. However, LALR(1) allows you to handle
more complex grammars. For example, the ANSI C grammar
(in example/ansic) has 13 shift-reduce conflicts with SLR, but
only has 1 shift-reduce conflict with LALR(1).

05/20/04: beazley
Added a __len__ method to parser production lists. Can
be used in parser rules like this:

def p_somerule(p):
"""a : B C D
| E F"
if (len(p) == 3):
Must have been first rule
elif (len(p) == 2):
Must be second rule

Suggested by Joshua Gerth and others.

1.4

------------------------------
04/23/04: beazley
Incorporated a variety of patches contributed by Eric Raymond.
These include:

0. Cleans up some comments so they don't wrap on an 80-column display.
1. Directs compiler errors to stderr where they belong.
2. Implements and documents automatic line counting when \n is ignored.
3. Changes the way progress messages are dumped when debugging is on.
The new format is both less verbose and conveys more information than
the old, including shift and reduce actions.

04/23/04: beazley
Added a Python setup.py file to simply installation. Contributed
by Adam Kerrison.

04/23/04: beazley
Added patches contributed by Adam Kerrison.

- Some output is now only shown when debugging is enabled. This
means that PLY will be completely silent when not in debugging mode.

- An optional parameter "write_tables" can be passed to yacc() to
control whether or not parsing tables are written. By default,
it is true, but it can be turned off if you don't want the yacc
table file. Note: disabling this will cause yacc() to regenerate
the parsing table each time.

04/23/04: beazley
Added patches contributed by David McNab. This patch addes two
features:

- The parser can be supplied as a class instead of a module.
For an example of this, see the example/classcalc directory.

- Debugging output can be directed to a filename of the user's
choice. Use

yacc(debugfile="somefile.out")

1.3

------------------------------
12/10/02: jmdyck
Various minor adjustments to the code that Dave checked in today.
Updated test/yacc_{inf,unused}.exp to reflect today's changes.

12/10/02: beazley
Incorporated a variety of minor bug fixes to empty production
handling and infinite recursion checking. Contributed by
Michael Dyck.

12/10/02: beazley
Removed bogus recover() method call in yacc.restart()

Page 4 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.