The Parse::RecDescent Way
Input is a standard perl strings.
Lexical analysis is handled with perl regular expressions.
Parsing is handled with user generated parsers (more about this later)
Actions can be embedded in the generated parsers.