الإدخال الأصلي والبرامج المبنية
لبات 0.7.0 · الإصدار الحالي
إدخال الأسطر وEOF وUTF-8 وحدود الإدخال وتنفيذ برنامج 0.7.0 مستقل.
محتويات الصفحة
إدخال الأسطر الأصلي
في لبات 0.7.0، تقرأ اقرأ_سطر / read_line: () -> string سطرا واحدا من stdin الموروث. لا تقبل معاملات أو وسم غير_آمن. لا تطبع الدالة مطالبة أو صدى أو نهاية سطر. اطبع المطالبة أولا؛ تظهر قبل انتظار الإدخال حتى دون سطر جديد. يستخدم إدخال الطرفية والأنابيب والملفات المعاد توجيهها القارئ نفسه في aspl run والبرامج المبنية.
تزال نهايتا LF وCRLF. يعيد السطر الفارغ نصا فارغا. يعاد السطر الأخير غير المنتهي مرة واحدة عند EOF، وتؤدي القراءة اللاحقة إلى فخ input-exhausted. تبقى المسافات وNUL والعلامات العربية ومحارف الاتجاه والأرقام والتطبيع كما قدمت. الإدخال بيانات لا تمر بتحويل أرقام المصدر. يستهلك القارئ السطر الحالي فقط ويترك بايتات stdin اللاحقة للقراءات التالية أو الكود الخارجي.
نهاية الإدخال وحالات فشله
يتحقق وقت التشغيل من كل سطر كامل بوصفه UTF-8 صارما. تسبب البايتات غير الصالحة فخ invalid-input-utf8 مع إزاحة أول بايت غير صالح. الحد الافتراضي للسطر 65536 بايت محتوى دون LF أو CRLF. ينجح الحجم المطابق تماما؛ ويوقف السطر الأكبر التنفيذ بحالة input-line-limit بدلا من إرجاع نص مبتور. نهاية الإدخال دون سطر فخ وليست نصا فارغا. لا يبلغ الإلغاء أو تقاطع إشارة أثناء الانتظار بوصفه EOF.
تجربة الأنبوب وإعادة التوجيه
نزّل مثال الإدخال المقدم باسم input.aspl. يسأل عن الاسم ويطبع الاسم المقدم مع التحية ويعيد صفرا. تحتفظ صيغة المفردات الإنجليزية بنص المطالبة والخرج العربي الأصلي.
التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0
- لا يتطلب معرفة سابقة لفتحه وفحصه.
أسطر الإدخال: ["ليلى"]
دالة ابدأ_الرئيسية() -> ص64 {
اطبع("ما اسمك؟ ").
دع الاسم = اقرأ_سطر().
اطبع("مرحبا ").
اطبع(الاسم).
اطبع("\س").
أرجع 0.
}
النتائج المتوقعة
{
"browser": {
"check": "success",
"class": "success",
"output": "ما اسمك؟ مرحبا ليلى\n",
"processStatus": 0
},
"native": {
"check": 0,
"status": 0,
"output": "ما اسمك؟ مرحبا ليلى\n"
}
}printf 'Mina\n' | aspl run input.aspl
printf 'Mina\n' > name.txt
aspl run input.aspl < name.txt
aspl build -o input input.aspl
printf 'Mina\n' | ./input
./input < /dev/nullتطبع أشكال التنفيذ الثلاثة الأولى ما اسمك؟ مرحبا Mina وسطرًا جديدًا. لا يجد الأمر الأخير سطرا: يطبع المطالبة ثم يتوقف بفخ input-exhausted وتشخيص في stderr وحالة 5. لاختيار نص التشخيص الإنجليزي، استخدم ./input --aspl-diagnostic-language=en < /dev/null.
متطلبات البرنامج المستقل
تتضمن القوالب الأصلية المنشورة للإصدار 0.7.0 الآلة الافتراضية وبايت كود خاصا بالإصدار 7. بايت الكود الخاص ليس تنسيق ملفات عاما مستقرا. يعمل ELF المبني بعد إزالة المصدر ولبات من PATH. يظل بحاجة إلى محمل Linux والمكتبات المتوافقة والمكتبات الخارجية أو بيانات التنفيذ التي يستخدمها. لا يتحقق البناء من توافر اعتمادات التنفيذ هذه.
ترث البرامج المبنية stdin وstdout وstderr والبيئة ودليل العمل. خياراتها الوحيدة هي خيارات التشخيص الأصلية. استخدم ./program لتنفيذ ملف محلي؛ لا يدخل الملف التنفيذي في الدليل الحالي تلقائيا ضمن PATH. لا تغير ترقية الأداة الأصلية أو الرجوع عنها ملف ELF موجودا. أعد البناء من المصدر بالأداة المختارة إذا أردت برنامجها المولد.