Pirmdien, 20. jūlijā, tika izlaists re2c, ātrs leksiskā analizatora ģenerators.
Galvenās izmaiņas:
-
Pievienots Go valodas atbalsts
(iespējo vai nu ar --lang go opciju re2c, vai kā atsevišķu re2go programmu).
C un Go dokumentācija tiek ģenerēta no viena un tā paša teksta, bet ar atšķirīgu
kodu piemēri. Kodu ģenerēšanas apakšsistēma programmā re2c ir pilnībā pārveidota, kas
vajadzētu atvieglot jaunu valodu atbalstu nākotnē. -
Pievienota alternatīva CMake veidošanas sistēma (paldies ligfx!).
Mēģinājumi tulkot re2c uz CMake ir veikti jau sen, bet pirms ligfx neviens
piedāvāja pilnīgu risinājumu.
Autotools vecā būvēšanas sistēma joprojām tiek atbalstīta un izmantota,
un pārskatāmā nākotnē nav plānots no tā atteikties (daļēji, lai neradītu
problēmas izplatīšanas izstrādātājiem, daļēji tāpēc, ka vecā būvēšanas sistēma
stabilāks un kodolīgāks par jauno).
Abas sistēmas tiek nepārtraukti pārbaudītas, izmantojot Travis CI. -
Pievienota iespēja iestatīt interfeisa kodu konfigurācijās lietošanas laikā
vispārīga API. Iepriekš lielākā daļa API bija jānorāda veidlapā
funkcijas vai funkciju makro. Tagad tos var norādīt patvaļīgi
rindas ar nosauktiem veidnes parametriem, piemēram, @@{name} vai vienkārši @@ (ja
ir tikai viens parametrs un nav nekādu neskaidrību). API stilu nosaka konfigurācija
re2c:api:style (funkciju vērtība norāda funkcionālo stilu, un brīvā forma norāda patvaļīgu stilu). -
Opcijas -c, --start-conditions darbība ir uzlabota, ļaujot apvienot vairākas
savstarpēji savienoti lekseri vienā re2c blokā. Tagad jūs varat izmantot
parastos blokus kopā ar nosacījuma blokiem un norādiet vairākus nesaistītus nosacījumus
bloki vienā failā.
Uzlabota opcijas -r, --reuse darbība (atkārtota koda izmantošana no viena bloka
citos blokos) kombinācijā ar opcijām -c, --start-conditions un -f, --storable-state
(stāvoklis, ko var pārtraukt jebkurā brīdī
un turpināt izpildi vēlāk). -
Novērsta kļūda nesen pievienotajā ievades beigu algoritmā
(EOF noteikums), kas retos gadījumos izraisīja nepareizu apstrādi
noteikumi, kas pārklājas. -
Bootstrap process ir vienkāršots. Iepriekš būvēšanas sistēma jau mēģināja dinamiski atrast
re2c būvējums, ko varētu izmantot, lai atjaunotu sevi.
Tā rezultātā radās nepareizas atkarības (jo atkarības grafiks bija
dinamisks, kas nepatīk lielākajai daļai būvēšanas sistēmu).
Tagad, lai atjaunotu lekserus, jums tas ir skaidri jādara
konfigurējiet būvēšanas sistēmu un iestatiet mainīgo RE2C_FOR_BUILD.
Paldies visiem, kas piedalījās šī izdevuma sagatavošanā!
Avots: linux.org.ru