انجليزيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

راجيل - عبر الإنترنت في السحابة

قم بتشغيل ragel في مزود استضافة OnWorks المجاني عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو أمر ragel الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


ragel - ترجمة اللغات العادية إلى أجهزة حالة قابلة للتنفيذ

موجز


راجل [الخيارات] ملف

الوصف


يجمع راجل آلات الحالة المحدودة القابلة للتنفيذ من اللغات العادية. يمكن راجل
إنشاء كود C أو C ++ أو Objective-C أو D أو Go أو Java. آلات الدولة راجل لا تستطيع ذلك فقط
يتعرف على تسلسل البايت كما تفعل آلات التعبير العادي ، ولكن يمكنه أيضًا تنفيذ التعليمات البرمجية في
نقاط اعتباطية في التعرف على لغة عادية. تم تضمين رمز المستخدم باستخدام
عوامل التشغيل المضمنة التي لا تعطل بناء جملة اللغة العادي.

تتكون اللغة الأساسية من مشغلي التعبير العادي القياسي ، مثل الاتحاد ،
التسلسل ونجم كليين ، مصحوبًا بمشغلي عمل التضمين. راجل أيضا
يوفر عوامل تشغيل تتيح لك التحكم في أي عدم حتمية تقوم بإنشائها أو تكوينها
الماسحات الضوئية التي تستخدم النموذج الأطول تطابقًا ، وتقوم ببناء آلات الحالة باستخدام مخطط الحالة
نموذج. من الممكن أيضًا التأثير على تنفيذ آلة الدولة من داخل
مضمنة عن طريق القفز أو الاتصال بأجزاء أخرى من الجهاز وإعادة المعالجة
إدخال.

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

OPTIONS


-h, -H, -?, --مساعدة
عرض المساعدة والخروج.

-v طباعة معلومات الإصدار والخروج.

-o ملف
كتابة الإخراج إلى ملف. إذا لم يتم إعطاء -o ، يتم اختيار اسم الملف الافتراضي بواسطة
استبدال امتداد الملف لملف الإدخال. بالنسبة لملفات المصدر التي تنتهي بـ .rh ، فإن
اللاحقة. h مستخدمة. لجميع ملفات المصدر الأخرى ، لاحقة تستند إلى لغة الإخراج
يستخدم (.c ، .cpp ، .m ، وما إلى ذلك). إذا لم يتم إعطاء -o لإخراج Graphviz الذي تم إنشاؤه
يتم كتابة ملف نقطة إلى الإخراج القياسي.

-s اطبع بعض الإحصائيات الخاصة بالخطأ المعياري.

- تنسيق الخطأ = gnu
طباعة رسائل الخطأ باستخدام التنسيق "ملف: سطر: عمود:" (افتراضي)

- تنسيق الخطأ = msvc
طباعة رسائل الخطأ باستخدام التنسيق "ملف (سطر ، عمود):"

-d لا تقم بإزالة الإجراءات المكررة من قوائم الإجراءات.

-I دير
أضف dir إلى قائمة الدلائل للبحث عن الملفات المضمنة والمستوردة

-n لا تقم بإجراء تصغير الحالة.

-m إجراء التصغير مرة واحدة ، في نهاية تجميع آلة الحالة.

-l تصغير بعد كل عملية تقريبا. قوائم العمليات المماثلة مثل النقابات هي
تصغير مرة واحدة في النهاية. هذا هو خيار التصغير الافتراضي.

-e تصغير بعد كل عملية.

-x قم بتجميع أجهزة الحالة وإصدار تمثيل XML لبيانات المضيف وملفات
آلات.

-V قم بإنشاء ملف نقطي لـ Graphviz.

-p عرض الأحرف القابلة للطباعة على الملصقات.

-S
مواصفات ولايات ميكرونيزيا الموحدة للإخراج.

-M
تعريف الجهاز / إنشاء مثيل للإخراج.

-C اللغة المضيفة هي C أو C ++ أو Obj-C أو Obj-C ++. هذه هي لغة المضيف الافتراضية
الخيار.

