Building Recursive Descent Parsers: The Definitive Guide
booleanworld.com