texttransformer.jpg

11.06.21

Freie Lizenz

Wegen mangelndem Umsatz hat Digital River am 11.6.2021 meinen Account terminiert. Deshalb habe ich mich entschlossen, die Standardversion des TextTransformers nun frei zur Verfügung zu stellen.

Bei dieser Gelegenheit wurde auch die Website überarbeitet, um sie Handy-freundlich zu machen.


10.08.10

Neu in TextTransformer 1.7.5


1. Die Navigation über den Zurück- und den Erneut-Schalter wurde überarbeitet. Bisher wurden die aufgerufenen Skripte der Token-, Produktionen-, Element-, und Testseite in einer gemeinsamen Liste verwaltet. Nun werden sie jeweils getrennt verwaltet. Bei Betätigung des Zurück- oder Erneut-Schalters wird also nicht mehr die Seite gewechselt, sondern zum entsprechenden Skript der gleichen Seite.
Die Ergebnisse von "Suche alle" werden nicht mehr in der Historyliste aufgenommen und beim Parsen des Projekts wird nicht mehr automatisch zur Startregel navigiert.

2. Beim Kopieren von Text aus dem Viewer in den Editor werden dort eventuell vorhandene TextHaltepunkte gelöscht.

3. Den Funktionen findChildLabel, findChildValue und findChildId kann nun optional ein zweiter Parameter übergeben werden. Durch diesen boolschen Parameter wird bestimmt, ob die Suche rekursiv erfolgen soll oder nicht.

4. Die Fehleranzeige für konkurrierende SKIP-Knoten wurde um einen Fall erweitert, der bisher nicht erkannt wurde.

5. Das frei erhältliche Installationsprogramm des TextTransformers ist nun eine Demo-Version die nicht mehr registriert werden kann. Registrierte Benutzer des TextTransformers erhalten einen Link zu einem passwortgeschützten Bereich, wo sie die registrierbare Version abholen können.




28.01.10

Neu in TextTransformer 1.7.4


1. Kindknoten einer node bzw. dnode können nun nach ihren Labels in alphabetisch aufsteigender oder absteigender Folge mittels der Funktionen sortChildrenA bzw. sortChildrenD sortiert werden.

2. Im Variableninspektor gibt es jetzt einen zusätzlichen Schalter mit dem die Liste der bisherbetrachteten Variablen gelöscht werden kann.

3. Ein Fehler wurde beseitigt: der TextTransformer konnte abstürzen, wenn versucht wurde den Debugger zu starten, während ein Text noch beim Laden durch einen Präprozessor verarbeitet wurde.



17.11.09

Neues Produkt: Delphi2Cpp


Delphi2Cpp ist ein Konverter von Object-Pascal (Delphi) Code nach C++. Das Programm wurde mit dem TextTransformer hergestellt.




17.11.09

Neu in Version 1.7.3


1. node-Baumknoten können jetzt ebenso verschoben werden, wie zuvor schon dnode-Baumknoten. Zuvor war dies wegen des schwierigeren internen Speichermanagements der node's verboten. Die Funktionen "addChildLast", "addChildFirst" und "addChildBefore" zur Einfügung von Knoten in einen Baum, können nun auch für node's angewendet werden, die bereits in einem Baum enthalten sind. An der alten Position werden sie dabei entfernt.

2. Einige Baumfunktionen sind hinzugekommen:

  • nextLeaf, zum Auffinden des nächsten Blatt-Knotens
  • prevLeaf, zum Auffinden des vorherigen Blatt-Knotens
  • replaceChild, zur Ersetzung eines vorhandenen Knotens
  • detach_node, zur Ablösung aus einem Baum

3. Der Check des Rückgabetyps von "addChildBefore" forderte fälschlich den node-Typ. Das ist nun zu bool korrigiert worden.

4. Die "matched" Funktion des Parserzustands "xState" fehlte in der Hilfe und ist nun nachgetragen.

5. Im generierten Code wird nun allen Funktionen und Produktionen "virtual" vorangestellt. So können die interpretierten Funktionen im Code mit effizienteren Code überschrieben werden.

6. Für die "find_file" gibt es nun einen vierten Parameter, mit dem bestimmt wird, ob bei der Suche die Groß-/Kleinschreibung des Namens beachtet wird.

7. Die Darstellung der lokalen d/node's im Variableninspektor wurde vereinfacht. Detailinformationen werden nur noch nach Doppelklick in der Baumansicht angezeigt.

8. EXIT OK erzeugt im Transformations-Manager keine Fehlermeldung mehr.

9. Die Liste der letzten Managements wird nach Abspeichern eines Managements im Transformations-Manager neu sortiert.



01.09.09
  • Es gibt jetzt eine Testsuite für den Delphi-Parser
  • Weitere Optionen für den Report im Transformations-Manager
  • Versionsnummern wurden leider nur mit den Werten Null und Eins angezeigt, Das ist korrigiert.

22.08.09

Neu in Version 1.7.2

1. Aus der Liste der Resultate im Transformations-Manager kann nun ein Report geschrieben werden. Die Informationen, die in den Report aufgenommen werden, können vom Benutzer bestimmt werden.

2. In den Projektoptionen können nun Versionsinformationen gespeichert werden.

3. Fehler im Parameter-Assistenten und im Baum-Assistenten wurden beseitigt: der Parametername und die Aktionen für Literale innerhalb von Produktionen wurden durch Default-Werte überschrieben. Einfügungen von Aktionen für SKIP und ANY wurden nicht korrekt geklammert.

4. Der Fehler wurde behoben, dass Einschlüsse innerhalb von Vorausschauen im generierten Code nicht aufgerufen wurden.

5. Der Fehler wurde beseitigt, dass der Interpreter auch für Bäume aus node's dnode als Typ für den zweiten Parameter von findNextLabel, findNextValue, findNextId verlangte.

6. Fehler beim Import/Export wurden behoben.

7. Ein Prettyprinter für Delphi wurde veröffentlicht:

http://www.text-konverter.homepage.t-online.de/DelphiPrettyPrint_ge.html


01.08.09

Neu in Version 1.7.1

1. In die Konflikterkennung hatte sich ein Fehler eingeschlichen. Die Anfänger von Knoten, die aus Optionen und optionale Wiederholungen folgen, wurden nicht einbezogen.

2. English wurde in die Tetra.ini als Sprache auch bei deutscher Installation eingetragen. Das Beispiel "BinaryCheck" wurde nicht mitinstalliert.

3. Eine verständlichere Fehlermeldung erscheint nun, wenn Benutzerdaten fehlen. Das passiert z.B. wenn die seit 1.7.0 benötigte Datei ttmain_c.frm nicht kopiert wurde.

4. Ein Fehler wurde behoben, der im Transformations-Manager auftreten konnte, wenn das Projekt einen Präprozessor benutzt.

5. Beim "Ersetzen in allen Skripten" wurde u.U. nur den ersten Suchausdruck innerhalb jeweils eines Skripts ersetzt. Dieser Fehler wurde behoben.

6. Bei der Umbenennung eines Skripts wird nun auch die Liste der Skripte aktualisiert, zu denen vor oder zurückgegangen werden kann.

