Crafting a parser, part 2: grammars and recursive descent

One function per grammar rule, the call stack as the parse tree, and why left recursion is a trap.