Nhar it-Tnejn, 20 ta 'Lulju, ġie rilaxxat ir-rilaxx ta' re2c, ġeneratur ta 'analizzatur lessiku veloċi.
Bidliet ewlenin:
-
Appoġġ miżjud għall-lingwa Go
(attivata jew bl-għażla --lang go għal re2c, jew bħala programm re2go waħdu).
Id-dokumentazzjoni għal C u Go hija ġġenerata mill-istess test, iżda b'differenti
eżempji ta' kodiċi. Is-subsistema tal-ġenerazzjoni tal-kodiċi f're2c ġiet iddisinjata kompletament mill-ġdid, li
għandha tagħmilha aktar faċli li jiġu appoġġjati lingwi ġodda fil-futur. -
Miżjud sistema ta’ bini alternattiv fuq CMake (grazzi ligfx!)
Tentattivi biex jittraduċu re2c għal CMake saru għal żmien twil, iżda qabel ligfx ħadd
offriet soluzzjoni sħiħa.
Is-sistema tal-bini l-antika fuq Autotools tkompli tkun appoġġjata u użata,
u fil-futur prevedibbli m'hemm l-ebda pjanijiet biex tiġi abbandunata (parzjalment biex ma toħloqx
problemi għall-iżviluppaturi tad-distribuzzjoni, parzjalment minħabba s-sistema l-qadima tal-bini
aktar stabbli u konċiż mill-ġdid).
Iż-żewġ sistemi huma ugwalment ittestjati kontinwament bl-użu ta 'Travis CI. -
Miżjud il-kapaċità li tissettja l-kodiċi tal-interface f'konfigurazzjonijiet meta tuża
API ġeneriku (API ġeneriku). Preċedentement, il-biċċa l-kbira tal-APIs kellhom jiġu speċifikati fil-formola
funzjonijiet jew macros funzjoni. Issa jistgħu jiġu stabbiliti fil-forma ta 'arbitrarja
strings b'parametri tal-mudell imsemmija tal-forma @@{isem} jew biss @@ (jekk
hemm parametru wieħed biss u m'hemm l-ebda ambigwità). L-istil API huwa konfigurabbli
re2c:api:style (il-valur tal-funzjonijiet jispeċifika l-istil funzjonali, filwaqt li l-valur tal-forma ħielsa huwa arbitrarju). -
Operazzjoni mtejba tal-għażla -c, --start-conditions, li tippermettilek tgħaqqad diversi
lexers interkonnessi fi blokka waħda re2c. Issa tista 'tuża
blokki ordinarji fuq l-istess livell ta 'dawk kondizzjonali u stabbiliti diversi kondizzjonali mhux relatati
blokki f'fajl wieħed.
Għażliet imtejba -r, --reuse (użu mill-ġdid tal-kodiċi minn blokka waħda
fi blokki oħra) flimkien mal-għażliet -c, --start-conditions u -f, --storable-state
(lexer stateful li jista' jiġi interrott f'post arbitrarju
u tkompli l-eżekuzzjoni aktar tard). -
Iffissat bug fl-algoritmu miżjud ġdid għall-immaniġġjar tat-tmiem tad-dejta tal-input
(regola EOF), li f'każijiet rari wasslet għal ipproċessar mhux korrett
regoli li jikkoinċidu. -
Proċess ta' bootstrap simplifikat. Preċedentement, is-sistema tal-bini ppruvat dinamikament issib diġà
re2c mibni li jista’ jintuża biex jinbena mill-ġdid innifsu.
Dan wassal għal dipendenzi żbaljati (minħabba li l-graff tad-dipendenza rriżulta
dinamiku, li l-biċċa l-kbira tas-sistemi tal-bini ma jogħġbux).
Issa, sabiex jerġgħu jinbnew lexers, huwa meħtieġ b'mod espliċitu
kkonfigura s-sistema tal-bini u ssettja l-varjabbli RE2C_FOR_BUILD.
Grazzi lil kull min ta sehmu għal dan ir-rilaxx!
Sors: linux.org.ru