Veröffentlichung des re2c-Lexer-Generators 1.2

fand statt freigeben re2c, ein kostenloser lexikalischer Analysegenerator fĂŒr die Sprachen C und C++. Denken Sie daran, dass re2c 1993 von Peter Bambulis als experimenteller Generator fĂŒr sehr schnelle lexikalische Analysatoren geschrieben wurde und sich von anderen Generatoren durch die Geschwindigkeit des generierten Codes und eine ungewöhnlich flexible BenutzeroberflĂ€che unterscheidet, die eine einfache und effiziente Integration von Analysatoren in einen vorhandenen Code ermöglicht Base. Seitdem wurde das Projekt von der Community weiterentwickelt und ist weiterhin eine Plattform fĂŒr Experimente und Forschung im Bereich formaler Grammatiken und endlicher Zustandsmaschinen.

Die Vorbereitungen fĂŒr die Veröffentlichung dauerten fast ein ganzes Jahr. Die meiste Zeit wurde wie immer fĂŒr die Entwicklung eines theoretischen Rahmens und das Schreiben aufgewendet
Artikel "Effiziente POSIX-Submatch-Extraktion auf NFA«.
Die im Artikel beschriebenen Algorithmen sind in der experimentellen Bibliothek libre2c implementiert
(Der Aufbau der Bibliothek und Leistungstests sind standardmĂ€ĂŸig deaktiviert und werden durch die Konfigurationsoption „—enable-libs“ aktiviert.) Die Bibliothek ist nicht als Konkurrenz zu bestehenden Projekten wie RE2 gedacht, sondern als Forschungsplattform fĂŒr die Entwicklung neuer Projekte
Algorithmen (die dann in re2c oder in anderen Projekten verwendet werden können). Es ist auch praktisch im Hinblick auf Tests, Leistungsmessungen und die Erstellung von Bindungen zu anderen Sprachen.

