Exemplo n.º 1
0
  @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);
  }