Am Montag, den 20. Juli, wurde die Version re2c – ein Generator fĂŒr schnelle lexikalische Analysatoren – veröffentlicht.
HauptÀnderungen:

  • UnterstĂŒtzung fĂŒr die Programmiersprache Go hinzugefĂŒgt
    (aktiviert durch die Option —lang go fĂŒr re2c oder als separates Programm re2go).
    Die Dokumentation fĂŒr C und Go wird aus demselben Text generiert, jedoch mit unterschiedlichen
    Beispielen. Das Codesystem in re2c wurde vollstĂ€ndig ĂŒberarbeitet, was
    die UnterstĂŒtzung neuer Sprachen in Zukunft erleichtern sollte.

  • Ein alternatives Build-System auf CMake wurde hinzugefĂŒgt (danke ligfx!).


    Bereits vor einiger Zeit gab es Versuche, re2c auf CMake zu portieren, aber bis ligfx hat niemand
    eine vollstÀndige Lösung angeboten.
    Das alte Build-System basierend auf Autotools bleibt weiterhin unterstĂŒtzt und genutzt,
    und im absehbaren Zeitraum sind keine PlÀne vorhanden, dieses aufzugeben (teilweise um nicht
    Probleme fĂŒr die Entwickler von Distributionen zu schaffen, teilweise weil das alte Build-System
    stabiler und ĂŒbersichtlicher ist als das neue).
    Beide Systeme werden kontinuierlich mit Travis CI getestet.
  • Die Möglichkeit, Interface-Code in Konfigurationen mit einem
    generischen API festzulegen, wurde hinzugefĂŒgt. FrĂŒher musste die Mehrheit der APIs in Form von
    Funktionen oder Funktionalen Makros angegeben werden. Jetzt können sie in Form von beliebigen
    Strings mit benannten Template-Parametern wie @@{name} oder einfach @@ (wenn
    der Parameter eindeutig ist und keine Mehrdeutigkeit entsteht) angegeben werden. Der API-Stil wird durch die Konfiguration
    re2c:api:style festgelegt (der Wert functions definiert einen funktionalen Stil, und free-form – einen beliebigen).

  • Die Funktionsweise der Option -c, —start-conditions, die es ermöglicht, mehrere
    verknĂŒpfte Lexer in einem re2c-Block zu kombinieren, wurde verbessert. Jetzt können
    gewöhnliche Blöcke neben bedingten verwendet und mehrere nicht verbundene bedingte
    Blöcke in einer Datei angegeben werden.
    Die FunktionalitĂ€t der Option -r, —reuse (Wiederverwendung von Code aus einem Block
    in anderen Blöcken) wurde in Kombination mit den Optionen -c, —start-conditions und -f, —storable-state
    (Lexer mit speicherbarem Zustand, der an beliebiger Stelle unterbrochen
    und spÀter fortgesetzt werden kann) verbessert.

  • Ein Fehler im kĂŒrzlich hinzugefĂŒgten Algorithmus zur Verarbeitung des Endes der Eingabedaten
    (EOF-Regel), der in seltenen FĂ€llen zu falschen Verarbeitungen gefĂŒhrt hat, wurde behoben.
    Überschneidungen von Regeln wurden vereinfachter gestaltet.

  • Der Bootstrapping-Prozess wurde vereinfacht. FrĂŒher versuchte das Build-System dynamisch zu finden,
    ob bereits kompilierte re2c verwendet werden konnte, um sich selbst neu zu kompilieren.
    Dies fĂŒhrte zu falschen AbhĂ€ngigkeiten (da das AbhĂ€ngigkeitsdiagramm dynamisch wurde, was die meisten Build-Systeme nicht mögen).
    Jetzt ist es notwendig, um die Lexer neu zu kompilieren, das Build-System explizit zu konfigurieren und die Variable RE2C_FOR_BUILD festzulegen.
    Vielen Dank an alle, die an der Vorbereitung dieser Version mitgewirkt haben!
    đŸ„‡re2c 2.0 | ProHoster

Danke an alle, die bei der Vorbereitung dieses Releases geholfen haben!

Quelle: linux.org.ru

60GB SSD 8Gb DDR4