C en Maguyva: grafos de llamadas para código de sistemas y embebido
En C, el grafo de llamadas es la arquitectura. Un agente debería leerlo antes de editar.
Extensiones
.c, .h
Maguyva admite C++ con AST, símbolos y grafo, para que los agentes de IA sigan clases, namespaces, sobrescrituras virtuales y llamadores en grandes bases de código C++.
En C++ los nombres no son únicos. send puede ser una función libre, un miembro de tres clases y una sobrescritura en una cuarta. Los namespaces, las plantillas y las definiciones fuera de la clase, como Socket::send en un archivo .cpp, reparten un tipo en muchos archivos. La búsqueda de texto devuelve todas las coincidencias, pero no le dice a un agente a cuál llega una llamada.
Maguyva indexa clases, miembros y llamadas con sus propietarios, para que un agente siga la estructura real antes de editar.
Maguyva cubre las extensiones habituales de fuentes y headers de C++, entre ellas .cpp, .cc, .cxx, .hpp, .hh y .hxx. Se extraen clases, structs y funciones, y una definición fuera de la clase como void Socket::send() se atribuye a su clase y namespace propietarios. Se registran los miembros virtuales, y los parámetros de plantilla forman parte de las firmas.
La tipificación de receptores sigue parámetros, declaraciones locales, campos, bucles for basados en rango y auto, y mira a través de unique_ptr, shared_ptr y optional, así que una llamada como conn->send() puede resolverse a la clase correcta. Las cláusulas de clase base alimentan la herencia, y las expresiones new cuentan como instanciación.
Se aplica el mismo enmascaramiento de macros de exportación y anotación que en C. Unos 273 nombres de la biblioteca estándar (std::cout, std::endl, printf y similares) se filtran de las relaciones. El grafo registra llamadas, includes, herencia, sobrescrituras, instanciación, referencias de tipo, lecturas y escrituras, y aristas de throw.
Renderer::draw y quién lo llama?” (dependency_search)OrderBook::match y todos sus llamadores.” (find_symbol)get_task_context).h aparece en las listas de extensiones de C, C++ y Objective-C, por lo que en árboles que mezclan C y C++ los headers se comparten entre esos perfiles.text_pattern_search para macros y usos de std::.Conecta un repositorio con el inicio rápido y luego revisa la matriz de compatibilidad en la página de compatibilidad. Si parte del árbol es C puro, lee también la guía de C.
Mejor uso
Flujos de trabajo del agente
Detalles del motor
Puntos de entrada MCP útiles
Úsalo con un nombre calificado como `OrderBook::match` cuando necesites la definición y los llamadores.
Úsalo sobre una clase base o un método virtual para encontrar sobrescrituras y llamadores antes de un cambio de firma.
Úsalo para prompts como "explica cómo llega un mensaje de datos de mercado al motor de estrategias".
Guías relacionadas
En C, el grafo de llamadas es la arquitectura. Un agente debería leerlo antes de editar.
Extensiones
.c, .h
Relevante cuando quieres asistencia de IA en Rust sin perder las salvaguardas estructurales que hacen que valga la pena usar Rust.
Extensiones
.rs