Literale

Top  Previous  Next

Skripte > Tokendefinitionen > Literale

 

Jedes spezielle Wort eines Textes, jede Zahl und überhaupt jeder Teil eines Textes kann als ein individuelles literales Token aufgefasst werden. Ein Literal ist schlicht eine bestimmte Folge von Zeichen. Das Wort "TETRA" z.B. ist ein Literal als ein 'T'' gefolgt von einem 'E', einem 'T', 'R' und von einem 'A'.

 

Entsprechend ihrer Einfachheit und ihrer Bedeutung für die Syntaxanalyse müssen Literale in der TETRA-Verwaltung nicht gesondert auf der Token-Seite definiert und benannt werden, sondern können auch innerhalb der Produktionen direkt definiert werden. Dies ist auf zweifache Wiese möglich:

 

1.durch Einschluss des Textes in Anführungszeichen, z.B. "TETRA"
2.durch Voranstellen eines Unterstrichs, z.B. _TETRA

 

Im zweiten Fall wird ein benanntes Token erzeugt, dass automatisch auf der Token-Seite eingefügt wird. Die besonderen Vorteile benannter literaler Token werden gesondert besprochen. Normalerweise reichen die einfachen literalen Token aus. Beispielsweise könnte eine Regel zum Parsen einer Anrede folgendermaßen aussehen:

 

( "Herr" | "Frau" ) name

 

Hier bedeuten "Herr" und "Frau" jeweils die Worte "Herr" und "Frau" selbst, während name eine weitere Regel oder einen regulären Ausdruck bezeichnen könnte.

 

Innerhalb der direkt in den Produktionen definierten Token hat jedes Zeichen literale Bedeutung, d.h. es bedeutet sich selbst. Dies gilt insbesondere auch für die Metazeichen der regulären Ausdrücke. Soll beispielsweise ein Smiley erkannt werden, so kann das direkt folgendermaßen geschehen:

 

";-)"

 

Würde das gleiche Smiley als regulärer Ausdruck definiert werden, so wäre seinen Formulierung schwieriger:

 

";\-\)"

 

Sowohl dem Bindestrich als auch der Klammer müsste ein Backslash vorangestellt werden, um die Metabedeutung dieser Zeichen auszuschalten.

 

Einige sonst nicht darstellbare Zeichen, wie z.B. Zeilenumbrüche, können als Escape-Sequenzen auch innerhalb der Definition literaler Token verwendet werden.

 

 

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English