re2c 2.0

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

Aldoni komenton