7. Ein Parser für Delphi wurde veröffentlicht:

http://www.text-konverter.homepage.t-online.de/Delphi_ge.html

8. Der Transformations-Manager fehlte im Installer für TextTransformer 1.7.0.


29.06.09

Neu in Version 1.7.0


Dies ist voraussichtlich das letzte substantielle Update des TextTransformers bis zum Erscheinen der 2'er Version. Version 2 wird eine neue Unicode-fähige Oberfläche haben und Unicode-Parser unterstützen. Aber bereits in TextTransformer 1.7 ist die Erzeugung von C++-Parsern auf der Basis von Wide-Zeichen möglich.

Für den Zeitraum bis zum Erscheinen von TextTransformer 2 gibt es ein einmaliges Sonderangebot: die professionelle - C++-Code generierende - Version des TextTransformers ist für den Preis der Standard-Version erhältlich; das ist ein Viertel des bisherigen Preises, Sie sparen fast 300 €! Wer jetzt eine Standardlizenz des TextTransformers 1.7 neu erwirbt, hat Anspruch auf ein kostenloses Update auf die 2'er Version, Das gleiche gilt für Käufer der Standardlizenz sofern der Zeitpunkt des Erwerbs nicht länger als ein Jahr vor dem Erscheinen der 2'er Version liegt. Neukäufer der professionellen Version haben diesen Anspruch nicht.

1. Auf der Basis einer zusätzlichen Schablone wird nun auch eine C++-Datei erzeugt, in der der generierte Parser aufgerufen wird. In der Standardschablone erfolgt dieser Aufruf innerhalb einer main-Funktion. So wird der Code für eine Konsolenanwendung vollständig generiert. Die Erzeugung kompletter Konverter-Programme ist damit sehr schnell möglich. Wie die anderen Schablonen, so kann natürlich auch die neue Schablone an spezielle Bedürfnisse angepasst werden, z.B. zum Aufruf des Parsers innerhalb einer Klassenfunktion oder anderer Routinen. Zur Bearbeitung der neuen Schablone gibt es ein zusätzliches Fenster im TextTransformer.

2. Mit der Testversion des TextTransformers kann nun der Code für kleine Projekte erzeugt werden. Auch der benötigte unterstützende Code wird jetzt mitinstalliert.

3. Für jedes Projekt wird nun auch eine kleine Textdatei generiert, die als Grundlage für ein "jamfile" zur Verwendung mit boost bjam dienen kann. Siehe:

http://www.boost.org/doc/tools/build/index.html

4. Die experimentell schon seit langem verfügbare Option zur Erzeugung von Wide-Zeichen-Parsern wurde vervollständigt. So ist nun auch die CTT_DomNode-Klasse ein vom Zeichentyp abhängiges template.

5. Die CTT_Xerces Klasse wurde an die aktuelle xerces Version 3 angepasst.

6. Für Label von dnode's wird nun geprüft, ob sie gültige Namen für XML-Elemente sind.

7. Die Reihe der "goto"-Funktionen für Baumknoten wurde entfernt, nachdem es nun über ein Jahr kein Votum zum ihrem Erhalt gab.

8. Der voreingestellte Dateimodus in den Projektoptionen zum Öffnen der Ausgabedatei ist nun ebenso wie der für die Quelldatei: binär. Die vorherigen Defaultwerten ergaben bei Ausführung über den Transformations-Manager falsche Zeilenenden: "\r\r\n".



Bug fix: 15.04.2009

Ein Fehler wurde behoben, der dafür verantwortlich war, dass das Kopieren der Benutzerdaten auf ein anderes Laufwerk nicht funktionierte.


02.04.09

Neu in Version 1.6.2


1. Der Dialog zur Berechnung von Zeichenmengen wurde verbessert. Die vordefinierten Mengen werden nun korrekt mit Windows-Funktionen entsprechend den lokalen Einstellungen bestimmt und nicht mehr mit den entsprechenden Funktionen der Standardbibliothek. Die Mengen der ASCII-Zeichen und der Nicht-ASCII-Zeichen sind nun ebenfalls aus der Liste auszuwählen und die mögliche Einfügung des NULL-Zeichens wurde erleichtert. Der Benutzer kann nun einen minimalen Abstand einstellen, ab dem aufeinander folgende Zeichen zu einem Bereich zusammengefasst werden.

2. Schwächen bei der Verwendung von Einschlüssen wurden behoben: diese werden nun auch im Anschluss an das letzte reguläre Token erkannt. Unmittelbar aufeinander folgende Einschlüsse werden sind nun auch am Ende einer Produktion möglich. Die globale Setzung für einen Einschluss lässt sich lokal für einzelne Produktionen abschalten (leeren Namen auswählen). Falsche Markierungen beim Debuggen eines Übergangs in einen Einschluss erscheinen nicht mehr.

3. Für löschbare Strukturen in Wiederholungen wurden bisher nur Warnmeldungen erzeugt. Wurden solche Meldungen ignoriert, so geriet der Parser in Endlosschleifen. Daher wurden die Warnungen zu Fehlermeldungen verschärft und eine Ausführung des Projekts wird damit unterbunden. Zusätzlich wurde die Abbruchsmöglichkeit durch den Benutzer verbessert.

4. Es wurde ein Fehler behoben, der bei der Verarbeitung von Dateigruppen im Transformations-Manager oder mit dem Kommandozeilen-Werkzeug vorkommen konnte: Trat bei der Transformation einer Datei ein Fehler auf, so konnte sich das auf Verarbeitung der nachfolgenden Datei auswirken.

5. Mit einem zusätzlichen Schalter auf der Seite für die Zieldateien im Transformations-Manager kann die Liste der Dateien aktualisiert werden.

6. Ein vollständiger MIME-Parser (Multipurpose Internet Mail Extensions) steht nun zum Download bereit:

http://www.texttransformer.org/MIME_ge.html

Dieser Parser kann u.a. als Grundlage für einen Spamfilter verwendet werden. Der IMP-Filter - ein Spamihilator-Plugin mit TextTransformer-Interpreter - wurde ebenfalls aktualisiert und erlaubt nun das Parsen vollständiger E-Mails, inklusive aller Unterstrukturen der Kopfdaten.



29.01.09

Neu in Version 1.6.1


1. Der TextTransformer ist jetzt mehrbenutzerfähig. Auf einem Computer können verschiedene Benutzer mit jeweils eigenen Einstellungen und eigenen Anwendungsdaten-Verzeichnissen arbeiten. - Vielen Dank an Andreas Busch, der mir half, dieses Ziel zu erreichen.

2. Basierend auf dem TextTransformer-Interpreter gibt es jetzt einen kostenloser Filter für den Spamihilator:

http://www.spamihilator.com

Dieser IMP-Filter verwendet TextTransformer-Projekte um E-Mails als Spam und Nicht-Spam zu klassifizieren. Mehr Informationen zum Filter und ihn selbst gibt es unter:

http://www.text-konverter.homepage.t-online.de/Spamfilter_ge.html

3. Es gibt jetzt ein mehrteiliges Video zu einem C++ nach Java Konverter unter:

http://www.texttransformer.de/Videos_ge.html

