@Override public void eval(Interpreter interpreter, Expression... args) { Object rightArg = Utils.toSimpleValue(interpreter.getQres().pop(), interpreter.getStore()); Object leftArg = Utils.toSimpleValue(interpreter.getQres().pop(), interpreter.getStore()); Boolean result; if (leftArg instanceof Number && rightArg instanceof Number) { Number n1 = (Number) leftArg; Number n2 = (Number) rightArg; result = n1.doubleValue() > n2.doubleValue(); } else { Comparable c1 = (Comparable) leftArg; Comparable c2 = (Comparable) rightArg; int cRes = MathUtils.compareSafe(c1, c2); result = cRes > 0; } JavaComplexObject res = JavaObjectAbstractFactory.getJavaObjectFactory().createJavaComplexObject(result); interpreter.getQres().push(res); }