C Support in Maguyva: Call Graphs for Systems and Embedded Code
In C, the call graph is the architecture. An agent should read it before it edits.
Extensions
.c, .h
Maguyva parses Fortran with AST, symbol, and graph support, so AI agents can trace subroutines, modules, and derived types before changing numerical code.
Fortran codebases tend to be old, large, and written by domain experts rather than software teams. Routines named SOLVE, Solve, and solve are the same routine. Modules are shared across hundreds of files, and the intrinsic library is big enough that a naive call list is mostly SQRT, SUM, and WRITE.
An agent that only greps will drown in that noise. Maguyva gives it the structure first: which program units exist, which modules they use, and which user routines call each other.
Maguyva covers fixed-form and free-form source (.f, .for, .ftn, .f90, .f95, .f03, .f08). Functions and subroutines are extracted as callable symbols, and derived types are selectable as type definitions in structural search.
Symbol matching is case-insensitive, matching Fortran’s own rules. Import relationships come from use and include, with the keyword stripped so the module name is what the graph stores. Calls, reads, assignments, type references, and inheritance from extended derived types are all part of the graph.
The relationship filter removes around 165 intrinsics (I/O statements, math, array, string, type-conversion, and bit-manipulation routines), so the edges that remain point at your own code.
compute_flux, and which modules do they use?” (find_symbol, then dependency_search incoming)get_task_context)constants module.” (text_pattern_search for use constants, then find_symbol)functions preset in structural_search; the methods preset selects no Fortran nodes.text_pattern_search when you need every WRITE or OPEN.Connect a repository with the quickstart, then check the full support matrix on the compatibility page. If Fortran sits beside C glue code, read the C guide too.
Best fit
Agent workflows
Engine details
Useful MCP entry points
Start with the subroutine, function, or module name; matching ignores case, as Fortran does.
Use incoming traversal on a solver or shared module routine to see every caller before a numerical change.
Use it for prompts like “trace how boundary conditions are applied in the solver loop.”
Related guides
In C, the call graph is the architecture. An agent should read it before it edits.
Extensions
.c, .h
This is where broad language support stops being a stat and starts becoming a modernization tool.
Extensions
.cbl, .cob, .cpy