4. Folgende Fehler und Unschönheiten wurden behoben:

- Bei einer Umbenennung der Startregel auf der Produktionen-Seite wird nun auch der Name in der Auswahlbox und in den Projektoptionen geändert.

- Semantische Aktionen in einer leere Alternative wurden bisweilen im Interpreter nicht ausgeführt. Beispiel:

( "a" ( "b" | {{...}} ) | SKIP )*

- in den Komponenten wurden beim Aufruf der TransformTextToText- und der TransformTextToTree-Funktion "ExtraParam" nicht an den Interpreter weitergeleitet. Ein NULL-Zeiger für diesen und andere Parameter konnte Exceptions auslösen.

- das Popup-Menü im Betrachter wurde auf deutsch angezeigt, auch wenn Englisch in den Umgebungseinstellungen als Sprache gesetzt ist.

- Selektierte Einträge im Produktionen-Stack waren komplett weiß und daher unlesbar.

5. Ein Forum für Fragen rund um den TextTransformer wurde eingerichtet:

http://www.texttransformer.de/forum/index.php

06.12.08

Neu in Version 1.6.0


1. Ein neues Eingabefenster erlaubt die Darstellung von Quelldateien in binärer und hexadezimaler Form. Ein exaktes Debuggen ist so auch möglich, wenn die Quelldateien NULL-Zeichen oder gemischte Zeilenumbrüche enthält.

2. Große Bäume werden im Variablen-Inspektor nun sehr schnell angezeigt. Sie werden nur soweit geladen, wie für die jeweilige Anzeige erforderlich ist. Außerdem werden Knotenattribute nun farblich hervorgehoben.

3. Vorausschau-Token können nun gepuffert werden. Dadurch läßt sich die Ausführung von Projekten, die von dieser Möglichkeit Gebrauch machen, stark beschleunigen.

4. Im Vorausschau-Debugger werden die durchlaufenden Produktionen/Token nun je nach Erfolg verschieden markiert.

5. Mit dem neuen Token "ANY" werden alle Token erkannt, die an der Stelle der Verwendung dieses Tokens nicht explizite oder implizite Alternativen sind. Damit ergeben sich zusätzliche Möglichkeiten zur Behandlung unspezifizierter Textabschnitte, neben der Verwendung des dem schon bekannten SKIP-Tokens. - Im Zuge der Integration des ANY-Tokens wurde der Kern des TextTransformers völlig neu geschrieben.

6. Für das SKIP-Token gibt es nun drei Optionen, die die Tolerierung von Alternativen steuern.

7. In dem neuen Beispiel "BinaryCheck" wird eine Vorausschau-Produktion und die Verwendung eines Projekts als Präprozessor demonstriert.

8. Zur Manipulation von Bäumen sind die Befehle "addChildBefore" und "removeChild" hinzugekommen.

9. Viele andere kleine Verbesserungen.

Es gibt drei neue kostenlose Projekte auf:

http://www.text-konverter.homepage.t-online.de
  • ein Projekt zum Import von Yacc-Grammatiken in den TextTransformer
  • ein C-Parser
  • ein HTML4-Parser


02.06.08

Neu in Version 1.5.0


1. XML wird nun als Zielformat in besonderer Weise unterstützt. Im TextTransformer können nun XML-Dokumente direkt als xerces-DOM konstruiert werden, um sie anschließend automatisch als XML-Datei schreiben zu lassen. (Die experimentelle Möglichkeit bestand im Programm schon lange, aber nun ist sie komplettiert und offiziell.) Sämtliche von xerces unterstütze Kodierungen können in den Projektoptionen ausgewählt werden, neben vielen anderen für das XML-Dokument gewünschten Eigenschaften.

2. Neu sind eine Reihe von Ereignisbehandlungen im TextTransformer.

  • OnEnterProduction
  • OnExitProduction
  • OnAcceptToken
  • OnBeginBranch
  • OnEndBranch
  • OnBeginDocument
  • OnEndDocument
  • OnParseError

Mit Hilfe dieser Funktionen lassen sich z.B. sehr einfach Parse-Bäume für beliebige Projekte erzeugen.

3. Die neuen Möglichkeiten des xerces-DOM's und der Ereignisse wurden auch in die Assistenten integriert.

4. Die TetraComponents, mit denen TextTransformer-Projekte in Delphi ausgeführt werden können wurden stark überarbeitet und erweitert. Auch in diesen Delphi-Komponenten können Parse-Ereignisse ausgewertet und z.B. zur Konstruktion von Parse-Bäumen verwendet werden. Es gibt nun eine sehr ausführliche Hilfe zu den Komponenten. Auch die Beispielsanwendung wurde erweitert. Die TextTransformer IDE produziert nun Pascal-Code zur Unterstützung der Komponenten.


5. Semantische Aktionen können jetzt in der IDE und aus den Komponenten heraus abgeschaltet werden, ohne damit zugleich die Vorausschau-Möglichkeit zu deaktivieren. Das kann z.B. sinnvoll sein, wenn ein Projekt nur zur Konstruktion eines Baumes in Delphi verwendet werden soll.


6. Der Dialog zum Testen von regulären Ausdrücken wurde neu gestaltet. In den Ergebnissen werden die Ausdrücke und ihre Unterausdrücke und was jeweils von ihnen erkannt wurde nun in einer Baumstruktur dargestellt. Der Dialog ist jetzt in einer eigenen dll untergebracht.


7. Es gibt drei neue vordefinierte Token für Ressourcen-Bezeichner gemäß RFC 3986:

  • URI_WS_DELIM
  • URI_QUOTE_DELIM
  • URI_ANGLE_DELIM

8. Fehler bei der Sortierung von exportierbarem und interpretierbarem Code bei der Erzeugung von C++-Code wurden behoben.


9. Der Funktionstabellen-Assistent wurde vereinfacht.


10. Es gibt nun einen Video-Bereich.





08.01.08

Neu in Version 1.4.1


1. Ein TextTransformer-Projekt kann nun mit externen Startparametern initialisiert werden. Eine einmalige Initialisierung vor der Ausführung aller Transformationen kann mit einem Konfigurations-Parameter erfolgen. Jede einzelne Transformation kann mit einem Extra-Parameter initialisiert werden.

2. Der Baum-Assistent kann nun Parse-Bäume für Kopierprojekte erstellen. Die Optionen zur Erzeugung von Bäumen aus dnode-Knoten wurden erweitert.

3. Das TextTransformer-Package wurde um zwei Komponenten erweitert: TTextEventsTransformer, und TTextTreeViewTransformer. Wie bisher, sind auch die neuen Komponenten frei und mit C++-Quellcode erhältlich. Alle Komponenten gibt es ebenfalls als Delphi-Quellcode.

4. Das C-Präprozessor-Projekt namens "C_pp" ist nun auf http://www.texttransformer.org veröffentlicht. Mit C_pp lassen sich C++-Dateien in die vorverarbeitete Form bringen, wie der Compiler sie "sieht": Präprozessor-Direktiven sind darin entfernt: Include-Datien werden eingeschlossen, Definitionen werden ersetzt, nicht definierte Bereiche werden ausgelassen und Makros werden aufgelöst.



31.10.07

