re2c lexer generator 1.2 buraxılışı

Baş verdi buraxın re2c, C və C++ dilləri üçün pulsuz leksik analizator generatoru. Xatırladaq ki, re2c 1993-cü ildə Peter Bambulis tərəfindən çox sürətli leksik analizatorların eksperimental generatoru kimi yazılmışdır, yaradılan kodun sürəti və analizatorları mövcud koda asanlıqla və səmərəli şəkildə inteqrasiya etməyə imkan verən qeyri-adi çevik istifadəçi interfeysi ilə digər generatorlardan fərqlənir. əsas. O vaxtdan bəri layihə icma tərəfindən hazırlanmışdır və formal qrammatikalar və sonlu dövlət maşınları sahəsində təcrübələr və tədqiqatlar üçün platforma olmaqda davam edir.

Buraxılış üçün hazırlıq demək olar ki, bir il çəkdi. Çox vaxt, həmişə olduğu kimi, nəzəri çərçivənin işlənib hazırlanmasına və yazı yazmağa sərf olunurdu
məqalələr"NFA-da Effektiv POSIX Submatch Extraction".
Məqalədə təsvir olunan alqoritmlər libre2c eksperimental kitabxanasında həyata keçirilir
(kitabxananın qurulması və performans testləri defolt olaraq qeyri-aktivdir və “—enable-libs” konfiqurasiya seçimi ilə aktivləşdirilir). Kitabxana RE2 kimi mövcud layihələrə rəqib kimi deyil, yenilərinin inkişafı üçün tədqiqat platforması kimi nəzərdə tutulub.
alqoritmlər (bundan sonra re2c və ya digər layihələrdə istifadə edilə bilər). Test, performansın ölçülməsi və digər dillərə bağlamaların yaradılması baxımından da əlverişlidir.

