C++ no Maguyva: grafos de classes e chamadas para grandes bases
C++ esconde o destino real de uma chamada atrás de namespaces, sobrecargas e dispatch virtual. O grafo ajuda um agente a encontrá-lo.
Extensões
.c, .c++, .cc, .cpp, +6 mais
O Maguyva oferece suporte a C com AST, símbolos e grafo, para que agentes de IA sigam funções, structs, includes e chamadores em código de sistemas, firmware e bibliotecas.
C não tem classes nem módulos para organizar o código. A estrutura vive nas chamadas de função, nos headers e nas structs, e o mesmo nome pode aparecer em comentários, macros e literais de string. Macros de exportação e de anotação envolvem declarações, o que derruba ferramentas que só sabem analisar C puro. Para um agente, o primeiro passo seguro é o grafo de chamadas.
O Maguyva constrói esse grafo para que um agente veja o que uma função alcança e o que a alcança antes de propor uma mudança.
O Maguyva cobre .c e .h. Definições de funções são extraídas como símbolos, e structs e unions podem ser selecionadas como definições de tipo na busca estrutural. Diretivas #include viram relações de importação.
Macros de exportação e visibilidade (padrões como FOO_API, DLLEXPORT ou LIBEXPORT) e macros de anotação de thread safety (como GUARDED_BY e REQUIRES) são mascaradas antes da análise, então as declarações envolvidas por elas continuam sendo reconhecidas como declarações. Os corpos de macros do tipo função são analisados; os de macros do tipo objeto, não.
O grafo registra chamadas, includes, instanciação por compound literals, referências de tipo, leituras e escritas, e fluxo de controle. Cerca de 124 chamadas da biblioteca padrão de C (printf, malloc, free, memcpy, strlen e semelhantes) são filtradas das relações para que o código do projeto se destaque.
uart_write, diretamente ou por meio de outras funções?” (dependency_search incoming)config.h e quais das suas structs eles usam?” (dependency_search, depois find_symbol)get_task_context).h aparece nas listas de extensões de C, C++ e Objective-C, então headers de várias linguagens são compartilhados entre esses perfis.text_pattern_search quando precisar de cada malloc ou memcpy.Conecte um repositório pelo início rápido e depois confira a matriz de suporte na página de compatibilidade. Para código C++ na mesma árvore, leia o guia de C++.
Uso ideal
Fluxos de trabalho de agente
Detalhes do motor
Pontos de entrada MCP úteis
Use com o nome de uma função ou struct quando precisar da definição e de cada referência.
Use a travessia incoming em uma função compartilhada antes de mudar sua assinatura ou o tratamento de erros.
Use para prompts como "explique como um pacote vai da interrupção de recepção até o parser do protocolo".
Guias relacionados
C++ esconde o destino real de uma chamada atrás de namespaces, sobrecargas e dispatch virtual. O grafo ajuda um agente a encontrá-lo.
Extensões
.c, .c++, .cc, .cpp, +6 mais
Relevante quando você quer assistência de IA em Rust sem perder as barreiras estruturais que tornam Rust vantajoso de usar.
Extensões
.rs