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 だけです。.dpr や .dfm のようなDelphiのプロジェクトファイルやフォームファイルは拡張子リストに含まれていないため、フォームのレイアウトやプロジェクトの構成はグラフの対象外です。structural_search の methods プリセットは何も選択しません。functions プリセットを使ってください。text_pattern_search を使ってください。クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。アプリケーションがCのライブラリをリンクしている場合は、Cガイドもご覧ください。
最適な用途
エージェントワークフロー
エンジンの詳細
役立つMCPエントリーポイント
定義と参照が必要なときに、クラス、フォーム、プロシージャの名前で使ってください。
共有ユニットや基底クラスに対してincomingのトラバーサルを使い、どのユニットや派生クラスが依存しているかを確認してください。
「ボタンのハンドラーからデータベースユニットまで、請求書がどのように計上されるかを説明して」のようなプロンプトに使ってください。
関連ガイド
Cでは、コールグラフこそがアーキテクチャです。エージェントは編集の前にそれを読むべきです。
拡張子
.c, .h
ここでは、幅広い言語対応が単なる数字の話ではなく、実際のモダナイゼーションツールになります。
拡張子
.cbl, .cob, .cpy