Наш инструментарий реинжиниринга программного обеспечения DMS предоставляет возможности синтаксического анализа, анализа и преобразования программ общего назначения.Он имеет интерфейсы для широкого спектра языков, включая C ++.
. Он использовался для анализа и преобразования очень сложных программ на C ++ и их заголовочных файлов.
Вы не совсем понимаете, чточто вы будете делать после "разбора заголовков функций";обычно люди хотят извлечь некоторую информацию или произвести другой артефакт.DMS с его внешним интерфейсом C ++ может выполнять анализ;вы можете настроить DMS для выполнения нестандартных задач.
На практике это обычно не дневное упражнение;DMS - сложное животное, потому что оно имеет дело со сложными животными, такими как C ++.И я ожидаю, что вы столкнетесь с такой же сложностью для любого инструмента, который может обрабатывать C ++.Набор инструментов GCC может четко обрабатывать C ++, так что вы можете сделать это с этим (на том же уровне сложности), но GCC предназначен для компиляции, и ИМХО вы найдете в нем борьбу, чтобы заставить его делать то, что Вы хотите.
Ваша цель "объявления функций вывода" не ясна.Вы хотите только имена функций?Вы хотите подпись функции?Вы хотите все объявления типов, от которых зависит функция?Вам нужны все объявления типов, от которых зависит функция, если они еще не присутствуют в существующем включаемом файле, который вы собираетесь использовать?