-each terminal node in the AST requires a  method on ASTVisitor
  -this can maybe be done with a macro?