Neu in Version 1.4.0


1. Vorausschau-Produktionen (*) können nun genauso getestet werden, wie es bisher nur für die Produktionen des Hauptparsers möglich war. Über einen speziellen Schalter oder ein Tastaturkommando kann in das Debuggen der Vorausschau verzweigt werden. Dann können dieselben Kommandos zum schrittweisen Ausführen des Parsers verwendet werden, wie auf der Ebene des Hauptparsers. Dies Verfahren funktioniert auch im gestaffelten Fall, wenn innerhalb der ersten Vorausschau weitere Vorausschau-Produktionen verwendet werden, usw.


(*) Erklärung zu Vorausschau-Produktionen: Die Wahl alternativer Möglichkeiten zur Analyse eines Textes kann davon abhängig gemacht werden, ob der jeweils folgende Textabschnitt eine bestimmte Struktur aufweist oder nicht, d.h. es wird mit Vorausschau-Produktionen zunächst im Text vorausgeschaut.

2. Es ist nun möglich den Debugger von einem Haltepunkt oder einer Fehlerposition aus schrittweise rückwärts auszuführen. Mit einer solchen Rückverfolgung kann herausgefunden werden, wie es zu dem Zustand kam, ohne wieder am Anfang des Textes beginnen zu müssen. Damit ist es oft nicht mehr nötig spezielle Testfälle zu konstruieren, die sonst nötig sein könnten, um die speziellen Umstände, die zu Fehlern führen zu reproduzieren.

3. Im Variablen-Inspektors werden nun sämtliche Elemente einer Container-Variable angezeigt. Durch Doppelklick auf ein Knoten-Element wird der gesamte Baum dargestellt der in dem Knoten wurzelt.

4. Unterbäume können nun bequem geöffnet oder geschlossen werden und die Wurzel des Baums kann zum Elternknoten der augenblicklich angezeigten Wurzel verschoben werden.

5. Viele weitere kleine Verbesserungen und Fehlerbeseitigungen. Unter anderem:

  • Es gibt nun eine time_stamp-Funktion
  • die ESC-Taste stoppt eine Transformation nur dann, wenn die Anwendung aktiv ist.
  • die Hinweise im Transformations-Manager verschwinden beim Wechsel der Anwendung.
  • die d/node clone-Funktionen kopieren auch die Attribute
  • Funktionstabellen können auch für dnode-Parameter und -Rückgabe eingerichtet werden
  • Der Projekt-Im/Export funktioniert auch mit Präprozessor-Zeile


06-07-07

Neu in Version 1.3.4

Übergangsaktionen

Neu in TextTransformer 1.3.4 sind sogenannte Übergangsaktionen. Übergangsaktionen sind Aktionen, die ausgeführt werden, nachdem ein Token akzeptiert wurde und bevor das nächste erkannt wird. Dies ist z.B. der ideale Zeitpunkt zur Einfügung neuer dynamischer Token. Da Übergangsaktionen auch während einer Vorausschau ausgeführt werden und die dynamischen Token dabei nur temporär eingefügt werden, kann in einer Vorausschau nun auch dann das Verhalten einer Produktion des Hauptparsers simuliert werden, wenn in ihr dynamische Token verwendet werden.

Zusätzlicher Halt im Debugger

Beim Debuggen im Einzelschritt-Modus erfolgt nun ein zusätzlicher Halt, wenn eine Produktion mit einer semantischen Aktion endet. So können Werte lokaler Variablen im Variablen-Inspektor auch noch nach Ausführung der letzten Aktion einer Produktion betrachtet werden.

Transformations-Manager verbessert

Im Transformations-Manager kann nun schon beim Start bestimmt werden, dass auch bei fehlerhaften Transformationen fortgesetzt werden soll. Die Zeitangaben werden nun nicht allein in der Tabelle der Resultate angezeigt, sondern auch in die Log-Datei geschrieben.

Erweiterte Suchfunktionen

Die folgende Reihe von Funktionen zur Suche nach Baumknoten, kann jetzt optional mit einem zusätzlichen Knoten-Parameter aufgerufen werden, nach dem die Suche abgebrochen wird.

node findNextLabel(const str& xsLabel, const node& xnLast)
node findNextValue(const str& xsValue, const node& xnLast)
node findPrevLabel(const str& xsLabel, const node& xnLast)
node findPrevValue(const str& xsValue, const node& xnLast)
node findNextId(unsigned int xuiId, const node& xnLast)
node findPrevId(unsigned int xuiId, const node& xnLast)

Die gleichen Funktionen können auch für "dnode" anstelle von "node" eingesetzt werden.

Ausbau des xerces Baums

Die experimentelle Möglichkeit, Parse-Bäume als xerces DOM zu erzeugen, wurde verbessert und erweitert. Insbesondere funktioniert jetzt auch die Erzeugung von Source-Code, für Parser mit xerces Bäumen.

Fehlerbeseitigung

Nach dem Schließen des Transformationsmanager wurden einige Meldungen noch immer dahin umgeleitet. Im Extremfall führte diese zu einer "Zugriffsverletzung". Der Fehler wurde behoben.



03-06-07

Neu in Version 1.3.3

Im C++-Interpreter sind nun auch die bit-weisen Operatoren verfügbar:

^=  exklusives Oder 
|=  inklusives Oder 
&=  Und 
<<  <<=  Links-Verschiebung 
>>  >>=  Rechts-Verschiebung 

In Einzelzeichen und Zeichenketten können nun Zeichen oktal und hexadezimal als Excape-Sequenz ausgedrückt werden.

Integrale Werte können nun ebenfalls in oktaler oder hexadezimaler Schreibweise angegeben werden.

xState.itg() liefert nun einen korrekten Integer-Wert auch für Textabschnitte zurück, die als Oktal- oder Hexadezimalzahlen interpretiert werden können.


IF-Strukturen

Die Logik der IF-Strukturen ist jetzt klarer für die Fälle definiert, in denen IF- und ELSE-Zweig nicht die gleichen Anfänger haben: wenn der Text auf den IF-Zweig nicht passt, wird die Bedingung nicht geprüft. Im Fehlerfall werden nun detailliertere Fehlertexte ausgegeben.


Folgende Fehler wurden behoben

Eine mit "Erneut" rückgängig gemachte Umbenennung eines Skriptes wurde nicht korrekt gespeichert. Die Funktion "Semantischen Code im Skript löschen" tat nichts. Der Schalter und der Menüeintrag für die Funktion zum Einklappen des semantischen Codes waren nicht koordiniert. In der deutsche Version war der Menüeintrag auf Englisch. Im Ausführen-Modus funktionierten nicht alle return-Anweisungen aus einer Produktion wie gewünscht. Bisweilen wurden unnötige und zu Fehlern führende EPS-Knoten in den Parser eingefügt. xState.dbl() lieferte einen Integer zurück.



03-05-07

Neu in Version 1.3.2


Texte vorverarbeiten

