لبات ASPLلبات 0.7.0

البحث في التوثيق

يبدأ البحث بالتوثيق الحالي بالعربية · لبات 0.7.0

اكتب اسما كاملا مثل read_line أو كلمات عن الموضوع.

    English
    ملفات المصدر

    افتح ملف .aspl أو .لبات بترميز UTF-8، حتى 1 MiB، في مسودة جديدة. يبقى الملف في هذا المتصفح ولا يُشغّل تلقائياً.

    النصوص ويونيكود

    لبات 0.7.0 · الإصدار الحالي

    عمليات 0.7.0 الحالية ودعم المضيف والأمثلة وقواعد الإخفاق.

    محتويات الصفحة

    قيم النص الدقيقة

    يدعم لبات 0.7.0 هذه العمليات في المتصفح والمضيف الأصلي. نص/string قيمة UTF-8 صحيحة وثابتة. تحفظ BOM وNUL ونهايات الأسطر وعلامات الاتجاه والمسافات والتطبيع كما هي. تقارن يطابق/matches البايتات الدقيقة. النصان "é" و"e\u{301}" مختلفان حتى إن بدوا متشابهين.

    مواضع قيم يونيكود العددية

    تبدأ المواضع من الصفر وتعد قيم يونيكود العددية، لا بايتات UTF-8 أو وحدات UTF-16 أو المحارف المرئية المركبة. تعد علامة التشكيل قيمة مستقلة، وقد يتكون تسلسل الرموز التعبيرية من عدة قيم. نتيجة length("aمرحبا😀") هي 7.

    العملية التوقيع المعنى
    طول/length (string) -> i64 عدد القيم العددية
    محرف_عند/char_at (string, i64) -> string قيمة واحدة كنص
    رمز_عند/codepoint_at (string, i64) -> i64 العدد الذي يمثل القيمة
    من_رمز/from_codepoint (i64) -> string نص من قيمة عددية صالحة
    اقتطع/slice (string, i64, i64) -> string البداية مشمولة والنهاية مستبعدة

    يجب أن يحقق الفهرس 0 <= index < length(text)، وأن يحقق المقطع 0 <= start <= end <= length(text). تنجح المقاطع الفارغة، ومنها المقطع عند النهاية. يوقف الفهرس غير الصالح التنفيذ بسبب string-index-out-of-bounds، والمقطع غير الصالح بسبب string-slice-out-of-bounds. تقبل from_codepoint الصفر حتى 1114111 باستثناء القيم البديلة من 55296 حتى 57343، وتوقف القيم غير الصالحة التنفيذ بسبب invalid-unicode-scalar.

    الدمج وجمع النصوص

    تدمج + نصين بأسبقية الجمع المعتادة. نسق العدد صراحة قبل دمجه مع نص. تضع اجمع_نصوص/join: (list<string>, string) -> string الفاصل بين العناصر فقط. تنتج القائمة الفارغة ""، ولا يضاف فاصل إلى العنصر الوحيد. لا تغير العمليتان المدخلات أو تطبيع النص.

    المتصفح والمضيف الأصلي · لبات 0.7.0 · مصدر عربي

    التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0

    المتطلبات السابقة:
    • لا يتطلب معرفة سابقة لفتحه وفحصه.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    دالة ابدأ_الرئيسية() -> ص64 {
        دع المتن = "aمرحبا😀".
        إذا (طول(المتن) لا يطابق 7) { أرجع 1. }
        إذا (محرف_عند(المتن, 1) لا يطابق "م") { أرجع 2. }
        إذا (رمز_عند(المتن, 1) لا يطابق 1605) { أرجع 3. }
        إذا (من_رمز(65) لا يطابق "A") { أرجع 4. }
        إذا (اقتطع(المتن, 1, 3) لا يطابق "مر") { أرجع 5. }
        دع هروب = "\س\ت\ر\ص\ي{0645}\"\\".
        إذا (طول(هروب) لا يطابق 7) { أرجع 6. }
        إذا (رمز_عند(هروب, 0) لا يطابق 10 أو رمز_عند(هروب, 1) لا يطابق 9 أو رمز_عند(هروب, 2) لا يطابق 13) { أرجع 7. }
        إذا (رمز_عند(هروب, 3) لا يطابق 0 أو محرف_عند(هروب, 4) لا يطابق "م") { أرجع 8. }
        إذا (محرف_عند(هروب, 5) لا يطابق "\"" أو محرف_عند(هروب, 6) لا يطابق "\\") { أرجع 9. }
        دع الرسالة = المتن + "!".
        اطبع(الرسالة).
        أرجع 0.
    }
    
    تنزيل نصوص.لبات

    النتائج المتوقعة
    {
      "browser": {
        "check": "success",
        "class": "success",
        "output": "aمرحبا😀!",
        "processStatus": 0
      },
      "native": {
        "check": 0,
        "status": 0,
        "output": "aمرحبا😀!"
      }
    }
    المتصفح والمضيف الأصلي · لبات 0.7.0 · مصدر عربي

    التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0

    المتطلبات السابقة:
    • لا يتطلب معرفة سابقة لفتحه وفحصه.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    دالة ابدأ_الرئيسية() -> ص64 {
        دع فارغة: قائمة<نص> = [].
        إذا (اجمع_نصوص(فارغة, ",") لا يطابق "") { أرجع 1. }
        دع واحدة: قائمة<نص> = ["مرحبا"].
        إذا (اجمع_نصوص(واحدة, ",") لا يطابق "مرحبا") { أرجع 2. }
        دع أجزاء: قائمة<نص> = ["a", "b", "c"].
        إذا (اجمع_نصوص(أجزاء, ",") لا يطابق "a,b,c") { أرجع 3. }
        إذا (اجمع_نصوص(أجزاء, "") لا يطابق "abc") { أرجع 4. }
        اطبع(اجمع_نصوص(أجزاء, ",")).
        أرجع 0.
    }
    
    تنزيل دمج.لبات

    النتائج المتوقعة
    {
      "browser": {
        "check": "success",
        "class": "success",
        "output": "a,b,c",
        "processStatus": 0
      },
      "native": {
        "check": 0,
        "status": 0,
        "output": "a,b,c"
      }
    }

    النص العددي الصارم

    يسرد مرجع الأعداد المحللات والمنسقات لكل عرض دقيق. يعيد التحليل نتيجة قابلة للاسترداد، ولا يوقف التنفيذ لمجرد نص عددي غير صالح. يقبل النص الصحيح إشارة ASCII اختيارية وأرقاما عشرية ASCII، بما فيها الأصفار البادئة. يقبل النص العشري إشارة ASCII اختيارية وأرقاما وجزءا كسريا اختياريا بأرقام بعد النقطة وأسا اختياريا، أو التهجئات الدقيقة nan وinf و+inf و-inf.

    تنتج المسافات والأرقام غير ASCII مثل ٢ وNUL وبادئات الأساس والفواصل واللواحق والذيل الرمز invalid-number. تفشل أيضا .5 و1.. ينتج النص الصحيح نحويا خارج مجال النوع number-out-of-range. لا يحول تحويل أرقام المصدر في المحرر النص المرسل عبر إدخال البرنامج أو الملفات المستوردة.

    يحتاج مثال تحليل الصحيح سطري إدخال، 256 ثم 41. ويحتاج مثال تحليل العشري 12x ثم 41. يعالج كلاهما النتيجة الفاشلة الأولى ويواصل لطباعة 42 للسطر الثاني.

    المتصفح والمضيف الأصلي · لبات 0.7.0 · مصدر عربي

    التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0

    المتطلبات السابقة:
    • لا يتطلب معرفة سابقة لفتحه وفحصه.

    أسطر الإدخال: ["256","41"]

    دالة ابدأ_الرئيسية() -> ص64 {
        اطبع("first: ").
        دع سيئ: نتيجة<ط8> = حلل_ط8(اقرأ_سطر()).
        إذا (سيئ::نجاح) {
            أرجع 1.
        }
        اطبع(سيئ::الخطأ::الرمز).
        اطبع("\سsecond: ").
        دع جيد: نتيجة<ص64> = حلل_ص64(اقرأ_سطر()).
        إذا (جيد::نجاح) {
            إذا (نسق_ص64(-9223372036854775808) لا يطابق "-9223372036854775808") { أرجع 2. }
            اطبع(نسق_ص64(جيد::قيمة + 1)).
            اطبع("\س").
            أرجع 0.
        }
        أرجع 3.
    }
    
    تنزيل تحليل-عدد-صحيح.لبات

    النتائج المتوقعة
    {
      "browser": {
        "check": "success",
        "class": "success",
        "output": "first: number-out-of-range\nsecond: 42\n",
        "processStatus": 0
      },
      "native": {
        "check": 0,
        "status": 0,
        "output": "first: number-out-of-range\nsecond: 42\n"
      }
    }
    المتصفح والمضيف الأصلي · لبات 0.7.0 · مصدر عربي

    التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0

    المتطلبات السابقة:
    • لا يتطلب معرفة سابقة لفتحه وفحصه.

    أسطر الإدخال: ["12x","41"]

    دالة ابدأ_الرئيسية() -> ص64 {
        اطبع("first: ").
        دع سيئ: نتيجة<ع32> = حلل_ع32(اقرأ_سطر()).
        إذا (سيئ::نجاح) {
            أرجع 1.
        }
        اطبع(سيئ::الخطأ::الرمز).
        اطبع("\سsecond: ").
        دع جيد: نتيجة<ع64> = حلل_ع64(اقرأ_سطر()).
        إذا (جيد::نجاح) {
            إذا (نسق_ع64(0.5) لا يطابق "0.5") { أرجع 2. }
            إذا (نسق_ع32(1.0000000596046448) لا يطابق "1.00000012") { أرجع 3. }
            اطبع(نسق_ع64(جيد::قيمة + 1.0)).
            اطبع("\س").
            أرجع 0.
        }
        أرجع 4.
    }
    
    تنزيل تحليل-عدد-عشري.لبات

    النتائج المتوقعة
    {
      "browser": {
        "check": "success",
        "class": "success",
        "output": "first: invalid-number\nsecond: 42\n",
        "processStatus": 0
      },
      "native": {
        "check": 0,
        "status": 0,
        "output": "first: invalid-number\nsecond: 42\n"
      }
    }

    النطاق والأمثلة الكاملة

    توسع هذه العمليات الحالية قواعد النصوص في MVP التاريخي. تبقى المواصفة المؤرشفة سجلا لذلك النطاق السابق. تجد الصيغ الكاملة الموردة في النصوص وجمع النصوص وتحليل الصحيح وتحليل العشري.

    تصفح الصفحات