예제 #1
0
  public static Expression of(String s) {
    s = s.trim();
    int outerPlus = findOuterPlus(s);
    if (outerPlus > 0) {
      return new SumExpression(
          Expression.of(s.substring(0, outerPlus)), Expression.of(s.substring(outerPlus + 1)));
    }

    if (s.startsWith("(") && s.endsWith(")")) {
      return Expression.of(s.substring(1, s.length() - 1));
    }

    if (s.length() > 0 && Character.isDigit(s.charAt(0))) {
      return ConstantExpression.of(s);
    }

    return VariableExpression.of(s);
  }
 private Class<?> jitVariableExpression(VariableExpression exp) {
   jitReadVariable(exp.variableName);
   return exp.subsequentInvocations != null
       ? jitEvaluatedExpression(exp.subsequentInvocations, false, exp.getVariableType())
       : exp.getType();
 }
예제 #3
0
 /**
  * Assigns a boolean value to a <code>VariableExpression</code>
  *
  * @param varExp the varaible <i>Expression</i> to assign a value to
  * @param bool the boolean value to assign
  */
 public void assign(VariableExpression varExp, boolean bool) {
   assignments.put(varExp.getName(), new Boolean(bool));
 }