re2c 4.0

19-noyabr, seshanba kuni chiqarilgan re2c – leksik analizatorlar generatori (shuningdek, maqsadli dasturlash tilida muntazam iboralarni kodga kompilyator). re2c tez va oson inline lekserlarni yaratishga ixtisoslashgan. U o'zining moslashuvchan interfeysi, optimallashtirilgan jadvalli bo'lmagan lekserlarni yaratish va teglar bilan deterministik chekli holat mashinalari asosida submatchlarni chiqarishni qo'llab-quvvatlashi bilan mashhur bo'lgan analog flexdan farq qiladi (TDFA). re2c lekserning tezligi muhim bo'lgan loyihalarda, masalan, Ninja va PHPda qo'llaniladi.

4.0 versiyasida kod ishlab chiqarish quyi tizimi tubdan qayta ishlab chiqilgan bo'lib, u allaqachon qo'llab-quvvatlanganlarga qo'shimcha ravishda sakkizta yangi tilni (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) qo'llab-quvvatlash imkonini berdi (C). /C++, Go, Rust), shuningdek, konfiguratsiya fayllari orqali yangi tillarni qo'shishning umumiy mexanizmi. Kod generatori allaqachon qurilgan va optimallashtirilgan chekli holat mashinasini kodga tarjima qilish uchun javobgardir, ya'ni uning vazifasi maqsadli tilga mos keladigan boshqaruv konstruksiyalarini, ma'lumotlar turlarini, umumiy dastur modelini va hokazolarni tanlashdir. Ilgari, bu mantiqning barchasi re2c manba kodining bir qismi edi va uni o'zgartirish yoki yangi til qo'shish uchun siz manba kodini tuzatishingiz va re2c-ni qayta tiklashingiz kerak edi. Bunday yamoqlar asosiy omborga standart misollar va testlar to'plamini kiritmasdan qabul qilinmadi, bu esa butun jarayonni yanada murakkablashtirdi. Endi bu mantiqning barchasi o'tkazildi sintaksis fayllari - foydalanuvchi tomonidan taqdim etilishi mumkin bo'lgan matn konfiguratsiya fayllari (re2c sukut bo'yicha standart fayllardan foydalanadi). re2c manba kodi tilga xos tafsilotlardan butunlay xoli va faqat sintaksis fayliga tayanadi. Foydalanuvchi mavjud sintaksis faylini qisman bekor qilishi yoki noldan yangisini yozishi mumkin. Rasmiy ravishda qo'llab-quvvatlanadigan barcha tillar uchun mavjud misollar bilan to'liq hujjatlar.

Aytgancha, sintaksis fayllari g'oyasi tufayli paydo bo'lgan KBB haqida bitta sharh, buning uchun rahmat re2c 4.0the_coder.

Reliz foydalanuvchi interfeysini soddalashtirish, guruhlarni qo'lga kiritish bilan ishlashni yaxshilash uchun boshqa ko'plab o'zgarishlarni o'z ichiga oladi, shuningdek, misollarni tahrirlash va kompilyatsiya qilish uchun onlayn muhitni qo'shdi: http://re2c.org/playground.

Manba: linux.org.ru

a Izoh qo'shish