Я думаю так: при чтении открывающей скобки её смещение кладётся в стек (который LIFO), при чтении закрывающей - берётся верхняя из стека, и в неком списке (скажем, словарь с ключами-смещениями) создаются записи о том, что скобка в позиции X соответствует скобке в позиции Y, и наоборот. При этом позиция X может быть указана как абсолютное смещение и/или как пара (строка, столбец). Также может быть указан тип скобки (кавычки, кстати, тоже можно как скобки рассматривать; а для C++ как скобки можно рассматривать символы блочного комментария "/*" и "*/"), с проверкой коррекности вложенности.
Ответов: 5446
Рейтинг: 323
|
|||
карма: 1 |
|