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()));
        }