Quelldateien können nun bereits beim Laden durch einen Präprozessor vorverarbeitet werden. Dazu wird ein zweites TextTransformer-Projekt in den Projekt-Optionen gesetzt, das dann beim Laden eines Textes in einer zusätzlichen Instanz des TextTransformer-Interpreters ausgeführt wird. In der IDE wird dann der bereits vorverarbeitete Text angezeigt.
Da auch das TextTransformer-Projekt das für den Präprozessor verwendet wird, wiederum durch ein weiteres Projekt vorverarbeitet werden kann, kann man auf diese Weise durch eine Reihe einfacher Umformungen zu komplexen Transformationen akkumulieren.
Die Vorverarbeitung funktioniert auch im Transformations-Manager und mit dem Kommandozeilen-Werkzeug.

Fortschrittsanzeige

Der beim Kompilieren eines Projektes angezeigte Fortschrittsbalken wurde durch eine adäquatere Anzeige ersetzt, in der der Fortschritt durch Zählen der verarbeiteten Produktionen angezeigt wird.


Zeichenklassen-Berechnung

Der Dialog zur Berechnung von Zeichenklassen wurde um die Option erweitert, das Ergebnis als Aufzählung aller Einzel-Zeichen darzustellen.


Verschmelzun von String-Literalen

Aneinander angrenzende String-Literale werden zu einem einzigen String-Literal verschmolzen. So kann man längere Texte übersichtlicher gestalten.

Beispiel:

str s = "/************************/\n"
        "* Dies ist ein Kommentar *\n"
        "*************************/\n";

Fehlerkorrekturen

Ein Fehler bei der Anzeige des erwarteten Tokens wurde behoben. Beim Abruch des Abbruchs einer der Übernahme eines Textes im Skript-Editor ist er verschwunden. Das wurde korrigiert. Der Transformations-Manager und der Assistent für neue Projekte können wieder während einer Sitzung geöffnet werden (in 1.3.1 konnte in einer Sitzung nur einer von beiden benutzt werden). Der Transformations-Manager ergibt nun keine leere Menge an Zieldateien mehr, wenn zwei Ziel-Verzeichnisse ausgewählt wurden, die sich im Pfad bereits im ersten Unterverzeichnis nach der Laufwerksangabe unterscheiden. Bei der Erstellung neuer Projekte wurde der Wert für den Vorausschau-Stack versehentlich auch für den Stack des Haupt-Parsers gesetzt. Dieser Fehler wurde ebenfalls behoben.


Xerces DOM

In experimentellem Status befindet sich eine neue Möglichkeit, Parse-Bäume als xerces DOM zu erzeugen. Dies eröffnet einen großen Spielraum zur Manipulation des DOM's im erzeugten C++-Code und ein DOM kann leicht als XML-Dokumente geschrieben werden. Letzteres ist bereits jetzt auch schon im TextTransformer-Interpreter möglich. Bäume aus dem neuen Knoten-Typ: "dnode", werden im Unterschied zu solchen aus nodes im Variablen-Inspektor auch noch angezeigt, nachdem eine Transformation beendet ist.



25-03-07

Neu in Version 1.3.1

Der TextTransformer erlaubt eine unbegrenzte Vorausschau auf den noch folgenden Text, um an der aktuellen Position zu entscheiden, welche Analyse-Alternative zu wählen ist. Die Vorausschau erfolgt mit Produktionen in denen wiederum vorausgeschaut werden kann. Bisher war es notwendig, dass innerhalb einer Vorausschau mindestens ein Token konsumiert wurde, bevor eine zweite Vorausschau mögliche war. Damit sollten möglich Zirkularitäten unterbunden werden. Diese Beschränkung ist jetzt aufgehoben. Stattdessen gibt es eine zusätzlichen Grammatik-Test, der schon vor der Ausführung des Programms eventuelle Zirkularitäten erkennt. Außerdem gibt es in den Projekt-Einstellungen nun einen zusätzlichen Wert, der die Größe des Stacks von Vorausschau-Produktionen begrenzt.

Mit "SetIndenter" kann jetzt das Zeichen bestimmt werden, mit dem Einrückungen vorgenommen werden. Zwei Fehler bei der Berechnung der Token und Tokenmengen wurden korrigiert, die sich in falschen, irritierenden Fehlermeldungen äußerten.

Einige Änderungen wurden bereits für 1.3.0 veröffentlicht, ohne die Versionsnummer zu erhöhen:


12-03-07

Kleines Update ohne Erhöhung der Versionsnummer 1.3.0

1. Im Installations-Programm waren für das optionale Kommandozeilen-Tool leider inkompatible Versionen der tetra_cl.exe und der tetra_engine.dll enthalten. Ich bitte um Entschuldigung.

2. Nicht angedockte Fenster können nun maximiert werden.

3. Beim Wechsel zwischen dem Editier-Modus und dem Debug-Modus bleiben Größe und Position des Hauptfensters nun unverändert.

4. Die Gefahr, versehentlich falsche Schalter zu betätigen wurde verringert, indem die Schalter zur Navigation zum vorherigen Skript und zurück in die Hauptwerkzeugleiste verschoben wurden. Dort stehen sie nun auch im Debug-Modus zur Verfügung.

5. In der Hilfe wird zu jeder Seite der Pfad angezeigt.

6. Diverse andere kleine Verbesserungen.



25-02-07

Neu in Version 1.3.0

1. TextTransformer 1.3 hat eine neue Benutzer-Oberfläche mit
andockbaren Fenstern. Die Anordnung der Fenster kann frei
konfiguriert werden. Beim Wechsel zwischen dem Bearbeiten eines
Projekts und dem Debuggen desselben wird automatisch auch zwischen
zwei entsprechenden Fenster-Konfigurationen gewechselt. So werden
die für den jeweiligen Arbeits-Modus wichtigen Informationen
optimal dargestellt.

2. Nach dem gleichen Prinzip kann auch die Werkzeugleiste konfiguriert
werden.

3. Beim Debuggen kann nun Text der jeweiligen Produktion angezeigt
werden, wobei die aktuellen Terminal-, Nonterminal- und
EBNF-Symbole markiert erscheinen.

4. Benannte Token ( z.B. _xxx im Unterschied zu "xxx" ), in den Text
einer Produktion geschrieben, werden nun automatisch in die
Tokenliste eingefügt. Dort können sie mit semantischen Aktionen
verknüpft werden.

5. Der TextTransformer-Interpreter ist um Eine Reihe von (portablen)
Routinen zur Pfad- und Datei-Behandlung erweitert.

basename  Liefert den Basisnamen eines Dateinamens 
extension  Liefert die Erweiterung eines Dateinamens 
change_extension  Ändert die Erweiterung eines Dateinamens 
append_path  Setzt Pfade zusammen 
current_path  Liefert den aktuellen Pfad 
exists  Prüft die Existenz eines Pfades 
is_directory  Prüft, ob der Pfad ein Verzeichnis bezeichnet 
file_size  Liefert die Dateigröße 
find_file  Sucht eine Datei in einem Verzeichnis 
path_separator  String-Konstante für den Pfad-Trenner 

6. In einem neuen Beispiels-Projekt wird demonstriert, wie diese
Funktionen genutzt werden können, um aus dem Haupt-Parser heraus in
einem Text eingeschlossene Dateien (Include-Dateien) mit
Unter-Parsern zu verarbeiten.

