Поиск объявлений и реализаций функций C ++ в нескольких файлах с использованием Bash - PullRequest
0 голосов
/ 20 января 2020

Я хочу написать скрипт, который получает папку проекта и имя функции в качестве параметров и возвращает все объявления и реализации, найденные во всех файлах во всех подпапках. Код в проекте - C ++. Я могу использовать такие инструменты, как grep и bash scripting.

Так, например:

./search.sh Project1 multiply

Возвращает:

Definition:

int Multiply(bool b, string s); found in file /include/file1.h on line 53

Implementation: 

int Multiply(bool b, string s) {
  int xx = 10;
  functionCall(xx);
  for (int i = 0; i < 10; i++) {
    somethingElse();
    blabla = blabla;
  }
}

Это будет работать для нескольких реализаций / определения, а не только первый найденный.

То, что я пробовал до сих пор:

Я пытался использовать grep для поиска всех файлов и поиска различных шаблонов. , Мне удалось извлечь определения функции, но я понятия не имею, как найти реализацию (которая находится в файле с тем же именем, что и файл, в котором было найдено определение, за исключением того, что файл .cpp не a .h).

Кроме того, как узнать, до какой строки я хочу искать в блоке кода реализации? Я не могу просто искать до первого }, потому что внутри реализации могут быть другие блоки кода.

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