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.
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.