re2c 1.2

Në të premten, më 2 gusht, doli në treg re2c - një gjenerues i lirë i analizatorëve leksikë për gjuhët C dhe C++. Kujtojmë se re2c u shkrua në vitin 1993 nga Peter Bambulis si një gjenerues eksperimental i analizatorëve leksikë shumë të shpejtë, i cili dallohet nga gjenerimi i kodit me shpejtësi dhe ndërfaqja e tij e pazakontë përdoruese, që lejon integrimin e analizatorëve lehtësisht dhe në mënyrë efektive në një bazë kodimi ekzistuese. Që atëherë, projekti është zhvilluar nga komuniteti dhe vazhdon të mbetet një platformë për eksperimente dhe hulumtime në fushën e gramatikave formale dhe automatëve të përfunduar.

Risi në versionin 1.2:

  • Shtuar njĂ« mĂ«nyrĂ« tĂ« re (tĂ« thjeshtuar) pĂ«r tĂ« kontrolluar fundin e tĂ« dhĂ«nave tĂ« hyrjes
    (në anglisht «EOF rule»).
    Për këtë është shtuar konfigurimi re2c:eof,
    i cili lejon përzgjedhjen e simbolit terminal,
    dhe një rregull të veçantë $, i cili aktivizohet kur leksiku
    arrin me sukses fundin e të dhënave hyrëse.
    Historikisht, re2c ofron disa mënyra për të kontrolluar
    fundin e të dhënave hyrëse, të cilat ndryshojnë sipas kufizimeve, efikasitetit dhe thjeshtësisë
    së aplikimit. Mënyra e re synon të thjeshtojë kodin, duke mbetur gjithashtu efikase dhe shumë e aplikueshme. Mënyrat e vjetra
    ende funksionojnë dhe mund të jenë të preferueshme në raste të veçanta.
    është shtuar mundësia e përfshirjes së skedarëve të jashtëm përmes direktivës

  • «/*!include:re2c «file.re» */», ku «file.re» Ă«shtĂ« emri i skedarit tĂ« pĂ«rfshirĂ«. Re2c kĂ«rkon skedarĂ«t nĂ« direktorinĂ« e skedarit tĂ« pĂ«rfshirĂ«,
    /*!include:re2c "file.re" */, гЎД file.re
    është emri i skedarit të përfshirë. Re2c kërkon skedarë në direktorët e skedarit të përfshirë,
    si dhe në listën e rrugëve të caktuara me anë të opsionit -I.
    Skedarët e përfshirë mund të përfshijnë skedarë të tjerë.
    Re2c ofron skedarët «standard» në direktorinë include/
    projekti — supozohet se aty do tĂ« grumbullohen definicione tĂ« dobishme
    të shprehjeve të rregullta, diçka në stilin e bibliotekës standarde.
    Derimë tani, sipas kërkesave të përdoruesve, është shtuar një skedar me definicione të kategorive Unicode.

  • Shtuar mundĂ«sia pĂ«r tĂ« gjeneruar skedarĂ« titujsh me pĂ«rmbajtje arbitrare
    me pĂ«rmbajtje nĂ«pĂ«rmjet opsioneve -t —type-header (ose konfigurimeve pĂ«rkatĂ«se)
    dhe direktivave të reja /*!header:re2c:on*/ dhe
    /*!header:re2c:off*/. Đ­Ń‚ĐŸ ĐŒĐŸĐ¶Đ”Ń‚ Đ±Ń‹Ń‚ŃŒ ĐżĐŸĐ»Đ”Đ·ĐœĐŸ ĐČ ŃĐ»ŃƒŃ‡Đ°ŃŃ…,
    re2c duhet të gjenerojë definicione të variablave, strukturave dhe makrove
    që përdoren në njësi të tjera përkthimi.

  • Re2c tani kupton literale UTF8 dhe klasa simbole nĂ« shprehje tĂ« rregullta.
    NĂ« mĂ«nyrĂ« tĂ« parazgjedhur, re2c analizojnĂ« shprehjet si "∀x ∃y" si.
    një varg të simboleve ASCII 1-bitësh e2 88 80 78 20 e2 88 83 79
    (kode hex), dhe përdoruesit detyrohen të ekranojnë simbolet Unicode manualisht:
    "u2200x u2203y". Kjo është shumë e paqartë dhe befasuese për shumicën
    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 analizimin e "∀x ∃y" si
    2200 78 20 2203 79.

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

  • Kjo mundĂ«si tani i mundĂ«son vendosjen e formatit tĂ« paralajmĂ«rimeve dhe mesazheve tĂ« gabimeve
    me opsionin e ri —location-format . Formati GNU tregohet
    si filename:line:column:, ndĂ«rsa formati MSVC – si filename(line,column).
    Kjo mundësi mund t'u nevojitet adhuruesve të IDE.
    Gjithashtu Ă«shtĂ« shtuar opsioni —verbose, i cili jep njĂ« mesazh pĂ«rkrahĂ«s tĂ« shkurtĂ«r nĂ« rast suksesi.

  • ËshtĂ« pĂ«rmirĂ«suar moda ‘kompatibilitet’ me flex - janĂ« korrigjuar disa gabime analiza dhe
    prioritetin e gabuar të operatorëve në raste të rralla.
    Historikisht, opsioni -F —flex-support lejon qĂ« tĂ« shkruani kod
    përzier në stilin flex dhe në stilin re2c, që paksa vështirëson analizimin sintaksor.
    Moda e kompatibilitetit me flex përdoret rrallë në kodin e ri,
    por re2c vazhdon ta mbështesë atë për kompatibilitetin mbrapa.

  • Operatori i zbritjes pĂ«r klasat e simboleve / tani aplikohet
    para zhvillimin e kodimit, që lejon aplicimin e tij në më shumë raste,
    nëse përdoret një kodim me gjatësi variabile të karaktereve (p.sh. UTF8).

  • Skeda dalĂ«se tani krijohet nĂ« mĂ«nyrĂ« atomike: re2c sĂ« pari krijon njĂ« skedĂ« pĂ«rkohshme
    dhe shkruan në të rezultatin, e më pas ndryshon emrin e skedës përkohshme në atë dalëse
    në një operacion.

  • Dokumentacioni Ă«shtĂ« plotĂ«suar dhe riparĂ«; nĂ« veçanti, janĂ« shtuar kapituj tĂ« rinj
    kapi për mbushjen e bufereve
    dhe për metodat e kontrollit të fundit të të dhënave të hyrjes.
    Dokumentacioni i ri është mbledhur në formën e
    të një manuali përmbledhës të plotë
    me shembuj (të njëjtat burime vizatohen në manpage dhe në dokumentacionin online).
    Janë bërë përpjekje të dobëta për të përmirësuar lexueshmërinë e sitit në telefona.

  • Nga pikĂ«pamja e zhvilluesve, re2c ka fituar njĂ« sistem debug mĂ« tĂ« plotĂ«.
    Kodi i ndihmës tani është çaktivizuar në ndërtimet e lëshimit dhe
    mund tĂ« pĂ«rfshihet pĂ«rmes opsionit tĂ« konfigurimit —enable-debug.

