I te Paraire, Akuhata 2, i tukuna te re2c, he kaihanga kore utu o nga kaitirotiro kupu mo nga reo C me C++, i tukuna. I tuhia a Re2c i te tau 1993 e Peter Bamboulis hei kaihanga whakamatautau mo nga kaitirotiro kupu tino tere, he rereke mai i etahi atu kaihanga na te tere o te waehere i hangaia me te atanga kaiwhakamahi tino ngawari e taea ai e nga kaitirotiro te whakauru ngawari me te pai ki roto i te turanga waehere. Mai i tera wa, kua whakawhanakehia te kaupapa e te hapori me te noho tonu hei papa mo nga whakamatautau me te rangahau i te wahanga o te wetereo okawa me nga miihini whenua mutunga kore.
Nga mea hou i te putanga 1.2:
I taapirihia he huarahi hou (whakangoikore) hei tirotiro mo te mutunga o nga raraunga whakauru
(Ingarihi “EOF rule”).
Mo tenei, kua taapirihia te re2c:eof whirihoranga,
ka taea e koe te kowhiri i te ahua mutunga,
me tetahi ture $ motuhake ka ahi mena ko te lexer
i tutuki pai te mutunga o nga raraunga whakauru.
I nga wa o mua, ka whakarato a re2c i etahi momo huarahi manatoko mo
te mutunga o nga whakaurunga he rereke te here, te pai me te ngawari
tono. Ko te tikanga hou kua hoahoatia hei whakangwari i te waehere tuhituhi, i te wa
i te wa e mau tonu ana te whai hua me te whakamahi whanui. Nga huarahi tawhito
kei te mahi tonu, ka pai ake pea i etahi wa.
Kua taapirihia te kaha ki te whakauru i nga konae o waho ma te whakamahi i tetahi tohutohu
/*!include:re2c "file.re" */ where file.re
koinei te ingoa o te kōnae whakauru. Kei te rapu a Re2c i nga konae kei roto i te raarangi konae,
me te rarangi o nga huarahi kua tohua ma te whakamahi i te whiringa -I.
Ko etahi atu konae kei roto.
E whakarato ana a Re2c i nga konae "paerewa" kei roto i te raarangi whakauru
kaupapa - ko te tumanako ka whakaemihia nga whakamaramatanga whai hua ki reira
nga korero auau, penei i te whare pukapuka paerewa.
I tenei wa, i runga i te tono a nga kaimahi, kua taapirihia tetahi konae me nga whakamaramatanga o nga waahanga Waehereao.
Kua taapirihia te kaha ki te whakaputa i nga konae pane me te waatea
ihirangi ma te whakamahi i nga -t --type-header kōwhiringa (he tika ranei
whirihoranga) me nga tohutohu hou /*!header:re2c:on*/ me
/*!header:re2c:off*/. Ka whai hua pea tenei ki nga keehi
ina hiahia a re2c ki te whakaputa whakamaramatanga o nga taurangi, nga hanganga me nga tonotono,
whakamahia i roto i etahi atu waahanga whakamaori.
Kei te mohio a Re2c inaianei ki nga reo UTF8 me nga karaehe ahua i roto i nga korero auau.
Ma te taunoa, ka poroporoaki a re2c i nga korero penei "∀x ∃y" hei.
raupapa o nga tohu ASCII moka-1 e2 88 80 78 20 e2 88 83 79
(waehere hex), me mawhiti a ringa nga kaiwhakamahi i nga tohu Unicode:
"u2200x u2203y". He tino rawe tenei, he ohorere hoki mo te tini
nga kaiwhakamahi (e whakaatuhia ana e nga purongo bug tonu). Na inaianei
Ka whakaratohia e re2c he whiringa --input-encoding ,
ka taea e koe te huri i te whanonga me te poroporo "∀x ∃y" hei
2200 78 20 2203 79.
Ka taea e Re2c te whakamahi i nga poraka re2c i roto i te aratau -r --reuse.
He watea tenei mena he maha nga poraka kei roto i te konae whakauru, ko etahi anake
me whakamahi ano.
Ka taea e koe te whakarite i te whakatakotoranga o nga whakatupato me nga karere hapa
te whakamahi i te kōwhiringa --location-format hōu . Ka whakaatuhia te whakatakotoranga GNU
hei ingoa kōnae: raina: tīwae:, me te hōputu MSVC hei ingoa kōnae(raina, tīwae).
Ka whai hua pea tenei waahanga mo te hunga e aroha ana ki te IDE.
He whiringa --verbose kua taapirihia, ka taia he karere wikitoria poto mena ka angitu.
Kua pai ake te aratau "hototahi" me te ngawari - kua whakatika etahi hapa porotiti me te
hē te whakahaere o mua i nga keehi onge.
I nga wa o mua, ko te whiringa -F --flex-support i taea e koe te tuhi waehere
i konatunatua ki te ahua ngawari me te momo re2c, na te mea he uaua te paahi.
He iti te whakamahia te aratau hototahi ngawari ki te waehere hou,
engari kei te tautoko tonu a re2c mo te hototahi whakamuri.
Ko te kaiwhakahaere tango o te karaehe tohu / ka pa ana inaianei
i mua i te whakawhänui i te whakawaehere, ka taea te whakamahi i roto i te maha o nga keehi,
ki te whakamahia he whakawaehere roa o te ahua rereke (hei tauira UTF8).
Ko te konae putanga kua hangaia inaianei ma te ngota: ka hangaia e re2c he konae rangitahi i te tuatahi
ka tuhia te hua ki roto, ka whakaingoa ano i te konae rangitahi ki te putanga
kotahi mahi.
Mai i te tirohanga a nga kaiwhakawhanake, kua whiwhi a re2c i tetahi punaha iti ake
patuiro Kua monokia te waehere patuiro i roto i nga hanga tuku me te
Ka taea te whakahohe ma te whakamahi i te whiringa whirihora --enable-debug.
He wa roa tenei tuku - tata ki te tau katoa.
Ko te nuinga o nga wa, pera i nga wa katoa, i whakapaua ki te hanga anga whakaaro me te tuhi
Tuhinga "Te Tangohanga POSIX Whakatauritenga Pai i runga i te NFA".
Ko nga algorithm e whakaahuatia ana i roto i te tuhinga ka whakatinanahia i roto i te whare pukapuka whakamatautau libre2c
(Ko te hanga i te whare pukapuka me nga tohu tohu ka monokia ma te taunoa ka taea e te whiringa whirihora
--enable-libs). Ko te whare pukapuka kaore i te whakaarohia he whakataetae ki te waahi
kaupapa rite RE2, engari hei turanga rangahau mo te whanaketanga o nga mea hou
algorithms (ka taea te whakamahi i re2c i etahi atu kaupapa ranei).
He waatea ano mai i te tirohanga o te whakamatautau, nga tohu tohu me te hanga here ki etahi atu reo.
Nga mihi mai i nga kaiwhakawhanake re2c ki nga tangata katoa i awhina i tenei tukunga,
me te hapori whanui mo nga whakaaro, nga purongo pepeha, nga papaki, te hinengaro, me era atu. ;]