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

التعبيرات والعمليات

تدعم لغة ص مجموعة كاملة من العوامل الحسابيّة والمنطقيّة والمقارنة، مع ترتيب أسبقيّة محدّد بدقّة. هذا الفصل لمحة؛ والجدول الكامل في العوامل والأسبقيّة.

الحسابيّة

متغير المجموع = 2 + 3 * 4      # 14 (الضرب أسبق)
متغير الباقي = 17 % 5          # 2
متغير القوّة = (2 + 3) * 4      # 20 (الأقواس تُقدَّم)

المقارنة والمنطق

العوامل المنطقيّة الثلاثة كلماتٌ عربيّة: و (and)، أو (or)، ليس (not).

إذا العمر >= 18 و العمر < 65
    اطبع("ضمن سنّ العمل")
نهاية

إذا ليس مكتمل
    اطبع("غير مكتمل")
نهاية

العامل الثلاثيّ

اختصارٌ للشرط داخل تعبير (شرط ؟ قيمة_صحّة : قيمة_خطأ). رمز السؤال يختلف بحسب الإصدار — راجع جدول العوامل لرمز إصدارك الدقيق:

متغير الإشارة = س > 0 ؟ 1 : -1

دمج النصوص

متغير التحيّة = "مرحبًا يا " + الاسم

أمان العدم في التعابير

تُكمِّل ثلاثةُ عوامل النوعَ الاختياريّ (نص؟) على مستوى التعبير:

  • الوصول الآمن ؟. — يصل الحقل/الطريقة إن لم تكن القيمة عدمًا، وإلّا يُرجع لاشيء دون تعطّل (قصر الدائرة):
متغير ك = لاشيء
اطبع_سطر(ك؟.س)      // لاشيء — لا خطأ
  • الاندماج الفارغ ؟؟ — يُرجع الطرف الأيسر إن لم يكن عدمًا، وإلّا الأيمن:
اطبع_سطر(لاشيء ؟؟ 7)   // 7
اطبع_سطر(5 ؟؟ 7)        // 5
  • تأكيد عدم الفراغ مؤكد (لاحقيّ) — يؤكّد أنّ القيمة ليست عدمًا في هذا الموضع.

⚠️ تباعُد مترجم مفتوح (ISSUE-065): الوصول الآمن ؟. على كائنٍ حقيقيّ (غير عدم) بحقلٍ نصّيّ أو عشريّ يطبع في المترجم قيمةَ مؤشّرٍ رقمًا أو يبتر العشريّ. الحالة على لاشيء (ISSUE-064) والحقول العدديّة تعمل مزدوجًا. حدٌّ معماريّ مفتوح في القناتين (يحتاج توحيد نوع الحقل مع حارس العدم — شبيه ISSUE-045/052).

النطاق والتشريح

عامل النطاق .. يبني مجالًا (حصريّ النهاية)، وتُشرَّح المصفوفات بأقواس الفهرسة أو بطريقة شريحة:

لكل ن في 1..5              // 1، 2، 3، 4
    اطبع_سطر(ن)
نهاية

متغير م = [10، 20، 30، 40]
اطبع_سطر(م[0:2])          // [10, 20]  — بنقطتين، نهاية حصريّة
اطبع_سطر(م[1..3])         // [20, 30]  — بصيغة النطاق
اطبع_سطر(م[1..])          // [20, 30, 40]  — مفتوحة النهاية (الذيل)
اطبع_سطر(م.شريحة(1))      // [20, 30, 40]  — بصيغة الطريقة

⚠️ فجوة مترجم مفتوحة (ISSUE-066): صيغة الدالّة الحرّة شريحة(م، بداية) غير موصولةٍ في المترجم بعدُ (فشل ربط)؛ استعمل الفهرسة م[أ..ب] أو الطريقة م.شريحة(...) اللتين تعملان مزدوجًا.

راجع العوامل والأسبقيّة لكلّ العوامل ودرجات أسبقيّتها (1 = الأعلى).