Ky version mori një kohë të gjatë - pothuajse një vit.
Shumica e kohës, si gjithmonë, shkoi për zhvillimin e bazës teorike dhe shkruan
artikulli "Ekstraksioni Efikas i Submatch POSIX mbi NFA".
Algoritmet e përshkruara në artikull janë realizuar në një bibliotekë eksperimentale libre2c
(ndĂ«rtimi i bibliotekĂ«s dhe benchmarkeve Ă«shtĂ« i çaktivizuar si parazgjedhje dhe aktivizohet me opsionin configure—enable-libs). Biblioteka nuk Ă«shtĂ« menduar si njĂ« konkurent i projekteve ekzistuese si RE2, por si njĂ« platformĂ« kĂ«rkimore pĂ«r zhvillimin e algoritmeve tĂ« reja (tĂ« cilat mund tĂ« pĂ«rdoren mĂ« pas nĂ« re2c ose nĂ« projekte tĂ« tjera).
Gjithashtu, kjo është e përshtatshme për qëllime testimi, benchmarke dhe krijimin e lidhjeve me gjuhë të tjera.
Faleminderit nga zhvilluesit e re2c të gjithëve që ndihmuan në realizimin e këtij lancimi,
dhe në përgjithësi komunitetit për idetë, raportet për gabimet, patch-at, shpirtin luftarak, etj. ;]
MĂ« 2 gusht tĂ« premten doli lansimi i re2c — njĂ« gjenerator i lirĂ« pĂ«r analizatorĂ« leksik pĂ«r gjuhĂ«t C dhe C++.

đŸ„‡re2c 1.2 | ProHoster
dhe në përgjithësi komunitetit për idetë, raportet e defekteve, patch-et, frymën e luftës etj. ;]

Burimi: linux.org.ru

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