التعبيرات والعمليات
تدعم لغة ص مجموعة كاملة من العوامل الحسابيّة والمنطقيّة والمقارنة، مع ترتيب أسبقيّة محدّد بدقّة. هذا الفصل لمحة؛ والجدول الكامل في العوامل والأسبقيّة.
الحسابيّة
متغير المجموع = 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 = الأعلى).