C у Maguyva: графи викликів для системного та вбудованого коду
У C граф викликів і є архітектурою. Агентові варто прочитати його до того, як щось правити.
Розширення
.c, .h
Maguyva підтримує C++ з AST, символами та графом, щоб ШІ-агенти відстежували класи, простори імен, віртуальні перевизначення й тих, хто викликає, у великих кодових базах.
У C++ назви не унікальні. send може бути вільною функцією, членом трьох класів і перевизначенням у четвертому. Простори імен, шаблони й визначення поза класом, як-от Socket::send у файлі .cpp, розподіляють один тип по багатьох файлах. Текстовий пошук повертає всі збіги, але не каже агентові, до якого з них доходить виклик.
Maguyva індексує класи, члени й виклики разом з їхніми власниками, щоб агент ішов реальною структурою, перш ніж вносити правки.
Maguyva охоплює поширені розширення вихідних і заголовкових файлів C++, зокрема .cpp, .cc, .cxx, .hpp, .hh і .hxx. Витягуються класи, структури й функції, а визначення поза класом, як-от void Socket::send(), належить до класу-власника та простору імен. Віртуальні члени фіксуються, а параметри шаблонів входять до сигнатур.
Типізація отримувачів відстежує параметри, локальні оголошення, поля, цикли for по діапазону та auto, а також зазирає всередину unique_ptr, shared_ptr і optional, тож виклик на кшталт conn->send() можна розв’язати в потрібний клас. Списки базових класів живлять успадкування, а вирази new вважаються створенням екземплярів.
Діє те саме маскування макросів експорту й анотацій, що й у C. Близько 273 назв стандартної бібліотеки (std::cout, std::endl, printf тощо) відфільтровуються зі зв’язків. Граф фіксує виклики, include, успадкування, перевизначення, створення екземплярів, посилання на типи, читання й записи, а також ребра throw.
Renderer::draw і хто його викликає?» (dependency_search)OrderBook::match і всіх, хто його викликає.» (find_symbol)get_task_context).h входить до списків розширень C, C++ і Objective-C, тому в деревах, де змішано C і C++, заголовки спільні для цих профілів.std:: застосовуйте text_pattern_search.Під’єднайте репозиторій за швидким стартом, потім перегляньте матрицю підтримки на сторінці сумісності. Якщо частину дерева написано на чистому C, прочитайте також посібник із C.
Найкраще підходить
Робочі процеси агента
Деталі рушія
Корисні точки входу MCP
Використовуйте з кваліфікованою назвою на кшталт `OrderBook::match`, коли потрібні визначення й ті, хто викликає.
Перед зміною сигнатури використовуйте для базового класу чи віртуального методу, щоб знайти перевизначення й тих, хто викликає.
Використовуйте для промптів на кшталт «поясни, як повідомлення з ринковими даними доходить до рушія стратегій».
Пов'язані гайди
У C граф викликів і є архітектурою. Агентові варто прочитати його до того, як щось правити.
Розширення
.c, .h
Актуально, коли ви хочете отримати ШІ-допомогу в Rust, не втрачаючи структурних запобіжників, які й роблять Rust вартим використання.
Розширення
.rs