re2c 4.0

Tisdag den 19 november lanserades re2c – en generator för lexikalanalysatorer (Ă€ven kĂ€nd som kompilator för reguljĂ€ra uttryck till kod i mĂ„lsprĂ„ket). re2c specialiserar sig pĂ„ att generera snabba och lĂ€tt integrerade lexers. Det skiljer sig frĂ„n den mer kĂ€nda motsvarigheten flex med sitt flexibla grĂ€nssnitt, generering av optimerade tabellfria lexers och stöd för fĂ„ngster (submatch extraction) baserat pĂ„ deterministiska Ă€ndliga automater med taggar (TDFA). re2c anvĂ€nds i projekt dĂ€r hastighet Ă€r avgörande för lexern, till exempel i Ninja och PHP.

I version 4.0 har kodgenereringssystemet genomgĂ„tt en grundlig omarbetning, vilket har gjort det möjligt att lĂ€gga till stöd för Ă„tta nya sprĂ„k (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) utöver de redan stödda (C/C++, Go, Rust), samt ett gemensamt mekanism för att lĂ€gga till nya sprĂ„k via konfigurationsfiler. Kodgeneratorn ansvarar för översĂ€ttning av redan byggd och optimerad Ă€ndlig automat till kod, vilket innebĂ€r att dess uppgift Ă€r att vĂ€lja lĂ€mpliga styrkonstruktioner, datatyper, den allmĂ€nna programmets modell osv. Tidigare var all denna logik en del av re2c:s kĂ€lla, och för att Ă€ndra den eller lĂ€gga till ett nytt sprĂ„k var man tvungen att patcha kĂ€llkoden och kompilera om re2c. SĂ„dana patchar accepterades inte i huvudarkivet utan implementering av en standarduppsĂ€ttning exempel och tester, vilket ytterligare komplicerade hela processen. Nu har all denna logik flyttats till syntaxfiler – textbaserade konfigurationsfiler som kan tillhandahĂ„llas av anvĂ€ndaren (standardmĂ€ssigt anvĂ€nder re2c de vanliga). KĂ€llkoden för re2c Ă€r helt fri frĂ„n detaljer om specifika sprĂ„k och förlitar sig enbart pĂ„ syntaxfilen. AnvĂ€ndaren kan delvis Ă„sidosĂ€tta en befintlig syntaxfil eller skriva en ny frĂ„n grunden. För alla officiellt stödda sprĂ„k finns det fullstĂ€ndig dokumentation med exempel.

För övrigt kom idén till syntaxfiler frÄn en kommentar pÄ LOR, tack för det re2c 4.0the_coder.

Denna version inkluderar mÄnga andra förÀndringar för att förenkla anvÀndargrÀnssnittet, förbÀttra arbetet med fÄngande grupper (capturing groups), och en online-miljö för redigering och kompilering av exempel har ocksÄ lagts till: http://re2c.org/playground.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster