re2c 4.0

Teisipäeval, 19. novembril, esitleti väljaanne re2c – leksikaaniliste analüsaatorite generaator (mis on sama mis regulaaravaldiste kompilaator sihikeeles). re2c spetsialiseerub kiirete ja hõlpsasti integreeritavate leksersite genereerimisele. See erineb tuntud analoogist flex paindliku liidese, optimeeritud mitte-tabelite leksersite genereerimise ning submatch extraction toetamise poolest, mis põhineb tähistatud deterministlikel lõppautomaatidel.TDFA). re2c-d kasutatakse projektides, kus on oluline leksika kiirus, näiteks Ninja ja PHP.

Versioonis 4.0 on kodeerimise generaatori alamsüsteem radikaalselt ümber tehtud, mis on võimaldanud lisada toetuse kaheksale uuele keelele (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) lisaks juba toetatud (C/C++, Go, Rust) keelele ning võimaldab üldise mehhanismi uute keelte lisamiseks konfiguratsioonifailide kaudu. Koodigeneraator vastutab juba konstrueeritud ja optimeeritud lõppautomaatide kodeerimise eest, kuna selle ülesanne on valida sihikeelele sobivad juhtimisstruktuurid, andmetüübid, programmi üldine mudel jne. Varasemalt oli kogu see loogika osa re2c lähtekoodist ning selle muutmiseks või uue keele lisamiseks tuli lähemalt muuta lähtekoodi ja rekonfigureerida re2c. Taolisi patše ei aktsepteeritud põhirepositooriumis ilma standardsete näidiste ja testide implementatsioonita, mis keeruliseks muutis kogu protsessi. Nüüd on kogu see loogika kantud süntaksifailidesse – tekstifailidesse, mida kasutaja saab esitada (vaikimisi kasutab re2c standardseid). re2c lähtekood on täielikult vaba konkreetse keele detailidest ja toetub üksnes süntaktilisele failile. Kasutaja võib osaliselt üle kirjutada olemasoleva süntaktilise faili või kirjutada uue nullist. Kõigile ametlikult toetatud keelte jaoks on olemas täielik dokumentatsioon koos näidistega.

Muide, süntaksifailide idee pärineb ühe kommentaari tõttu LOR-is, mille eest suur tänu re2c 4.0the_coder.

Väljalaske on sisse viidud palju muid muudatusi kasutajaliidese lihtsustamiseks, haaravate gruppide (capturing groups) töö parandamiseks ja lisatud on veebikeskkond näidiste redigeerimiseks ja kompileerimiseks: http://re2c.org/playground.

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster