re2c 2.0

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.

  • En alternativ byggesystem pĂ„ CMake er lagt til (takk ligfx!).


    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

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster