./devel/py-ply, Lex an yacc parsing tools for Python

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.11, Package name: py39-ply-3.11, Maintainer: pkgsrc-users

PLY is yet another implementation of lex and yacc for Python. Some notable
features include the fact that its implemented entirely in Python and it uses
LALR(1) parsing which is efficient and well suited for larger grammars.

PLY provides most of the standard lex/yacc features including support for empty
productions, precedence rules, error recovery, and support for ambiguous
grammars.

PLY is extremely easy to use and provides very extensive error checking. It is
compatible with both Python 2 and Python 3.


Master sites:

Filesize: 155.4 KB

Version history: (Expand)


CVS history: (Expand)


   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2021-01-19 22:05:22 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-ply: updated to 3.11

Version 3.11
------------
Fixed some minor bugs related to re flags and token order.

Added a set_lexpos() method to grammar symbols.

Mostly minor bug fixes and small code cleanups.

Version 3.10
------------
Changed grammar signature computation to not involve hashing
functions. Parts are just combined into a big string.

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

Version 3.9
-----------
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).

Fixed Issue 88. Python3 compatibility with ply/cpp.

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.

Fixed Issue 97. Failure with code validation when the original
source files aren't present.   Validation step now ignores
the missing file.

Minor fixes to version numbers.
   2015-12-02 19:22:10 by Matthias Drochner | Files touched by this commit (4)
Log message:
add py-ply-3.8, a lex/yacc parser for Python, from Ura Hiroshi
per pkgsrc-wip