peg/leg — recursive-descent parser generators for C
peg and leg are tools for generating
recursive-descent parsers: programs that perform pattern matching on
text. They processes a Parsing Expression Grammar (PEG) [Ford 2004]
to produce a program that recognises legal sentences of that grammar.
peg processes PEGs written using the original syntax
described by Ford; leg processes PEGs written using slightly
different syntax and conventions that are intended to make it an
attractive replacement for parsers built with lex and
yacc. Unlike lex and yacc, peg
and leg support unlimited backtracking, provide ordered
choice as a means for disambiguation, and can combine scanning
(lexical analysis) and parsing (syntactic analysis) into a single
activity.
Download the source code: peg-0.1.4.tar.gz
Browse the source code: peg-0.1.4
Read the manual page: peg.1.html
peg is distributed under the MIT license. It will not infect
your project with a contagious disease if you decide to modify it for
your own use. The parser generators that peg creates are
unencumbered and you are free to use and/or distribute them any way
you like.
If you find bugs or have suggestions, please send them to Ian at the
domain name of this web site. Thanks!
References
- [Ford 2004] Bryan Ford, Parsing Expression Grammars: A
Recognition-Based Syntactic Foundation. ACM SIGPLAN Symposium on
Principles of Programming Languages (POPL), 2004.