7. Im Transformations-Manager besteht jetzt die Möglichkeit nach
Korrektur eines Projekts die erneute Transformation auf die Dateien
einzuschränken, die beim ersten Durchlauf einen Fehler erzeugten.

8. Mit dem Parameter-Assistenten kann man jetzt ein Projekt auch so
modifizieren, dass eine Variable durch sämtliche Produktionen
hindurchgereicht wird. Dabei könnte z.B. in einer
String-Referenz-Variable der Zieltext Stück für Stück aufgebaut
werden.

9. Die Hilfe wurde stark überarbeitet und ist jetzt enger an die
Struktur des Menüs angelehnt. Die Kontextsensitivität, die bei der
Umstellung von der ursprünglichen Windows-Hilfe auf die HTML-Hilfe
teilweise verloren ging, ist nun wiederhergestellt.

10. Im Kommandozeilen-Werkzeug kann nun ebenfalls ein
Backup-Verzeichnis explizit als Parameter übergeben werden, so wie
es mit einem Management schon möglich war.

11. Viele weitere Detailverbesserungen und Fehler-Korrekturen wurden
vorgenommen. Die wichtigsten davon sind Korrekturen von Probleme
mit Pfaden, der vierten Präferenzregel und SKIP am Ende einer
Grammatik.



07-12-06
Freie Lizenzen für TextTransformer Beta-Tester

07-11-06

Neu in Version 1.2.3


1. Für literale Token, die nicht nur im Parser, sondern auch im Programm verwendet werden, das diesen Parser benutzt, können nun gemeinsame Definitionen erzeugt werden.

2. Die Logik von IF-ELSE-Strukturen wurde verbessert. Wenn der IF-Zweig einer solchen Struktur löschbar ist, nicht jedoch der ELSE-Zweig, und das erwartete Token auf keinen der beiden Zweige passt, so wird dies nicht mehr wie bisher als Fehler gewertet.

3. Wieder wurden Reihe von Fehlern verbessert. Beim Anklicken einer Fehlermeldung auf der Resultate-Seite des Transformations-Managers wurde der entsprechende Text nicht in der IDE geöffnet. Import-Dateien konnten nicht gelesen werden, wenn in ihnen eine Test-Datei angegeben war. Bei eingestellter Unabhängigkeit von Groß-/Kleinschreibung wurden in der Grammatik Token nicht als identisch erkannt, die sich nur in der Groß-/Kleinschreibung unterschieden.

4. Intern wurden am TextTransformer große Umstrukturierungen vorgenommen, die in den folgenden Wochen und Monaten die Verbesserung der Oberfläche des Programms erleichtern sollen.

5. Die TextTransformer-Homepage ist jetzt mit Minimal Website gemacht.



04-10-06

Neu in Version 1.2.2


WICHTIGER HINWEIS:

Ab Version 1.2.2 werden die cppitp.dll und die tetra_engine.dll bei der Installation in das WINDOWS System-Verzeichnis kopiert. Falls sich eine dieser Dateien noch von einer vorhergehenden Installation im TextTransformer\bin-Verzeichnis befindet, löschen sie dies bitte.


1. Haltepunkte im Text werden jetzt durchnummeriert und können direkt angesprungen werden. Sie werden jetzt durch eine exakte Positionsmarkierung dargestellt - nicht mehr wie bisher durch Hervorhebung der ganzen Zeile.

2. In der Hauptwerkzeugleiste gibt es jetzt eine Funktion zum Auffinden zugehörige Klammern finden

3. Bei der Installation kann nun für die Beispiele und Projekte ein beliebiger Ordner ausgewählt werden, der vom Programmordner verschieden sein kann. Dll's und Bpl's, die auch von anderen TextTransformer-Anwendungen verwendet werden, werden in das WINDOWS System-Verzeichnis kopiert.

4. Das Kommandozeilen-Werkzeug kann optional mit installiert werden.

5. Die aktuelle PDF Dokumentation kann optional mit installiert werden.

6. Vier Warnmeldungen zur Überlappung von Produktionen-Systemen sind optional abzuschalten.

7. Einige Fehler, die unter sehr speziellen Umständen auftreten konnten, wurden beseitigt.



Neu in Version 1.2.1


Seit dem letzten Update ist einige Zeit vergangen. Sie diente u.a. der praktischen Erprobung des TextTransformers, indem mit seiner Hilfe die Anwendung "Minimal Website" entwickelt wurde. Sie kann kostenlos von http://www.texttransformer.org heruntergeladen und ohne Einschränkungen benutzt werden. In diesem Programm werden drei TextTransformer-Projekte benutzt, die dem Installations-Paket beigefügt sind:

  1. Html2Text.ttp konvertiert einfache Texte in HTML-Inhalte
  2. HtmlLayout.ttp fügt die HTML-Inhalte in ein Layout für eine Website ein
  3. WebSite.ttp liest eine Ini-Datei, in der Farb- und Font-Parameter etc. für die Webseite gespeichert sind.

Außerdem wurden die TextTransformer-Komponenten überarbeitet und es gibt sie jetzt auch für Delphi.

Die Erfahrungen bei der Erstellung von "Minimal Website" fließen natürlich gleich in das neue Update des TextTransformers ein.


1. In Knoten des Parse-Baums "node" können nun Attribute gesetzt werden. Attribute bestehen aus einem Schlüssel und einem ugehörigen Wert. Attribute sind z.B. nützlich zur Speicherung vonIni-Einträgen: während die Abschnitte der Ini-Datei durch Knoten repräsentiert werden, können die Werte des Abschnitts als Attribute gesetzt werden.

2. Optional kann jetzt für jedes Projekt eine Testdatei angegeben werden, die automatisch mit dem Laden des Projekts im Eingabefenster geöffnet wird.

3. Aus den Projekt-Einstellungen wurden die Felder zur Eingabe von Namen und Pfad des Projekts entfernt. Es hatte oftmals Irritationen gegeben, wenn ein Projekt wegen der Verschiebung in ein anderes Verzeichnis aktualisiert werden musste. Die Pfadangaben zu Schablonen-Dateien und zur Testdatei erfolgen nun relativ zum Pfad des Projekts.

4. Im Assistenten für neue Projekte wurde ein neuer Projekttyp eingefügt: Mehfachersetzung von Zeichenketten. Im Unterschied zur Mehrfachersetzung von Worten können hiermit auch Teile von Worten oder andere Textabschnitte ersetzt werden.


Vielen Dank an Dr. Hans-Peter Diettrich für sein Fedback und seine
Hilfe.




Neu in Version 1.2.0

1. Der Transformations-Manager ist vollständig erneuert. Er ist nun sehr einfach zu benutzen. Es ist nun nicht mehr notwendig, für alle Dateien, die umgewandelt werden sollen, ein gemeinsames Quellverzeichnis zu bestimmen. Auch müssen die Dateien nicht mehr einzeln aufgelistet werden, sondern es können ganze Verzeichnisse mit entsprechenden Dateimasken als Quellen angegeben werden. Einzelne Dateien oder Ordner lassen sich explizit von der Umwandlung ausnehmen. Es gibt nun mehrere Optionen zur Konstruktion der Zielverzeichnisse und zur Erzeugung einer Protokoll-Datei. Mit dem Transformations-Manager erstellte Managements können nun auch dem Kommandozeilen-Werkzeug Tetra_cl als Steuerung dienen.

