Aktionen

Top  Previous  Next

Beispiele > Konvertierung eines Atari-Textes > Aktionen

 

Wie im ersten Beispiel, so wird auch hier nach jedem erkannten Textabschnitt (Zeichen) eine semantische Aktion ausgeführt, in der ein Text in die Ausgabe geschrieben wird.

 

Der vom normal_text- (SKIP-) Token erkannte Text wird kopiert:

 

{{out << xState.copy(); }}

 

Der von einem Sonderzeichen erkannte Text wird in ein lesbares Zeichen übersetzt, z.B.:

 

| ue   {= out << "ü"; =}

 

Bei den Textattributen allerdings sind keine semantischen Aktionen angeführt. Das bewirkt ein Überspringen dieser Attribute. Jedes Textverarbeitungsprogramm hat seine eigene Art diese Attribute in seinen Textdokumenten zu kodieren. Als Beispiel wird unten eine Konvertierung in das RTF-Format besprochen.

 

 

Das was mit den jeweils erkannten Textabschnitten geschehen soll, steht in den Regelskripten innerhalb der Klammerpaare "{=" und =}" die in der bisherigen Erläuterung übersprungenen wurden. Innerhalb der Klammern werden sogenannte "semantische Aktionen" definiert. In der Baumansicht werden sie durch die Knoten dargestellt, deren Namen mit "Sem" und angehängten Ziffern bezeichnet sind; z.B. Sem0_of_Alt0_of_Rep0_of_Atari .

 

Die Befehle für die semantischen Aktionen stellen eine Untermenge der Befehle der Programmiersprache C++ dar. Im Atari-Projekt wird nur ein Befehl verwendet: das "Schieben" eines Textes in die Ausgabe.

 

Beispielsweise enthält die Produktion sonderzeichen die Zeile:

 

| ue   {= out << "ü"; =}

 

Das bedeutet: sobald das Symbol ue erkannt ist führe die Aktion

 

out << "ü";

 

aus, d.h. hänge den Text "ü" an den Ausgabetext an. Ähnlich lauten die semantischen Aktionen die nach Erkennung der anderen Symbole ausgeführt werden sollen.

Bei den Textattributen allerdings sind keine semantischen Aktionen angeführt. Das bewirkt ein Überspringen dieser Attribute. Jedes Textverarbeitungsprogramm hat seine eigene Art diese Attribute in seinen Textdokumenten zu kodieren. Als Beispiel wird unten eine Konvertierung in das RTF-Format besprochen.

 

Wenn sie nun das Programm ausführen, sieht der eingangs gezeigte Textausschnitt so aus:

 

 

AtariOutput

 

Die Textattributzeichen sind entfernt und ein "ü" hat den Platz eines zuvor unlesbaren Zeichens eingenommen.



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English