Beispiel #1
0
        /// <summary>
        /// 计算表达式
        /// </summary>
        /// <param name="polish">表达式的逆波兰式</param>
        /// <param name="vsm">关于哪个调用堆栈做动作</param>
        /// <returns>计算结果的值(Double/字符串)</returns>
        public static object Evaluate(string polish, StackMachine vsm)
        {
            var calcList = PolishEvaluator.GetPolishItemList(polish, vsm, null);

            return(PolishEvaluator.HandleEval(polish, calcList));
        }
Beispiel #2
0
 /// <summary>
 /// 计算表达式的真值
 /// </summary>
 /// <param name="polish">表达式的逆波兰式</param>
 /// <param name="vsm">关于哪个调用堆栈做动作</param>
 /// <returns>表达式的真值</returns>
 public static bool EvaluateBoolean(string polish, StackMachine vsm)
 {
     return(Convert.ToBoolean(PolishEvaluator.Evaluate(polish, vsm)));
 }
Beispiel #3
0
        /// <summary>
        /// 计算表达式的值
        /// </summary>
        /// <param name="expr">表达式字符串</param>
        /// <param name="ctx">求值上下文</param>
        /// <returns>计算结果的值(Double/字符串)</returns>
        public object Eval(string expr, EvaluatableContext ctx)
        {
            var calcList = PolishEvaluator.GetPolishItemList(expr, null, ctx);

            return(PolishEvaluator.HandleEval(expr, calcList));
        }