예제 #1
0
        /// <summary>
        /// Создание скобки из символа
        /// </summary>
        /// <param name="symbol">символ</param>
        /// <returns>скобка</returns>
        public static Bracket Create(char symbol)
        {
            Bracket result = null;

            switch (symbol)
            {
            case '(':
                result = new Bracket(BracketType.Circular, true);
                break;

            case ')':
                result = new Bracket(BracketType.Circular, false);
                break;

            case '[':
                result = new Bracket(BracketType.Square, true);
                break;

            case ']':
                result = new Bracket(BracketType.Square, false);
                break;

            case '{':
                result = new Bracket(BracketType.Figural, true);
                break;

            case '}':
                result = new Bracket(BracketType.Figural, false);
                break;
            }
            return(result);
        }
        /// <summary>
        /// Получение списка скобок в тексте
        /// </summary>
        /// <param name="text">текст</param>
        /// <returns>список пар "скобка-позиция"</returns>
        private List <BracketPosition> GetBrackets(string text)
        {
            List <BracketPosition> result = new List <BracketPosition>();

            for (int i = 0; i < text.Length; ++i)
            {
                Bracket bracket = Bracket.Create(text[i]);
                if (bracket != null)
                {
                    result.Add(new BracketPosition()
                    {
                        Bracket = bracket, Position = i
                    });
                }
            }
            return(result);
        }