Hoʻokuʻu ʻia o re2c lexer generator 1.2

ua hanaia hoʻokuʻu re2c, he mea hoʻoheheʻe huaʻōlelo manuahi no nā ʻōlelo C a me C++. E hoʻomanaʻo ua kākau ʻia ʻo re2c i ka makahiki 1993 e Peter Bambulis ma ke ʻano he mea hoʻomohala hoʻokolohua o nā mea loiloi lexical wikiwiki loa, ʻokoʻa mai nā mea hana ʻē aʻe i ka wikiwiki o ka code i hana ʻia a me kahi mea hoʻohana maʻalahi maʻalahi e hiki ai i nā mea loiloi ke hoʻohui maʻalahi a maikaʻi i kahi code i loaʻa. kumu. Mai ia manawa, ua hoʻomohala ʻia ka papahana e ke kaiāulu a ke hoʻomau nei e lilo i kahua no nā hoʻokolohua a me ka noiʻi ʻana ma ke kahua o nā grammars formal a me nā mīkini mokuʻāina palena.

ʻO ka hoʻomākaukauʻana no ka hoʻokuʻuʻana i kahi makahiki a pau. ʻO ka hapa nui o ka manawa, e like me nā manawa a pau, ua hoʻohana ʻia i ka hoʻomohala ʻana i kahi papa hana a me ke kākau ʻana
'atikala "ʻO ka POSIX Submatch Extraction maikaʻi ma NFA".
Hoʻokomo ʻia nā algorithms i wehewehe ʻia ma ka ʻatikala ma ka hale waihona hoʻokolohua libre2c
(Hoʻopau ʻia ke kūkulu ʻana i ka hale waihona puke a me nā hoʻokolohua hana ma ke ʻano maʻamau a hiki ke hoʻohana ʻia e ke koho hoʻonohonoho "—enable-libs"). ʻAʻole i manaʻo ʻia ka waihona ma ke ʻano he mea hoʻokūkū i nā papahana e kū nei e like me RE2, akā he kahua noiʻi no ka hoʻomohala ʻana i nā mea hou.
algorithms (hiki ke hoʻohana ʻia i re2c a i ʻole i nā papahana ʻē aʻe). He mea maʻalahi hoʻi mai ka ʻike o ka hoʻāʻo ʻana, ke ana ʻana i ka hana a me ka hana ʻana i nā paʻa i nā ʻōlelo ʻē aʻe.

