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.

This is version 0.1 of PyGgy. It is the first public release and
may contain numerous bugs. The interfaces present in PyGgy may
change drastically in the future as the software matures. This
version of PyGgy is placed in the public domain. This means anyone
can do anything with it with no restrictions whatsoever.