Cleaning up grammar, getting somewhere with visitor-based interpretation.