هذا هو الأمر yaccplan9 الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
yacc - مترجم مترجم آخر
موجز
ياك [ خيار ] قواعد
الوصف
ياك يحول قواعد اللغة ورمز الترجمة الخالية من السياق إلى مجموعة من الجداول لـ
LR(١) محلل ومترجم. قد تكون القواعد غامضة؛ قواعد الأسبقية المحددة هي
تستخدم لكسر الغموض.
ملف الإخراج، علامة التبويب y.tab.c، يجب أن يتم تجميعه بواسطة مترجم C لإنتاج برنامج This
يجب أن يتم تحميل البرنامج مع وظيفة محلل معجمي، يليكس (باطل) (غالبًا ما يتم إنشاؤها بواسطة
ليكس(١) مع أ الرئيسي (كثافة العمليات أرجك دبابة *أرجف[]) البرنامج، ومع روتين معالجة الأخطاء،
ييرور (شار *).
الخيارات
-o الناتج الإخراج المباشر إلى الملف المحدد بدلا من علامة التبويب y.tab.c.
-Dn إنشاء ملف y.debugتحتوي على رسائل تشخيصية. لدمجهم في
المحلل اللغوي، وتجميعه مع رمز المعالج المسبق yydebug مُعرف. كمية
يتم تنظيم الإخراج التشخيصي من المحلل اللغوي حسب القيمة n. تقارير القيمة 0
أخطاء؛ 1 تقارير عن التخفيضات؛ تتضمن القيم الأعلى (حتى 4) مزيدًا من المعلومات
حول تحولات الدولة.
-v إنشاء ملف y.output، يحتوي على وصف لجداول التحليل و
الصراعات الناشئة عن الغموض في النحو.
-d إنشاء ملف y.tab.h، تحتوي # تعريف البيانات التي تربط ياك-مُكَلَّف
"رموز مميزة" مع "أسماء الرموز المميزة" التي أعلنها المستخدم. تضمينه في الملفات المصدر
غير علامة التبويب y.tab.c لمنح حق الوصول إلى رموز الرمز المميز.
-s صد تغيير بادئة أسماء الملفات علامة التبويب y.tab.c, y.tab.h, y.debugو y.output إلى
صد.
-S اكتب محللًا يستخدم Stdio بدلاً من طباعة الإجراءات في libc.
-l قم بتعطيل توجيهات #line في المحلل اللغوي الذي تم إنشاؤه.
-a قم بإنشاء محلل يأخذ وسيطة من النوع Yyarg ويمرر هذه الوسيطة
لكل استدعاء لوظيفة lexer، yylex. Yyarg يحتوي على كل مثيل
State وعضو واحد مرئي للمستخدم، arg، من النوع void*.
مواصفات ياك نفسه هو في الأساس نفس إصدار UNIX الموصوف في
المراجع المذكورة أدناه. إلى جانب ال -D الخيار، الاختلافات الرئيسية ذات الصلة هي:
تكون واجهة بيئة C افتراضيًا من خلال بدلا من
؛ ال -S الخيار يعكس هذا.
يقبل المحلل اللغوي نص إدخال UTF (انظر UTF(٧) وهو له أثران.
أولا، قيمة الإرجاع yylex () لم يعد يناسب أ في صفقات; ثانيا، البداية
أصبحت قيمة الأجهزة غير الطرفية الآن 0xE000 بدلاً من 257.
يمكن أن يكون المحلل اللغوي الذي تم إنشاؤه متكررًا: يمكن استدعاء الإجراءات yyparse، على سبيل المثال ل
تنفيذ نوع من تتضمن # بيان في مترجم.
أخيرًا، تم تغيير بعض الأعمال الداخلية غير الموثقة للمحلل اللغوي، والتي
قد يؤثر على البرامج التي تعرف الكثير عن بنيتها.
استخدم yaccplan9 عبر الإنترنت باستخدام خدمات onworks.net