python4ply is a Python parser for the Python language. The grammar definition uses PLY, a parser system for Python modelled on yacc/lex. The parser rules use the "compiler" module from the standard library to build a Python AST and to generate byte code for .pyc file.
You might use python4ply to experiment with variations in the Python language. The PLY-based lexer and parser are much easier to change than the C implementation Python itself uses or even the ones written in Python which are part of the standard library. This tutorial walks through examples of how to make changes in different levels of the system
To give you an idea of what it can do, here are some examples from the tutorial:
# integers with optional underscores separators amount = 20_000_000 print "You owe me", amount, "dollars"
# sytax-level support for decimals % cat div.py # div.py print "float", 1.0 % 0.1 print "decimal", 0d1.0 % 0d0.1 % python compile.py -e div.py float 0.1 decimal 0.0 %
# Perl-like regex creation and match operator for line in open("python_yacc.py"): if line =~ m/def (?P
\w+) *(?P \(.*\)) *:/: print repr($1), repr($args)
The primary site for python4ply is http://dalkescientific.com/Python/python4ply.html. The package is released under the MIT license.
Andrew Dalke is an independent consultant focusing on software development for computational chemistry and biology. Need contract programming, help, or training? Contact me
Copyright © 2001-2010 Dalke Scientific Software, LLC.