Lunde, la 20-an de julio, re2c, rapida leksika analizilo-generatoro, estis publikigita.
Ĉefaj ŝanĝoj:
-
Aldonita Go-lingva subteno
(aktivigita aŭ per la opcio --lang go por re2c, aŭ kiel aparta programo re2go).
Dokumentado por C kaj Go estas generita el la sama teksto, sed kun malsama
kodaj ekzemploj. La koda genera subsistemo en re2c estis tute restrukturita, kio
devus faciligi la subtenon de novaj lingvoj estontece. -
Aldonita alternativa konstrusistemo sur CMake (dankon ligfx!).
Provoj traduki re2c al CMake estis faritaj delonge, sed antaŭ ligfx neniu
proponis kompletan solvon.
La malnova konstrusistemo sur Autotools daŭre estas subtenata kaj uzata,
kaj en antaŭvidebla estonteco ne estas planoj forlasi ĝin (parte por ne krei
problemoj por distribuaj programistoj, parte pro la malnova konstrusistemo
pli stabila kaj pli konciza ol la nova).
Ambaŭ sistemoj estas kontinue testitaj uzante Travis CI. -
Aldonita la kapablo agordi interfacokodon en agordoj kiam vi uzas
senmarka API. Antaŭe, plej multaj API-oj devis esti specifitaj en la formo
funkcioj aŭ funkciaj makrooj. Nun ili povas esti specifitaj en la formo de arbitra
linioj kun nomitaj ŝablonaj parametroj kiel @@{nomo} aŭ nur @@ (se
estas nur unu parametro kaj ne estas ambigueco). La API-stilo estas specifita de la agordo
re2c:api:style (la valoro de funkcioj specifas funkcian stilon, kaj libera formo precizigas arbitran stilon). -
La funkciado de la opcio -c, --start-conditions estis plibonigita, permesante al vi kombini plurajn
interligitaj lekseriloj en unu re2c-bloko. Nun vi povas uzi
regulaj blokoj kune kun kondiĉaj kaj specifu plurajn senrilatajn kondiĉajn
blokoj en unu dosiero.
Plibonigita funkciado de la opcio -r, --reuse (reuzo de kodo el unu bloko
en aliaj blokoj) en kombinaĵo kun la -c, --start-conditions kaj -f, --storable-state opcioj
(ŝtata leksilo kiu povas esti interrompita ĉe iu punkto
kaj daŭrigu la ekzekuton poste). -
Korektis cimon en la lastatempe aldonita fino de eniga algoritmo
(EOF-regulo), kiu en maloftaj kazoj kondukis al malĝusta pretigo
interkovrantaj reguloj. -
La bootstrap procezo estis simpligita. Antaŭe, la konstrusistemo jam provis dinamike trovi
re2c-konstruaĵo kiu povus esti uzata por rekonstrui sin.
Tio rezultigis malĝustajn dependecojn (ĉar la dependeca grafeo estis
dinamika, kiun la plej multaj konstrusistemoj ne ŝatas).
Nun, por rekonstrui lektorojn, vi devas eksplicite
agordu la konstrusistemon kaj agordu la variablon RE2C_FOR_BUILD.
Dankon al ĉiuj, kiuj partoprenis en la preparado de ĉi tiu eldono!
fonto: linux.org.ru