示例#1
0
        /// <summary>
        /// Calculates the given infix string. Throws if input is invalid
        /// </summary>
        /// <exception cref="ArgumentException"></exception>
        /// <param name="input"></param>
        /// <returns>The calculated value of the input</returns>
        public int CalculateExpression(string input)
        {
            var infix = input.Replace(" ", string.Empty);

            if (_tokenizer.IsValid(infix))
            {
                infix = _tokenizer.Tokenize(infix);
                var postfix    = _infixToPostfixConverter.InFixToPostFix(infix);
                var expression = _expressionBuilder.Build(postfix.ToArray());
                return(expression.Interpret());
            }

            throw new ArgumentException("Not a valid input");
        }