Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

الدوال المضمنة والوحدات

ماذا ستتعلّم: كيف تُعرَّف الدوال المضمنة كمصدر موحّد، وأين تُنفَّذ في المفسّر والمترجم.

التصنيفان

  • تلقائيّة (بلا استيراد، ~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> — لا سلاسل حرفيّة.

إضافة دالة مضمنة (الإجراء)

  1. أضفها إلى language-truth/builtins/<domain>.yaml (+_index.yaml إن ملف جديد).
  2. أعد التوليد ⇒ builtin_registry_generated.h.
  3. نفّذها في المفسّر والمترجم.
  4. اختبار مزدوج (إيجابيّ + سلبيّ).

الاستيراد: استورد رياضيات · استورد رياضيات كـ ر · من رياضيات استورد جذر · من رياضيات استورد *. التفاصيل في مهارة sad-lang-dev (references/builtins-system.md).


اقرأ بعده: سير عمل الفروع.