Quelltext kopieren

Top  Previous  Next

Beispiele > Guard > Quelltext kopieren

 

Die Methode zum Kopieren des Textes, der vom letzten Token erkannt wurde,  ist schon bekannt. Die Leerzeichen vor dem Text soll in dieser Kopie eingeschlossen sein. D.h. es wird der Text vom Ende des vorletzten Tokens bis zum Anfang des nächsten erwarteten Tokens kopiert:

 

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

 

Dieser Befehl ist eine abgekürzte Schreibweise für:

 

{{ out << xState.str(-1) << xState.str(); }}

 

wo auf den ausgelassenen Text mit xState.str(-1) und auf den erkannten Text mit xState.str() zugegriffen wird. Durch die Angabe eines Parameters kann auf bestimmte Abschnitte des Eingabetextes relativ zum aktuell erkannten Textabschnitt zugegriffen werden. Der Parameter "-1" hat die besondere Bedeutung, dass er sich auf die bei der letzten Erkennung übersprungenen auszulassenden Zeichen bezieht. xState.str(-1) gibt den Text zurück, der sich zwischen dem Ende des zuvor erkannten Tokens und dem Beginn des zuletzt erkannten Tokens befindet.

Bei den Beispielen "Atari" und "Wortvertauschung" gab es keine ausgelassenen Zeichen. Es gab nur die vom SKIP-Symbol erfassten Textteile und die ersetzten Textteile. Im gegenwärtigen Beispiel gilt die Standardeinstellung der Projektoptionen, wonach Zeilenumbrüche, Leerzeichen und Tabulatoren auszulassen sind. Durch den Aufruf von xState.copy() nach jedem erkannten Token wird sichergestellt, dass der Originaltext vollständig inclusive der auszulassenden Zeichen in den Zieltext kopiert wird.

 

 

Neu ist hier eine analoge Methode zum Kopieren des gesamten Textes, der durch eine Produktion erkannt wurde.

 

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

 

Das "lp" von "lp_copy" steht für "letzte Produktion".

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English