re2c 1.2

Tamin'ny zoma 2 aogositra, navoaka ny re2c, mpamokatra maimaim-poana amin'ny mpandinika lexical ho an'ny fiteny C sy C++. Re2c dia nosoratan'i Peter Bamboulis tamin'ny taona 1993 ho mpamokatra andrana amin'ny mpandinika leksika haingana be, miavaka amin'ny mpamokatra hafa amin'ny hafainganam-pandehan'ny kaody novokarina ary ny interface tsara mpampiasa tsy mahazatra izay ahafahan'ny mpandinika ho mora sy mahomby ampidirina amin'ny fototry ny code efa misy. Nanomboka teo, ny tetikasa dia novolavolain'ny vondrom-piarahamonina ary mbola ho sehatra andrana sy fikarohana eo amin'ny sehatry ny fitsipi-pitenenana ofisialy sy ny milina fanjakana voafetra.

Fanavaozana lehibe amin'ny dikan-1.2:

  • Nampiana fomba vaovao (tsotsotra) hanamarinana ny fiafaran'ny angona fampidirana
    (Anglisy β€œEOF rule”).
    Ho an'izany dia nampiana ny konfigurasi re2c:eof,
    ahafahanao misafidy ny toetran'ny terminal,
    ary fitsipika $ manokana izay mirehitra 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" */ aiza ny file.re
    io no anaran'ilay rakitra tafiditra. Re2c dia mitady rakitra ao amin'ny lahatahiry misy rakitra,
    ary koa ao amin'ny lisitry ny lalana voafaritra amin'ny fampiasana ny safidy -I.
    Ny rakitra tafiditra dia mety misy rakitra hafa.
    Re2c dia manome rakitra "manara-penitra" ao amin'ny lisitry ny /
    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 safidy --input-encoding ,
    izay mamela anao hanova ny fitondran-tena sy parse "βˆ€x βˆƒy" ho
    2200 78 20 2203 79.

  • Re2c izao dia mamela ny fampiasana sakana re2c mahazatra 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 --location-format vaovao . Ny endrika GNU dia aseho
    toy ny 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.
    Misy safidy --verbose koa nampiana, izay manonta hafatra fandresena fohy raha mahomby.

  • Ny fomba "compatibility" miaraka amin'ny flex dia nohatsaraina - ny sasany amin'ireo fahadisoana parsing dia raikitra ary
    diso laharam-pahamehana ny mpandraharaha amin'ny tranga tsy fahita firy.
    Ara-tantara, ny safidy -F --flex-support 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.

  • Ny opΓ©rateur de subtraction classe / no mihatra izao
    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 famenoana ny buffer
    ΠΈ momba ny fomba hijerena ny fiafaran'ny angona fampidirana.
    Angonina amin'ny endrika ny antontan-taratasy vaovao
    boky 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.

Naharitra ela ity famoahana ity - efa ho herintaona iray manontolo.
Ny ankamaroan'ny fotoana, toy ny mahazatra, dia lany tamin'ny famolavolana rafitra sy fanoratana teorika
lahatsoratra "Fitrandrahana 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 mari-pamantarana dia kilemaina amin'ny alΓ lan'ny default ary alefa amin'ny safidy configure
--enable-libs). Ny tranomboky dia tsy heverina ho mpifaninana amin'ny efa misy
tetikasa toy 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, benchmark ary famoronana fatorana amin'ny fiteny hafa.

Misaotra avy amin'ny mpamorona re2c ho an'ireo rehetra nanampy tamin'ity famoahana ity,
ary ho an'ny vondrom-piarahamonina amin'ny ankapobeny ho an'ny hevitra, tatitra momba ny bug, patch, morale, sns. ;]

Source: linux.org.ru

Add a comment