لغة C في Maguyva: رسوم بيانية للاستدعاءات في شيفرة الأنظمة والأنظمة المدمجة
في C، الرسم البياني للاستدعاءات هو البنية المعمارية نفسها. وعلى الوكيل أن يقرأه قبل أن يعدّل.
الامتدادات
.c, .h
يدعم Maguyva لغة Lua بشجرة AST والرموز والرسم البياني، ليتمكن وكلاء الذكاء الاصطناعي من تتبّع الوحدات وتوابع النقطتين وفئات الجداول الوصفية وسلاسل require في شيفرة Lua.
لا توجد في 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 في الاتجاه الوارد)util.http؟” (dependency_search)get_task_context)string وtable وmath وio وos وcoroutine وdebug وutf8) إضافة إلى واجهتي Neovim vim.* وOpenResty ngx.*. الاستدعاءات إلى هذه الواجهات ليست حوافَّ في الرسم البياني، لذا استخدم text_pattern_search للعثور عليها.classes وimports في structural_search شيئًا في Lua. استخدم بدلًا منهما find_symbol أو text_pattern_search.اربط مستودعًا عبر دليل البدء السريع، ثم راجع مصفوفة الدعم في صفحة التوافق. وللمحرّكات التي تضمّن Lua في شيفرة أصلية، اقرأ أيضًا دليل لغة C.
الأنسب لـ
سير عمل الوكلاء
تفاصيل المحرك
نقاط دخول مفيدة عبر MCP
استخدمه لدالة وحدة أو تابع نقطتين عندما تحتاج إلى التعريف والمستدعين.
استخدم الاجتياز الوارد على وحدة مشتركة لرؤية الملفات التي تحمّلها عبر require قبل نقلها.
استخدمه للاستدعاءات إلى `vim.*` أو `ngx.*` أو المكتبة القياسية، وهي مستبعدة من الرسم البياني.
أدلة ذات صلة
في C، الرسم البياني للاستدعاءات هو البنية المعمارية نفسها. وعلى الوكيل أن يقرأه قبل أن يعدّل.
الامتدادات
.c, .h
مفيدة عندما تنتشر قواعد كود Python عبر الخدمات والنصوص البرمجية وملفات الأنواع النائبة والوصلات التشغيلية.
الامتدادات
.py, .pyi, .pyw