Нахождение несбалансированных скобок и скобок - PullRequest
7 голосов
/ 12 июня 2011

gcc 4.6.0 GNU Emacs 23.2.1

У меня есть некоторый код c, и в какой-то момент я, должно быть, допустил опечатку.А теперь у меня остались неуравновешенные фигурные скобки или скобки.

У меня около 2000 строк кода, и мне просто интересно, есть ли способ найти их?

Emacs имеет несколько хороших функций, поэтому мне просто интересно, есть ли способ сканировать код и сказать мне, где они находятся.В настоящее время у меня есть ошибка компиляции, связанная с этим.

Большое спасибо за любые предложения,

Ответы [ 4 ]

14 голосов
/ 12 июня 2011

В Emacs вы можете использовать M-x check-parens.Смотри http://www.gnu.org/software/libtool/manual/emacs/Parentheses.html

1 голос
/ 12 июня 2011

Для начала стоит выбрать все (M-x select-all), а затем ввести код (M-x indent-region). Поскольку emacs делает очень хорошую работу с отступами, вы заметите, где отступ не удался.

Кроме того, при использовании show-paren-mode (M-x show-paren-mode) emacs покажет вам подходящую пару каждого конечного (и наоборот), чтобы вы могли просмотреть свой код.

1 голос
/ 12 июня 2011

Я бы предложил добавить «#ifdef 0 .... #endif» вокруг блоков кода, пока исходный код не скомпилируется.Продолжайте регулировать размер кода ifdef'd out, пока вы не сузите чанк, который компилируется, когда ifdef'd out и не делает иначе.Этот блок будет содержать несбалансированную фигурную скобку.

Лично я бы начал с определения почти всего файла и перемещения моего «#ifdef 0» вперед по каждой функции до тех пор, пока я не начну видеть ошибки компиляции.Если у вас есть сумасшедшие длинные функции, используйте тот же подход, но с функцией, которая доставляет вам проблемы (как только вы определили, какая это функция).

0 голосов
/ 12 июня 2011

Если вы хотите что-то более необычное, чем обычное выделение, вы можете использовать разделители радуги: https://www.emacswiki.org/emacs/RainbowDelimiters

Вот короткое сообщение в блоге: http://emacs -fu.blogspot.com / 2011/05 / ближе к сбалансированному и красочному delimiters.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...