Maguyva의 C 지원: 시스템·임베디드 코드를 위한 호출 그래프
C에서는 호출 그래프가 곧 아키텍처입니다. 에이전트는 편집하기 전에 그것부터 읽어야 합니다.
확장자
.c, .h
Lua에는 클래스를 선언하는 키워드가 없습니다. 객체는 테이블이고, 메서드는 그 안에 저장된 함수이며, 상속은 setmetatable 호출입니다. 모듈은 require가 반환하는 무엇이든 됩니다. 구조는 분명히 존재하지만, 텍스트 검색이 이해하지 못하는 관례 속에 있습니다.
Maguyva는 이런 관례를 구조로 읽어 내므로, 에이전트가 어떤 메서드를 누가 호출하는지, 어떤 테이블이 기반을 확장하는지 물으면 바로 답을 얻을 수 있습니다.
Maguyva는 .lua 파일을 지원합니다. 함수 선언, local function 정의, 함수 표현식이 추출되고, function Account:deposit() 같은 콜론 메서드는 소유한 테이블인 Account에 귀속됩니다. 메서드 체인은 호출 하나하나를 따라가며, self에 대한 호출은 둘러싼 객체에 묶인 채로 유지됩니다.
Lua의 관례는 다음과 같이 관계로 매핑됩니다.
require, dofile, loadfile는 임포트를 기록합니다.setmetatable 호출은 상속을 기록합니다.ClassName:new(), ClassName.new(), setmetatable({...}, ClassName)는 인스턴스화로 계산됩니다.error()는 예외 발생을, pcall와 xpcall는 예외 처리를 기록합니다.그래프에는 읽기와 쓰기, 제어 흐름도 기록됩니다.
Inventory:addItem를 누가 호출하고, 어떤 스크립트에서 호출하나요?” (find_symbol, 그다음 dependency_search incoming)util.http를 require하는 모듈은 무엇인가요?” (dependency_search)get_task_context)string, table, math, io, os, coroutine, debug, utf8)와 Neovim의 vim.*, OpenResty의 ngx.* API입니다. 이런 API 호출은 그래프 엣지가 아니므로, 찾으려면 text_pattern_search를 사용하세요.structural_search의 classes와 imports 프리셋은 Lua에서 아무것도 선택하지 않습니다. 대신 find_symbol나 text_pattern_search를 사용하세요.빠른 시작으로 저장소를 연결한 다음, 호환성 페이지에서 지원 매트릭스를 확인하세요. 네이티브 코드에 Lua를 내장하는 엔진이라면 C 가이드도 읽어 보세요.
가장 적합한 경우
에이전트 워크플로
엔진 세부 정보
유용한 MCP 진입점
모듈 함수나 콜론 메서드의 정의와 호출자가 필요할 때 사용하세요.
공유 모듈을 옮기기 전에 incoming 탐색을 사용해 그것을 require하는 파일을 확인하세요.
그래프에서 걸러지는 `vim.*`, `ngx.*`, 표준 라이브러리 호출을 찾을 때 사용하세요.
관련 가이드
C에서는 호출 그래프가 곧 아키텍처입니다. 에이전트는 편집하기 전에 그것부터 읽어야 합니다.
확장자
.c, .h
Python 코드베이스가 서비스, 스크립트, 타입 스텁, 운영용 연결 코드 전반에 뻗어 있을 때 유용합니다.
확장자
.py, .pyi, .pyw