C no Maguyva: grafos de chamadas para código de sistemas e embarcado
Em C, o grafo de chamadas é a arquitetura. Um agente deveria lê-lo antes de editar.
Extensões
.c, .h
O Maguyva oferece suporte a units Pascal e Delphi com AST, símbolos e grafo, para que agentes de IA mapeiem cláusulas uses, classes e procedimentos antes de mudá-los.
Aplicações Delphi e Free Pascal costumam crescer em torno de algumas units grandes que todo o resto usa. Formulários herdam de formulários base, componentes de componentes base, e as regras de negócio ficam em procedimentos chamados por uma dúzia de telas. O código se lê bem arquivo por arquivo, mas é nas dependências que as mudanças dão errado.
O Maguyva entrega primeiro ao agente a estrutura de units e classes, para que ele diga o que uma mudança toca antes de escrever qualquer coisa.
O Maguyva cobre as units-fonte .pas e .pp. Definições de procedimentos e funções são extraídas como símbolos chamáveis, com as palavras-chave procedure, function, var e const removidas dos nomes de definição. Classes e interfaces podem ser selecionadas como definições de tipo na busca estrutural.
As importações vêm das cláusulas uses, e a palavra-chave é removida para que o grafo guarde nomes de units. As chamadas são normalizadas com a remoção de prefixos de membro, argumentos e parênteses externos, então uma chamada escrita como Self.Save(x) é armazenada como Save.
O grafo registra chamadas, herança, implementação de interfaces, sobrescritas, instanciação, referências de tipo, leituras e escritas, e arestas de lançamento e tratamento de exceções. Cerca de 107 rotinas da biblioteca de runtime (WriteLn, ReadLn, Inc, Dec, Ord e semelhantes) ficam fora das relações.
DataModuleMain e o que elas chamam dela?” (dependency_search incoming)TBaseEditForm e quais métodos sobrescrevem?” (find_symbol, depois dependency_search)get_task_context).pas e .pp são mapeados para Pascal. Arquivos de projeto e de formulário do Delphi como .dpr e .dfm não estão na lista de extensões, então o layout dos formulários e a configuração do projeto ficam fora do grafo.methods de structural_search não seleciona nada. Use o preset functions.text_pattern_search para encontrá-las.Conecte um repositório pelo início rápido e depois confira a matriz de suporte na página de compatibilidade. Se a aplicação liga bibliotecas em C, leia também 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 classe, formulário ou procedimento quando precisar da definição e das referências.
Use a travessia incoming em uma unit compartilhada ou classe base para ver quais units e descendentes dependem dela.
Use para prompts como "explique como uma fatura é lançada, do handler do botão até a unit de banco de dados".
Guias relacionados
Em C, o grafo de chamadas é a arquitetura. Um agente deveria lê-lo antes de editar.
Extensões
.c, .h
É aqui que o suporte amplo a linguagens deixa de ser uma estatística e passa a ser uma ferramenta de modernização.
Extensões
.cbl, .cob, .cpy