الدوال المضمنة والوحدات
ماذا ستتعلّم: كيف تُعرَّف الدوال المضمنة كمصدر موحّد، وأين تُنفَّذ في المفسّر والمترجم.
التصنيفان
- تلقائيّة (بلا استيراد، ~21): إخراج (
اطبع/اطبع_سطر)، إدخال (اقرأ)، طول/نوع (طول/نوع)، تحويل (رقم/عشري/نص/منطقي)، تزامن (قناة/مجموعة_انتظار/قفل/مستقبل). - طرق على الأنواع: مصفوفات (
.اضف/.رتب/.خريطة/…)، نصوص (.تقسيم/.استبدل/…)، خرائط، قنوات. - وحدات تحتاج استيراد:
رياضيات،نصوص،أساسيات،خرائط،شبكة_عالية،تشفير،مقابس، …
مصدر الحقيقة
language-truth/builtins/<domain>.yaml ← المصدر (cpp_id, canonical, namespace, params, …)
language-truth/builtins/_index.yaml ← فهرس النطاقات
│ gen_builtins_registry.py / gen_all_builtins_yaml.py
▼
shared/builtins/generated/builtin_registry_generated.h ← مُولَّد
التنفيذ (طبقتان)
| الطبقة | المكان |
|---|---|
| المفسّر | interpreter/src/builtins/builtin_*.cpp |
| المترجم | compiler/src/backend/llvm/builders/builtins/*.cpp |
سجّل الدوال بثوابت مُولَّدة
Bn::<Group>::<CPP_ID>، وطرق الأنواع بـTM::<Group>::<NAME>— لا سلاسل حرفيّة.
إضافة دالة مضمنة (الإجراء)
- أضفها إلى
language-truth/builtins/<domain>.yaml(+_index.yamlإن ملف جديد). - أعد التوليد ⇒
builtin_registry_generated.h. - نفّذها في المفسّر والمترجم.
- اختبار
.صمزدوج (إيجابيّ + سلبيّ).
الاستيراد:
استورد رياضيات·استورد رياضيات كـ ر·من رياضيات استورد جذر·من رياضيات استورد *. التفاصيل في مهارةsad-lang-dev(references/builtins-system.md).
اقرأ بعده: سير عمل الفروع.