//The next two classes are basically for typing purposes.  They are special
//cases of ExpTree and correspond to the internal nodes (Oper) and the
//leaves (Var).  There is just a constructor in each case and the
//constructor just calls an appropriate superclass constructor.  The only
//real point is to have distinct types for operators and variables and
//could have been dispensed with.

class Oper extends ExpTree{
  public Oper(Character o,ExpTree l, ExpTree r){super(o,l,r);}
}//end Oper

class Var extends ExpTree{
  public Var (Character q){super(q);}
}//end Var
