public void Evaluate(string exp) { ExpressionBuilder expBuilder = new ExpressionBuilder(); // build the exp form the input string IEvaluableExp evaluableExp = expBuilder.BuildExp(exp, m_EnvironmentVars); // update new var m_EnvironmentVars[expBuilder.Variable] = evaluableExp.GetEvaluateExpValue(); }
public int GetEvaluateExpValue() { var leftValue = m_LeftExp.GetEvaluateExpValue(); var rightValue = m_RightExp.GetEvaluateExpValue(); switch (c_Op) { case OpEnum.Add: return(leftValue + rightValue); case OpEnum.Sub: return(leftValue - rightValue); case OpEnum.Mul: return(leftValue * rightValue); default: throw new InvalidExpressionException(); } }