re2c 2.0

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

Żid kumment