re2c 1.2

Ka Labohlano la la 2 Phato, ho ile ha lokolloa re2c, jenereithara ea mahala ea li-lexical analyzers bakeng sa lipuo tsa C le C ++. Re2c e ngotsoe ka 1993 ke Peter Bamboulis e le jenereithara ea liteko tsa li-lexical analyzers tse potlakileng haholo, tse khetholloang ho lijenereithara tse ling ka lebelo la khoutu e hlahisitsoeng le sebopeho se sa tloaelehang sa mosebedisi se lumellang bahlahlobisisi hore ba kenelle habonolo le ka mokhoa o nepahetseng motheong oa khoutu o teng. Ho tloha ka nako eo, morero ona o 'nile oa ntlafatsoa ke sechaba' me o ntse o tsoela pele ho ba sethala sa liteko le lipatlisiso lefapheng la li-grammars tsa molao le mechine ea naha e fokolang.

Lintlafatso tsa mantlha ho mofuta oa 1.2:

  • E kentse mokhoa o mocha (o nolofalitsoeng) oa ho lekola pheletso ea data e kentsoeng
    (Senyesemane “EOF rule”).
    Bakeng sa sena, tlhophiso ea re2c:eof e kentsoe,
    e u lumella ho khetha sebapali sa terminal,
    le molao o khethehileng oa $ o tukang haeba lexer
    ka katleho e fihlile pheletsong ea lintlha tse kentsoeng.
    Ho latela nalane, re2c e fana ka khetho ea mekhoa e mengata ea netefatso bakeng sa
    pheletso ea lintho tse kenang tse fapaneng ka moedi, katleho le bonolo
    lits'ebetso. Mokhoa o mocha o etselitsoe ho nolofatsa khoutu ea ho ngola, ha
    ha e ntse e sebetsa hantle ebile e sebetsa ka bongata. Mekhoa ea khale
    e ntse e sebetsa 'me e ka khethoa maemong a mang.

  • E kentse bokhoni ba ho kenyelletsa lifaele tsa kantle ho sebelisa taelo
    /*! kenyeletsa:re2c "file.re" */ moo faele.re
    lena ke lebitso la faele e kenyeletsang. Re2c e batla lifaele bukeng e kenyelletsoeng ea faele,
    hammoho le lethathamong la litsela tse boletsoeng ho sebelisoa khetho ea -I.
    Lifaele tse kenyellelitsoeng li ka kenyelletsa lifaele tse ling.
    Re2c e fana ka lifaele tse "tloaelehileng" ho kenyeletsa / directory
    morero - ho lebeletsoe hore litlhaloso tse molemo li tla bokellana moo
    lipolelo tse tloaelehileng, ntho e kang laebrari e tloaelehileng.
    Ho fihlela joale, ka kopo ea basebetsi, faele e le 'ngoe e nang le litlhaloso tsa lihlopha tsa Unicode e kentsoe.

  • E kenyellelitse bokhoni ba ho hlahisa lifaele tsa hlooho ka mokhoa o ikhethileng
    litaba tse sebelisang likhetho tsa -t --type-header (kapa ho loketse
    litlhophiso) le litaelo tse ncha /*!header:re2c:on*/ le
    /*!hlooho:re2c:off*/. Sena se ka ba molemo maemong ao
    ha re2c e hloka ho hlahisa litlhaloso tsa mefuta-futa, meaho le macros,
    e sebelisoang likarolong tse ling tsa phetolelo.

  • Re2c joale e utloisisa litlhaku tsa UTF8 le lihlopha tsa batho ba hlahang ka mokhoa o tloaelehileng.
    Ka ho sa feleng, re2c e fetisa lipolelo tse kang "∀x ∃y" joalo ka.
    tatellano ea litlhaku tsa 1-bit ASCII e2 88 80 78 20 e2 88 83 79
    (likhoutu tsa hex), mme basebelisi ba tlameha ho baleha litlhaku tsa Unicode ka letsoho:
    "u2200x u2203y". Sena ha se bonolo ebile ha sea lebelloa ho ba bangata
    basebelisi (joalokaha ho pakoa ke litlaleho tsa liphoso tse sa feleng). Kahoo joale
    re2c e fana ka khetho ea --input-encoding ,
    e u lumellang ho fetola boitšoaro le ho hlalosa "∀x ∃y" joalo ka
    2200 78 20 2203 79.

  • Re2c joale e lumella ts'ebeliso ea li-block tsa re2c tse tloaelehileng ho -r --reuse mode.
    Sena se loketse haeba faele ea ho kenya e na le li-blocks tse ngata 'me ke tse ling feela tsa tsona
    e hloka ho sebelisoa hape.

  • Hona joale o ka seta sebopeho sa litemoso le melaetsa ea liphoso
    sebelisa khetho e ncha ea --location-format . Sebopeho sa GNU se bonts'itsoe
    joalo ka filename:line:column:, le sebopeho sa MSVC joalo ka filename(line,column).
    Karolo ena e ka ba molemo ho barati ba IDE.
    Khetho ea --verbose le eona e kentsoe, e hatisang molaetsa o mokhuts'oane oa tlholo haeba e atlehile.

  • Mokhoa oa "ho lumellana" o nang le flex o ntlafalitsoe - liphoso tse ling li lokisitsoe 'me
    e fosahetseng ea mokhanni maemong a sa tloaelehang.
    Ho latela nalane, khetho ea -F --flex-support e u lumelletse ho ngola khoutu
    e tsoakiloeng ka mokhoa o feto-fetohang le mokhoa oa re2c, e leng se etsang hore ho be bonolo ho arola.
    Mokhoa oa ho lumellana le Flex ha o sebelisoe hangata ho khoutu e ncha,
    empa re2c e ntse e tsoela pele ho e tšehetsa bakeng sa ho lumellana le morao.

  • Moetsi oa ho tlosa sehlopha sa libapali / joale oa sebetsa
    pele o holisa khouto, e lumellang hore e sebelisoe maemong a mangata,
    haeba ho sebelisoa khouto ea bolelele ba litlhaku tse feto-fetohang (mohlala UTF8).

  • Faele e hlahisoang e se e entsoe ka atomo: re2c e theha faele ea nakoana pele
    ebe o ngola sephetho ho eona, ebe o reha faele ea nakoana ho tlhahiso
    ts'ebetso e le 'ngoe.

  • Litokomane li ile tsa phethoa 'me tsa ngoloa bocha; haholo-holo, ho ile ha eketsoa tse ncha
    likhaolo mabapi le ho tlatsa buffer
    и mabapi le mekhoa ea ho hlahloba pheletso ea data e kentsoeng.
    Litokomane tse ncha li bokelloa ka foromo
    bukana e felletseng ya leqephe le le leng
    ka mehlala (mehloli e tšoanang e fanoe ho manpage le litokomaneng tsa inthaneteng).
    Ho entsoe liteko tse fokolang tsa ho ntlafatsa ho baloa ha sebaka ka lifono.

  • Ho ea ka pono ea bahlahisi, re2c e fumane subsystem e felletseng haholoanyane
    debugging Khoutu ea ho lokisa liphoso e se e holofetse meahong ea tokollo le
    e ka nolofalloa ho sebelisoa khetho ea configure --enable-debug.

