private EquationParserState HandleOpeningBracket(int index)
        {
            var bracketMultiplier = GetBracketMultiplier();

            BracketsLine.Push(new Bracket(bracketMultiplier, CoefficientsLine.Count));

            return(HandleOpeningBracketOverride(index));
        }
        private EquationParserState HandleClosingBracket(int index)
        {
            if (BracketsLine.Count == 0)
            {
                throw new EquationParsingException(string.Format(Resources.UnbalancedBracketAtIndex_Format, index));
            }

            var bracket = BracketsLine.Pop();

            for (var i = bracket.CoefficientOrder; i < CoefficientsLine.Count; i++)
            {
                var variableCoefficient = CoefficientsLine[i];
                variableCoefficient.Value *= bracket.BracketMultiplier;
            }

            return(HandleClosingBracketOverride(bracket, index));
        }