stattfonnt huet Fräisetzung re2c, e gratis lexikaleschen Analyser Generator fir C an C++ Sproochen. Erënnert drun datt re2c am Joer 1993 vum Peter Bambulis als experimentellen Generator vu ganz schnelle lexikaleschen Analysatoren geschriwwe gouf, ënnerscheet sech vun anere Generatoren an der Geschwindegkeet vum generéierte Code an eng ongewéinlech flexibel User-Interface, déi et erlaabt Analysatoren einfach an effizient an en existente Code z'integréieren. Basis. Zënterhier ass de Projet vun der Gemeinschaft entwéckelt a gëtt weiderhin eng Plattform fir Experimenter a Fuerschung am Beräich vun der formeller Grammatik a finite Staatsmaschinnen.
D'Virbereedung fir d'Verëffentlechung huet bal ee Joer gedauert. Déi meescht Zäit gouf, wéi ëmmer, verbruecht fir en theoretesche Kader z'entwéckelen an ze schreiwen
Artikelen"Effizient POSIX Submatch Extraktioun op NFA".
D'Algorithmen, déi am Artikel beschriwwe ginn, ginn an der experimenteller Bibliothéik libre2c ëmgesat
(D'Bibliothéik bauen an d'Performance Tester sinn als Standard deaktivéiert an ass aktivéiert vun der Konfiguratiounsoptioun "—enable-libs"). D'Bibliothéik ass net als Konkurrent fir bestehend Projete wéi RE2 geduecht, mee als Fuerschungsplattform fir d'Entwécklung vun neien
Algorithmen (déi dann an re2c oder an anere Projete benotzt kënne ginn). Et ass och bequem aus der Siicht vum Test, d'Messung vun der Leeschtung an d'Schafe vu Bindungen un aner Sproochen.
Haaptinnovatiounen an der Versioun re2c 1.2:
Eng nei vereinfacht Method bäigefüügt fir d'Enn vun den Inputdaten ze kontrolléieren ("EOF-Regel"). Fir dëst ass d'Konfiguratioun "re2c:eof" bäigefüügt,
erlaabt Iech den Terminal Charakter ze wielen,
an eng speziell Regel "$", déi ausgeléist gëtt wann de Lexer
erfollegräich Enn vun den Inputdaten erreecht.
Historesch stellt re2c e Choix vu verschiddene Verifizéierungsmethoden fir
Enn vun Input variéieren a Begrenzung, Effizienz an Einfachheet
Uwendungen. Déi nei Method ass entwéckelt fir Code Schreiwen ze vereinfachen, während
wärend effektiv a wäit applicabel bleift. Al Weeër
nach schaffen a kann an e puer Fäll léiwer ginn.
D'Fäegkeet bäigefüügt fir extern Dateien mat enger Direktiv opzehuelen
"/*!include:re2c "file.re" */", wou "file.re" den Numm vun der Datei ass, déi agefouert gëtt. Re2c sicht Dateien am abegraff Dateiverzeichnis,
wéi och an der Lëscht vun de Weeër, déi mat der "-I" Optioun spezifizéiert sinn.
Abegraff Dateien kënnen aner Dateien enthalen.
Re2c bitt "Standard" Dateien am "include/" Verzeichnis
Projet - et gëtt erwaart datt nëtzlech Definitiounen do accumuléieren
regelméisseg Ausdréck, eppes wéi d'Standardbibliothéik.
Bis elo, op Ufro vun den Aarbechter, ass eng Datei mat Definitioune vun Unicode Kategorien dobäigesat ginn.
D'Fäegkeet bäigefüügt fir Headerdateien mat arbiträr ze generéieren
Inhalt mat den "-t --type-header" Optiounen (oder passend
Konfiguratiounen) an nei Direktiven "/*!header:re2c:on*/" an
"/*!header:re2c:off*/". Dëst kann nëtzlech sinn a Fäll wou
wann re2c muss Definitioune vu Variabelen, Strukturen a Makroen generéieren,
an aneren Iwwersetzungsunitéiten benotzt.
Re2c versteet elo UTF8 literals a Charakterklassen a reguläre Ausdréck.
Par défaut parséiert re2c Ausdréck wéi "∀x ∃y" als
Sequenz vun 1-Bit ASCII Zeechen "e2 88 80 78 20 e2 88 83 79"
(Hexcodes), an d'Benotzer mussen Unicode Charaktere manuell entkommen:
"\\u2200x\\u2203y". Dëst ass ganz onbequem an onerwaart fir vill
Benotzer (wéi bewisen duerch konstante Feeler Berichter). Also elo
re2c bitt d'Optioun "--input-encoding {ascii | utf8}",
wat Iech erlaabt d'Verhalen z'änneren an "∀x ∃y" als ze analyséieren
"2200 78 20 2203 79."
Re2c erlaabt elo regelméisseg re2c Blocken am "-r --reuse" Modus ze benotzen.
Dëst ass bequem wann d'Inputdatei vill Blocks enthält an nëmmen e puer vun hinnen
muss nei benotzt ginn.
Elo kënnt Dir de Format vun Warnungen a Fehlermeldungen astellen
benotzt déi nei Optioun "--location-format {gnu | msvc}". GNU Format gëtt ugewisen
als "Dateiname: Linn: Kolonn:", an de MSVC Format als "Dateiname (Linn, Kolonn)".
Dës Feature kann nëtzlech sinn fir IDE-Liebhaber.
Eng "--verbose" Optioun gouf och bäigefüügt, déi e kuerze Victoire Message weist wann et erfollegräich ass.
De "Kompatibilitéit" Modus mat Flex gouf verbessert - e puer Parsing Feeler goufen fixéiert an
falsch Bedreiwer Virrang an rare Fäll.
Historesch huet d'Optioun "-F --flex-Support" Iech erlaabt Code ze schreiwen
gemëscht an flex Stil an re2c Stil, déi mécht Parsing e bësse schwéier.
Flex Kompatibilitéit Modus gëtt selten am neie Code benotzt,
awer re2c ënnerstëtzen et weider fir Réckkompatibilitéit.
De Charakterklass Subtraktiounsbedreiwer "/" gëllt elo
ier d'Kodéierung ausgebaut gëtt, wat et erlaabt an enger méi grousser Zuel vu Fäll ze benotzen,
wann eng variabel Zeechelängt Kodéierung benotzt gëtt (zum Beispill UTF8).
D'Ausgabdatei gëtt elo atomesch erstallt: re2c erstellt als éischt eng temporär Datei
a schreift d'Resultat an et, an ëmbenannt dann déi temporär Datei op d'Ausgab
eng Operatioun.
Aus der Siicht vun den Entwéckler huet re2c e méi komplette Subsystem kritt
Debugging Debugging Code ass elo a Verëffentlechungsbaut a
kann aktivéiert ginn mat der Konfiguratiounsoptioun "--enable-debug".