ʻO nā hana hou nui i ka mana re2c 1.2:

  • Hoʻohui i kahi ala maʻalahi hou no ka nānā ʻana i ka hopena o ka ʻikepili hoʻokomo ("EOF rule"). No kēia, ua hoʻohui ʻia ka hoʻonohonoho "re2c: eof",
    hiki iā ʻoe ke koho i ke ʻano terminal,
    a me kahi lula kūikawā "$", i hoʻomaka inā ka lexer
    hiki i ka hopena o ka ʻikepili hoʻokomo.
    Ma ka mōʻaukala, hāʻawi ʻo re2c i kahi koho o nā ala hōʻoia no
    ka pau ʻana o nā hoʻokomo ʻokoʻa i ka palena, ka pono a me ka maʻalahi
    nā noi. Hoʻolālā ʻia ke ala hou e hoʻomaʻamaʻa i ke kākau ʻana i ke code, ʻoiai
    oiai e noho pono ana a pili nui. ʻO nā ala kahiko
    hana mau a makemake paha i kekahi mau hihia.

  • Hoʻohui i ka hiki ke hoʻokomo i nā faila waho me ka hoʻohana ʻana i kahi kuhikuhi
    "/*!include:re2c "file.re" */", kahi o "file.re" ka inoa o ka waihona e hookomoia. ʻIke ʻo Re2c i nā faila ma ka papa kuhikuhi waihona,
    a me ka papa inoa o nā ala i kuhikuhi ʻia me ka koho "-I".
    Hiki i nā faila ke komo i nā faila ʻē aʻe.
    Hāʻawi ʻo Re2c i nā faila "maʻamau" i ka papa kuhikuhi "include/".
    papahana - manaʻo ʻia e hōʻiliʻili nā wehewehe pono i laila
    nā ʻōlelo maʻamau, kahi mea e like me ka waihona maʻamau.
    I kēia manawa, ma ke noi o nā limahana, ua hoʻohui ʻia hoʻokahi faila me nā wehewehe o nā ʻano Unicode.

  • Hoʻohui i ka hiki ke hana i nā faila poʻomanaʻo me ka ʻole
    ʻikepili me ka hoʻohana ʻana i nā koho "-t --type-header" (a i ʻole kūpono
    hoʻonohonoho) a me nā kuhikuhi hou "/*!header:re2c:on*/" a
    "/*!header:re2c:off*/". Pono paha kēia i nā hihia kahi
    i ka wā e pono ai ka re2c e hoʻopuka i nā wehewehe o nā ʻano like ʻole, nā hale a me nā macros,
    hoʻohana ʻia ma nā ʻāpana unuhi ʻē aʻe.

  • Hoʻomaopopo ʻo Re2c i nā huaʻōlelo UTF8 a me nā papa ʻano ma nā ʻōlelo maʻamau.
    Ma ka paʻamau, hoʻokaʻawale ʻo re2c i nā ʻōlelo e like me "∀x ∃y" e like me
    ke kaʻina o nā huaʻōlelo ASCII 1-bit "e2 88 80 78 20 e2 88 83 79"
    (hex codes), a pono nā mea hoʻohana e pakele i nā huapalapala Unicode me ka lima:
    “\\u2200x \\u2203y.” He mea maʻalahi kēia a me ka manaʻo ʻole no ka lehulehu
    mea hoʻohana (e like me ka ʻike ʻia e nā hōʻike bug mau). No laila i kēia manawa
    Hāʻawi ka re2c i ke koho "--input-encoding {ascii | utf8}",
    hiki iā ʻoe ke hoʻololi i ke ʻano a hoʻololi i ka "∀x ∃y" e like me
    “2200 78 20 2203 79.”

  • ʻAe ʻo Re2c i kēia manawa e hoʻohana i nā poloka re2c maʻamau i ke ʻano "-r --reuse".
    He mea maʻalahi kēia inā loaʻa i ka faila hoʻokomo nā poloka he nui a ʻo kekahi wale nō o lākou
    pono e hoohana hou ia.

  • I kēia manawa hiki iā ʻoe ke hoʻonohonoho i ke ʻano o nā ʻōlelo aʻo a me nā memo hewa
    me ka hoʻohana ʻana i ke koho hou "--location-format {gnu | msvc}". Hōʻike ʻia ke ʻano GNU
    ma ke ʻano he "filename:line:column:", a me ka format MSVC e like me "filename(line,column)".
    Pono paha kēia hiʻohiʻona no nā mea aloha IDE.
    Ua hoʻohui pū ʻia kahi koho "--verbose", e hōʻike ana i kahi leka lanakila pōkole inā kūleʻa.

  • Ua hoʻomaikaʻi ʻia ka mode "compatibility" me ka flex - ua hoʻoponopono ʻia kekahi mau hewa parsing a
    hewa ʻole ka mea hoʻohana mua i nā hihia kakaʻikahi.
    Ma ka mōʻaukala, ua ʻae ke koho "-F --flex-suppor" iā ʻoe e kākau i ke code
    hui pū ʻia me ke ʻano flex a me ke ʻano re2c, kahi e paʻakikī iki ai ka parsing.
    ʻAʻole hoʻohana pinepine ʻia ke ʻano hoʻohālikelike i nā code hou,
    akā hoʻomau ʻo re2c i ke kākoʻo iā ia no ka hoʻokō ʻana i hope.

  • Hoʻohana ʻia ka mea hoʻohana unuhi papa ʻano "/".
    ma mua o ka hoʻonui ʻana i ka encoding, hiki iā ia ke hoʻohana ʻia i nā hihia he nui,
    inā hoʻohana ʻia ka hoʻopili ʻana i ka lōʻihi o ke ʻano loli (no ka laʻana UTF8).

  • Hoʻokumu ʻia ka faila hoʻopuka i kēia manawa: hana ʻo re2c i kahi faila manawaleʻa mua
    a kākau i ka hopena i loko, a laila kapa hou i ka faila manawa i ka hoʻopuka
    hoʻokahi hana.

  • Ua hoʻopau a kākau hou ʻia ka palapala; ʻoi aku, ua hoʻohui ʻia nā mea hou
    mokuna e pili ana http://re2c.org/manual/manual.html#buffer-refilling заполнение буфера
    и e pili ana i nā ala e nānā ai i ka pau ʻana o ka ʻikepili hoʻokomo.
    ʻOhi ʻia nā palapala hou ma ke ʻano
    he papa kuhikuhi hoʻokahi ʻaoʻao
    me nā laʻana (ua hāʻawi ʻia nā kumu like ma ka manpage a ma ka palapala pūnaewele).
    Ua ho'āʻo maikaʻi ʻia e hoʻomaikaʻi i ka heluhelu ʻana o ka pūnaewele ma nā kelepona.

  • Mai ka manaʻo o nā mea hoʻomohala, ua loaʻa iā re2c kahi subsystem piha piha
    hoʻopaʻapaʻa Ua pio ka code debugging i nā hana hoʻokuʻu a
    hiki ke hoʻohana ʻia me ka hoʻohana ʻana i ke koho hoʻonohonoho "--enable-debug".

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka