re2c 1.2

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

Voeg