Я работаю над небольшим академическим исследованием на тему чрезвычайно длинные и сложные функции в ядре Linux. Я пытаюсь понять, есть ли веская причина для написания функций длиной 600 или 800 строк.
Для этой цели я хотел бы найти инструмент, который может извлекать функцию из файла .c, чтобы я мог запускать автоматические тесты для этой функции.
Например, если у меня есть функция _1 _ в файле connect.c
я ищу решение, которое примерно работало бы примерно так:
extract /fs/cifs/connect.c cifs_parse_mount_options
и вернуть 523 строки кода (!) функции от открывающих фигурных скобок до закрывающих.
Конечно, любой способ манипулирования существующими программными пакетами, например gcc
для этого, также был бы наиболее полезным.
Спасибо,
Уди
РЕДАКТИРОВАТЬ: ответы на Regex для извлечения Объявление прототипа функции C? убедило меня в том, что сопоставление объявления функции с помощью регулярного выражения далеко не тривиально.