روز دوشنبه، 20 ژوئیه، re2c، یک مولد سریع تحلیلگر واژگانی، منتشر شد.
تغییرات اصلی:

  • پشتیبانی از زبان Go اضافه شد
    (با گزینه --lang go برای re2c یا به عنوان یک برنامه جداگانه re2go فعال می شود).
    اسناد برای C و Go از یک متن، اما با متن متفاوت تولید می‌شوند
    نمونه های کد زیرسیستم تولید کد در re2c کاملاً بازطراحی شده است که
    باید پشتیبانی از زبان های جدید را در آینده آسان تر کند.

  • سیستم ساخت جایگزین در CMake اضافه شد (با تشکر ligfx!)
    تلاش برای ترجمه re2c به CMake برای مدت طولانی انجام شده است، اما قبل از ligfx هیچ کس
    راه حل کاملی ارائه کرد.
    سیستم قدیمی ساخت Autotools همچنان پشتیبانی و استفاده می شود،
    و در آینده قابل پیش بینی هیچ برنامه ای برای رها کردن آن وجود ندارد (تا حدی به طوری که ایجاد نشود
    مشکلات برای توسعه دهندگان توزیع، تا حدی به دلیل سیستم ساخت قدیمی
    پایدارتر و مختصرتر از جدید).
    هر دو سیستم به طور مداوم با استفاده از Travis CI آزمایش می شوند.

  • قابلیت تنظیم کد رابط در تنظیمات هنگام استفاده اضافه شده است
    API عمومی پیش از این، بیشتر APIها باید در فرم مشخص می شدند
    توابع یا ماکروهای تابع. اکنون می توان آنها را به صورت دلخواه مشخص کرد
    خطوطی با پارامترهای الگوی نامگذاری شده مانند @@{name} یا فقط @@ (اگر
    فقط یک پارامتر وجود دارد و هیچ ابهامی وجود ندارد). سبک API توسط پیکربندی مشخص می شود
    re2c:api:style (مقدار توابع یک سبک عملکردی را مشخص می کند و فرم آزاد یک سبک دلخواه را مشخص می کند).

  • عملکرد گزینه -c، --start-conditions بهبود یافته است و به شما امکان می دهد چندین مورد را با هم ترکیب کنید
    لکسرهای به هم پیوسته در یک بلوک re2c. اکنون می توانید استفاده کنید
    بلوک های منظم به همراه بلوک های شرطی و چند بلوک شرطی نامرتبط را مشخص کنید
    بلوک ها در یک فایل
    بهبود عملکرد گزینه -r، --reuse (استفاده مجدد از کد از یک بلوک
    در بلوک های دیگر) در ترکیب با -c، --start-conditions و -f، --storable-state
    (یک واژگان حالتی که در هر نقطه می تواند قطع شود
    و بعدا اجرا را ادامه دهید).

  • رفع اشکال در الگوریتم انتهای ورودی اخیرا اضافه شده است
    (قانون EOF)، که در موارد نادر منجر به پردازش نادرست می شود
    قوانین همپوشانی

  • فرآیند بوت استرپ ساده شده است. پیش از این، سیستم ساخت تلاش می کرد تا به صورت پویا از قبل پیدا کند
    یک ساخت re2c که می تواند برای بازسازی خود استفاده شود.
    این منجر به وابستگی های نادرست شد (از آنجایی که نمودار وابستگی بود
    پویا، که اکثر سیستم‌های ساخت آن را دوست ندارند).
    در حال حاضر، برای بازسازی lexers، شما باید به صراحت
    سیستم ساخت را پیکربندی کرده و متغیر RE2C_FOR_BUILD را تنظیم کنید.

با تشکر از همه کسانی که در تهیه این نسخه شرکت کردند!

منبع: linux.org.ru

اضافه کردن نظر