Ejemplo n.º 1
0
        internal void Evaluate(Template template, out Context context, out Hash registers, out IEnumerable <Type> filters)
        {
            if (Context != null)
            {
                context   = Context;
                registers = null;
                filters   = null;
                context.RestartTimeout();
                return;
            }

            List <Hash> environments = new List <Hash>();

            if (LocalVariables != null)
            {
                environments.Add(LocalVariables);
            }
            if (template.IsThreadSafe)
            {
                context = new Context(environments, new Hash(), new Hash(), ErrorsOutputMode, MaxIterations, Timeout, FormatProvider)
                {
                    SyntaxCompatibilityLevel = this.SyntaxCompatibilityLevel
                };
            }
            else
            {
                environments.Add(template.Assigns);
                context = new Context(environments, template.InstanceAssigns, template.Registers, ErrorsOutputMode, MaxIterations, Timeout, FormatProvider)
                {
                    SyntaxCompatibilityLevel = this.SyntaxCompatibilityLevel
                };
            }
            registers = Registers;
            filters   = Filters;
        }
Ejemplo n.º 2
0
        internal void Evaluate(Template template, out Context context, out Hash registers, out IEnumerable <Type> filters)
        {
            if (this.Context != null)
            {
                context   = this.Context;
                registers = null;
                filters   = null;
                context.RestartTimeout();
                return;
            }

            var environments = new List <Hash>();

            if (this.LocalVariables != null)
            {
                environments.Add(this.LocalVariables);
            }

            if (template.IsThreadSafe)
            {
                context = new Context(environments, new Hash(), new Hash(), this.ErrorsOutputMode, this.MaxIterations, this.Timeout, this.FormatProvider);
            }
            else
            {
                environments.Add(template.Assigns);
                context = new Context(environments, template.InstanceAssigns, template.Registers, this.ErrorsOutputMode, this.MaxIterations, this.Timeout, this.FormatProvider);
            }

            registers = this.Registers;
            filters   = this.Filters;
        }