The Packrat Parsing and
Parsing Expression Grammars Page
Introduction
Parsing expression grammars (PEGs) are
an alternative to context free grammars for formally specifying syntax, and
packrat parsers are parsers for PEGs
that operate in guaranteed linear time through the use of memoization.
For a brief technical summary see
the Wikipedia entry on PEGs.
For more in-depth descriptions see the original
PEG paper and
packrat parsing paper,
and related papers below.
Bryan Ford, the maintainer of this site,
coined the modern terms PEGs and packrat parsing,
but much of their formal theory existed earlier
and all the more recent work on this topic is by others.
Mailing List
The following mailing list is open to anyone
wishing to announce software or papers related to PEGs and packrat parsing,
or discuss ideas and issues:
The following research papers
develop and explore PEGs and packrat parsing in detail;
most were written by various authors working independently.
The papers are listed chronologically starting from most recent.
Some of the papers have associated code available online.
Frisby
by John Meacham
is a monadic packrat parser library for Haskell
that uses advanced Haskell type system features
to support dynamic specification of composable parsers.
Pappy
by Bryan Ford
is a simple prototype packrat parser generator for Haskell.
Not actively supported.