C++ i Maguyva: klass- och anropsgrafer för stora kodbaser
C++ döljer det verkliga anropsmålet bakom namnrymder, överlagringar och virtuell dispatch. Grafen hjälper en agent att hitta det.
Filändelser
.c, .c++, .cc, .cpp, +6 till
Maguyva stöder C med AST, symboler och graf, så att AI-agenter kan följa funktioner, structs, includes och anropare i system-, firmware- och bibliotekskod.
C har inga klasser eller moduler som organiserar koden. Strukturen finns i funktionsanrop, headers och structs, och samma namn kan dyka upp i kommentarer, makron och strängliteraler. Export- och annoteringsmakron omsluter deklarationer, vilket får verktyg som bara kan parsa ren C att snubbla. För en agent är anropsgrafen det säkra första steget.
Maguyva bygger den grafen så att en agent kan se vad en funktion når och vad som når den innan den föreslår en ändring.
Maguyva täcker .c och .h. Funktionsdefinitioner extraheras som symboler, och structs och unions kan väljas som typdefinitioner i strukturell sökning. #include-direktiv blir importrelationer.
Export- och synlighetsmakron (mönster som FOO_API, DLLEXPORT eller LIBEXPORT) och annoteringsmakron för trådsäkerhet (som GUARDED_BY och REQUIRES) maskeras före parsning, så att deklarationer som omsluts av dem fortfarande parsas som deklarationer. Kroppar i funktionsliknande makron parsas; kroppar i objektliknande makron gör det inte.
Grafen registrerar anrop, includes, instansiering via sammansatta literaler, typreferenser, läsningar och skrivningar samt kontrollflöde. Omkring 124 anrop i C:s standardbibliotek (printf, malloc, free, memcpy, strlen och liknande) filtreras bort ur relationerna så att projektets kod syns.
uart_write, direkt eller via andra funktioner?” (dependency_search incoming)config.h, och vilka av dess structs använder de?” (dependency_search, sedan find_symbol)get_task_context).h finns i filändelselistorna för C, C++ och Objective-C, så headers i flerspråkiga träd delas mellan de profilerna.text_pattern_search när du behöver varje malloc eller memcpy.Anslut ett repo med snabbstarten och kontrollera sedan stödmatrisen på kompatibilitetssidan. För C++-kod i samma träd, läs guiden för C++.
Bäst lämpad för
Agentarbetsflöden
Motordetaljer
Användbara MCP-ingångar
Använd det för ett funktions- eller structnamn när du behöver definitionen och varje referens.
Använd incoming-traversering på en delad funktion innan dess signatur eller felhantering ändras.
Använd det för prompter som "förklara hur ett paket går från mottagningsavbrottet till protokollparsern".
Relaterade guider
C++ döljer det verkliga anropsmålet bakom namnrymder, överlagringar och virtuell dispatch. Grafen hjälper en agent att hitta det.
Filändelser
.c, .c++, .cc, .cpp, +6 till
Relevant när du vill ha AI-assistans i Rust utan att förlora de strukturella skyddsräckena som gör Rust värt att använda.
Filändelser
.rs