Unsere DMS Software Reengineering Toolkit bietet Allzweck-Programm-Analyse, Analyse und Transformation Fähigkeit. Es hat Frontends für eine Vielzahl von Sprachen, einschließlich C++.
Es wurde verwendet, um sehr komplexe C++ - Programme und ihre Header-Dateien zu analysieren und zu transformieren.
Sie sind nicht klar, was Sie tun werden, nachdem Sie die Funktion Header "analysieren"; normalerweise möchten die Leute einige Informationen extrahieren oder ein anderes Artefakt produzieren. DMS mit seinem C++ - Frontend kann das Parsing durchführen; Sie können DMS so konfigurieren, dass die benutzerdefinierten Funktionen ausgeführt werden.
Aus praktischen Gründen ist dies in der Regel kein Nachmittag; DMS ist ein komplexes Biest, weil es mit komplexen Bestien wie C++ zu tun hat. Und ich würde erwarten, dass Sie für jedes Werkzeug, das mit C++ umgehen kann, die gleiche Komplexität haben. Die GCC-Toolchain kann klar mit C++ umgehen, also könntest du es vielleicht (mit der gleichen Komplexität) machen, aber GCC ist ein Compiler, und IMHO wirst du einen Kampf finden, um es zu tun, was du hast wollen.
Ihr Ziel "Zielfunktionsdeklarationen" ist nicht klar. Du willst nur die Funktionsnamen? Sie möchten eine Funktionssignatur? Sie möchten alle Typdeklarationen, von denen die Funktion abhängt? Sie möchten alle Typdeklarationen, von denen die Funktion abhängt, wenn sie nicht bereits in einer vorhandenen Include-Datei vorhanden sind, die Sie verwenden möchten?
es hilft mir nicht. Makroset al. sind vielleicht 1% der Datei, ich brauche etwas viel stärkeres. – stnr