re2c 1.2

NgoLwesihlanu, ngo-Agasti 2, ukukhutshwa kwe-re2c, i-generator yamahhala ye-lexical analyzers kwiilwimi ze-C kunye ne-C ++, yakhululwa. I-Re2c yabhalwa kwi-1993 nguPeter Bamboulis njengejenereyitha yokuhlola i-lexical analyzers ekhawulezayo kakhulu, eyahlula kwezinye iijeneretha ngesantya sekhowudi eyenziweyo kunye ne-interface yomsebenzisi eguquguqukayo ngokungaqhelekanga evumela abahlalutyi ukuba bafakwe lula kwaye bafakwe ngokufanelekileyo kwisiseko sekhowudi ekhoyo. Ukusukela ngoko, le projekthi iye yaphuhliswa luluntu kwaye iyaqhubeka nokuba liqonga leemvavanyo kunye nophando kwicandelo lemigaqo-ntetho esesikweni kunye noomatshini baseburhulumenteni abalinganiselweyo.

Iinguqulelo eziphambili kwinguqulelo 1.2:

  • Kongezwe indlela entsha (elula) ukujonga ukuphela kwedatha yegalelo
    (IsiNgesi "EOF rule").
    Kule nto, uqwalaselo lwe-re2c:eof longeziwe,
    ikuvumela ukuba ukhethe unobumba weterminal,
    kunye nomthetho okhethekileyo we-$ ovutha ukuba i-lexer
    ngempumelelo ifikelele esiphelweni sedatha yegalelo.
    Ngokwembali, i-re2c ibonelela ngokhetho lweendlela ezininzi zokuqinisekisa
    isiphelo samagalelo ahluka kukusikelwa umda, ukusebenza kakuhle kunye nokulula
    izicelo. Indlela entsha yenzelwe ukwenza lula ikhowudi yokubhala, ngelixa
    ngelixa ihlala isebenza kwaye isebenza ngokubanzi. Iindlela zakudala
    isasebenza kwaye inokukhethwa kwezinye iimeko.

  • Ukongezwa amandla okubandakanya iifayile zangaphandle usebenzisa umyalelo
    /*!bandakanya:re2c "file.re" */ apho ifayile.re
    eli ligama lefayile equkayo. I-Re2c ijonga iifayile kuluhlu lwefayile olubandakanya,
    ngokunjalo kuluhlu lweendlela ezikhankanyiweyo usebenzisa i -I ukhetho.
    Iifayile ezibandakanyiweyo zinokubandakanya ezinye iifayile.
    I-Re2c ibonelela ngeefayile "ezisemgangathweni" kwi-include/directory
    iprojekthi - kulindeleke ukuba iinkcazelo eziluncedo ziya kuqokelelana apho
    amabinzana aqhelekileyo, into efana nelayibrari eqhelekileyo.
    Ukuza kuthi ga ngoku, ngesicelo sabasebenzi, ifayile enye enenkcazo yeendidi ze-Unicode yongezwa.

  • Kongezwe ukukwazi ukuvelisa iifayile zeheader ngokungenasizathu
    umxholo usebenzisa i -t --uhlobo-ukhetho lweheader (okanye kufanelekile
    uqwalaselo) kunye nezikhokelo ezintsha /*!intloko:re2c:on*/ kunye
    /*!intloko:re2c:off*/. Oku kunokuba luncedo kwiimeko apho
    xa i-re2c idinga ukuvelisa iinkcazo zezinto eziguquguqukayo, izakhiwo kunye neemacros,
    isetyenziswa kwezinye iiyunithi zoguqulo.

  • I-Re2c ngoku iyayiqonda i-UTF8 literals kunye neeklasi zabalinganiswa kumagama aqhelekileyo.
    Ngokungagqibekanga, i-re2c iyacalula amabinzana anje "βˆ€x βˆƒy" njenge.
    ulandelelwano lwe-1-bit yeempawu ze-ASCII e2 88 80 78 20 e2 88 83 79
    (iikhowudi ze-hex), kwaye abasebenzisi kufuneka babaleke oonobumba be-Unicode ngesandla:
    "u2200x u2203y". Oku akulunganga kakhulu kwaye akulindelwanga kwabaninzi
    abasebenzisi (njengoko kungqinwa ziingxelo zebug rhoqo). Ngoko ngoku
    I-re2c ibonelela nge--input-encoding ,
    ekuvumela ukuba utshintshe indlela yokuziphatha kwaye ucazulule "βˆ€x βˆƒy" njenge
    2200 78 20 2203 79.

  • I-Re2c ngoku ivumela ukusetyenziswa kweebhloko ze-re2c eziqhelekileyo kwi--r --reuse mode.
    Oku kulungele ukuba ifayile yegalelo iqulethe iibhloko ezininzi kwaye ezinye zazo kuphela
    kufuneka iphinde isetyenziswe.

  • Ngoku unokuseta ifomathi yezilumkiso kunye nemiyalezo yempazamo
    usebenzisa ukhetho olutsha --ifomati yendawo . Ifomati ye-GNU ibonisiwe
    njengegama lefayile:umgca:umqolo:, kunye nefomathi ye-MSVC njengegama lefayile(umgca, ikholamu).
    Olu phawu lunokuba luncedo kubathandi be-IDE.
    Ukhetho lwe--verbose nalo longezwe, oluprinta umyalezo omfutshane woloyiso ukuba uphumelele.

  • Imo "yokuhambelana" ene-flex iphuculwe - ezinye iimpazamo zokwahlulahlula zilungisiwe kwaye
    ukugqwesa komsebenzisi okungachanekanga kwiimeko ezinqabileyo.
    Ngokwembali, i -F --flex-support ukhetho ikuvumela ukuba ubhale ikhowudi
    ixutywe kwisitayile esiguqukayo kunye nesimbo se-re2c, esenza ukwahlulahlula kube nzima.
    Imowudi yokuhambelana yeFlex ayifane isetyenziswe kwikhowudi entsha,
    kodwa i-re2c iyaqhubeka ukuyixhasa ukuhambelana nomva.

  • Umsebenzisi wokuthabatha wodidi lwabalinganiswa / ngoku uyasebenza
    phambi kokwandisa i-encoding, evumela ukuba isetyenziswe kwinani elikhulu lamatyala,
    ukuba ubude obuguquguqukayo bekhowudi buyasetyenziswa (umzekelo UTF8).

  • Ifayile yemveliso ngoku yenziwe nge-atom: i-re2c yenza ifayile yethutyana kuqala
    kwaye ibhala isiphumo kuyo, kwaye ke ithiya ngokutsha ifayile yethutyana kwimveliso
    utyando olunye.

  • Amaxwebhu agqityiwe kwaye abhalwa ngokutsha; ngokukodwa, ezintsha zongezwa
    izahluko malunga nokuzalisa isithinteli
    ΠΈ malunga neendlela zokujonga ukuphela kwedatha yokufaka.
    Amaxwebhu amatsha aqokelelwa kwifom
    incwadi enephepha elinye ebanzi
    ngemizekelo (imithombo efanayo inikezelwe kwi-manpage nakumaxwebhu akwi-intanethi).
    Iinzame ezimbi zenziwe ukuphucula ukufundeka kwendawo kwiifowuni.

  • Ngokwembono yabaphuhlisi, i-re2c ifumene isistim esezantsi epheleleyo
    ukulungisa ingxaki Ikhowudi yokulungisa ingxaki ngoku ikhubaziwe ekukhululweni kwakha kunye
    inokwenziwa kusetyenziswa ukhetho loqwalaselo --enable-debug.