re2c 1.2 versiyasında əsas yeniliklər:

  • Daxil edilmiş məlumatların sonunu yoxlamaq üçün yeni sadələşdirilmiş üsul əlavə edildi (“EOF qaydası”). Bunun üçün “re2c:eof” konfiqurasiyası əlavə edildi,
    terminal simvolunu seçməyə imkan verir,
    və xüsusi qayda "$", hansı lexer əgər tetiklenir
    giriş məlumatlarının sonuna uğurla çatdı.
    Tarixən re2c bir neçə yoxlama metodu seçimini təmin edir
    məhdudiyyət, səmərəlilik və sadəlik baxımından dəyişən girişlərin sonu
    tətbiqlər. Yeni üsul kodun yazılmasını asanlaşdırmaq üçün nəzərdə tutulub
    effektiv və geniş tətbiq oluna bilsə də. Köhnə yollar
    hələ də işləyir və bəzi hallarda üstünlük verilə bilər.

  • Direktivdən istifadə edərək xarici faylları daxil etmək imkanı əlavə edildi
    "/*!include:re2c "file.re" */", burada "file.re" daxil ediləcək faylın adıdır. Re2c fayl kataloqu daxil olmaqla faylları axtarır,
    eləcə də “-I” seçimindən istifadə etməklə müəyyən edilmiş yollar siyahısında.
    Daxil edilmiş fayllar digər faylları da əhatə edə bilər.
    Re2c "include/" kataloqunda "standart" faylları təmin edir
    layihə - orada faydalı təriflərin toplanacağı gözlənilir
    normal ifadələr, standart kitabxana kimi bir şey.
    İndiyə qədər işçilərin tələbi ilə Unicode kateqoriyalarının tərifləri olan bir fayl əlavə edilmişdir.

  • Özbaşına başlıq faylları yaratmaq imkanı əlavə edildi
    "-t --type-header" seçimlərindən istifadə edən məzmun (və ya uyğun
    konfiqurasiyalar) və yeni direktivlər "/*!header:re2c:on*/" və
    "/*!başlıq:re2c:off*/". Bu, olduğu hallarda faydalı ola bilər
    re2c dəyişənlərin, strukturların və makroların təriflərini yaratmalı olduqda,
    digər tərcümə vahidlərində istifadə olunur.

  • Re2c indi normal ifadələrdə UTF8 hərfi və simvol siniflərini başa düşür.
    Varsayılan olaraq, re2c "∀x ∃y" kimi ifadələri təhlil edir
    1 bitlik ASCII simvollarının ardıcıllığı “e2 88 80 78 20 e2 88 83 79”
    (hex kodlar) və istifadəçilər Unicode simvollarından əl ilə qaçmalıdırlar:
    “\\u2200x \\u2203y.” Bu, çoxları üçün çox əlverişsiz və gözlənilməzdir
    istifadəçilər (daimi səhv hesabatları sübut edir). İndi isə
    re2c "--input-encoding {ascii | utf8}",
    davranışı dəyişməyə və “∀x ∃y” kimi təhlil etməyə imkan verir
    “2200 78 20 2203 79.”

  • Re2c indi adi re2c bloklarını "-r --reuse" rejimində istifadə etməyə imkan verir.
    Giriş faylında çoxlu bloklar və onlardan yalnız bəziləri varsa, bu rahatdır
    təkrar istifadə etmək lazımdır.

  • İndi xəbərdarlıqların və səhv mesajlarının formatını təyin edə bilərsiniz
    yeni seçimdən istifadə edərək "--location-format {gnu | msvc}". GNU formatı göstərilir
    "fayl adı: sətir: sütun:", MSVC formatı isə "fayl adı (sətir, sütun)" kimi.
    Bu xüsusiyyət IDE həvəskarları üçün faydalı ola bilər.
    Uğurlu olarsa, qısa bir qələbə mesajı göstərən "--verbose" seçimi də əlavə edilmişdir.

  • Flex ilə "uyğunluq" rejimi təkmilləşdirildi - bəzi təhlil səhvləri düzəldildi və
    nadir hallarda səhv operator üstünlüyü.
    Tarixən "-F --flex-suppor" seçimi sizə kod yazmağa imkan verirdi
    çevik üslubda və re2c üslubunda qarışdırılır, bu da təhlili bir az çətinləşdirir.
    Flex uyğunluq rejimi yeni kodda nadir hallarda istifadə olunur,
    lakin re2c geriyə uyğunluq üçün onu dəstəkləməyə davam edir.

  • Simvol sinfinin çıxma operatoru "/" indi tətbiq olunur
    daha çox hallarda istifadə etməyə imkan verən kodlaşdırmanı genişləndirmədən əvvəl,
    dəyişən simvol uzunluğunun kodlaşdırılmasından istifadə edilərsə (məsələn, UTF8).

  • Çıxış faylı indi atomik şəkildə yaradılmışdır: re2c əvvəlcə müvəqqəti fayl yaradır
    və nəticəni ona yazır və sonra müvəqqəti faylın adını çıxışa dəyişdirir
    bir əməliyyat.

  • Sənədlər tamamlandı və yenidən yazıldı; xüsusilə yeniləri əlavə edildi
    haqqında fəsillər http://re2c.org/manual/manual.html#buffer-refilling заполнение буфера
    и daxil edilmiş məlumatların sonunu yoxlamaq yolları haqqında.
    Yeni sənədlər formada toplanır
    hərtərəfli bir səhifəlik bələdçi
    nümunələrlə (eyni mənbələr mansəhifədə və onlayn sənədlərdə göstərilmişdir).
    Telefonlarda saytın oxunuşunu yaxşılaşdırmaq üçün zəif cəhdlər edilmişdir.

  • Tərtibatçıların nöqteyi-nəzərindən re2c daha tam bir alt sistem əldə etdi
    sazlama Sazlama kodu indi buraxılış quruluşlarında deaktiv edilib və
    "--enable-debug" konfiqurasiya seçimindən istifadə etməklə aktivləşdirilə bilər.

Mənbə: opennet.ru

Добавить комментарий