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