Ply

Latest version: v3.11

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

Scan your dependencies

Page 1 of 5

3.11

---------------------
02/15/18 beazley
Fixed some minor bugs related to re flags and token order.
Github pull requests 151 and 153.

02/15/18 beazley
Added a set_lexpos() method to grammar symbols. Github issue 148.


04/13/17 beazley
Mostly minor bug fixes and small code cleanups.

3.10

---------------------
01/31/17: beazley
Changed grammar signature computation to not involve hashing
functions. Parts are just combined into a big string.

10/07/16: beazley
Fixed Issue 101: Incorrect shift-reduce conflict resolution with
precedence specifier.

PLY was incorrectly resolving shift-reduce conflicts in certain
cases. For example, in the example/calc/calc.py example, you
could trigger it doing this:

calc > -3 - 4
1 (correct answer should be -7)
calc >

Issue and suggested patch contributed by https://github.com/RomaVis

3.9

---------------------
08/30/16: beazley
Exposed the parser state number as the parser.state attribute
in productions and error functions. For example:

def p_somerule(p):
'''
rule : A B C
'''
print('State:', p.parser.state)

May address issue 65 (publish current state in error callback).

08/30/16: beazley
Fixed Issue 88. Python3 compatibility with ply/cpp.

08/30/16: beazley
Fixed Issue 93. Ply can crash if SyntaxError is raised inside
a production. Not actually sure if the original implementation
worked as documented at all. Yacc has been modified to follow
the spec as outlined in the CHANGES noted for 11/27/07 below.

08/30/16: beazley
Fixed Issue 97. Failure with code validation when the original
source files aren't present. Validation step now ignores
the missing file.

08/30/16: beazley
Minor fixes to version numbers.

3.8

---------------------
10/02/15: beazley
Fixed issues related to Python 3.5. Patch contributed by Barry Warsaw.

3.7

---------------------
08/25/15: beazley
Fixed problems when reading table files from pickled data.

05/07/15: beazley
Fixed regression in handling of table modules if specified as module
objects. See https://github.com/dabeaz/ply/issues/63

3.6

---------------------
04/25/15: beazley
If PLY is unable to create the 'parser.out' or 'parsetab.py' files due
to permission issues, it now just issues a warning message and
continues to operate. This could happen if a module using PLY
is installed in a funny way where tables have to be regenerated, but
for whatever reason, the user doesn't have write permission on
the directory where PLY wants to put them.

04/24/15: beazley
Fixed some issues related to use of packages and table file
modules. Just to emphasize, PLY now generates its special
files such as 'parsetab.py' and 'lextab.py' in the *SAME*
directory as the source file that uses lex() and yacc().

If for some reason, you want to change the name of the table
module, use the tabmodule and lextab options:

lexer = lex.lex(lextab='spamlextab')
parser = yacc.yacc(tabmodule='spamparsetab')

If you specify a simple name as shown, the module will still be
created in the same directory as the file invoking lex() or yacc().
If you want the table files to be placed into a different package,
then give a fully qualified package name. For example:

lexer = lex.lex(lextab='pkgname.files.lextab')
parser = yacc.yacc(tabmodule='pkgname.files.parsetab')

For this to work, 'pkgname.files' must already exist as a valid
Python package (i.e., the directories must already exist and be
set up with the proper __init__.py files, etc.).

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.