Wichtigste Neuerungen in Version re2c 1.2:

  • Eine neue vereinfachte Methode zur ÜberprĂŒfung des Endes von Eingabedaten („EOF-Regel“) hinzugefĂŒgt. Hierzu wurde die Konfiguration „re2c:eof“ hinzugefĂŒgt,
    ermöglicht Ihnen die Auswahl des Endzeichens,
    und eine Sonderregel „$“, die ausgelöst wird, wenn der Lexer
    Das Ende der Eingabedaten wurde erfolgreich erreicht.
    Historisch gesehen bietet re2c eine Auswahl verschiedener Verifizierungsmethoden fĂŒr
    Ende der Eingaben, die sich in Begrenzung, Effizienz und Einfachheit unterscheiden
    Anwendungen. Die neue Methode soll das Schreiben von Code vereinfachen
    Dabei bleibt es wirksam und weithin anwendbar. Alte Wege
    funktionieren immer noch und können in manchen FÀllen bevorzugt werden.
  • Es wurde die Möglichkeit hinzugefĂŒgt, externe Dateien mithilfe einer Direktive einzubinden
    „/*!include:re2c „file.re“ */“, wobei „file.re“ der Name der einzubindenden Datei ist. Re2c sucht nach Dateien im enthaltenen Dateiverzeichnis.
    sowie in der Liste der mit der Option „-I“ angegebenen Pfade.
    Enthaltene Dateien können andere Dateien enthalten.
    Re2c stellt „Standard“-Dateien im Verzeichnis „include/“ bereit
    Projekt - es wird erwartet, dass sich dort nĂŒtzliche Definitionen ansammeln
    regulĂ€re AusdrĂŒcke, so etwas wie die Standardbibliothek.
    Bisher wurde auf Wunsch der Arbeitnehmer eine Datei mit Definitionen von Unicode-Kategorien hinzugefĂŒgt.
  • Es wurde die Möglichkeit hinzugefĂŒgt, Header-Dateien mit beliebigen Header-Dateien zu generieren
    Inhalt mit den Optionen „-t --type-header“ (oder entsprechend)
    Konfigurationen) und neue Direktiven „/*!header:re2c:on*/“ und
    "/*!header:re2c:off*/". Dies kann in FĂ€llen nĂŒtzlich sein, in denen
    wenn re2c Definitionen von Variablen, Strukturen und Makros generieren muss,
    wird in anderen Übersetzungseinheiten verwendet.
  • Re2c versteht jetzt UTF8-Literale und Zeichenklassen in regulĂ€ren AusdrĂŒcken.
    StandardmĂ€ĂŸig analysiert re2c AusdrĂŒcke wie „∀x ∃y“ als
    Folge von 1-Bit-ASCII-Zeichen „e2 88 80 78 20 e2 88 83 79“
    (Hex-Codes) und Benutzer mĂŒssen Unicode-Zeichen manuell maskieren:
    „\\u2200x \\u2203y.“ Dies ist fĂŒr viele sehr unbequem und unerwartet
    Benutzer (wie durch stÀndige Fehlerberichte belegt). Also jetzt
    re2c bietet die Option „--input-encoding {ascii | utf8}",
    Dadurch können Sie das Verhalten Ă€ndern und „∀x ∃y“ als analysieren
    „2200 78 20 2203 79.“
  • Re2c ermöglicht jetzt die Verwendung regulĂ€rer re2c-Blöcke im „-r --reuse“-Modus.
    Dies ist praktisch, wenn die Eingabedatei viele Blöcke und nur einige davon enthÀlt
    muss wiederverwendet werden.
  • Jetzt können Sie das Format von Warnungen und Fehlermeldungen festlegen
    mit der neuen Option „--location-format {gnu | msvc}". Das GNU-Format wird angezeigt
    als „Dateiname:Zeile:Spalte:“ und das MSVC-Format als „Dateiname(Zeile,Spalte)“.
    Diese Funktion kann fĂŒr IDE-Liebhaber nĂŒtzlich sein.
    Außerdem wurde eine Option „--verbose“ hinzugefĂŒgt, die bei Erfolg eine kurze Siegmeldung anzeigt.
  • Der „KompatibilitĂ€ts“-Modus mit Flex wurde verbessert – einige Parsing-Fehler wurden behoben und
    In seltenen FÀllen kommt es zu einer falschen OperatorprioritÀt.
    Historisch gesehen ermöglichte die Option „-F --flex-suppor“ das Schreiben von Code
    gemischt im Flex-Stil und im Re2c-Stil, was das Parsen etwas schwierig macht.
    Der Flex-KompatibilitÀtsmodus wird in neuem Code selten verwendet.
    re2c unterstĂŒtzt es jedoch weiterhin aus GrĂŒnden der AbwĂ€rtskompatibilitĂ€t.
  • Es gilt jetzt der Zeichenklassen-Subtraktionsoperator „/“.
    bevor die Kodierung erweitert wird, was die Verwendung in einer grĂ¶ĂŸeren Anzahl von FĂ€llen ermöglicht,
    wenn eine Kodierung mit variabler ZeichenlÀnge verwendet wird (zum Beispiel UTF8).
  • Die Ausgabedatei wird nun atomar erstellt: re2c erstellt zunĂ€chst eine temporĂ€re Datei
    und schreibt das Ergebnis hinein und benennt dann die temporÀre Datei in die Ausgabe um
    eine Operation.
  • Die Dokumentation wurde vervollstĂ€ndigt und neu geschrieben; insbesondere kamen neue hinzu
    Kapitel ĂŒber http://re2c.org/manual/manual.html#buffer-refilling Đ·Đ°ĐżĐŸĐ»ĐœĐ”ĐœĐžĐ” Đ±ŃƒŃ„Đ”Ń€Đ°
    Đž ĂŒber Möglichkeiten, das Ende der Eingabedaten zu ĂŒberprĂŒfen.
    Die neue Dokumentation wird im Formular gesammelt
    ein umfassender einseitiger Leitfaden
    mit Beispielen (die gleichen Quellen werden in der Manpage und in der Online-Dokumentation wiedergegeben).
    Es wurden nur unzureichende Versuche unternommen, die Lesbarkeit der Website auf Mobiltelefonen zu verbessern.
  • Aus Sicht der Entwickler hat re2c ein vollstĂ€ndigeres Subsystem erhalten
    Debuggen Das Debuggen von Code ist jetzt in Release-Builds und deaktiviert
    kann mit der Konfigurationsoption „--enable-debug“ aktiviert werden.

Source: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz und VPS-VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster