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