Notre DMS Software Reengineering Toolkit fournit l'analyse de programme général, l'analyse et la capacité de transformation. Il a des frontaux pour une grande variété de langues, y compris C++.
Il a été utilisé pour analyser et transformer des programmes C++ très complexes et leurs fichiers d'en-tête.
Vous n'êtes pas certain de ce que vous allez faire après avoir "analysé les en-têtes de fonction"; Normalement, les gens veulent extraire des informations ou produire un autre artefact. DMS avec son frontal C++ peut faire l'analyse; vous pouvez configurer DMS pour faire les choses personnalisées.
En pratique, ce n'est généralement pas un exercice de l'après-midi; DMS est une bête complexe, car elle doit faire face à des bêtes complexes comme C++. Et je m'attends à ce que vous soyez confronté au même type de complexité pour tout outil capable de gérer C++. La chaîne d'outils GCC peut clairement gérer C++, donc vous pourriez être capable de le faire avec (au même niveau de complexité) mais GCC est conçu pour être un compilateur, et à mon humble avis vous trouverez un combat pour l'obtenir faire voulez.
Votre objectif "déclarations de fonctions de sortie" n'est pas clair. Vous voulez juste les noms des fonctions? Vous voulez une signature de fonction? Vous voulez toutes les déclarations de type dont dépend la fonction? Vous voulez que toutes les déclarations de type dont dépend la fonction, si elles ne sont pas déjà présentes dans un fichier include existant que vous avez l'intention d'utiliser?
cela ne m'aide pas. Macros et al. sont peut-être 1% du fichier, j'ai besoin de quelque chose de beaucoup plus fort. – stnr