re2c 2.0

MÄndagen den 20 juli slÀpptes re2c - en generator för snabba lexikalanalysatorer.
Huvudsakliga förÀndringar:

  • Stöd för programmeringssprĂ„ket Go har lagts till.
    (aktiveras antingen med alternativet —lang go för re2c, eller som ett separat program re2go).
    Dokumentationen för C och Go genereras frÄn samma text, men med olika
    exempel pÄ kod. Den underliggande kodgenereringssystemet i re2c har helt
    omstrukturerats, vilket bör underlÀtta stödet för nya sprÄk i framtiden.

  • Ett alternativt byggsystem pĂ„ CMake har lagts till (tack ligfx!).


    Försök att översÀtta re2c till CMake har gjorts lÀnge, men ingen före ligfx har
    föreslagit en fullstÀndig lösning.
    Det gamla byggsystemet pÄ Autotools fortsÀtter att stödas och anvÀndas,
    och det finns inga planer pÄ att överge det i den nÀrmaste framtiden (delvis för att inte skapa
    problem för distributörsutvecklare, delvis för att det gamla byggsystemet
    Àr stabilare och mer koncist Àn det nya).
    BÄda systemen testas kontinuerligt med hjÀlp av Travis CI.
  • Möjligheten att ange grĂ€nssnittskod i konfigurationer har lagts till vid anvĂ€ndning av
    det generiska API:et. Tidigare var det mesta API:n tvunget att anges i form av
    funktioner eller funktionella makron. Nu kan de anges som godtyckliga
    strÀngar med namngivna mallparametrar av typen @@{name} eller helt enkelt @@ (om
    parametern Àr en och ingen tvetydighet uppstÄr). API-stilen anges av konfigurationen
    re2c:api:style (vÀrdet functions ger funktionell stil, medan free-form Àr godtycklig).

  • Funktionen för alternativet -c, —start-conditions har förbĂ€ttrats, vilket möjliggör sammanslagning av flera
    relaterade lexers i ett enda re2c-block. Nu kan vanliga block anvÀndas tillsammans med villkorliga och
    flera orelaterade villkorliga block anges i en och samma fil.
    Funktionen för alternativet -r, —reuse (Ă„teranvĂ€ndning av kod frĂ„n ett block
    i andra block) har förbĂ€ttrats i kombination med alternativen -c, —start-conditions och -f, —storable-state
    (lexer med bevarat tillstÄnd, som kan avbrytas pÄ valfri plats
    och fortsÀtta körningen senare).
    Ett fel i den nyligen tillagda algoritmen för att hantera slutet av indata

  • (EOF-regel) har Ă„tgĂ€rdats, vilket i sĂ€llsynta fall ledde till felaktig behandling
    av överlappande regler.
    Processen för bootstrapping har förenklats. Tidigare försökte byggsystemet dynamiskt hitta en redan

  • bygge re2c som kunde anvĂ€ndas för att Ă„terbygga sig sjĂ€lv.
    en sammanstÀlld re2c som kan anvÀndas för att ombygga sig sjÀlv.
    Det ledde till felaktiga beroenden (eftersom beroendegrafen blev
    dynamisk, vilket de flesta byggsystem ogillar).
    Nu krÀvs det att man explicit
    konfigurerar byggsystemet och sÀtter variabeln RE2C_FOR_BUILD.

Tack till alla som deltog i förberedelsen av denna version!

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