-D اللغة المضيفة هي D.

-J لغة المضيف هي جافا.

-Z اللغة المضيفة هي Go.

-R اللغة المضيفة هي روبي.

-L منع كتابة توجيهات # سطر.

-T0،XNUMX (C / D / Java / Ruby / C # / Go) قم بإنشاء جدول مدفوعة FSM. هذا هو نمط الكود الافتراضي.
يمثل الجدول الذي يحركه FSM آلة الحالة كبيانات ثابتة. هناك طاولات
من الدول والتحولات والمؤشرات والإجراءات. الحالة الحالية مخزنة في ملف
عامل. التنفيذ عبارة عن حلقة تبدو في ضوء الحالة الحالية و
الحرف الحالي المراد معالجته يبحث عن الانتقال الذي يتعين القيام به باستخدام بحث ثنائي ،
ينفذ أي إجراءات وينتقل إلى الحالة المستهدفة. بشكل عام ، الجدول مدفوع
تنتج FSM ثنائي أصغر وتتطلب لغة مضيفة أقل تكلفة
ولكن ينتج عنه رمز تشغيل أبطأ. تناسب ولايات ميكرونيزيا الموحدة التي تحركها الجدول أي ولايات ميكرونيزيا الموحدة.

-T1،XNUMX (C / D / Ruby / C # / Go) قم بإنشاء جدول أسرع يعتمد على FSM من خلال توسيع قوائم الإجراءات في
رمز تنفيذ الإجراء.

-F0 (C / D / Ruby / C # / Go) قم بإنشاء جدول مسطح مدفوع FSM. يتم تمثيل التحولات على أنها
صفيف مفهرس بالحرف الأبجدي الحالي. هذا يلغي الحاجة إلى ملف
بحث ثنائي لتحديد موقع التحولات وينتج رمزًا أسرع ، ومع ذلك فهو فقط
مناسبة للأبجديات الصغيرة.

-F1 (C / D / Ruby / C # / Go) أنشئ جدولًا مسطحًا أسرع يعتمد على FSM من خلال توسيع قوائم الإجراءات
في تنفيذ التعليمات البرمجية للعمل.

-g0 (C / D / C # / Go) قم بإنشاء FSM مدفوعة الانتقال. تمثل ولايات ميكرونيزيا الموحدة التي تقودها الانتقال الدولة
الجهاز كسلسلة من عبارات goto. أثناء التواجد في الجهاز ، تكون الحالة الحالية
المخزنة بواسطة مؤشر تعليمات المعالج. التنفيذ هو وظيفة مسطحة
حيث يتم تمرير السيطرة من دولة إلى أخرى باستخدام gotos. بشكل عام ، انتقلت FSM
ينتج رمزًا أسرع ولكنه ينتج عنه ثنائي أكبر ومضيف أكثر تكلفة
ترجمة اللغة.

-g1 (C / D / C # / Go) قم بإنشاء FSM مدفوعة بشكل أسرع من خلال توسيع قوائم الإجراءات في ملف
كود تنفيذ العمل.

-g2 (C / D / Go) قم بإنشاء FSM مدفوعة سريعًا بالفعل من خلال تضمين قوائم الإجراءات في ملف
كود التحكم في آلة الدولة.

-P (C / D) N-Way Split سريع جدًا مدفوعة بالانتقال إلى ولايات ميكرونيزيا الموحدة.

راجل INPUT


ملاحظة: هذا وصف موجز جدًا لمدخلات راجل. تم وصف راجل بمزيد من التفصيل
في دليل المستخدم المتاح من الصفحة الرئيسية (انظر أدناه).

يقوم راجل عادة بتمرير ملفات الإدخال مباشرة إلى المخرجات. عندما ترى ولايات ميكرونيزيا الموحدة
المواصفات التي تحتوي على عمليات إنشاء مثيل للجهاز تتوقف عن إنشاء جهاز الحالة.
إذا كانت هناك عبارات كتابة (مثل "write exec") ، فسيقوم ragel بإصدار المقابلة
الشفرة. يمكن أن يكون هناك أي عدد من مواصفات FSM في ملف الإدخال. ولايات ميكرونيزيا الموحدة متعددة الخطوط
تبدأ المواصفات بـ "٪٪ {" وتنتهي بـ "} ٪٪". مواصفات FSM أحادية الخط
يبدأ بـ ٪٪ وينتهي عند السطر الجديد الأول.

FSM البيانات


تشمل الاسم:
اضبط اسم الجهاز. إذا تم تقديمه ، يجب أن يكون البيان الأول.

Alphabet النوع:
اضبط نوع بيانات الأبجدية.

احصل على مفتاح:
حدد كيفية استرداد الأحرف الأبجدية من نوع العنصر.

تتضمن:
قم بتضمين آلة تحمل نفس الاسم مثل الاسم الحالي أو اسم مختلف في أي من ملف
الملف الحالي أو بعض الملفات الأخرى.

اكشن فريف:
حدد الإجراء الذي يمكن أن تستدعيه ولايات ميكرونيزيا الموحدة.

اف اس ام تعريف، تجسيد و أطول مباراة تجسيد:
تستخدم لبناء ولايات ميكرونيزيا الموحدة. وصف بناء الجملة في الأقسام القليلة القادمة.

وصول:
حدد كيفية الوصول إلى متغيرات آلة الحالة الثابتة.

كتابة: اكتب بعض مكونات الجهاز.

متغير:
تجاوز أسماء المتغيرات الافتراضية (p ، pe ، cs ، act ، إلخ).

أساسي ماكينات


الآلات الأساسية هي المعاملات الأساسية لتعبيرات اللغة العادية.

'مرحبا'
Concat الحرفية. ينتج سلسلة من الأحرف في السلسلة. يدعم
تسلسل الهروب بـ "\". سيكون للنتيجة حالة بداية والانتقال إلى
حالة جديدة لكل حرف في السلسلة. الحالة الأخيرة في تسلسل الإرادة
تكون نهائية. لجعل السلسلة غير حساسة لحالة الأحرف ، قم بإلحاق "i" بالسلسلة ، مثل
في 'cmd'i.

"مرحبا"
مطابقة لنسخة اقتباس واحدة.

[أهلا]
أو حرفية. ينتج اتحاد الشخصيات. يدعم نطاقات الأحرف مع "-" ،
إبطال معنى الاتحاد بـ "^" مبدئي وتسلسل الهروب بـ "\".
ستكون النتيجة حالتين مع انتقال بينهما لكل حرف
أو النطاق.

ملاحظة: تنتج '' و "" و [] FSMs خالية. الآلات الفارغة لها حالة واحدة هي البداية
حالة وحالة نهائية ومطابقة السلسلة ذات الطول الصفري. يمكن إنشاء آلة فارغة
مع آلة مدمجة فارغة.

عدد صحيح
يجعل آلة ذات حالتين مع انتقال واحد على رقم صحيح معين.

عرافة يجعل آلة ذات حالتين مع انتقال واحد على الرقم السداسي العشري المحدد.

/ simple_regex /
تعبير نمطي بسيط. يدعم تدوين الحرف "." و "*" و "[]"
مع "-" ، مما يلغي معنى تعبير "أو" مع "^" و "^" الأولي
تسلسل الهروب بـ "\". يدعم أيضًا علامة لاحقة واحدة: i. استخدمه لإنتاج ملف
تعبير عادي غير حساس لحالة الأحرف ، كما في / GET / i.

قاع .. قاع
يحدد النطاق. الحدان العلوي والسفلي المسموح بهما عبارة عن سلسلة حرفية من
طول واحد وعدد آلات. على سبيل المثال ، 0x10..0x20 و 0..63 و 'a' .. 'z' هي
نطاقات صالحة.

اسم المتغير
يشير إلى تعريف الجهاز المخصص لاسم المتغير المحدد.

آلة مدمجة
هناك العديد من الآلات المدمجة المتاحة. كلهم آلات الدولة ل
الغرض من مطابقة فئات الأحرف المشتركة. هم انهم:

أي وقت أي حرف في الأبجدية.

أسكي أحرف Ascii 0..127.

مد تمديد أحرف Ascii. هذا هو النطاق -128..127 للأبجديات الموقعة
والنطاق 0..255 للأبجديات غير الموقعة.

ألفا حروف أبجدية / [A-Za-z]/.

أرقام أرقام / [0-9]/.

alnum عدد ألفا / [0-9A-Za-z]/.

خفض أحرف صغيرة / [az]/.

أعلى الأحرف الكبيرة / [AZ]/.

xdigit أرقام سداسية عشرية / [0-9A-Fa-f]/.

السيطرة أحرف التحكم 0..31.

رسم بياني شخصيات رسومية / [! - ~]/.

طباعة أحرف قابلة للطباعة / [- ~]/.

نقطة علامات ترقيم. أحرف رسومية ليست أبجدية رقمية
/ [! - /: - @ \ [- `{- ~]/.

الفضاء مسافة بيضاء / [\ t \ v \ f \ n \ r]/.

فارغة سلسلة ذات طول صفري. يعادل "" و "" و [].

فارغ مجموعة فارغة. لا تطابق أي شيء.

نبذة مشغل REFERENCE


يتم تجميع العوامل حسب الأسبقية ، المجموعة 1 هي الأدنى والمجموعة 6 هي الأعلى.

مجموعة 1:

على سبيل المثال , على سبيل المثال
انضم إلى الأجهزة معًا دون رسم أي انتقالات أو إعداد حالة بدء أو
أي حالات نهائية. يجب تحديد حالة البدء بشكل صريح مع تسمية "البدء".
يمكن تحديد الحالات النهائية مع انتقالات epsilon إلى ضمنيًا
خلق حالة "نهائية".

مجموعة 2:

على سبيل المثال | على سبيل المثال
ينتج آلة تطابق أي سلسلة في الآلة الأولى أو الثانية.

على سبيل المثال & على سبيل المثال
ينتج آلة تتطابق مع أي سلسلة موجودة في الجهاز الأول والجهاز
اثنين.

على سبيل المثال - على سبيل المثال
ينتج آلة تتطابق مع أي سلسلة موجودة في الآلة الواحدة ولكنها ليست موجودة في
آلة اثنين.

على سبيل المثال -- على سبيل المثال
طرح قوي. يتطابق مع أي سلسلة في الآلة لا تحتوي على أي سلسلة
في الجهاز الثاني كسلسلة فرعية.

مجموعة 3:

على سبيل المثال . على سبيل المثال
تنتج آلة تتطابق مع جميع الأوتار الموجودة في الآلة ، ثم يتبعها كل
الأوتار في الآلة الثانية.

على سبيل المثال :> على سبيل المثال
التسلسل المحمي بالدخول: ينهي الجهاز واحدًا عند الدخول إلى الجهاز الثاني.

على سبيل المثال : >> على سبيل المثال
التسلسل المحمي بإنهاء: ينهي الجهاز واحد عندما ينتهي الجهاز مرتين.

على سبيل المثال <: على سبيل المثال
التسلسل ذي الحراسة اليسرى: يعطي أولوية أعلى للآلة الأولى.

ملاحظة: التسلسل هو المشغل الافتراضي. جهازان بجانب بعضهما البعض بدون
عامل التشغيل بينهما يؤدي إلى عملية التسلسل.

مجموعة 4:

تسمية: على سبيل المثال
يرفق تسمية بتعبير. يمكن استخدام الملصقات بواسطة انتقالات epsilon و
عبارات fgoto و fcall في الإجراءات. لاحظ أيضًا أن الرجوع إلى الجهاز
يتسبب التعريف في الإنشاء الضمني للتسمية بنفس الاسم.

مجموعة 5:

على سبيل المثال -> ملصق
يرسم انتقال إبسيلون إلى الحالة المحددة بواسطة التسمية. يجب أن يكون التصنيف اسمًا بتنسيق
النطاق الحالي. يتم حل انتقالات إبسيلون عندما يتم حل عوامل الفاصلة
تقييمها وفي جذر شجرة التعبير عن الآلة
الاحالة / إنشاء مثيل.

مجموعة 6: الإجراءات

قد يكون الإجراء اسمًا معرّفًا مسبقًا ببيان الإجراء أو يمكن تحديده مباشرةً
مع '{' و '}' في التعبير.

على سبيل المثال > عمل
يدمج العمل في بدء الانتقالات.

على سبيل المثال @ عمل
يدمج الإجراء في التحولات التي تدخل إلى الحالة النهائية.

على سبيل المثال $ عمل
يدمج العمل في جميع الانتقالات. لا يشمل الانتقالات المعلقة.

على سبيل المثال % عمل
يدمج الإجراء في التحولات المعلقة من الحالات النهائية.

مجموعة 6: EOF الإجراءات

عندما يسمى روتين إنهاء الجهاز ، يتم تنفيذ إجراءات EOF للحالة الحالية.

على سبيل المثال >/ عمل
قم بتضمين إجراء EOF في حالة البدء.

على سبيل المثال </ عمل
قم بتضمين إجراء EOF في كافة الولايات باستثناء حالة البدء.

على سبيل المثال $/ عمل
قم بتضمين إجراء EOF في جميع الولايات.

على سبيل المثال %/ عمل
قم بتضمين إجراء EOF في الحالات النهائية.

على سبيل المثال @/ عمل
قم بتضمين إجراء EOF في جميع الحالات غير النهائية.

على سبيل المثال <> / عمل
قم بتضمين إجراء EOF في جميع الحالات التي ليست حالة البداية والتي ليست كذلك
النهائي (الدول الوسطى).

مجموعة 6: العالمية خطأ الإجراءات

يتم تخزين إجراءات الخطأ العامة في الحالات حتى اكتمال آلة الحالة النهائية
إنشاؤه. ثم يتم نقلها إلى انتقالات الخطأ ، مما يعطي تأثير
حدث اساسي.

على سبيل المثال >! عمل
قم بتضمين إجراء خطأ عالمي في حالة البدء.

على سبيل المثال <! عمل
قم بتضمين إجراء خطأ عالمي في كافة الحالات باستثناء حالة البدء.

على سبيل المثال $! عمل
تضمين إجراء خطأ عالمي في جميع الدول.

على سبيل المثال %! عمل
تضمين إجراء خطأ عالمي في الحالات النهائية.

على سبيل المثال @! عمل
قم بتضمين إجراء خطأ عالمي في جميع الحالات التي ليست نهائية.

على سبيل المثال <>! عمل
قم بتضمين إجراء خطأ عالمي في جميع الحالات التي ليست حالة البداية وهي كذلك
ليست نهائية (الدول الوسطى).

مجموعة 6: محلّي خطأ الإجراءات

يتم تخزين إجراءات الخطأ المحلية في الحالات حتى يتم إنشاء الجهاز المحدد بالكامل.
ثم يتم نقلها إلى انتقالات الخطأ ، مما يعطي تأثير الإجراء الافتراضي لـ
قسم من الجهاز الكلي. لاحظ أنه قد يتم حذف الاسم ، وفي هذه الحالة يتم حذف ملف
سيتم نقل الإجراء إلى إجراءات الخطأ عند إنشاء الجهاز الحالي.

على سبيل المثال >^ عمل
قم بتضمين إجراء خطأ محلي في حالة البدء.

على سبيل المثال <^ عمل
قم بتضمين إجراء خطأ محلي في كافة الحالات باستثناء حالة البدء.

على سبيل المثال $^ عمل
قم بتضمين إجراء خطأ محلي في جميع الولايات.

على سبيل المثال %^ عمل
قم بتضمين إجراء خطأ محلي في الحالات النهائية.

على سبيل المثال @^ عمل
قم بتضمين إجراء خطأ محلي في جميع الحالات التي ليست نهائية.

على سبيل المثال <> ^ عمل
قم بتضمين إجراء خطأ محلي في جميع الحالات التي ليست حالة البداية وهي كذلك
ليست نهائية (الدول الوسطى).

مجموعة 6: إلى الدولة الإجراءات

يتم تخزين الإجراءات في الحالات وتنفيذها في أي وقت ينتقل فيه الجهاز إلى ملف
حالة. وهذا يشمل الانتقالات المنتظمة ، وعمليات نقل التحكم مثل fgoto. ملحوظة
التي تحدد الحالة الحالية من خارج الجهاز (على سبيل المثال أثناء
التهيئة) على أنها انتقال إلى حالة.

على سبيل المثال >~ عمل
قم بتضمين إجراء لـ to-state في حالة البداية.

على سبيل المثال <~ عمل
قم بتضمين إجراء إلى حالة في جميع الولايات باستثناء حالة البدء.

على سبيل المثال $~ عمل
تضمين إجراء للدولة في جميع الولايات.

على سبيل المثال %~ عمل
تضمين إجراء الدولة في الحالات النهائية.

على سبيل المثال @~ عمل
قم بتضمين إجراء الدولة في جميع الولايات التي ليست نهائية.

على سبيل المثال <> ~ عمل
قم بتضمين إجراء الدولة في جميع الحالات التي ليست حالة البداية وليست كذلك
النهائي (الدول الوسطى).

مجموعة 6: من الدولة الإجراءات

يتم تنفيذ الإجراءات من حالة الدولة عندما تتخذ حالة انتقالًا على شخصية ما. هذه
يتضمن انتقال الخطأ والانتقال إلى الذات.

على سبيل المثال >* عمل
قم بتضمين إجراء من الدولة في حالة البداية.

على سبيل المثال <* عمل
قم بتضمين إجراء من الدولة في كل حالة باستثناء حالة البداية.

على سبيل المثال $* عمل
تضمين إجراء من الدولة في جميع الولايات.

على سبيل المثال %* عمل
تضمين إجراء من الدولة في الحالات النهائية.

على سبيل المثال @* عمل
قم بتضمين إجراء من الدولة في جميع الحالات التي ليست نهائية.

على سبيل المثال <> * عمل
قم بتضمين إجراء من الدولة في جميع الحالات التي ليست حالة البداية وليست كذلك
النهائي (الدول الوسطى).

مجموعة 6: درجة الأهمية مهمة

يتم تعيين الأولويات للأسماء داخل الانتقالات. فقط الأولويات على نفس الاسم هي
يسمح للتفاعل. في الشكل الأول للأولويات ، يتم تعيين الاسم افتراضيًا على اسم ملف
تعريف الجهاز يتم تعيين الأولوية فيه. الانتقالات ليس لها الافتراضي
الأولويات.

على سبيل المثال > مادبا
يعيّن الأولوية int في جميع الانتقالات التي تترك حالة البداية.

على سبيل المثال @ مادبا
يعين الأولوية int في جميع الانتقالات التي تدخل إلى الحالة النهائية.

على سبيل المثال $ مادبا
يعيّن الأولوية int في جميع الانتقالات الموجودة.

على سبيل المثال % مادبا
يعيّن الأولوية int في جميع الانتقالات المعلقة.

يسمح الشكل الثاني لتخصيص الأولوية للمبرمج بتحديد الاسم الذي
يتم تعيين الأولوية ، مما يسمح للتفاعلات بعبور حدود تعريف الماكينة.

على سبيل المثال > (الاسم ، int)
يعيّن الأولوية int للتسمية في جميع الانتقالات التي تترك حالة البداية.

على سبيل المثال @ (اسم، كثافة العمليات)
يعين الأولوية int للتسمية في جميع الانتقالات التي تدخل الحالة النهائية.

على سبيل المثال $ (اسم، كثافة العمليات)
يعيّن الأولوية int للتسمية في جميع الانتقالات الموجودة.

على سبيل المثال % (اسم، كثافة العمليات)
يعين الأولوية int للتسمية في جميع الانتقالات المعلقة.

مجموعة 7:

على سبيل المثال * ينتج نجم كليين لآلة. يطابق صفرًا من التكرار أو أكثر من
آلة.

على سبيل المثال **
أطول مباراة كلاين ستار. هذا الإصدار من kleene star يعطي أولوية أعلى لـ
البقاء في الجهاز على الالتفاف والبدء من جديد. هذا المشغل هو
يعادل ((expr) $ 0٪ 1) *.

على سبيل المثال ? ينتج آلة تقبل الآلة المعطاة أو السلسلة الفارغة. هذا العامل
يعادل (expr | '').

على سبيل المثال + تنتج الآلة متسلسلة مع نجمة كلاين نفسها. تطابق واحد أو
المزيد من عمليات التكرار للجهاز. هذا العامل يعادل (expr. expr *).

على سبيل المثال {ن}
ينتج آلة تتطابق تمامًا مع n تكرار expr.

على سبيل المثال {،ن}
ينتج جهازًا يطابق أي مكان من الصفر إلى عدد مرات تكرار expr.

على سبيل المثال {ن،}
ينتج آلة تطابق n أو أكثر من تكرار expr.

على سبيل المثال {ن ، م}
ينتج آلة تطابق تكرار n إلى m من expr.

مجموعة 8:

! على سبيل المثال ينتج جهازًا يطابق أي سلسلة غير مطابقة للجهاز المحدد. هذه
عامل التشغيل يعادل (* extension - expr).

^ على سبيل المثال النفي على مستوى الحرف. يتطابق مع أي حرف واحد لا يتطابق مع الحرف المنفرد
إكسبر آلة الطابع.

مجموعة 9:

( على سبيل المثال )
فرض الأسبقية على المشغلين.

القيم متاح IN CODE كتل


fc الشخصية الحالية. يعادل * p.

الشركة العامة للفوسفات مؤشر إلى الحرف الحالي. يعادل p.

com.fcurs قيمة عددية تمثل الحالة الحالية.

فترجز قيمة عددية تمثل الحالة المستهدفة.

الحجارة ( )
قيمة عددية تمثل نقطة الدخول .

البيانات متاح IN CODE كتل


فيلد. لا تتقدم على الشخصية الحالية. يعادل --p ؛.

com.fexec ؛
يضبط الحرف الحالي على شيء آخر. يعادل ص = ( ) -1 ؛

com.fgoto ؛
القفز إلى الجهاز المحدد بواسطة .

com.fgoto * ؛
القفز إلى نقطة الدخول التي قدمها . يجب أن يتم تقييم التعبير إلى عدد صحيح
قيمة تمثل دولة.

com.fnext ؛
قم بتعيين الحالة التالية لتكون نقطة الدخول المحددة بواسطة . بيان fnext
لا يقفز على الفور إلى الحالة المحددة. أي رمز عمل يتبع
تم تنفيذ البيان.

com.fnext * ؛
اضبط الحالة التالية لتكون نقطة الدخول التي قدمها . يجب أن يكون التعبير
تقييم إلى قيمة عدد صحيح يمثل حالة.

com.fcall ؛
استدعاء الجهاز المحدد من قبل . الحنق التالي سوف يقفز إلى هدف
الانتقال الذي يتم من خلاله استدعاء الإجراء.

com.fcall * ؛
استدعاء نقطة الدخول المعطاة من قبل . الحنق التالي سوف يقفز إلى هدف
الانتقال الذي يتم من خلاله استدعاء الإجراء.

أقلق؛ ارجع إلى الحالة المستهدفة للانتقال الذي تم إجراء المكالمة الأخيرة عليه.

fbreak.
احفظ الحالة الحالية واخرج على الفور من الجهاز.

CREDITS


كتب راجل من قبل أدريان ثورستون[البريد الإلكتروني محمي]>. الإخراج C الهدف
ساهم بها إريك أوشن. إخراج D ساهم به آلان ويست. الناتج روبي ساهم به
فيكتور هوغو بورجا. ج ـ توليد كود حاد بواسطة دانيال تانج. مساهمات فى
إنشاء كود Java بواسطة Colin Fleming. Go code Generation بمساهمة جوستين توني.

استخدم ragel عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

أوامر لينكس

Ad