C++ dans Maguyva : graphes de classes et d'appels pour grands projets
C++ cache la vraie cible d'un appel derrière namespaces, surcharges et dispatch virtuel. Le graphe aide un agent à la trouver.
Extensions
.c, .c++, .cc, .cpp, +6 de plus
Maguyva prend en charge C avec AST, symboles et graphe, pour que les agents IA suivent fonctions, structs, includes et appelants dans le code système, firmware et bibliothèque.
C n’a ni classes ni modules pour organiser le code. La structure vit dans les appels de fonctions, les en-têtes et les structs, et un même nom peut apparaître dans des commentaires, des macros et des littéraux de chaîne. Des macros d’export et d’annotation enveloppent les déclarations, ce qui fait trébucher les outils qui ne savent analyser que du C pur. Pour un agent, la première étape sûre, c’est le graphe d’appels.
Maguyva construit ce graphe pour qu’un agent voie ce qu’une fonction atteint et ce qui l’atteint avant de proposer un changement.
Maguyva couvre .c et .h. Les définitions de fonctions sont extraites comme symboles, et les structs et unions peuvent être sélectionnées comme définitions de type dans la recherche structurelle. Les directives #include deviennent des relations d’import.
Les macros d’export et de visibilité (des motifs comme FOO_API, DLLEXPORT ou LIBEXPORT) et les macros d’annotation de thread safety (comme GUARDED_BY et REQUIRES) sont masquées avant l’analyse, si bien que les déclarations qu’elles enveloppent sont toujours reconnues comme des déclarations. Le corps des macros de type fonction est analysé ; celui des macros de type objet ne l’est pas.
Le graphe enregistre les appels, les includes, l’instanciation par littéraux composés, les références de type, les lectures et écritures, et le flux de contrôle. Environ 124 appels de la bibliothèque standard C (printf, malloc, free, memcpy, strlen et similaires) sont filtrés des relations pour faire ressortir le code du projet.
uart_write, directement ou via d’autres fonctions ? » (dependency_search en incoming)config.h, et lesquelles de ses structs utilisent-ils ? » (dependency_search, puis find_symbol)get_task_context).h figure dans les listes d’extensions de C, C++ et Objective-C ; les en-têtes multilangages sont donc partagés entre ces profils.text_pattern_search quand il vous faut chaque malloc ou memcpy.Connectez un dépôt avec le démarrage rapide, puis consultez la matrice de prise en charge sur la page de compatibilité. Pour le code C++ du même arbre, lisez le guide C++.
Idéal pour
Workflows d'agent
Détails du moteur
Points d'entrée MCP utiles
Utilisez-le pour un nom de fonction ou de struct quand vous avez besoin de la définition et de chaque référence.
Utilisez la traversée incoming sur une fonction partagée avant d'en modifier la signature ou la gestion d'erreurs.
Utilisez-le pour des prompts comme « explique comment un paquet passe de l'interruption de réception au parseur de protocole ».
Guides connexes
C++ cache la vraie cible d'un appel derrière namespaces, surcharges et dispatch virtuel. Le graphe aide un agent à la trouver.
Extensions
.c, .c++, .cc, .cpp, +6 de plus
Pertinent quand vous voulez une assistance IA en Rust sans perdre les garde-fous structurels qui font tout l'intérêt de Rust.
Extensions
.rs