Mandag 20. juli ble releasen av re2c â generatoren for raske leksikalske analysatorer.
Hovedendringer:
StÞtte for Go-sprÄket er lagt til
(aktiveres enten med alternativet âlang go for re2c, eller som et eget program re2go).
Dokumentasjonen for C og Go genereres fra samme tekst, men med forskjellige
kodeeksempler. Undersystemet for kodegenerering i re2c er fullstendig omarbeidet, noe som
skal gjÞre det lettere Ä stÞtte nye sprÄk i fremtiden.-
ForsÞk pÄ Ä oversette re2c til CMake har blitt gjort i lang tid, men fÞr ligfx var det ingen
som foreslo en fullverdig lĂžsning.
Det gamle byggesystemet pÄ Autotools fortsetter Ä bli stÞttet og brukt,
og det er ingen planer om Ä avvikle det i overskuelig framtid (delvis for Ä unngÄ Ä skape
problemer for distributĂžrer, og delvis fordi det gamle byggesystemet
er mer stabilt og konsist enn det nye).
Begge systemer blir kontinuerlig testet med Travis CI. Muligheten til Ă„ spesifisere grensesnittkode i konfigurasjoner ved bruk av
generisk API (generic API) er lagt til. Tidligere mÄtte de fleste API-ene spesifiseres
som funksjoner eller funksjonelle makroer. NÄ kan de spesifiseres som vilkÄrlige
strenger med navngitte malparametere av typen @@{name} eller bare @@ (hvis
parameteren er én og det ikke oppstÄr tvetydighet). API-stilen spesifiseres i konfigurasjonen
re2c:api:style (verdien functions spesifiserer funksjonell stil, mens free-form â vilkĂ„rlig).Funksjonen til alternativet -c, âstart-conditions, som gjĂžr det mulig Ă„ kombinere flere
sammanhengende leksere i en re2c-blokk, er forbedret. NĂ„ kan man bruke
vanlige blokker pÄ lik linje med betingede og spesifisere flere ikke-relaterte betingede
blokker i én fil.
Funksjonen til alternativet -r, âreuse (gjenbruk av kode fra Ă©n blokk
i andre blokker) i kombinasjon med alternativene -c, âstart-conditions og -f, âstorable-state
(lexer med lagret tilstand, som kan avbrytes pÄ hvilket som helst tidspunkt
og fortsette senere).En feil i den nylig tilfÞrte algoritmen for hÄndtering av slutten av inngangsdata
(EOF-rule), som i sjeldne tilfeller fĂžrte til feilaktig behandling av
overlappende regler, ble rettet.Prosessen for bootstrap er forenklet. Tidligere prĂžvde byggesystemet dynamisk Ă„ finne en allerede
bygget re2c som kunne brukes til Ä bygge seg selv pÄ nytt.
Dette fĂžrte til feil avhengigheter (ettersom avhengighetsgrafen ble
dynamisk, noe som de fleste byglesystemer ikke liker).
NÄ, for Ä bygge leksere pÄ nytt, mÄ man eksplisitt
konfigurere byglesystemet og sette variabelen RE2C_FOR_BUILD.
Takk til alle som bidro til forberedelsen av denne utgivelsen!
Kilde: linux.org.ru
