示例#1
0
 public SEXP evaluate(SEXP expression, Environment rho) {
   if (expression instanceof Symbol) {
     return evaluateSymbol((Symbol) expression, rho);
   } else if (expression instanceof ExpressionVector) {
     return evaluateExpressionVector((ExpressionVector) expression, rho);
   } else if (expression instanceof FunctionCall) {
     return evaluateCall((FunctionCall) expression, rho);
   } else if (expression instanceof Promise) {
     return expression.force(this);
   } else if (expression != Null.INSTANCE && expression instanceof PromisePairList) {
     throw new EvalException("'...' used in an incorrect context");
   } else {
     clearInvisibleFlag();
     return expression;
   }
 }