Next: Read/Load/Eval/Compile, Previous: LALR(1) Parsing, Up: API Reference [Contents][Index]
Parsing Expression Grammars (PEGs) are a way of specifying formal languages for text processing. They can be used either for matching (like regular expressions) or for building recursive descent parsers (like lex/yacc). Guile uses a superset of PEG syntax that allows more control over what information is preserved during parsing.
Wikipedia has a clear and concise introduction to PEGs if you want to familiarize yourself with the syntax: http://en.wikipedia.org/wiki/Parsing_expression_grammar.
The (ice-9 peg)
module works by compiling PEGs down to lambda
expressions. These can either be stored in variables at compile-time by
the define macros (define-peg-pattern
and
define-peg-string-patterns
) or calculated explicitly at runtime
with the compile functions (compile-peg-pattern
and
peg-string-compile
).
They can then be used for either parsing (match-pattern
) or searching
(search-for-pattern
). For convenience, search-for-pattern
also takes pattern literals in case you want to inline a simple search
(people often use regular expressions this way).
The rest of this documentation consists of a syntax reference, an API reference, and a tutorial.
• PEG Syntax Reference | ||
• PEG API Reference | ||
• PEG Tutorial | ||
• PEG Internals |