protected void evaluateArgs() { for (int i = 0; i < params.length; ++i) { if (params[i] instanceof BooleanExpression) { args[i] = new Boolean(((BooleanExpression) params[i]).evaluate()); } else if (params[i] instanceof DoubleExpression) { args[i] = new Double(((DoubleExpression) params[i]).evaluate()); } else if (params[i] instanceof StringExpression) { args[i] = ((StringExpression) params[i]).evaluate(); } // else shouldn't happen! } }
@Override public boolean evaluate() { return !expr.evaluate(); } }
/** * '<code>+</code>' plus operator */ public static Node plus(Node left, Node right) throws SemanticException { if (left instanceof DoubleExpression && right instanceof DoubleExpression) return new Addition((DoubleExpression) left, (DoubleExpression) right); if (left instanceof StringExpression && right instanceof StringExpression) return new Concatenation((StringExpression) left, (StringExpression) right); throw new SemanticException("Plus is only applicable to doubles & Strings!"); }
/** * '<code>+</code>' plus operator */ public static Node plus(Node left, Node right) throws SemanticException { if (left instanceof DoubleExpression && right instanceof DoubleExpression) return new Addition((DoubleExpression) left, (DoubleExpression) right); if (left instanceof StringExpression && right instanceof StringExpression) return new Concatenation((StringExpression) left, (StringExpression) right); throw new SemanticException("Plus is only applicable to doubles & Strings!"); }
@Override public double evaluate() { return -(expr.evaluate()); } }