public override void visit(IdentifierExp n)
 {
     n.ID.accept(this);
 }
 public virtual void visit(IdentifierExp identifier)
 {
     // Do nothing; leave the implementation to the main class
 }
 public abstract void visit(IdentifierExp identifier);
 private Exp EatIdentifier()
 {
     Exp literal = new IdentifierExp(context[0], new Identifier(tokens[0].value));
     CutData(1);
     return literal;
 }