re2c 1.2

MĂ« 2 gusht, tĂ« premten, u publikua versioni i ri i re2c — njĂ« gjenerues i lirĂ« pĂ«r analizatorĂ« leksikĂ« pĂ«r gjuhĂ«t C dhe C++. KujtojmĂ« se re2c Ă«shtĂ« shkruar nĂ« vitin 1993 nga Peter Bambulis si njĂ« gjenerues eksperimental i analizatorĂ«ve leksikĂ« shumĂ« tĂ« shpejtĂ«, i cili Ă«shtĂ« ndryshe nga gjeneruesit e tjerĂ« pĂ«r shpejtĂ«sinĂ« e kodit tĂ« gjeneruar dhe ndĂ«rfaqen e pazakontĂ« fleksibile tĂ« pĂ«rdoruesit, e cila lejon integrimin e lehtĂ« dhe efektiv tĂ« analizatorĂ«ve nĂ« njĂ« bazĂ« tĂ« kodit ekzistuese. QĂ« nga atĂ«herĂ«, projekti Ă«shtĂ« zhvilluar nga comuniteti dhe vazhdon tĂ« mbetet njĂ« platformĂ« pĂ«r eksperimentim dhe kĂ«rkime nĂ« fushĂ«n e gramatikave formale dhe automatĂ«ve tĂ« fundĂ«m.

