PyGgy is a python package for generating parsers and lexers in python. The PyGgy distribution contains two tools:
The PyLly program is used to pregenerate tables for a finite state machine from a lexer specification. There is a lexer engine that uses the tables to tokenize an input stream.
The PyGgy program is used to pregenerate parser tables from a parser specification. There is a GLR parsing engine that uses the tables to parse a stream of input tokens. Because GLR parsing is used, the parser can deal with arbitrary grammars, even if they are recursive or ambiguous.
PyGgy is self hosting -- PyGgy parsers and PyLly lexers are used to process the specification files used by both PyGgy and PyLly.
The current version of PyGgy is 0.4.1. The 0.4 release contains minor bug fixes over the 0.3 release. The 0.4.1 build is a re-roll of the 0.4 version that fixed a minor packaging issue. This is an alpha release; the public interfaces are subject to change, and there may be bugs in the code. This version of PyGgy is placed in the public domain. This means anyone can do anything with it with no restrictions whatsoever.
This is where you can download PyGgy version 0.4.1. Older versions are also here:
The documentation for pyggy-0.4 can be found at http://www.lava.net/~newsham/pyggy/html.
To install the PyGgy package, unpack the archive, change into the "pyggy" directory and run the setup program:
$ ./setup.py install
PyGgy's home page is currently http://www.lava.net/~newsham/pyggy/. If this address changes in the future, this web page should point to the new home page.
The author of this release is Tim Newsham.
Join the PyGgy mailing list or view the archives by visiting http://groups-beta.google.com/group/pyggy.