Gefa út re2c lexer rafall 2.0

fór fram sleppa re2c 2.0, ókeypis orðasafnsgreiningarrafall fyrir C og C++ tungumál. Re2c verkefnið var upphaflega búið til árið 1993 af Peter Bamboulis sem tilraunaframleiðandi af mjög hröðum orðafræðigreiningartækjum, aðgreindur frá öðrum rafalum með hraða myndaðs kóða og óvenjulega sveigjanlegu notendaviðmóti sem gerir greiningartækjum kleift að fella inn í núverandi. kóða grunn. Síðan þá hefur verkefnið verið þróað af samfélaginu og heldur áfram að vera vettvangur fyrir tilraunir og rannsóknir á sviði formlegrar málfræði og endanlegra ástandsvéla.

Helstu breytingar:

  • Bætti við stuðningi við Go tungumálið (virkjað annað hvort með „--lang go“ valkostinum fyrir re2c, eða sem sérstakt re2go forrit). Skjölin fyrir C og Go eru búin til úr sama texta, en með mismunandi kóðadæmum. Kóðaframleiðslu undirkerfið í re2c hefur verið algjörlega endurhannað, sem ætti að gera það auðveldara að styðja ný tungumál í framtíðinni.
  • Bætti við öðru byggingarkerfi fyrir CMake (takk ligfx!). Tilraunir til að þýða re2c yfir á CMake hafa verið gerðar í langan tíma, en þar til ligfx lagði enginn fram fullgilda lausn. Gamla Autotools byggingarkerfið er áfram stutt og notað og engin áform eru um að hætta því í fyrirsjáanlegri framtíð (að hluta til til að forðast vandamál fyrir dreifingaraðila, að hluta til vegna þess að gamla byggingarkerfið er stöðugra og hnitmiðaðra en það nýja. ). Bæði kerfin eru stöðugt prófuð með Travis CI.
  • Bætti við möguleikanum á að tilgreina viðmótskóða í stillingum þegar almenna API er notað. Áður þurfti að tilgreina flest API í formi aðgerða eða aðgerðafjölva. Nú er hægt að tilgreina þær í formi handahófskenndra strengja með nafngreindum sniðmátsbreytum af formi „@@{name}“ eða einfaldlega „@@“ (ef það er aðeins ein færibreyta og það er enginn tvíræðni). API stíllinn er stilltur af re2c:api:stílstillingunni (aðgerðagildið tilgreinir virknistílinn og frjálst form tilgreinir handahófskenndan stíl).
  • Rekstur “-c”, “—start-conditions” valmöguleikans hefur verið endurbætt, sem gerir þér kleift að sameina nokkra samtengda lexera í einni re2c blokk. Nú geturðu notað venjulegar blokkir ásamt skilyrtum og skilgreint nokkra óskylda skilyrta blokka í einni skrá. Bætt virkni "-r", "--endurnota" valmöguleikann (endurnota kóða úr einum blokk í öðrum blokkum) ásamt "-c", "--start-skilyrðum" og "-f", "-- geymsluaðstæður“ valkostir (stýrður lexer sem hægt er að rjúfa hvenær sem er og halda áfram keyrslu síðar).
  • Lagaði villu í nýlega bættu lokinntaks (EOF regla) reikniritinu, sem í mjög sjaldgæfum tilfellum leiddi til rangrar vinnslu reglna sem skarast.
  • Bootstrap ferlið hefur verið einfaldað. Áður reyndi byggingakerfið að finna þegar smíðaðan re2c sem hægt var að nota til að endurbyggja sig. Þetta leiddi til rangra ósjálfstæðna (vegna þess að ósjálfstæðisgrafið var kraftmikið, sem flestum byggingarkerfum líkar ekki við). Nú, til þess að endurbyggja lexers, þarftu að stilla uppbyggingarkerfið sérstaklega og stilla RE2C_FOR_BUILD breytuna.

Heimild: opennet.ru

Bæta við athugasemd