Lexer and GLR parser generator
PyGgy is a python package for generating parsers and lexers in python. The PyGgy distribution contains two tools:
- PyLly - (Pronounced “pile-ey”) A lexer generator that generates
- DFA tables for lexing tokens.
- PyGgy - (Pronounced “piggy”) A parser generator that generates
- SLR tables for a GLR parsing engine.
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.