Tokollo ena e nkile nako e telele - hoo e ka bang selemo kaofela.
Bongata ba nako, joalo ka mehleng, bo ne bo sebelisoa ho nts'etsapele moralo oa theory le ho ngola
Lingoloa "Tlhahiso e Ntle ea POSIX Submatch ho NFA".
Li-algorithms tse hlalositsoeng sehloohong sena li sebelisoa laebraring ea liteko libre2c
(ho aha laeborari le li-benchmarks ho koetsoe ka mokhoa oa kamehla mme ho nolofalloa ke khetho ea tlhophiso
--noble-libs). Laeborari ha e nkuoe e le tlholisano ho e teng
merero e kang RE2, empa e le sethala sa lipatlisiso bakeng sa nts'etsopele ea tse ncha
algorithms (e ka sebelisoang ho re2c kapa mererong e meng).
E boetse e loketse ho ea ka pono ea tlhahlobo, litekanyetso le ho theha maqhama a lipuo tse ling.

Ke leboha baetsi ba re2c ho bohle ba thusitseng tokollo ena ho etsahala,
le ho setjhaba ka kakaretso bakeng sa mehopolo, ditlaleho tsa ditsitsiri, maqeba, maitshwaro, jj. ;]

Source: linux.org.ru

Eketsa ka tlhaloso