Tso tawm ntawm re2c lexer generator 1.2

coj qhov chaw tso tawm rov 2c, ib lub tshuab tsim cov lexical analyzer pub dawb rau C thiab C++. Nco ntsoov tias re2c tau sau rau xyoo 1993 los ntawm Peter Bamboulis ua lub tshuab tsim cov lexical analyzers ceev heev, sib txawv ntawm lwm lub tshuab tsim los ntawm qhov ceev ntawm nws cov lej tsim thiab lub interface neeg siv hloov pauv tau yooj yim, uas tso cai rau cov analyzers kom yooj yim thiab ua haujlwm tau zoo rau hauv lub hauv paus code uas twb muaj lawm. Txij thaum ntawd los, qhov project tau tsim los ntawm lub zej zog thiab txuas ntxiv mus ua lub platform rau kev sim thiab kev tshawb fawb hauv cov teb ntawm cov qauv sau ntawv thiab cov automata finite.

Daim ntawv tso tawm no siv sijhawm yuav luag ib xyoos los npaj. Feem ntau ntawm lub sijhawm, ib yam li niaj zaus, yog siv los tsim lub hauv paus kev xav thiab kev sau ntawv.
cov ntawv xov xwm "Kev rho tawm POSIX Submatch zoo ntawm NFA".
Cov algorithms piav qhia hauv tsab xov xwm tau siv rau hauv lub tsev qiv ntawv sim libre2c.
(Kev tsim lub tsev qiv ntawv thiab kev ntsuam xyuas kev ua tau zoo yog kaw los ntawm lub neej ntawd thiab tau qhib nrog qhov kev xaiv teeb tsa "--enable-libs"). Lub tsev qiv ntawv tsis yog lub hom phiaj los ua tus sib tw rau cov haujlwm uas twb muaj lawm xws li RE2, tab sis ua lub platform tshawb fawb rau kev tsim cov tshiab.
cov algorithms (uas tuaj yeem siv rau hauv re2c lossis lwm yam projects). Qhov no kuj yooj yim rau kev sim, kev ntsuas kev ua tau zoo, thiab tsim kev khi rau lwm hom lus.