2. Die Ausführung von TextTransformer-Projekten aus eigenen Programmen heraus ist jetzt auch Entwicklern möglich, die nicht über die Professional-Version des TextTransformers verfügen. Es gibt jetzt ein kostenloses CBuilder-Package (Delphi wird folgen) mit denen der TextTransformer-Interpreter geladen werden kann.

Das TextTransformer-Package besteht aus drei Komponenten:

  • TTextStringTransformer, zur Umwandlung eines Strings in einen anderen String
  • TTextFileN2NTransformer, zur Umwandlung von jeweils einer Text-Datei in eine andere
  • TTextFileN21Transformer, zur Umwandlung von mehreren Text-Dateienin eine gemeinsame Zieldatei

2. Ein Fehler bei der Berechnung der Anfängermengen wurde behoben, der die Meldung erzeugte: Internal error: expected set not ready.

3. Beim Öffnen und Speichern im TextTransformer werden nun
Auswahlmöglichkeiten angezeigt, wenn der aktuelle Editor nicht das Ein- bzw. Ausgabefenster ist.



Neu in Version 1.1.3


1. Die vector-Klasse wurde um die Funktionen: "pop_back", "back" und "front" erweitert. Im Zusammenspiel der ersten beiden Funktionen mit "push_back" können Vectoren nun auch als Stacks verwendet werden.

2. Erneut konnte ein Benutzer den TextTransformer nicht starten. Der Fehler lag in der Software, die das Programm gegen Raubkopierer schützt. Die neue Version wurde mit einer neuen, aber noch vorläufigen Version der Schutzsoftware gemacht. Bitte teilen Sie mir mit, falls der TextTransformer bei Ihnen nicht laufen sollte.

3. Als neues Anwendungsbeispiel gibt es einen Wikipedia-Parser auf:

http://www.text-konverter.homepage.t-online.de

Der Parser enthält alle semantischen Aktionen, die nötig sind, um aus einem Wikipedia-Skript eine komplette Webseite zu erzeugen.

4. Der Zeichenmengen-Berechner wurde verbessert. Lückenlose Aufzählungen von ANSI-Zeichen werden nun automatisch als Zeichenbereiche ausgegeben. Bisher wurden fälschlicher Weise allen Metazeichen regulärer Ausdrücke Backslashe vorangestellt und nicht nur den Metazeichen für Zeichenklassen. Dieser Fehler ist nun behoben.

5. Ein Fehler bei der Berechnung der Ziele von SKIP-Ausdrücken in +-Wiederholungen wurde behoben, der sich auch im Parameter-Assistenten auswirkte.

6. Der Parameter-Assistent, der Baum-Assistent und der Funktionstabellen-Assistent arbeiten nun toleranter: wenn bei der Änderung eines Skripts ein Fehler auftritt, werden die übrigen Skripte dennoch bearbeitet.

7. Kommentare in Import/Export-Dateien sind nun optional.

8. Ein Kunde hat den gerierten Code erfolgreich mit Visual Studio 7.1 eingesetzt.


Neu in Version 1.1.2

1. TextTransformer-Projekte können jetzt auch als ASCII-Text-Dateien exportiert und importiert werden. Dabei wird nicht überprüft, ob die importierten Token, Produktionen usw. der korrekten TETRA-Syntax gehorchen. Damit wird auch der Import von Grammatiken anderer Parsergeneratoren einfacher.
Token, Produktionen, Interpreter-Skripte und Tests können weiterhin auch für sich exportiert und importiert werden, jedoch nun in einem Format, das Teil des Formats des Gesamtexports ist.

2. Fehlerbehebungen:
a) der Begrüßungsbildschirm unter XP-Home blockierte laut Kundenaussage die Anwendung. Dafür bitte ich um Entschuldigung. Ein Druck auf die Eingabetaste schließt ihn nun.

b) State.lp_str() verurachte einen Absturz des TextTransformers, wenn in der vorhergehenden Produktion Zeichen ausgelassen wurden, aber kein Text erkannt wurde.

c) Strukturen der Art:

( A | SKIP? EOF ) 
( B | SKIP? EOF ) 
( C | SKIP? EOF ) 

riefen eine Fehlermeldung hervor. Sie sind aber erlaubt.

d) Beim Aufruf von SetPosition wird nun auch dann ein korrektes nächstes Token ermittelt, wenn die Funktion nach dem Verlassen einer Produktion aufgerufen wird.

3. Einige Änderungen wurden bereits an der Version 1.1.1 vorgenommen, ohne die Versionsnummer zu erhöhen:

a) Die zusätzliche Option in den Benutzereinstellungen wurde eingebaut, Änderungen in Skripten automatisch zu übernehmen. Außerdem gibt es nun eine erweitert Undo-Funktion. Sie erlaubt jetzt auch die Wiederherstellung von Skripten, deren Änderungen bereits übernommen wurden.

b) Die Numerierung der im Regex-Test-Dialog angezeigten Unterdrücke ist jetzt die gleiche, mit der auf die Unterausdrücke im Code zugegriffen werden kann.

c) Weitere Fehlerbehebungen am Assistenten zur automatischen Erzeugung von Produktionen und bei der log-Ausgabe.



Neu in Version 1.1.1

1. Der TextTransformer kann jetzt binäre Dateien erzeugen. Dafür gibt es eine einfache Schreibweise:

out << int_bin( 42 ) << double_bin( 123,456 );

oder noch einfacher:

out << bin( 42 ) << bin( 123.456 );

2. Fehlerkorrektur zu RedirectOutputBinary. Aus dem Parameter-Assistenten wurde eine überflüssige und daher verwirrende Seite entfernt.

3. Vom Kommandozeilen-Werkzeug wurde die tetra_engine.dll abgespalten. Sie kann von externen Programmen aufgerufen werden. So ist es möglich TextTransformer-Projekte auch dann in eigene Programmen einzubinden, wenn man nicht die Code erzeugende Professional Version besitzt. Diese Möglichkeit wird noch weiter verbessert werden.

4. Der erzeugte Code wurde jetzt auch mit Visual Studio 6 getestet.


Neu in Version 1.1.0

Die neuen Features stellen einen Versionssprung des TextTransformers dar:

1. Die Fähigkeiten des TextTransformers zur Analyse von Texten wird durch die neue Möglichkeit Text-Einschlüsse mit gesonderten Sub-Systemen zu parsen weiter gesteigert. Exemplarisches Beispiel für Text-Einschlüsse sind Kommentare in Programmiersprachen. Pragmas wären ein weiteres Beispiel. Es sind viele weitere Anwendungsmöglichkeiten für das neue Feature denkbar, da es die Behandlungsweise von Kommentaren verallgemeinert: Es ist möglich in verschiedenen Unterstrukturen des Textes verschiedene Einschlüsse zuzulassen und Einschlüsse zu staffeln.

2. Ein systematisches Konzept für die Änderung von lexikalischen Zuständen wurde eingeführt. So können die Text-Einschlüsse mit Tokenmengen geparst werden, die von der des Hauptparsers verschieden sind. Gleiches gilt nun für die im Interpreter verwendeten Unter-Parser und für die Vorausschau-Produktionen.