Kryesorët novatorë në versionin 1.2:

  • NjĂ« mĂ«nyrĂ« e re (e thjeshtuar) pĂ«r tĂ« kontrolluar pĂ«r fundin e tĂ« dhĂ«nave hyrĂ«se
    (angl. «EOF rule»).
    Për këtë, është shtuar konfigurimi re2c:eof,
    duke lejuar zgjedhjen e simbolit terminal,
    dhe një rregull të veçantë $, i cili aktivizohet nëse leksari
    arrin me sukses fundin e të dhënave të hyrjes.
    Historikisht, re2c ofron disa mënyra për të kontrolluar
    fundin e të dhënave të hyrjes, që variojnë në shkallë, efikasitet dhe thjeshtësi
    në aplikimin e tyre. Mënyra e re synon të thjeshtësojë shkruan e kodit, ndërkohë
    që të mbetet efikase dhe e përdorshme gjerësisht. Mënyrat e vjetra
    ende funksionojnë dhe mund të jenë të preferuara në raste të veçanta.

  • Shtuar mundĂ«sinĂ« e pĂ«rfshirjes sĂ« skedarĂ«ve tĂ« jashtĂ«m me anĂ« tĂ« direktivĂ«s
    /*!include:re2c "file.re" */, гЎД file.re
    është emri i skedarit të përfshirë. Re2c kërkon skedarët në drejtorinë e skedarit të përfshirë,
    si dhe në listën e rrugëve të caktuara me opsionin -I.
    Skedarët e përfshirë mund të përfshijnë skedarë të tjerë.
    Re2c ofron skedarë «standard» në drejtorinë include/
    tĂ« projektit — supozohet se aty do tĂ« akumulohen definita tĂ« dobishme
    të shprehjeve të rregullta, diçka si biblioteka standarde.
    Derisa, për kërkesat e përdoruesve, është shtuar një skedar me definita të kategorive Unicode.

  • Shtuar mundĂ«sinĂ« pĂ«r tĂ« gjeneruar skedarĂ« titujsh me pĂ«rmbajtje tĂ« rastĂ«sishme
    pĂ«rmbajtje me ndihmĂ«n e opsioneve -t —type-header (ose pĂ«rkatĂ«se
    konfiguracione) dhe direktivat e reja /*!header:re2c:on*/ dhe
    /*!header:re2c:off*/. Đ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐżĐŸĐ»Đ”Đ·ĐœĐŸ ĐČ ŃĐ»ŃƒŃ‡Đ°ŃŃ…,
    re2c duhet të gjenerojë definita për variabla, struktura dhe makros që
    përdoren në njësi të tjera të përkthimit.

  • Re2c tani kupton UTF8-literalĂ«t dhe klasat e simboleve nĂ« shprehjet e rregullta.
    PĂ«r default, re2c analizohen shprehje tĂ« tilla si "∀x ∃y" si.
    sekuencë e karaktereve 1-bit ASCII e2 88 80 78 20 e2 88 83 79
    (kodet hex), dhe përdoruesit janë të detyruar të mbulojnë simbolet Unicode manualisht:
    "u2200x u2203y". Kjo është shumë e pakëndshme dhe e papritur për shumë
    përdorues (siç dëshmojnë raportet e vazhdueshme për gabime). Prandaj tani
    re2c ofron opsionin —input-encoding ,
    i cili lejon ndryshimin e sjelljes dhe analizĂ«n e "∀x ∃y" si
    2200 78 20 2203 79.

  • Re2c tani lejon pĂ«rdorimin e blloqeve standarde re2c nĂ« modin -r —reuse.
    Kjo është e dobishme nëse skedari i hyrjes përmban shumë blloqe, dhe vetëm një pjesë e tyre
    ka nevojë për ripërdorim.

  • Tanime Ă«shtĂ« e mundur tĂ« caktoni formatin e paralajmĂ«rimeve dhe mesazheve tĂ« gabimeve
    me opsionin e ri —location-format . Formati GNU paraqitet
    si filename:line:column:, ndërsa formati MSVC si filename(line,column).
    Ky opsion mund të jetë i dobishëm për adhuruesit e IDE.
    Gjithashtu Ă«shtĂ« shtuar opsioni —verbose, i cili tregon njĂ« mesazh tĂ« shkurtĂ«r suksesi nĂ« rast suksesit.

  • Rekuperuar Ă«shtĂ« pĂ«rmirĂ«suar modu ‘kompatibiliteti’ me flex — janĂ« rregulluar disa gabime tĂ« analizĂ«s dhe
    prioriteti i gabuar i operatorëve në raste të rralla janë rregulluar.
    Historikisht opsioni -F —flex-support lejon tĂ« shkruash kod
    e kombinuar në stilin flex dhe në stilin re2c, e cila disi e komplikon analizën sintaksore.
    Mjeti i kompatibilitetit me flex përdoret rrallë në kodin e ri,
    por re2c e vazhdon ta mbështesë atë për të siguruar kompatibilitet mbrapsht.

  • Operatori i zbritjes sĂ« klasave simbolike / tani aplikohet
    deri në shpalosjen e kodimit, duke lejuar që të përdoret në më shumë raste,
    nëse përdoret kodimi me gjatësi variabël simboli (p.sh., UTF8).

  • Skedari dalĂ«s tani krijohet nĂ« mĂ«nyrĂ« atomike: re2c fillimisht krijon njĂ« skedar pĂ«rkohĂ«sisht
    dhe shkruan rezultatin në të, pastaj rinominon skedarin përkohësisht në skedarin dalës
    me një operacion.

  • Dokumentacioni Ă«shtĂ« shkruar dhe rishkruar; veçanĂ«risht, janĂ« shtuar kapituj tĂ« rinj
    kapitujt për mbushjen e buffer-it
    dhe për metodat e verifikimit në fund të të dhënave hyrëse..
    Dokumentacioni i ri është mbledhur në një formë
    manuali përmbledhës të një faqeje
    me shembuj (të njëjtat burime fillestare paraqiten në manpage dhe në dokumentacionin online).
    Janë bërë përpjekje të dobëta për të përmirësuar lexueshmërinë e faqes në celular.

  • Nga pikĂ«pamja e zhvilluesve, re2c ka fituar njĂ« nĂ«nsistem mĂ« tĂ« plotĂ«.
    debugimit. Koodi i debugimit tani është i çaktivizuar në ndërtimet e lëshimit dhe
    mund tĂ« aktivizohet me mundĂ«sinĂ« configure —enable-debug.

Ky lĂ«shim Ă«shtĂ« vonuar pĂ«r njĂ« kohĂ« tĂ« gjatĂ« — pothuajse njĂ« vit.
Shumica e kohës, si gjithmonë, u shpenzua në zhvillimin e bazës teorike dhe në shkrimin
artikullit "Ekstraktimi Efikas i Nsubmatch nga NFA".
Algoritmet e përshkruar në artikull janë realizuar në bibliotekën eksperimentale libre2c
(ndërtimi i bibliotekës dhe benchmark-ëve është aktivizuar si parazgjedhje dhe përfshihet me opsionin configure
--enable-libs). Biblioteka nuk është menduar si një konkurrent për projektet ekzistuese
të tilla si RE2, por si një platformë kërkimore për zhvillimin e algoritmeve të reja
(të cilat më pas mund të përdoren në re2c ose në projekte të tjera).
Gjithashtu, kjo është e përshtatshme për testimin, benchmark-ët dhe krijimin e lidhjeve me gjuhë të tjera.

Faleminderit nga zhvilluesit e re2c të gjithë atyre që ndihmuan që ky lëshim të realizohej,
dhe tërë komunitetit për idetë, raportet për gabimet, patch-et, frymën luftarake etj. ;]

Burimi: linux.org.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster