re2c 2.0

Bazar ertəsi, iyulun 20-də sürətli leksik analizator generatoru olan re2c buraxıldı.
Əsas dəyişikliklər:

  • Go dil dəstəyi əlavə edildi
    (ya re2c üçün --lang go seçimi ilə, ya da ayrıca re2go proqramı kimi aktivləşdirilir).
    C və Go üçün sənədlər eyni mətndən hazırlanır, lakin fərqlidir
    kod nümunələri. re2c-də kod yaratma alt sistemi tamamilə yenidən işlənib, hansı ki
    gələcəkdə yeni dilləri dəstəkləməyi asanlaşdırmalıdır.

  • CMake-də alternativ qurma sistemi əlavə edildi (təşəkkürlər ligfx!).
    Re2c-i CMake-ə tərcümə etmək cəhdləri uzun müddətdir ki, edilmişdir, lakin ligfx-dən əvvəl heç kim
    tam həllini təklif etdi.
    Köhnə Autotools qurma sistemi dəstəklənməyə və istifadə olunmağa davam edir,
    və yaxın gələcəkdə ondan imtina etmək planları yoxdur (qismən yaratmamaq üçün
    paylama tərtibatçıları üçün problemlər, qismən köhnə quruluş sistemi səbəbindən
    yenidən daha sabit və daha qısa).
    Hər iki sistem Travis CI istifadə edərək davamlı olaraq sınaqdan keçirilir.

  • İstifadə edərkən konfiqurasiyalarda interfeys kodu təyin etmək imkanı əlavə edildi
    ümumi API. Əvvəllər API-lərin əksəriyyəti formada göstərilməli idi
    funksiyalar və ya funksiya makroları. İndi onlar ixtiyari formada göstərilə bilər
    @@{name} və ya sadəcə @@ kimi adlandırılmış şablon parametrləri olan sətirlər (əgər
    yalnız bir parametr var və qeyri-müəyyənlik yoxdur). API üslubu konfiqurasiya ilə müəyyən edilir
    re2c:api:style (funksiyaların dəyəri funksional üslubu, sərbəst forma isə ixtiyari üslubu müəyyən edir).

  • -c, --start-conditions variantının işləməsi təkmilləşərək, bir neçə şeyi birləşdirməyə imkan verir.
    bir re2c blokunda bir-birinə bağlı lekserlər. İndi istifadə edə bilərsiniz
    şərti olanlarla birlikdə müntəzəm blokları və bir neçə əlaqəsi olmayan şərti olanları göstərin
    blokları bir faylda.
    -r, --reuse variantının təkmilləşdirilmiş işləməsi (bir blokdan kodun təkrar istifadəsi
    digər bloklarda) -c, --start-conditions və -f, --storable-state variantları ilə birlikdə
    (hər hansı bir nöqtədə kəsilə bilən vəziyyətli lekser
    və sonra icraya davam edin).

  • Bu yaxınlarda əlavə edilmiş son daxiletmə alqoritmində səhv düzəldildi
    (EOF qaydası), bu da nadir hallarda səhv işləməyə səbəb olur
    üst-üstə düşən qaydalar.

  • Bootstrap prosesi sadələşdirilmişdir. Əvvəllər quruluş sistemi artıq dinamik olaraq tapmağa çalışdı
    özünü yenidən qurmaq üçün istifadə edilə bilən re2c quruluşu.
    Bu, yanlış asılılıqlarla nəticələndi (çünki asılılıq qrafiki
    ən çox qurma sistemlərinin bəyənmədiyi dinamik).
    İndi lekserləri yenidən qurmaq üçün açıq şəkildə etməlisiniz
    qurma sistemini konfiqurasiya edin və RE2C_FOR_BUILD dəyişənini təyin edin.

Bu buraxılışın hazırlanmasında iştirak edən hər kəsə təşəkkür edirik!

Mənbə: linux.org.ru

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