This post originated from an RSS feed registered with Python Buzz
by Andrew Dalke.
Original Post: python4ply
Feed Title: Andrew Dalke's writings
Feed URL: http://www.dalkescientific.com/writings/diary/diary-rss.xml
Feed Description: Writings from the software side of bioinformatics and chemical informatics, with a heaping of Python thrown in for good measure.
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:
# 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)