예제 #1
0
        public string Evaluate
        (
            PftAst ast
        )
        {
            PftContext copy = Push();

            ast.Execute(copy);
            return(copy.ToString());
        }
예제 #2
0
        /// <summary>
        /// Возможность вычислить значение,
        /// не выводя его в контекст.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public string EvaluateUmarci
        (
            PftContext context
        )
        {
            context = context.Push();
            Umarci umarci = new Umarci(context, Group);

            Statement.Execute(context);
            string format = context.ToString();

            return(umarci.Evaluate(format));
        }
예제 #3
0
        /// <summary>
        /// Вычисление выражения во временной копии контекста.
        /// </summary>
        /// <param name="ast"></param>
        /// <returns></returns>
        public string Evaluate
        (
            PftAst ast
        )
        {
            PftContext copy = Push();

            ast.Execute(copy);
            string result = copy.ToString();

            Pop();
            return(result);
        }
예제 #4
0
        /// <summary>
        /// Возможность вычислить значение,
        /// не выводя его в контекст.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public string EvaluateUnifor
        (
            PftContext context
        )
        {
            context = context.Push();
            Unifor unifor = new Unifor(context, Group);

            Statement.Execute(context);
            string format = context.ToString();

            return(unifor.Evaluate(format));
        }
예제 #5
0
        /// <summary>
        /// Вычисление выражения во временной копии контекста.
        /// </summary>
        /// <param name="items"></param>
        /// <returns></returns>
        public string Evaluate
        (
            IEnumerable <PftAst> items
        )
        {
            PftContext copy = Push();

            foreach (PftAst ast in items)
            {
                ast.Execute(copy);
            }
            string result = copy.ToString();

            Pop();
            return(result);
        }