C++ i Maguyva: klasse- og kallgrafer for store kodebaser
C++ skjuler det egentlige kallmålet bak navnerom, overlastinger og virtuell dispatch. Grafen hjelper en agent med å finne det.
Filendelser
.c, .c++, .cc, .cpp, +6 til
Maguyva støtter C med AST, symboler og graf, slik at AI-agenter kan følge funksjoner, structs, includes og kallere i system-, fastvare- og bibliotekskode.
C har ingen klasser eller moduler som organiserer koden. Strukturen ligger i funksjonskall, headere og structs, og det samme navnet kan dukke opp i kommentarer, makroer og strengliteraler. Eksport- og annoteringsmakroer omslutter deklarasjoner, noe som får verktøy som bare kan parse ren C, til å snuble. For en agent er kallgrafen det trygge første steget.
Maguyva bygger denne grafen, slik at en agent kan se hva en funksjon når og hva som når den, før den foreslår en endring.
Maguyva dekker .c og .h. Funksjonsdefinisjoner hentes ut som symboler, og structs og unions kan velges som typedefinisjoner i strukturelt søk. #include-direktiver blir importrelasjoner.
Eksport- og synlighetsmakroer (mønstre som FOO_API, DLLEXPORT eller LIBEXPORT) og annoteringsmakroer for trådsikkerhet (som GUARDED_BY og REQUIRES) maskeres før parsing, slik at deklarasjoner de omslutter fortsatt parses som deklarasjoner. Kropper i funksjonslignende makroer parses; kropper i objektlignende makroer gjør det ikke.
Grafen registrerer kall, includes, instansiering via sammensatte literaler, typereferanser, lesinger og skrivinger samt kontrollflyt. Rundt 124 kall i Cs standardbibliotek (printf, malloc, free, memcpy, strlen og lignende) filtreres ut av relasjonene, slik at prosjektkoden kommer tydelig frem.
uart_write, direkte eller via andre funksjoner?» (dependency_search incoming)config.h, og hvilke av structene bruker de?» (dependency_search, deretter find_symbol)get_task_context).h står på listene over filendelser for C, C++ og Objective-C, så headere i flerspråklige trær deles mellom disse profilene.text_pattern_search når du trenger hver malloc eller memcpy.Koble til et repositorium med hurtigstarten, og se deretter støttematrisen på kompatibilitetssiden. For C++-kode i samme tre bør du lese veiledningen for C++.
Best egnet
Agent-arbeidsflyter
Motordetaljer
Nyttige MCP-inngangspunkter
Bruk det for et funksjons- eller structnavn når du trenger definisjonen og hver referanse.
Bruk incoming-traversering på en delt funksjon før signaturen eller feilhåndteringen endres.
Bruk det til prompter som «forklar hvordan en pakke går fra mottaksavbruddet til protokollparseren».
Relaterte guider
C++ skjuler det egentlige kallmålet bak navnerom, overlastinger og virtuell dispatch. Grafen hjelper en agent med å finne det.
Filendelser
.c, .c++, .cc, .cpp, +6 til
Relevant når du vil ha AI-assistanse i Rust uten å miste de strukturelle vernene som gjør Rust verdt å bruke.
Filendelser
.rs