Oku kukhululwa kwathatha ixesha elide - phantse unyaka wonke.
Ixesha elininzi, njengesiqhelo, belichithwa ekuphuhliseni isakhelo sethiyori nokubhala
amanqaku "Ukutsalwa ngokufanelekileyo kwePOSIX kwi-NFA".
I-algorithms echazwe kwinqaku iphunyezwa kwilayibrari yovavanyo ye-libre2c
(ukwakha ithala leencwadi kunye nebenchmarks ivaliwe ngokungagqibekanga kwaye yenziwe ngokhetho loqwalaselo
--vula-i-libs). Ithala leencwadi alithathwa njengento ekhuphisana nekhoyo
Iiprojekthi ezifana ne-RE2, kodwa njengeqonga lophando lophuhliso lwentsha
i-algorithms (enokuthi emva koko isetyenziswe kwi-re2c okanye kwezinye iiprojekthi).
Kwakhona kukulungele ukusuka kwindawo yokujonga uvavanyo, i-benchmarks kunye nokudala izibophelelo kwezinye iilwimi.

Enkosi kubaphuhlisi be-re2c kuye wonke umntu oye wanceda oku kukhululwa kwenzeke,
nakuluntu ngokubanzi ngezimvo, iingxelo zempazamo, amabala, isimilo, njl.njl. ;]

umthombo: linux.org.ru

Yongeza izimvo