/// <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)); }
/// <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))); }
/// <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)); }