Как получить диапазон (т. Е. Номер строки) всех функций в файле в C? - PullRequest
3 голосов
/ 09 ноября 2011

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

1 Ответ

5 голосов
/ 09 ноября 2011
$ ctags -x --c-kinds=f filename.c

Это дает только начальную строку каждой функции, но, возможно, этого достаточно.

Если код был написан с использованием довольно распространенных соглашений, функция должна заканчиваться одной строкой, содержащей } в первом столбце, поэтому довольно просто получить последнюю строку с первым:

awk 'NR > first && /^}$/ { print NR; exit }' first=$FIRST_LINE filename.c
...