示例#1
0
        public DekiScriptDom Visit(DekiScriptDomExpr expr, DekiScriptOptimizerState state)
        {
            DekiScriptExpression value = expr.Value.VisitWith(DekiScriptExpressionOptimizer.Instance, state);

            // TODO: check if expression is literal

            return(new DekiScriptDomExpr(expr.Location, value));
        }
        public Empty Visit(DekiScriptDomExpr expr, DekiScriptDomEvaluationState state)
        {
            var context = state.Context;
            var env     = state.Env;
            var parent  = state.Parent;

            try {
                DekiScriptLiteral value = expr.Value.VisitWith(DekiScriptExpressionEvaluation.Instance, env.NewLocalScope());
                context.InsertValueBeforeNode(parent, null, value);
            } catch (Exception e) {
                EmbedExceptionMessage(expr, env, context, e, parent);
            }
            return(Empty.Value);
        }