C++ у Maguyva: графи класів і викликів для великих кодових баз
C++ ховає справжню ціль виклику за просторами імен, перевантаженнями й віртуальною диспетчеризацією. Граф допомагає агентові її знайти.
Розширення
.c, .c++, .cc, .cpp, +6 ще
Maguyva підтримує C з AST, символами та графом, щоб ШІ-агенти відстежували функції, структури, include та тих, хто викликає, у системному коді, прошивках і бібліотеках.
У C немає класів і модулів, які впорядковували б код. Структура живе у викликах функцій, заголовках і структурах, а та сама назва може траплятися в коментарях, макросах і рядкових літералах. Макроси експорту й анотацій обгортають оголошення, і інструменти, що вміють розбирати лише чистий C, на них спотикаються. Для агента безпечний перший крок — граф викликів.
Maguyva будує цей граф, щоб агент бачив, до чого доходить функція і що доходить до неї, перш ніж запропонувати зміну.
Maguyva охоплює .c і .h. Визначення функцій витягуються як символи, а структури й об’єднання можна вибрати як визначення типів у структурному пошуку. Директиви #include стають зв’язками імпорту.
Макроси експорту й видимості (шаблони на кшталт FOO_API, DLLEXPORT або LIBEXPORT) і макроси анотацій потокобезпеки (наприклад, GUARDED_BY і REQUIRES) маскуються перед розбором, тож обгорнуті ними оголошення й надалі розпізнаються як оголошення. Тіла функціональних макросів розбираються, тіла об’єктних макросів — ні.
Граф фіксує виклики, include, створення екземплярів через складені літерали, посилання на типи, читання й записи, а також потік керування. Близько 124 викликів стандартної бібліотеки C (printf, malloc, free, memcpy, strlen тощо) відфільтровуються зі зв’язків, щоб код проєкту було видно.
uart_write — напряму чи через інші функції?» (dependency_search incoming)config.h і які його структури використовують?» (dependency_search, потім find_symbol)get_task_context).h входить до списків розширень C, C++ і Objective-C, тому заголовки в багатомовних деревах спільні для цих профілів.malloc чи memcpy, використовуйте text_pattern_search.Під’єднайте репозиторій за швидким стартом, потім перегляньте матрицю підтримки на сторінці сумісності. Для коду на C++ у тому самому дереві прочитайте посібник із C++.
Найкраще підходить
Робочі процеси агента
Деталі рушія
Корисні точки входу MCP
Використовуйте з назвою функції чи структури, коли потрібні визначення й усі посилання.
Використовуйте обхід incoming для спільної функції перед зміною її сигнатури чи обробки помилок.
Використовуйте для промптів на кшталт «поясни, як пакет проходить від переривання прийому до парсера протоколу».
Пов'язані гайди
C++ ховає справжню ціль виклику за просторами імен, перевантаженнями й віртуальною диспетчеризацією. Граф допомагає агентові її знайти.
Розширення
.c, .c++, .cc, .cpp, +6 ще
Актуально, коли ви хочете отримати ШІ-допомогу в Rust, не втрачаючи структурних запобіжників, які й роблять Rust вартим використання.
Розширення
.rs