Ostiralean, abuztuaren 2an, re2c kaleratu zen, C eta C++ lengoaietarako analizatzaile lexikalen sorgailu librea. Oroigarri gisa, re2c 1993an idatzi zuen Peter Bamboulis-ek analizatzaile lexikal oso bizkorren sortzaile esperimental gisa, sortutako kodearen abiaduragatik eta analizatzaileak erraz eta eraginkortasunez txertatzeko aukera ematen duen erabiltzaile-interfaze ezohiko malguagatik bereizten dena. dagoen kode-oinarria. Harrezkero, proiektua komunitateak garatu du eta gramatika formalen eta egoera finituetako makinen alorreko esperimentu eta ikerketetarako plataforma izaten jarraitzen du.
Berrikuntza nagusiak 1.2 bertsioan:
Sarrerako datuen amaiera egiaztatzeko modu berri bat (sinplifikatua) gehitu da
(Ingelesez βEOF ruleβ).
Horretarako, re2c:eof konfigurazioa gehitu da,
terminaleko karakterea hautatzeko aukera ematen dizu,
eta lexera bada abiatzen duen $ arau berezi bat
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
hau da include fitxategiaren izena. 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 --input-encoding aukera bat eskaintzen du ,
horrek portaera aldatzeko eta "βx βy" gisa analizatzeko aukera ematen du
2200 78 20 2203 79.
Re2c-ek orain re2c bloke arruntak erabiltzeko aukera ematen du -r --reuse moduan.
Hau komenigarria da sarrerako fitxategiak bloke asko eta horietako batzuk bakarrik baditu
berrerabili behar da.
Orain abisu eta errore-mezuen formatua ezar dezakezu
--location-format aukera berria erabiliz . GNU formatua bistaratzen da
fitxategi-izena:lerroa:zutabea: eta MSVC formatua fitxategi-izen gisa (lerroa, zutabea).
Ezaugarri hau erabilgarria izan daiteke IDE zaleentzat.
--verbose aukera bat ere gehitu da, arrakasta izanez gero garaipen mezu labur bat inprimatzen duena.
Flex-ekin "bateragarritasun" modua hobetu da - analisi-akats batzuk konpondu dira eta
operadorearen lehentasun okerra kasu bakanetan.
Historikoki, -F --flex-support 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
konfiguratu aukera erabiliz gaitu daiteke --enable-debug.
Argitalpen honek denbora luzea behar izan zuen, ia urte osoa.
Gehienetan, beti bezala, marko teorikoa garatzen eta idazten zen
Artikulua "POSIX azpimatchen erauzketa eraginkorra NFAn".
Artikuluan deskribatutako algoritmoak libre2c liburutegi esperimentalean inplementatzen dira
(liburutegia eta erreferentziak sortzea lehenespenez desgaituta dago eta konfigurazio aukerak gaituta dago
--enable-libs). Liburutegia ez da existitzen denaren lehiakide gisa planteatzen
RE2 bezalako proiektuak, baina berrien garapenerako ikerketa plataforma gisa
algoritmoak (gero re2c edo beste proiektu batzuetan erabil daitezkeenak).
Proba, benchmark eta beste hizkuntzetarako loturak sortzearen ikuspegitik ere komenigarria da.
Eskerrik asko re2c garatzaileen partetik kaleratze hau lortzen lagundu duten guztiei,
eta komunitateari, oro har, ideiak, akatsen txostenak, adabakiak, morala, etab. ;]