re2c 1.2

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.

  • I oti nga tuhinga me te tuhi ano; ina koa, he mea hou kua taapirihia
    nga upoko e pā ana ki te whakakī i te pūreirei
    и mo nga huarahi ki te tirotiro mo te mutunga o nga raraunga whakauru.
    Ka kohia nga tuhinga hou ki te puka
    he pukapuka-whārangi matawhānui
    me nga tauira (he rite ano nga puna korero kei te wharangi tangata me nga tuhinga ipurangi).
    He kino nga nganatanga ki te whakapai ake i te panui o te pae i runga waea.

  • 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. ;]

Source: linux.org.ru

Tāpiri i te kōrero