Cov yam ntxwv tshiab tseem ceeb hauv re2c 1.2:

  • Ib txoj kev tshiab, yooj yim los xyuas seb qhov kawg ntawm cov ntaub ntawv nkag ("EOF txoj cai") tau raug ntxiv lawm. Qhov kev teeb tsa "re2c:eof" tau raug ntxiv rau lub hom phiaj no.
    cia koj xaiv lub cim davhlau ya nyob twg,
    thiab ib txoj cai tshwj xeeb "$", uas yuav tshwm sim yog tias tus lexer
    tau mus txog qhov kawg ntawm cov ntaub ntawv nkag.
    Keeb kwm, re2c tau muab ntau txoj hauv kev los xyuas seb puas muaj
    qhov kawg ntawm cov ntaub ntawv nkag, sib txawv ntawm kev txwv, kev ua haujlwm zoo thiab kev yooj yim
    Cov ntawv thov. Txoj kev tshiab no yog tsim los kom yooj yim sau cov code, thaum
    thaum tseem ua tau zoo thiab siv tau dav. Cov txheej txheem qub
    tseem ua haujlwm thiab tej zaum yuav zoo dua rau qee kis.
  • Ntxiv lub peev xwm los suav nrog cov ntaub ntawv sab nraud siv cov lus qhia
    "/*! suav nrog:re2c "file.re" */", qhov twg "file.re" yog lub npe ntawm cov ntaub ntawv uas suav nrog. Re2c tshawb nrhiav cov ntaub ntawv hauv daim nplaub tshev ntawm cov ntaub ntawv suav nrog,
    thiab tseem nyob rau hauv daim ntawv teev cov kev uas tau teev tseg siv qhov kev xaiv "-I".
    Cov ntaub ntawv suav nrog yuav suav nrog lwm cov ntaub ntawv.
    Re2c muab cov ntaub ntawv "txheem" ​​hauv daim nplaub tshev " suav nrog / ".
    project - nws xav tias cov lus txhais muaj txiaj ntsig yuav sib sau ua ke nyob ntawd
    cov lus qhia tsis tu ncua, ib yam dab tsi hauv tus ntsuj plig ntawm lub tsev qiv ntawv txheem.
    Txog tam sim no, raws li qhov kev thov ntawm cov neeg ua haujlwm, ib daim ntawv nrog cov lus txhais ntawm Unicode pawg tau raug ntxiv.
  • Ntxiv lub peev xwm los tsim cov ntaub ntawv header nrog arbitrary
    cov ntsiab lus siv cov kev xaiv "-t --type-header" (lossis sib xws
    configurations) thiab cov lus qhia tshiab "/ *! header: re2c: on * /" thiab
    "/*!header:re2c:off*/". Qhov no yuav pab tau rau cov xwm txheej uas
    thaum re2c yuav tsum tsim cov lus txhais ntawm cov hloov pauv, cov qauv thiab cov macros,
    siv rau hauv lwm cov chav txhais lus.
  • Re2c tam sim no nkag siab txog UTF8 cov ntawv thiab cov chav kawm cim hauv cov lus qhia tsis tu ncua.
    Los ntawm lub neej ntawd, re2c parses cov lus qhia zoo li "∀x ∃y" li
    cov kab ke ntawm 1-ntsis ASCII cim "e2 88 80 78 20 e2 88 83 79"
    (hex codes), thiab cov neeg siv yuav tsum khiav tawm Unicode cov cim manually:
    "\\u2200x \\u2203y". Qhov no tsis yooj yim thiab tsis tau xav txog rau ntau tus
    cov neeg siv (raws li tau pom los ntawm cov ntawv ceeb toom kab laum tas li). Yog li ntawd, tam sim no
    re2c muab qhov kev xaiv "--input-encoding {ascii | utf8}"
    uas tso cai rau peb hloov tus cwj pwm thiab txheeb xyuas "∀x ∃y" li
    "2200 78 20 2203 79".
  • Re2c tam sim no tso cai siv cov blocks re2c ib txwm muaj hauv hom "-r --reuse".
    Qhov no muaj txiaj ntsig yog tias cov ntaub ntawv nkag muaj ntau lub blocks thiab tsuas yog qee qhov ntawm lawv xwb.
    yuav tsum tau siv dua.
  • Tam sim no nws muaj peev xwm teeb tsa hom ntawv ntawm cov lus ceeb toom thiab cov lus qhia yuam kev.
    siv qhov kev xaiv tshiab "--location-format {gnu | msvc}". Hom ntawv GNU raug tso tawm
    ua "filename:line:column:", thiab hom ntawv MSVC ua "filename(line,column)".
    Qhov feature no yuav pab tau rau cov neeg nyiam IDE.
    Ib qho kev xaiv "--verbose" kuj tau ntxiv rau, uas luam tawm cov lus luv luv txog kev vam meej.
  • Hom kev sib raug zoo nrog flex tau zoo dua - qee qhov yuam kev parsing tau kho thiab
    Qhov ua ntej ntawm tus neeg teb xov tooj tsis raug hauv qee kis tsis tshua muaj.
    Keeb kwm, qhov kev xaiv "-F --flex-support" tso cai rau koj sau cov code
    sib xyaw ua ke hauv flex style thiab re2c style, uas ua rau kev txheeb xyuas nyuaj me ntsis.
    Hom kev sib raug zoo Flex tsis tshua siv hauv cov lej tshiab,
    tab sis re2c txuas ntxiv txhawb nqa nws rau kev sib raug zoo rov qab.
  • Tus neeg teb xov tooj rho tawm chav kawm cim "/" tam sim no siv tau
    ua ntej qhov encoding raug nthuav dav, uas tso cai rau nws siv rau hauv ntau qhov xwm txheej,
    yog tias siv qhov ntev ntawm tus cim hloov pauv (piv txwv li UTF8).
  • Cov ntaub ntawv tso zis tam sim no yog tsim atomically: re2c ua ntej tsim cov ntaub ntawv ib ntus
    thiab sau qhov tshwm sim rau hauv nws, thiab tom qab ntawd hloov lub npe ntawm cov ntaub ntawv ib ntus rau qhov tso zis
    hauv ib qho kev ua haujlwm.
  • Cov ntaub ntawv tau ua tiav thiab rov sau dua; tshwj xeeb, cov ntaub ntawv tshiab tau ntxiv
    tshooj txog http://re2c.org/manual/manual.html#buffer-refilling заполнение буфера
    и txog cov txheej txheem los xyuas qhov kawg ntawm cov ntaub ntawv nkag.
    Cov ntaub ntawv tshiab raug sau ua ke hauv daim ntawv
    phau ntawv qhia ib nplooj ntawv uas muaj txhij txhua yam
    nrog rau cov piv txwv (cov peev txheej tib yam tau tso tawm hauv nplooj ntawv manpage thiab hauv cov ntaub ntawv online).
    Muaj qee qhov kev sim tsis zoo uas tau ua los txhim kho qhov yooj yim nyeem ntawm lub xaib hauv xov tooj.
  • Los ntawm qhov kev xav ntawm cov neeg tsim khoom, re2c tau txais ib qho subsystem tiav dua
    Kev kho qhov yuam kev. Kev kho qhov yuam kev tam sim no raug kaw hauv cov qauv tsim tawm thiab
    tuaj yeem qhib tau siv qhov kev xaiv teeb tsa "--enable-debug".

Tau qhov twg los: opennet.ru

Yuav txhim khu kev qha hosting rau cov chaw nrog DDoS tiv thaiv, VPS VDS servers 🔥 Yuav lub vev xaib hosting txhim khu kev qha nrog kev tiv thaiv DDoS, VPS VDS servers | ProHoster