re2c 4.0

TeisipĂ€eval, 19. novembril esitleti vĂ€ljalaset re2c – leksikaalsete analĂŒsaatorite generaator (ka regulaaravaldiste kompilaator sihtkeele programmikoodiks). re2c keskendub kiirete ja hĂ”lpsasti sisestatavate leksikonite genereerimisele. See erineb tuntumast analoogist flex paindliku liidese, optimeeritud mitte-tabelarvutuste leksikonite genereerimise ja deterministlike lĂ”ppautomaatide (DAF) baasil toimuva alamosade (submatch extraction) toe tĂ”ttu (TDFA). re2c-d kasutatakse projektides, kus on oluline leksikoni töökiirus, nĂ€iteks Ninja ja PHP.

Versioonis 4.0 on koodigeneratsiooni alamsĂŒsteem olulisel mÀÀral ĂŒmber kujundatud, mis vĂ”imaldas lisada toetuse kaheksale uuele keelele (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) koos juba toetatud keeltega (C/C++, Go, Rust), samuti ĂŒldise mehhanismi uute keelte lisamiseks konfiguratsioonifailide kaudu. Koodigeneratsioon vastutab juba ĂŒlesehitatud ja optimeeritud lĂ”ppautomaatide tĂ”lkimise eest koodi, st selle ĂŒlesanne on valida sihtkeele jaoks sobivad juhtimisstruktuurid, andmetĂŒĂŒbid, programmi ĂŒldine mudel jne. Varem kuulus kogu see loogika re2c algkoodi osaks, ja selle muutmiseks vĂ”i uue keele lisamiseks tuli algkoodi patchida ja re2c uuesti ĂŒles ehitada. Sellised patĆĄid ei olnud peamises hoidlas aktsepteeritud ilma standardkomplekti nĂ€idete ja testide rakendamiseta, mis veelgi keerulisemaks muutsid kogu protsessi. NĂŒĂŒd on kogu see loogika viidud sĂŒntaksifailidesse – tekstipĂ”hised konfiguratsioonifailid, mida vĂ”ib esitada kasutaja (omaette re2c kasutab standardseid). re2c algkood on tĂ€ielikult vaba konkreetse keele detailidest ja toetub ainult sĂŒntaksifailile. Kasutaja vĂ”ib osaliselt ĂŒle kirjutada olemasoleva sĂŒntaksifaili vĂ”i kirjutada uue nullist. KĂ”igi ametlikult toetatud keelte jaoks on tĂ€ielik dokumentatsioon nĂ€idetega.

Muide, sĂŒntaksifailide idee tekkis tĂ€nu ĂŒhele kommentaarile LOR-is, mille eest aitĂ€h re2c 4.0the_coder.

VÀljalaskesse on lisatud palju muid muudatusi, et lihtsustada kasutajaliidest, parandada töötlust kÔnelemisgruppide (capturing groups) osas, samuti on lisatud veebi keskkond nÀidete redigeerimiseks ja kompileerimiseks: http://re2c.org/playground.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster