示例#1
0
        public override ValueExpression Evaluate(IParserContext context)
        {
            bool result = context.ToBoolean(Condition.Evaluate(context).Value);

            ValueExpression expression = null;

            if (result)
            {
                expression = TrueExpression.Evaluate(context);
            }
            else if (FalseExpression != null)
            {
                expression = FalseExpression.Evaluate(context);
            }

            if (expression is ReturnValueExpression)
            {
                return(expression);
            }

            return(Exp.NullValue(TokenPosition));
        }
示例#2
0
        public override ValueExpression Evaluate(IParserContext context)
        {
            IEnumerable collection = Expression.Evaluate(context).Value as IEnumerable;

            if (collection != null)
            {
                foreach (var item in collection)
                {
                    var localContext = context.CreateLocal();

                    localContext.Set(Iterator.VarName, item);

                    var returnValue = Body.Evaluate(localContext);

                    if (returnValue is ReturnValueExpression)
                    {
                        return(returnValue);
                    }
                }
            }

            return(Exp.NullValue(TokenPosition));
        }
示例#3
0
 public override ValueExpression Evaluate(IParserContext context)
 {
     return(Exp.NullValue(TokenPosition));
 }