3. Der mit dem TextTransformer generierbare C++-Code ist nun kürzer und klarer strukturiert. Die allgemeine Basis-Klasse der generierten Parser erledigt nun mehr Aufgaben als bisher, so dass im generierten Code nur die wirklich spezifischen Initialisierungen und Produktionen des erzeugten Parsers verbleiben.

4. Das Modul zur C++-Code-Erzeugung wurde aus dem Hauptprogramm entfernt und in einer dll untergebracht. Da diese dll nur für registrierte Anwender der Professional-Version des TextTransformers benötigt wird, ist das Installationspaket nun etwas kleiner als zuvor.

5. Fehlerbehebung: Mit dem Update auf die aktuelle boost-Bibliothek der regulären Ausdrücke in 1.0.1 wurde das vorherige Verhalten der Ausdrücke nicht vollkommen wiederhergestellt: es konnt nun erforderlich sein Zeichenbereiche in umgekehrter Reigenfolge zu definieren. Ein Beispiel hierfür ist der Bereich [Ù-ö], der in dem Text2Hlml-Projekt mehrmals verwendet wird. Der Bereich hätte nun als [ö-Ù] definiert sein müssen. Daher ergaben sich Fehler beim Kompilieren des Text2Html-Projekts. Das ursprüngliche Verhalten ist jetzt wiederhergestellt. (Für Insider: das Flag für die Syntaxoptionen wurde um "& ~boost::regex_constants::collate" ergänzt.)




Neu in Version 1.0.2

1. Dynamische Token werden jetzt nur noch getestet, wenn sie als eine mögliche Alternative erwartet werden. Dadurch werden Fehler vermieden, die auftreten, wenn ein Text auf ein erwartetes Token passt, auf den auch ein nicht erwartetes Element des dynamischen Tokens passt. Z.B. konnte es in der TextTransformer IDE zu unverständlichen Fehlern im Interpreter führen, wenn der Name Produktion - als Element der aufrufbaren Unter- oder Vorausschau-Produktionen - mit dem Namen einer Methode kollidierte: z.B. State.copy und copy-Produktion.

2 Die Fehlermeldungen für unerwartete Token wurden verbessert.

3. SKIP-Alternativen in ein- oder mehrfachen Wiederholungen, z.B. ( A | SKIP )+, am Ende einer Produktion, enthielten nicht die Nachfolger dieser Produktion als Ziele. Dieser Fehler wurde in Version 1.0.0 eingeführt und ist jetzt beseitigt.

4. Der Schnell-Assistent zum Einfügen von Funktionen in eine Funktionstabelle wurde erweitert. Es können jetzt auch Tokennamen als Label aus einer Liste ausgewählt werden und Präfixe für die Funktionsnamen werden in einer weitern Liste gemerkt.

5. Im Transformations-Manager wurden Backups von falschen Dateien angelegt, wenn einzelne Dateien ausgewählt waren.

Die folgenden Punkte wurden bereits zwischenzeitlich in die Version 1.0.1 aufgenommen

6. Die Funktion zum Entfernen von semantischem Code hat vor "ELSE" und "END" keine Zeilenumbrüche eingefügt. In der jetzigen Version werden auch leere Aktionen nach leeren Alternativen eingefügt, die sonst einen Fehler beim Parsen verursachen würden.

7. Der Im- und Export von Skripten wurde verbessert. Die Format-Spezifikation für die generierten Text-Dateien war leider eine schlechte Idee, die zukünftig durch eine andere ersetzt werden wird. Das Rimp-Projekt ist nun ziemlich umständlich, um den Im- und Export dieses Projekts selbst zu erlauben.

8. Das Syntaxhighlighting wird jetzt nach dem Import von Skripten und nach dem Anlegen eines neuen Projekts aktualisiert.

9. Mit Version 1.0.1 wurde ein neuer Fehler eingeführt, der bei der Berechnung von SKIP-Ausdrücken aus Literalen, die Backslashs enthalten, auftritt. Dieser Fehler wurde behoben.



Neu in Version 1.0.1

1. Der TextTransformer arbeitet jetzt mit der aktuellen Version der boost regex-library.

2. Positionen von Fehlern innerhalb einzelner regulärer Ausdrücke werden jetzt angezeigt.

3. In der Statusleiste des Regex-Test-Dialogs werden nun zusätzliche Informationen angezeigt.

4. Unstimmigkeiten in den Assistenten wurden beseitigt: in Literalen ist dort nun auch vor Anführungszeichen und Backslash kein Backslash nötig.

5. Auf der Interpreter-Seite werden Variablen, Funktionen und Funktions-Tabellen nun durch unterschiedliche Symbole voneinander abgehoben.

6. Das XML-Beispiel wurde so erweitert, das nun sämtlicher Inhalt - einschließlich der Attribute - ausgegeben wird. Entity-Referenzen werden nun übersetzt.



Die lang erwartete 1.0.0 Version des TextTransformers:
======================================================


1. Die Funktionen und die Bedienungs-Oberfläche des TextTransformers wurden vollständig überarbeitet.

2. Die Erklärungen zu den Beispielen in der Hilfe wurden gestrafft und teilweise erweitert. Die gesamte Hilfe wurde überarbeitet.

3. Für neue Projekte ist die Projekt-Option zum Testen aller Literale ab jetzt wieder standardmäßig deaktiviert. Sie sollte nur für formalisierte Sprachen aktiviert werden, bei denen das Auftreten von falsch platzierten Schlüsselworten einen Fehler bedeutet.

4. Die Befehle "RedirectCout" und "ResetCout" wurden in die verständlicheren Ausdrücke "RedirectOutput" und "ResetOutput" umbenannt.

5. Meldungen erscheinen jetzt in dem neuen Log-Fenster, das alternativ zum Ausgabefenster angezeigt werden kann.

6. Analog zum Schreiben in die Ausgabe "out" gibt es jetzt die Möglichkeit nach "log" zu Schreiben und damit gezielt Meta-Informationen zum Programmablauf in das Log-Fenster zu lenken. Bei der Erzeugung von C++-Code werden die Log-Befehle nicht exportiert.

7. Ein zusätzlicher Assistent erzeugt Produktionen aus der Token-Abfolge, die aus Beispielstexten extrahiert werden.





   english english

 
Letzte Neuigkeiten
29.01.24
Aurora2Cpp: Delphi 7 Konverter [more...]

19.10.23
Delphi2Cpp 2.3: Konvertierung von DFM-Dateien [more...]



"...Fantastic!!!!

... You have exceeded my expectations and I love your product. We will get a lot of use out of it in the future for other projects."


Charles Finley
xformix 23-02-07


top_prize_winner.png

I was extremely impressed with your components and tools. Not only extremely powerful but very professionally done and well documented, etc. Really quality work, congratulations

mouser (First Author, Administrator)


 
Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.

Minimal Website
Minimal Website ist mit Hilfe des TextTransformers hergestellt.

TextTransformer
Der TextTransformer ist gemacht mit dem Borland CBuilder

  borland