Je cherche un moyen d'analyser le code C++ pour récupérer des informations de base sur les classes. Je n'ai pas vraiment besoin de beaucoup d'informations du code lui-même, mais j'en ai besoin pour gérer des choses comme les macros et les templates. En bref, je veux extraire la "structure" du code, ce que vous montreriez dans un diagramme UML.Quelles bibliothèques sont disponibles pour l'analyse de C++ pour extraire des informations de type
Pour chaque classe/struct/union/ENUM/typedef dans la base de code, tout ce que je besoin (après modèles & macros ont été traitées) est:
- Leur nom
- L'espace de noms dans lequel ils vivent
- Les champs contenus dans (nom du type, le nom des restrictions sur le terrain et l'accès, comme privé/mutable/etc)
- fonctions contenues dans (type de retour, nom, paramètres)
- Le fichier
- déclarant ligne/numéros de colonne (ou décalage d'octets dans le fichier) où la définition de ces données commence
Les instructions réelles dans le code ne sont pas pertinents pour mes besoins. Je prévois beaucoup de gens disant que je devrais juste utiliser une regex pour cela (ou même Flex & Bison), mais ceux-ci ne sont pas vraiment valides, car j'ai besoin du préprocesseur et du matériel de gabarit manipulés correctement.
Même si vous avez développé les directives de préprocesseur et de modèle, regexp ne sera pas assez puissant pour collecter correctement ces informations de type. –