re2c 1.2

Ma ka Pōʻalima, ʻAukake 2, ua hoʻokuʻu ʻia ka hoʻokuʻu ʻana o re2c, kahi mea hoʻoheheʻe manuahi o nā loiloi lexical no nā ʻōlelo C a me C++. Ua kākau ʻia ʻo Re2c i ka makahiki 1993 e Peter Bamboulis ma ke ʻano he mea hoʻokolohua hoʻokolohua o nā mea loiloi lexical wikiwiki loa, ʻokoʻa ʻia mai nā mea hana ʻē aʻe e ka wikiwiki o ke code i hana ʻia a me kahi mea hoʻohana maʻalahi maʻalahi e hiki ai i nā mea nānā ke hoʻokomo maʻalahi a hoʻokomo pono i loko o kahi waihona code i loaʻa. 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.

Nā hana hou nui ma ka mana 1.2:

  • Hoʻohui i kahi ala hou (maʻalahi) e nānā i ka hopena o ka ʻikepili hoʻokomo
    (English “EOF rule”).
    No kēia, ua hoʻohui ʻia ka hoʻonohonoho re2c:eof,
    hiki iā ʻoe ke koho i ke ʻano terminal,
    a he $ rula kūikawā e puhi ana ina 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" */ where file.re
    ʻO kēia ka inoa o ka waihona waihona. ʻIke ʻo Re2c i nā faila ma ka papa kuhikuhi waihona,
    a me ka papa inoa o nā ala i kuhikuhi ʻia me ka hoʻohana ʻana i ke koho -I.
    Hiki i nā faila ke komo i nā faila ʻē aʻe.
    Hāʻawi ʻo Re2c i nā faila "maʻamau" i loko o ka waihona
    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
    ʻike 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 kahi koho --input-encoding ,
    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 i ka hoʻohana ʻana i nā poloka re2c maʻamau i -r --reuse mode.
    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 --location-format hou . Hōʻike ʻia ke ʻano GNU
    e like me ka inoa waihona: laina: kolamu:, a me ka palapala MSVC ma ke ʻano he faila(laina, kolamu).
    Pono paha kēia hiʻohiʻona no nā mea aloha IDE.
    Ua hoʻohui pū ʻia kahi koho --verbose, e paʻi 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-support 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 / i kēia manawa
    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 i ka hoopiha ana i ka buffer
    и 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 ke koho koho --enable-debug.

Ua lōʻihi kēia hoʻokuʻu ʻana - aneane hoʻokahi makahiki.
ʻ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
nāʻatikala "Ka unuhi ʻana o POSIX Submatch 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ā benchmarks e ka paʻ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 kēia manawa
nā papahana e like me RE2, akā ma ke ʻano 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).
Maikaʻi nō hoʻi mai ka manaʻo o ka hoʻāʻo ʻana, benchmarks a me ka hana ʻana i nā paʻa i nā ʻōlelo ʻē aʻe.

Mahalo i nā mea hoʻomohala re2c i nā mea a pau i kōkua i kēia hoʻokuʻu ʻana,
a i ke kaiāulu ma ka laulā no nā manaʻo, nā hōʻike hewa, nā paʻi, ka morale, etc. ;]

Source: linux.org.ru

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