NeChishanu, Nyamavhuvhu 2, kuburitswa kwere2c, jenareta yemahara yeanoongorora lexical yemitauro yeC neC ++, yakaburitswa. Sechiyeuchidzo, re2c yakanyorwa muna 1993 naPeter Bamboulis sejenareta yekuedza yeanokurumidza lexical analyzers, inosiyaniswa kubva kune mamwe majenereta nekumhanya kwekodhi yakagadzirwa uye isingawanzo kuchinjika mushandisi interface inobvumira vanoongorora kuve nyore uye zvinobudirira kunyudzwa mune. iripo code base. Kubva ipapo, chirongwa ichi chakagadziridzwa nenharaunda uye chinoramba chiri chikuva chekuyedza uye tsvagiridzo mundima yezvimiro zvepamutemo nemichina yenyika.
Huru hutsva mushanduro 1.2:
-
Yakawedzera nzira nyowani (yakareruka) yekutarisa kupera kweiyo data yekuisa
(Chirungu "EOF mutemo").
Kune izvi, iyo re2c:eof kumisikidzwa yakawedzerwa,
inobvumidza iwe kusarudza iyo terminal character,
uye yakakosha $ mutemo unopisa kana lexer
zvakabudirira kusvika kumagumo ekuisa data.
Nhoroondo, re2c inopa sarudzo yedzakawanda nzira dzekusimbisa dze
kupera kwezvinopinza zvakasiyana mukuganhurira, kunyatsoita uye nyore
applications. Iyo nzira nyowani yakagadzirirwa kurerutsa kunyora kodhi, uku
nepo ichiri kushanda uye inoshanda zvakanyanya. Nzira dzekare
ichiri kushanda uye inogona kufarirwa mune zvimwe zviitiko. -
Yakawedzera kugona kusanganisa mafaera ekunze uchishandisa rairo
/*! sanganisira:re2c "file.re" */ kupi file.re
iri ndiro zita rekusanganisira faira. Re2c inotsvaga mafaera mune inosanganisira faira dhairekitori,
pamwe chete nerondedzero yenzira dzakatsanangurwa uchishandisa iyo -I sarudzo.
Mafaira akabatanidzwa anogona kusanganisira mamwe mafaira.
Re2c inopa "yakajairwa" mafaera mune inosanganisirwa/dhairekitori
purojekiti - zvinotarisirwa kuti tsananguro dzinobatsira dzichaungana ipapo
matauriro enguva dzose, chimwe chinhu chakafanana neraibhurari yakajairika.
Parizvino, pakukumbirwa kwevashandi, faira rimwe rine tsananguro dzezvikamu zveUnicode rakawedzerwa. -
Yakawedzera kugona kugadzira mafaira emusoro nekupokana
zvemukati uchishandisa iyo -t --type-musoro sarudzo (kana zvakakodzera
zvigadziriso) uye mitsva mitsva /*!header:re2c:on*/ uye
/*!musoro:re2c:off*/. Izvi zvinogona kubatsira mune zviitiko apo
apo re2c inoda kuburitsa tsananguro dzezvakasiyana, zvimiro uye macros,
inoshandiswa mune mamwe mayuniti eshanduro. -
Re2c ikozvino inonzwisisa UTF8 literals uye makirasi ehunhu mumataurirwo akajairika.
Nekumisikidza, re2c inoparadzanisa mataurirwo akaita se "βx βy" se.
kutevedzana kwe1-bit ASCII mavara e2 88 80 78 20 e2 88 83 79
(hex makodhi), uye vashandisi vanofanirwa kutiza mavara eUnicode nemaoko:
"u2200x u2203y". Izvi zvinonetsa uye hazvitarisirwe kune vakawanda
vashandisi (sezvinoratidzwa nekusingaperi bug mishumo). Saka zvino
re2c inopa --input-encoding sarudzo ,
iyo inokutendera iwe kuti uchinje maitiro uye patsanura "βx βy" se
2200 78 20 2203 79. -
Re2c ikozvino inobvumira kushandiswa kweyakajairwa re2c zvivharo mu -r --reuse mode.
Izvi zviri nyore kana iyo yekuisa faira ine akawanda mabhuroki uye chete mamwe acho
inoda kushandiswazve. -
Iye zvino unogona kuseta fomati yeyambiro uye meseji yekukanganisa
uchishandisa iyo itsva --location-format sarudzo . GNU fomati inoratidzwa
sezita refaira: mutsetse: koramu:, uye iyo MSVC fomati sezita refaira (mutsara, koramu).
Iyi ficha inogona kubatsira kune vanoda IDE.
A --verbose sarudzo yakawedzerwawo, iyo inodhinda meseji pfupi yekukunda kana ikabudirira. -
Iyo "kuenderana" modhi ine flex yakagadziridzwa - mamwe zvikanganiso zveparsing akagadziriswa uye
zvisiri izvo mushandisi precedence mune zvisingawanzo kuitika.
Nhoroondo, iyo -F --flex-support sarudzo yakabvumidza iwe kunyora kodhi
yakavhenganiswa muchimiro cheflex uye re2c chimiro, chinoita kuti kupatsanura kuve kwakaoma.
Flex inoenderana modhi haiwanzo kushandiswa mukodhi nyowani,
asi re2c inoramba ichiitsigira kuti ienderane kumashure. -
Iyo character class yekubvisa opareta / ikozvino inoshanda
usati wawedzera encoding, iyo inobvumira kuti ishandiswe mune yakakura nhamba yemakesi,
kana kuchinjika kwemavara kureba kuchishandiswa (semuenzaniso UTF8). -
Iyo yakabuda faira ikozvino yakagadzirwa atomu: re2c inogadzira yenguva faira kutanga
uye anonyora mhedzisiro mairi, uye obva atumidza zita renguva faira kune inobuda
oparesheni imwe. -
Zvinyorwa zvakapedzwa uye kunyorwazve; kunyanya, matsva akawedzerwa
zvitsauko nezvekuzadza buffer
ΠΈ nezve nzira dzekutarisa kupera kwekupinza data.
Zvinyorwa zvitsva zvinounganidzwa mufomu
bhuku rekushandisa peji rimwe chete
nemienzaniso (manyoro mamwechete anopihwa mumanpage uye mune online zvinyorwa).
Kuedza kwakashata kwakaitwa kuvandudza kuverenga kwesaiti pamafoni. -
Kubva pane maonero evagadziri, re2c yakawana imwe yakakwana subsystem
debugging Debugging kodhi ikozvino yakaremara mukuburitswa kuvaka uye
inogona kugoneswa uchishandisa iyo yekumisikidza sarudzo --enable-debug.
Kuburitswa uku kwakatora nguva yakareba - rinenge gore rose.
Nguva zhinji, senguva dzose, yaishandiswa pakugadzira dhizaini nekunyora
zvinyorwa "Inoshanda POSIX Submatch Extraction paNFA".
Iwo algorithms anotsanangurwa muchinyorwa anoitwa muyedzo raibhurari libre2c
(kuvaka raibhurari uye mabhenji kwakavharwa nekukasira uye kunogoneswa neiyo gadziriso sarudzo
--enable-libs). Raibhurari haina kutorwa semukwikwidzi kune iripo
mapurojekiti akaita seRE2, asi sepuratifomu yekutsvagisa yekuvandudza nyowani
algorithms (iyo inogona kuzoshandiswa mu re2c kana mune mamwe mapurojekiti).
Izvo zvakare zviri nyore kubva pakuona kwekuyedza, mabhenji uye kugadzira zvinosungirirwa kune mimwe mitauro.
Ndatenda kubva kuvagadziri ve re2c kune wese akabatsira kuburitswa uku kuitika,
uye kunharaunda yese kune mazano, mabug report, zvigamba, tsika, nezvimwe. ;]
Source: linux.org.ru