A pedagogical, tree-based interpreter, using the Visitor pattern.