re2c 1.2

E Freideg, 2. August, gouf d'Verëffentlechung vu re2c, e gratis Generator vu lexikaleschen Analysatoren fir d'C an C++ Sproochen, verëffentlecht. Als Erënnerung gouf re2c 1993 vum Peter Bamboulis geschriwwen als en experimentellen Generator vu ganz schnelle lexikaleschen Analysatoren, ënnerscheet vun aneren Generatoren duerch d'Geschwindegkeet vum generéierte Code an eng ongewéinlech flexibel User-Interface, déi et erlaabt Analysatoren einfach an effizient an eng bestehend Code 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.

Haaptinnovatiounen an der Versioun 1.2:

  • Eng nei (vereinfacht) Manéier bäigefüügt fir d'Enn vun den Inputdaten ze kontrolléieren
    (Englesch "EOF Regel").
    Fir dëst ass d're2c:eof Konfiguratioun bäigefüügt,
    erlaabt Iech den Terminal Charakter ze wielen,
    an eng speziell $ Regel datt Feier 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
    dëst ass den Numm vun der abegraff Datei. Re2c sicht no 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 eng --Input-Kodéierungsoptioun ,
    wat Iech erlaabt d'Verhalen z'änneren an "∀x ∃y" als ze analyséieren
    2200 78 20 2203 79.

  • Re2c erlaabt elo d'Benotzung vu reguläre re2c Blocken am -r --reuse Modus.
    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 --Location-Format Optioun . GNU Format gëtt ugewisen
    als Dateinumm: Linn: Kolonn:, an de MSVC Format als Dateinumm (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 dréckt 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'-F --flex-Support Optioun 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 Charakter Klass Subtraktioun Bedreiwer / elo gëllt
    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.

  • D'Dokumentatioun gouf ofgeschloss an nei geschriwwen; virun allem nei goufen dobäi
    Kapitelen iwwer d'Füllung vum Puffer
    и iwwer Weeër fir d'Enn vun den Inputdaten ze kontrolléieren.
    Déi nei Dokumentatioun gëtt an der Form gesammelt
    eng ëmfaassend eng Säit Handbuch
    mat Beispiller (déi selwecht Quelle ginn an der Manpage an an der Online Dokumentatioun gemaach).
    Schlecht Versuche goufen gemaach fir d'Liesbarkeet vum Site op Telefonen ze verbesseren.

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

Dës Verëffentlechung huet laang gedauert - bal e ganzt Joer.
Déi meescht Zäit gouf, wéi ëmmer, verbruecht fir en theoretesche Kader z'entwéckelen an ze schreiwen
Artikelen "Effizienz POSIX Submatch Extraktioun op NFA".
D'Algorithmen, déi am Artikel beschriwwe ginn, ginn an der experimenteller Bibliothéik libre2c ëmgesat
(d'Bibliothéik an d'Benchmarks bauen ass par défaut deaktivéiert an ass aktivéiert vun der Konfiguratiounsoptioun
--enable-libs). D'Bibliothéik ass net als Konkurrent fir existéierend konzipéiert
Projete wéi RE2, mä als Fuerschung Plattform 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 vun Testen, Benchmarks a Bindungen un aner Sproochen erstellen.

Merci vun den re2c Entwéckler un jiddereen deen dës Verëffentlechung gehollef huet geschitt,
an der Communautéit am Allgemengen fir Iddien, Käfer Berichter, Patches, Moral, etc. ;]

Source: linux.org.ru

Setzt e Commentaire