示例#1
0
        public override Node Evaluate(Env env)
        {
            if(Evaluated) return this;

            try
            {
                env = env ?? new Env();

                env.Frames.Push(this);
                NodeHelper.ExpandNodes<Import>(env, Rules);
                env.Frames.Pop();

                var clone = new Root(new NodeList(Rules), Error, OriginalRuleset);

                clone = DoVisiting(clone, env, VisitorPluginType.BeforeEvaluation);

                clone.ReducedFrom<Root>(this);
                clone.EvaluateRules(env);
                clone.Evaluated = true;

                clone = DoVisiting(clone, env, VisitorPluginType.AfterEvaluation);
                return clone;
            }
            catch (ParsingException e)
            {
                throw Error(e);
            }
        }
示例#2
0
        public override Node Evaluate(Env env)
        {
            if (Evaluated)
            {
                return(this);
            }

            try
            {
                env = env ?? new Env();

                env.Frames.Push(this);
                NodeHelper.ExpandNodes <Import>(env, Rules);
                env.Frames.Pop();

                var clone = new Root(new NodeList(Rules), Error, OriginalRuleset);

                clone = DoVisiting(clone, env, VisitorPluginType.BeforeEvaluation);

                clone.ReducedFrom <Root>(this);
                clone.EvaluateRules(env);
                clone.Evaluated = true;

                clone = DoVisiting(clone, env, VisitorPluginType.AfterEvaluation);
                return(clone);
            }
            catch (ParsingException e)
            {
                throw Error(e);
            }
        }
示例#3
0
文件: Root.cs 项目: rmariuzzo/dotless
        public override Node Evaluate(Env env)
        {
            env = env ?? new Env();

            NodeHelper.ExpandNodes<Import>(env, this.Rules);

            Root clone = new Root(new NodeList(Rules), Error, OriginalRuleset).ReducedFrom<Root>(this);
            clone.EvaluateRules(env);

            return clone;
        }
示例#4
0
文件: Root.cs 项目: ikvm/dotless
        public override Node Evaluate(Env env)
        {
            env = env ?? new Env();

            NodeHelper.ExpandNodes <Import>(env, this.Rules);

            Root clone = new Root(new NodeList(Rules), Error, OriginalRuleset).ReducedFrom <Root>(this);

            clone.EvaluateRules(env);

            return(clone);
        }