ospatu askatu re2c, C eta C++ lengoaietarako doako analizatzaile lexikoaren sorgailua. Gogora dezagun re2c 1993an idatzi zuela Peter Bambulis-ek analizatzaile lexikal oso azkarren sorgailu esperimental gisa, beste sorgailu batzuengandik sortutako kodearen abiaduran eta ezohiko malgu-interfazean, analizatzaileak lehendik dagoen batean erraz eta eraginkortasunez integratzea ahalbidetzen duena. kodearen oinarria. Harrezkero, proiektua komunitateak garatu du eta gramatika formalen eta egoera finituetako makinen alorreko esperimentu eta ikerketetarako plataforma izaten jarraitzen du.
Askapenerako prestaketak ia urtebete behar izan zuen. Gehienetan, beti bezala, marko teorikoa garatzen eta idazten zen
artikuluak"POSIX Submatch erauzketa eraginkorra NFAn".
Artikuluan deskribatutako algoritmoak libre2c liburutegi esperimentalean inplementatzen dira
(liburutegia eta errendimendu-probak sortzea lehenespenez desgaituta dago eta "βenable-libs" konfigurazio aukerak gaituta dago). Liburutegia ez da RE2 bezalako proiektuen lehiakide gisa, baizik eta berriak garatzeko ikerketa plataforma gisa.
algoritmoak (gero re2c edo beste proiektu batzuetan erabil daitezkeenak). Probak egiteko, errendimendua neurtzeko eta beste hizkuntzetarako loturak sortzeko ere komenigarria da.
Berrikuntza nagusiak re2c 1.2 bertsioan:
Sarrerako datuen amaiera egiaztatzeko metodo sinplifikatu berri bat gehitu da ("EOF araua"). Horretarako, βre2c:eofβ konfigurazioa gehitu da,
terminaleko karakterea hautatzeko aukera ematen dizu,
eta β$β arau berezi bat, lexera bada abiarazten dena
behar bezala iritsi da sarrerako datuen amaierara.
Historikoki, re2c-ek hainbat egiaztapen-metodo aukeratzen ditu
Muga, eraginkortasuna eta sinpletasuna duten sarreren amaiera
aplikazioak. Metodo berria kodea idaztea errazteko diseinatuta dago, berriz
eraginkorra eta oso aplikagarria izaten jarraituz. Modu zaharrak
oraindik funtzionatzen du eta kasu batzuetan hobetsi daiteke.
Zuzentarau bat erabiliz kanpoko fitxategiak sartzeko gaitasuna gehitu da
"/*!include:re2c "fitxategia.re" */", non "fitxategia.re" sartu beharreko fitxategiaren izena den. Re2c-ek fitxategien direktorio barnean fitxategiak bilatzen ditu,
baita β-Iβ aukera erabiliz zehaztutako bideen zerrendan ere.
Sartutako fitxategiek beste fitxategi batzuk izan ditzakete.
Re2c-ek fitxategi "estandarrak" eskaintzen ditu "include/" direktorioan
proiektua - definizio erabilgarriak bertan pilatuko direla espero da
adierazpen erregularrak, liburutegi estandarraren antzeko zerbait.
Orain arte, langileek eskatuta, Unicode kategorien definizioak dituen fitxategi bat gehitu da.
Goiburuko fitxategiak arbitrarioarekin sortzeko gaitasuna gehitu da
edukia "-t --type-header" aukerak erabiliz (edo egokia
konfigurazioak) eta zuzentarau berriak "/*!header:re2c:on*/" eta
"/*!header:re2c:off*/". Hau erabilgarria izan daiteke kasuetan
re2c-ek aldagaien, egituren eta makroen definizioak sortu behar dituenean,
beste itzulpen-unitate batzuetan erabiltzen da.
Re2c-ek orain UTF8 literalak eta karaktere klaseak ulertzen ditu adierazpen erregularretan.
Lehenespenez, re2c-ek "βx βy" bezalako esamoldeak analizatzen ditu
1 biteko ASCII karaktereen sekuentzia "e2 88 80 78 20 e2 88 83 79"
(hex kodeak), eta erabiltzaileek Unicode karaktereei eskuz ihes egin behar diete:
"\\u2200x \\u2203y." Hau oso deserosoa eta ezustekoa da askorentzat
erabiltzaileak (etengabeko akatsen berri ematen duten bezala). Beraz, orain
re2c-k "--input-encoding {ascii | utf8}",
portaera aldatzeko eta ββx βyβ gisa analizatzeko aukera ematen duena
"2200 78 20 2203 79".
Re2c-ek orain re2c bloke arruntak "-r --reuse" moduan erabiltzeko aukera ematen du.
Hau komenigarria da sarrerako fitxategiak bloke asko eta horietako batzuk bakarrik baditu
berrerabili behar da.
Orain abisu eta errore-mezuen formatua ezar dezakezu
aukera berria erabiliz "--location-format {gnu | msvc}". GNU formatua bistaratzen da
"fitxategi-izena:lerroa:zutabea:" gisa eta MSVC formatua "fitxategi-izena (lerroa, zutabea)" gisa.
Ezaugarri hau erabilgarria izan daiteke IDE zaleentzat.
"--verbose" aukera ere gehitu da, arrakasta izanez gero garaipen mezu labur bat erakusten duena.
Flex-ekin "bateragarritasun" modua hobetu da - analisi-akats batzuk konpondu dira eta
operadorearen lehentasun okerra kasu bakanetan.
Historikoki, "-F --flex-suppor" aukerak kodea idazteko aukera ematen zuen
flex estiloan eta re2c estiloan nahasten dira, eta horrek analisia apur bat zaila egiten du.
Flex bateragarritasun modua oso gutxitan erabiltzen da kode berrietan,
baina re2c-k atzerako bateragarritasuna onartzen jarraitzen du.
"/" karaktere-klaseen kenketa-operadorea aplikatzen da orain
kodeketa zabaldu baino lehen, eta horri esker, kasu kopuru handiagoan erabiltzeko,
karaktere luzera aldakorreko kodeketa erabiltzen bada (adibidez, UTF8).
Irteerako fitxategia atomikoki sortzen da orain: re2c-k aldi baterako fitxategi bat sortzen du lehenik
eta emaitza bertan idazten du, eta gero aldi baterako fitxategia irteerara aldatzen du
eragiketa bat.
Garatzaileen ikuspuntutik, re2c-ek azpisistema osatuagoa eskuratu du
arazketa Arazketa-kodea desgaituta dago bertsio-koniketetan eta
"--enable-debug" konfigurazio aukera erabiliz gaitu daiteke.