Gefa út re2c lexer rafall 1.2

fór fram sleppa re2c, ókeypis orðasafnsgreiningarrafall fyrir C og C++ tungumál. Mundu að re2c var skrifað árið 1993 af Peter Bambulis sem tilraunaframleiðandi mjög hraðvirkra orðasafnsgreiningartækja, ólíkt öðrum rafala í hraða kóðans sem myndast og óvenjulega sveigjanlegt notendaviðmót sem gerir greiningartækjum kleift að samþætta auðveldlega og skilvirkan kóða í núverandi kóða. grunn. Síðan þá hefur verkefnið verið þróað af samfélaginu og heldur áfram að vera vettvangur fyrir tilraunir og rannsóknir á sviði formlegrar málfræði og endanlegra ástandsvéla.

Undirbúningur útgáfunnar tók næstum heilt ár. Mestur tíminn fór eins og alltaf í að þróa fræðilegan ramma og skrifa
greinar "Skilvirk POSIX undirleiksútdráttur á NFA".
Reikniritin sem lýst er í greininni eru útfærð í tilraunasafninu libre2c
(Smíði bókasafnið og frammistöðupróf er sjálfgefið óvirkt og er virkt með stillingarvalkostinum „—enable-libs“). Bókasafnið er ekki hugsað sem keppinautur við núverandi verkefni eins og RE2, heldur sem rannsóknarvettvangur fyrir þróun nýrra.
reiknirit (sem síðan er hægt að nota í re2c eða í öðrum verkefnum). Það er líka þægilegt frá sjónarhóli prófana, mælinga á frammistöðu og búa til bindingar við önnur tungumál.

Helstu nýjungar í útgáfu re2c 1.2:

  • Bætt við nýrri einfaldaðri aðferð til að athuga lok inntaksgagna ("EOF regla"). Fyrir þetta hefur „re2c:eof“ stillingunni verið bætt við,
    gerir þér kleift að velja tengistafinn,
    og sérregla “$”, sem kviknar ef lexer
    tókst að ná í lok inntaksgagna.
    Sögulega séð gefur re2c val um nokkrar sannprófunaraðferðir fyrir
    enda á aðföngum með mismunandi takmörkunum, skilvirkni og einfaldleika
    umsóknir. Nýja aðferðin er hönnuð til að einfalda ritun kóða, á meðan
    á sama tíma og þau eru áhrifarík og gilda víða. Gamlar leiðir
    virkar enn og gæti verið valinn í sumum tilfellum.

  • Bætti við möguleikanum á að innihalda utanaðkomandi skrár með tilskipun
    "/*!include:re2c "file.re" */", þar sem "file.re" er nafn skráarinnar sem á að hafa með. Re2c leitar að skrám í skráasafninu þar á meðal,
    sem og í listanum yfir slóðir sem tilgreindar eru með „-I“ valkostinum.
    Meðfylgjandi skrár geta innihaldið aðrar skrár.
    Re2c býður upp á "staðlaðar" skrár í "include/" möppunni
    verkefni - þar er gert ráð fyrir að gagnlegar skilgreiningar safnist fyrir
    regluleg tjáning, eitthvað eins og venjulegt bókasafn.
    Hingað til, að beiðni starfsmanna, hefur einni skrá með skilgreiningum á Unicode flokkum verið bætt við.

  • Bætti við möguleikanum á að búa til hausskrár með handahófskenndum
    efni með því að nota "-t --type-header" valkostina (eða viðeigandi
    stillingar) og nýjar tilskipanir "/*!header:re2c:on*/" og
    "/*!haus:re2c:off*/". Þetta getur verið gagnlegt í þeim tilvikum þar sem
    þegar re2c þarf að búa til skilgreiningar á breytum, mannvirkjum og fjölvi,
    notað í öðrum þýðingareiningum.

  • Re2c skilur nú UTF8 bókstafi og stafaflokka í reglulegum tjáningum.
    Sjálfgefið er að re2c flokkar tjáningar eins og "∀x ∃y" sem
    röð af 1-bita ASCII stöfum „e2 88 80 78 20 e2 88 83 79“
    (sexkóðar), og notendur verða að flýja Unicode stafi handvirkt:
    "\u2200x \\u2203y." Þetta er mjög óþægilegt og óvænt fyrir marga
    notendur (eins og sést af stöðugum villuskýrslum). Svo núna
    re2c býður upp á valkostinn "--inntakskóðun {ascii | utf8}",
    sem gerir þér kleift að breyta hegðuninni og flokka „∀x ∃y“ sem
    "2200 78 20 2203 79."

  • Re2c leyfir nú að nota venjulegar re2c blokkir í "-r --reuse" ham.
    Þetta er þægilegt ef inntaksskráin inniheldur marga kubba og aðeins nokkrar þeirra
    þarf að endurnýta.

  • Nú geturðu stillt snið viðvarana og villuboða
    nota nýja valkostinn "--staðsetningarsnið {gnu | msvc}". GNU snið birtist
    sem "skráarnafn:lína:dálkur:", og MSVC sniðið sem "skráarnafn(lína,dálkur)".
    Þessi eiginleiki gæti verið gagnlegur fyrir IDE unnendur.
    Einnig hefur verið bætt við valmöguleika "--orðtaks", sem sýnir stutt sigurskilaboð ef vel tekst til.

  • „Samhæfi“ stillingin við flex hefur verið endurbætt - nokkrar þáttunarvillur hafa verið lagaðar og
    rangur forgangur rekstraraðila í einstaka tilfellum.
    Sögulega séð gerði "-F --flex-support" valmöguleikann þér kleift að skrifa kóða
    blandað í flex stíl og re2c stíl, sem gerir þáttun svolítið erfið.
    Flex samhæfni háttur er sjaldan notaður í nýjum kóða,
    en re2c heldur áfram að styðja það fyrir afturábak eindrægni.

  • Stafaflokksfrádráttaroperator "/" á nú við
    áður en kóðunin er stækkuð, sem gerir kleift að nota hana í fleiri tilfellum,
    ef kóðun með breytilegri stafalengd er notuð (til dæmis UTF8).

  • Úttaksskráin er nú búin til atómfræðilega: re2c býr til bráðabirgðaskrá fyrst
    og skrifar niðurstöðuna inn í það og endurnefnir síðan bráðabirgðaskrána í úttakið
    eina aðgerð.

  • Skjölunum var lokið og endurskrifað; einkum bættust nýir við
    kafla um http://re2c.org/manual/manual.html#buffer-refilling заполнение буфера
    и um leiðir til að kanna lok inntaksgagna.
    Nýju skjölunum er safnað á forminu
    yfirgripsmikil handbók á einni síðu
    með dæmum (sömu heimildir eru birtar á manpage og í netskjölunum).
    Lélegar tilraunir hafa verið gerðar til að bæta læsileika síðunnar í símum.

  • Frá sjónarhóli þróunaraðila hefur re2c eignast fullkomnara undirkerfi
    villuleit Villuleitarkóði er nú óvirkur í útgáfusmíðum og
    hægt að virkja með því að nota stillingarvalkostinn "--enable-debug".

Heimild: opennet.ru

Bæta við athugasemd