Verëffentlechung vum re2c lexer Generator 1.2

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.

  • D'Dokumentatioun gouf ofgeschloss an nei geschriwwen; virun allem nei goufen dobäi
    Kapitelen iwwer http://re2c.org/manual/manual.html#buffer-refilling заполнение буфера
    и iwwer Weeër fir d'Enn vun den Inputdaten ze kontrolléieren.
    Déi nei Dokumentatioun gëtt an der Form gesammelt
    eng ëmfaassend One-Säit Guide
    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".

Source: opennet.ru

Setzt e Commentaire