public override bool equals(Object obj) { if (this == obj) { return(true); } else if (!(obj instanceof Expr)) { return(false); } Expr expr = (Expr)obj; if (!isLiteral() || !expr.isLiteral()) { return(false); } return(evalConstant().equals(expr.evalConstant())); }