Maguyva 的 C 支持:面向系统与嵌入式代码的调用图
在 C 里,调用图就是架构。智能体应当先读懂它,再动手修改。
扩展名
.c, .h
Delphi 和 Free Pascal 应用往往围绕几个大型单元成长,其他所有代码都在使用它们。窗体继承自基础窗体,组件继承自基础组件,业务规则则放在十几个界面都会调用的过程里。逐个文件读起来很顺,但出问题的地方恰恰是依赖关系。
Maguyva 先把单元和类的结构交给智能体,让它在写任何代码之前就能说清一次修改会影响哪些地方。
Maguyva 覆盖 .pas 和 .pp 源码单元。过程和函数定义会被提取为可调用符号,定义名中的 procedure、function、var 和 const 关键字会被去掉。类和接口可以在结构搜索中作为类型定义选取。
导入来自 uses 子句,关键字会被去掉,图谱中保存的是单元名。调用会经过规范化处理,去掉成员前缀、参数和外层括号,因此写成 Self.Save(x) 的调用会被保存为 Save。
图谱记录调用、继承、接口实现、重写、实例化、类型引用、读写,以及异常的抛出与处理边。约 107 个运行时库例程(WriteLn、ReadLn、Inc、Dec、Ord 等)会被排除在关系之外。
DataModuleMain,它们从中调用了什么?”(dependency_search 的 incoming 方向)TBaseEditForm,它们重写了哪些方法?”(先用 find_symbol,再用 dependency_search)get_task_context).pas 和 .pp 被映射为 Pascal。.dpr、.dfm 等 Delphi 项目文件和窗体文件不在扩展名列表中,因此窗体布局和项目配置不在图谱范围内。structural_search 中的 methods 预设不会选中任何内容。请使用 functions 预设。text_pattern_search。最适合场景
智能体工作流
引擎细节
常用 MCP 入口工具
需要定义和引用时,用类、窗体或过程名来查找。
对共享单元或基类使用 incoming 遍历,查看哪些单元和派生类依赖它。
适用于“解释一张发票从按钮处理程序到数据库单元是如何过账的”这类提示词。