Të hënën, më 20 korrik, u lëshua re2c, një gjenerues i shpejtë i analizuesit leksikor.
Ndryshimet kryesore:
-
U shtua mbështetje për gjuhën Go
(aktivizuar ose nga opsioni --lang go për re2c, ose si një program i veçantë re2go).
Dokumentacioni për C dhe Go krijohet nga i njëjti tekst, por me të ndryshëm
shembuj kodesh. Nënsistemi i gjenerimit të kodit në re2c është ridizajnuar plotësisht, gjë që
duhet ta bëjë më të lehtë mbështetjen e gjuhëve të reja në të ardhmen. -
U shtua një sistem ndërtimi alternativ për CMake (faleminderit ligfx!).
Përpjekjet për të transferuar re2c në CMake janë bërë për një kohë të gjatë, por para ligfx askush
ofroi një zgjidhje të plotë.
Sistemi i vjetër i ndërtimit në Autotools vazhdon të mbështetet dhe përdoret,
dhe në të ardhmen e parashikueshme nuk ka plane për ta braktisur atë (pjesërisht për të mos krijuar
probleme për zhvilluesit e shpërndarjes, pjesërisht për shkak të sistemit të vjetër të ndërtimit
më e qëndrueshme dhe më koncize se e reja).
Të dy sistemet testohen vazhdimisht duke përdorur Travis CI. -
U shtua aftësia për të vendosur kodin e ndërfaqes në konfigurime gjatë përdorimit
API gjenerike. Më parë, shumica e API-ve duhej të specifikoheshin në formular
funksionet ose makro funksionet. Tani ato mund të specifikohen në formën arbitrare
linjat me parametra të emërtuar të shabllonit si @@{name} ose thjesht @@ (nëse
ka vetëm një parametër dhe nuk ka paqartësi). Stili API specifikohet nga konfigurimi
re2c:api:style (vlera e funksioneve specifikon një stil funksional dhe forma e lirë specifikon një stil arbitrar). -
Funksionimi i opsionit -c, --start-conditions është përmirësuar, duke ju lejuar të kombinoni disa
lexers të ndërlidhur në një bllok re2c. Tani mund të përdorni
blloqe të rregullta së bashku me ato të kushtëzuara dhe të specifikoni disa të kushtëzuara të palidhura
blloqe në një skedar.
Përmirësimi i funksionimit të opsionit -r, --reuse (ripërdorimi i kodit nga një bllok
në blloqe të tjera) në kombinim me opsionet -c, --start-conditions dhe -f, --storable-state
(një leksor shtetëror që mund të ndërpritet në çdo moment
dhe vazhdoni ekzekutimin më vonë). -
Rregulloi një defekt në algoritmin e fundit të hyrjes së shtuar së fundi
(rregulli EOF), i cili në raste të rralla çoi në përpunim të gabuar
rregullat e mbivendosjes. -
Procesi i bootstrap është thjeshtuar. Më parë, sistemi i ndërtimit u përpoq të gjente tashmë në mënyrë dinamike
një ndërtim re2c që mund të përdoret për të rindërtuar veten.
Kjo rezultoi në varësi të pasakta (pasi ishte grafiku i varësisë
dinamike, gjë që shumica e sistemeve të ndërtimit nuk e pëlqejnë).
Tani, për të rindërtuar lexers, ju duhet në mënyrë eksplicite
konfiguroni sistemin e ndërtimit dhe vendosni ndryshoren RE2C_FOR_BUILD.
Faleminderit të gjithëve që morën pjesë në përgatitjen e këtij publikimi!
Burimi: linux.org.ru