في يوم الاثنين الموافق 20 يوليو، تم إصدار re2c، وهو مولد محلل معجمي سريع.
التغييرات الرئيسية:

  • تمت إضافة دعم لغة Go
    (يتم تمكينه إما عن طريق خيار --lang go لـ re2c، أو كبرنامج re2go منفصل).
    يتم إنشاء وثائق C وGo من نفس النص، ولكن مع اختلاف
    أمثلة التعليمات البرمجية. تمت إعادة تصميم النظام الفرعي لتوليد التعليمات البرمجية في re2c بالكامل
    يجب أن يسهل دعم اللغات الجديدة في المستقبل.

  • تمت إضافة نظام بناء بديل على CMake (شكرًا ligfx!).
    تم إجراء محاولات لترجمة re2c إلى CMake لفترة طويلة، ولكن قبل ligfx لم يكن هناك أحد
    عرضت الحل الكامل.
    يستمر دعم واستخدام نظام بناء Autotools القديم،
    وفي المستقبل المنظور لا توجد خطط للتخلي عنه (جزئيًا حتى لا يتم إنشاؤه
    مشاكل لمطوري التوزيع، ويرجع ذلك جزئيا إلى نظام البناء القديم
    أكثر استقرارًا وأكثر إيجازًا من الجديد).
    يتم اختبار كلا النظامين بشكل مستمر باستخدام Travis CI.

  • تمت إضافة القدرة على ضبط رمز الواجهة في التكوينات عند الاستخدام
    واجهة برمجة التطبيقات العامة. في السابق، كان يجب تحديد معظم واجهات برمجة التطبيقات في النموذج
    وظائف أو وحدات الماكرو وظيفة. الآن يمكن تحديدها في شكل تعسفي
    أسطر تحتوي على معلمات قالب مسماة مثل @@{name} أو @@ فقط (if
    هناك معلمة واحدة فقط وليس هناك أي غموض). يتم تحديد نمط واجهة برمجة التطبيقات (API) من خلال التكوين
    re2c:api:style (تحدد قيمة الوظائف النمط الوظيفي، ويحدد الشكل الحر نمطًا عشوائيًا).

  • تم تحسين تشغيل الخيار -c, --start-conditions، مما يسمح لك بدمج عدة خيارات
    قراءات مترابطة في كتلة re2c واحدة. الآن يمكنك استخدام
    الكتل العادية جنبًا إلى جنب مع الكتل الشرطية وتحديد العديد من الكتل الشرطية غير ذات الصلة
    كتل في ملف واحد.
    تحسين تشغيل خيار -r, --reuse (إعادة استخدام التعليمات البرمجية من كتلة واحدة
    في الكتل الأخرى) بالاشتراك مع خيارات -c و-start-conditions و-f و-storable-state
    (معجم ذو حالة يمكن مقاطعته في أي وقت
    ومواصلة التنفيذ لاحقًا).

  • تم إصلاح الخلل في خوارزمية نهاية الإدخال المضافة مؤخرًا
    (قاعدة EOF)، والتي أدت في حالات نادرة إلى معالجة غير صحيحة
    قواعد متداخلة.

  • لقد تم تبسيط عملية التمهيد. في السابق، حاول نظام البناء العثور عليه ديناميكيًا بالفعل
    بناء re2c يمكن استخدامه لإعادة بناء نفسه.
    أدى ذلك إلى تبعيات غير صحيحة (نظرًا لأن الرسم البياني للتبعية كان
    ديناميكية، والتي لا تحبها معظم أنظمة البناء).
    الآن، لإعادة بناء المعاجم، عليك أن تقوم بذلك بشكل صريح
    قم بتكوين نظام البناء وتعيين المتغير RE2C_FOR_BUILD.

شكرا لكل من شارك في إعداد هذا الإصدار!

المصدر: linux.org.ru

إضافة تعليق