Famoahana ny re2c 1.2 lexical analyzer generator

nitranga famotsorana re2c, mpamokatra mpandinika lexical maimaim-poana ho an'ny fiteny C sy C++. Tsarovy fa ny re2c dia nosoratan'i Peter Bambulis tamin'ny taona 1993 ho toy ny mpamokatra andrana amin'ny mpandinika leksika haingana dia haingana, tsy mitovy amin'ny mpamokatra hafa amin'ny hafainganan'ny kaody novokarina sy ny interface tsara mpampiasa tsy mahazatra izay ahafahan'ny mpanadihady ho mora sy mahomby ampidirina ao anaty code efa misy. fototra. Nanomboka teo dia novolavolain'ny vondrom-piarahamonina ny tetikasa ary mbola ho sehatra andrana sy fikarohana eo amin'ny sehatry ny fitsipi-pitenenana ara-dalΓ na sy ny milina fanjakana voafetra.

Efa ho taona iray manontolo ny fanomanana ny famoahana azy. Ny ankamaroan'ny fotoana, toy ny mahazatra, dia lany tamin'ny famolavolana rafitra sy fanoratana teorika
lahatsoratra "Extraction POSIX Submatch mahomby amin'ny NFA".
Ny algorithm voalaza ao amin'ny lahatsoratra dia ampiharina ao amin'ny tranomboky andrana libre2c
(Ny fananganana ny tranomboky sy ny fitsapana fampisehoana dia tsy mandeha amin'ny alΓ lan'ny default ary alefa amin'ny safidy configure "-enable-libs"). Ny trano famakiam-boky dia tsy natao ho mpifaninana amin'ireo tetikasa efa misy toa ny RE2, fa ho sehatra fikarohana ho an'ny fampandrosoana ny vaovao.
algorithms (izay azo ampiasaina amin'ny re2c na amin'ny tetikasa hafa). Mety ihany koa amin'ny fomba fijerin'ny fitsapana, ny fandrefesana ny fahombiazany ary ny famoronana fatorana amin'ny fiteny hafa.

Fanavaozana lehibe amin'ny dikan-re2c 1.2:

  • Nampiana fomba tsotsotra vaovao hanamarinana ny fiafaran'ny angona fampidirana (β€œfitsipika EOF”). Ho an'izany dia nampiana ny fandrindrana "re2c:eof",
    ahafahanao misafidy ny toetran'ny terminal,
    ary fitsipika manokana "$", izay mipoitra raha ny lexer
    nahomby tamin'ny faran'ny angona fampidirana.
    Ara-tantara, ny re2c dia manome safidy fomba fanamarinana maromaro ho an'ny
    fiafaran'ny fampidirana tsy mitovy amin'ny fetra, ny fahombiazana ary ny fahatsorana
    fampiharana. Ny fomba vaovao dia natao hanatsorana ny fanoratana kaody, raha
    nefa mbola mahomby sy azo ampiharina betsaka. Fomba taloha
    mbola miasa ary mety ho tiana amin'ny toe-javatra sasany.

  • Nampiana ny fahafahana mampiditra rakitra ivelany mampiasa torolΓ lana
    "/*!include:re2c "file.re" */", izay "file.re" no anaran'ilay rakitra ampidirina. Re2c dia mitady rakitra ao amin'ny lahatahiry misy rakitra,
    ary koa ao amin'ny lisitry ny lalana voafaritra amin'ny alΓ lan'ny safidy "-I".
    Ny rakitra tafiditra dia mety misy rakitra hafa.
    Re2c dia manome rakitra "manara-penitra" ao amin'ny lahatahiry "include/".
    tetikasa - antenaina fa hiangona ao ny famaritana mahasoa
    fomba fiteny mahazatra, zavatra toy ny tranomboky mahazatra.
    Hatreto, noho ny fangatahan'ny mpiasa dia nampiana rakitra iray misy famaritana ny sokajy Unicode.

  • Nampiana ny fahafahana mamorona rakitra header amin'ny arbitrary
    atiny mampiasa ny safidy "-t --type-header" (na mety
    configurations) ary torolΓ lana vaovao "/*!header:re2c:on*/" ary
    "/*!header:re2c:off*/". Mety ilaina izany amin'ny tranga izay
    rehefa mila mamorona famaritana miovaova, rafitra ary macro ny re2c,
    ampiasaina amin’ny sampana fandikan-teny hafa.

  • Re2c izao dia mahatakatra ny litera UTF8 sy ny kilasy amin'ny fiteny mahazatra.
    Amin'ny alΓ lan'ny default, ny re2c dia mamadika teny toy ny "βˆ€x βˆƒy" ho
    filaharan'ny tarehintsoratra ASCII 1 bit β€œe2 88 80 78 20 e2 88 83 79”
    (kaody hex), ary tsy maintsy mandositra amin'ny tanana ny tarehin-tsoratra Unicode ny mpampiasa:
    β€œ\\u2200x \\u2203y.” Tena mahasosotra sy tsy ampoizina ho an'ny maro izany
    mpampiasa (araka ny asehon'ny tatitra momba ny bibikely tsy tapaka). Ka izao
    re2c dia manome ny safidy "--input-encoding {ascii | utf8}",
    izay mamela anao hanova ny fitondran-tena sy parse "βˆ€x βˆƒy" ho
    β€œ2200 78 20 2203 79.”

  • Re2c izao dia mamela ny sakana re2c mahazatra ampiasaina amin'ny fomba "-r --reuse".
    Mety izany raha misy sakana maro ny rakitra fampidirana ary ny sasany amin'izy ireo ihany
    mila ampiasaina indray.

  • Azonao atao izao ny mametraka ny endrika fampitandremana sy hafatra diso
    mampiasa ny safidy vaovao "--location-format {gnu | msvc}". Ny endrika GNU dia aseho
    ho "anaran-drakitra: andalana: tsanganana:", ary ny endrika MSVC ho "anaran-drakitra (tsipika, tsanganana)".
    Ity endri-javatra ity dia mety ilaina ho an'ireo tia IDE.
    Nisy safidy "--verbose" nampiana ihany koa, izay mampiseho hafatra fandresena fohy raha mahomby.

  • Nohatsaraina ny fomba "compatibility" miaraka amin'ny flex - misy hadisoana amin'ny fanaparitahana sasany efa raikitra ary
    diso laharam-pahamehana ny mpandraharaha amin'ny tranga tsy fahita firy.
    Ara-tantara, ny safidy "-F --flex-suppor" dia namela anao hanoratra kaody
    mifangaro amin'ny fomba flex sy fomba re2c, izay manasarotra kely.
    Mahalana no ampiasaina amin'ny kaody vaovao ny maodely compatibility Flex,
    fa ny re2c dia manohy manohana azy amin'ny fifanarahana mihemotra.

  • Mihatra izao ny opΓ©rateur de subtraction class character "/".
    alohan'ny hanitarana ny encoding, izay ahafahana mampiasa azy amin'ny tranga maro kokoa,
    raha ampiasaina ny famandrihana ny halavan'ny tarehintsoratra miovaova (ohatra UTF8).

  • Ny rakitra vokarina izao dia noforonina atomika: re2c dia mamorona rakitra vonjimaika aloha
    ary manoratra ny valiny ao anatiny, ary avy eo dia manonona ny rakitra vonjimaika ho amin'ny vokatra
    fandidiana iray.

  • Ny antontan-taratasy dia vita ary nosoratana indray; indrindra fa nampiana vaovao
    toko momba ny http://re2c.org/manual/manual.html#buffer-refilling Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°
    ΠΈ momba ny fomba hijerena ny fiafaran'ny angona fampidirana.
    Angonina amin'ny endrika ny antontan-taratasy vaovao
    torolalana feno pejy iray
    miaraka amin'ny ohatra (ireo loharano mitovy dia aseho ao amin'ny pejin-tanana sy ao amin'ny antontan-taratasy an-tserasera).
    Nisy andrana ratsy natao hanatsarana ny famakian'ny tranonkala amin'ny finday.

  • Avy amin'ny fomba fijerin'ny mpamorona, ny re2c dia nahazo subsystem feno kokoa
    debugging Ny kaody debug dia tsy mandeha intsony amin'ny famoahana build and
    dia azo alefa amin'ny alΓ lan'ny safidy configure "--enable-debug".

Source: opennet.ru

Add a comment