Ejemplo n.º 1
0
        public DekiScriptDom Visit(DekiScriptDomJson expr, DekiScriptOptimizerState state)
        {
            DekiScriptExpression value = expr.Value.VisitWith(DekiScriptExpressionOptimizer.Instance, state);

            if (value is DekiScriptLiteral)
            {
                return(new DekiScriptDomText(expr.Location, DekiScriptLibrary.JsonEmit(((DekiScriptLiteral)value).NativeValue)));
            }
            return(new DekiScriptDomJson(expr.Location, value));
        }
        public Empty Visit(DekiScriptDomJson expr, DekiScriptDomEvaluationState state)
        {
            var context = state.Context;
            var env     = state.Env;
            var parent  = state.Parent;

            try {
                DekiScriptLiteral value  = expr.Value.VisitWith(DekiScriptExpressionEvaluation.Instance, env);
                XmlText           result = context.CreateTextNode(DekiScriptLibrary.JsonEmit(value.NativeValue));
                parent.AppendChild(result);
            } catch (Exception e) {
                EmbedExceptionMessage(expr, env, context, e, parent);
            }
            return(Empty.Value);
        }