re2c 4.0

Tirsdag den 19. november blev der præsenteret en udgivelse re2c – af en generator til leksikalske analyser (også kaldet en kompilator, der omdanner regulære udtryk til kode i det ønskede programmeringssprog). re2c specialiserer sig i at generere hurtige og nemt integrerbare leksere. Den adskiller sig fra den mere kendte pendant flex ved at have et fleksibelt interface, generering af optimerede ikke-tabel-baserede leksere og understøttelse af submatch extraction baseret på determinerede finite automater med tags (TDFA). re2c bruges i projekter, hvor hastighed på leksere er vigtig, som f.eks. i Ninja og PHP.

I version 4.0 blev kodeterminering under den genereringsproces fundamentally redesignet, hvilket gjorde det muligt at tilføje støtte til otte nye sprog (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) udover de allerede understøttede (C/C++, Go, Rust), samt et generelt mekanisme for at tilføje nye sprog gennem konfigurationsfiler. Kodegeneratoren er ansvarlig for at oversætte den allerede opbyggede og optimerede endelige automat til kode, hvilket betyder, at dens opgave er at vælge de passende kontrolstrukturer, datatyper, den generelle programmodel osv. til det ønskede sprog. Tidligere var al denne logik en del af re2c's kildekode, og for at ændre den eller tilføje et nyt sprog skulle man patch'e kildekoden og genkompilere re2c. Sådanne patches blev ikke accepteret i hovedrepositoryet uden implementering af et standard sæt eksempler og tests, hvilket yderligere besværliggjorde hele processen. Nu er al denne logik overført til syntaksfiler – tekstbaserede konfigurationsfiler, som brugeren kan levere (som standard bruger re2c de standardfiler). Kildekoden til re2c er helt fri for detaljer om særlige sprog og dependerer udelukkende på syntaksfilen. Brugeren kan delvist overskrive en eksisterende syntaksfil eller skrive en ny fra bunden. For alle officielt understøttede sprog findes der fuld dokumentation med eksempler.

For øvrigt blev ideen om syntaksfiler inspireret af en kommentar på LOR, mange tak til re2c 4.0the_coder.

Udgivelsen indeholder mange andre ændringer til forenkling af brugergrænsefladen, forbedring af arbejdet med fangstgrupper (capturing groups), og der er også tilføjet et online miljø til redigering og kompilering af eksempler: http://re2c.org/playground.

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster