re2c 2.0

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

Shto një koment