Die Syntaxanalyse wird von einer Schablone gesteuert. Unter einer Schablone versteht man eine Token-Gruppe, in der die Variablen angegeben sind, die mit Werten ausgestattet werden sollen, und die Art und Weise, wie die Wertzeichenfolgen zu extrahieren sind. Die Anordnung der Tokens in der Schablone bestimmt, ob das Token eines der beiden Basisobjekte einer Schablone ist: eine Marke oder ein Ziel.
Es gibt drei Arten von Markenobjekten:
|
Position relativ zur aktuellen Position (positiver oder negativer Wert). |
|
|
Vergleicht das Suchmuster mit der Analysezeichenfolge, beginnend an der aktuellen Suchposition. |
Ziele können ebenso wie Marken auf die Suchposition Einfluß haben, wenn Wertzeichenfolgen durch "Tokenisierung", also die Zerlegung von Zeichenfolgen in Tokens, extrahiert werden. Syntaxanalyse durch Tokenisierung extrahiert Wörter (Tokens) aus der Analysezeichenfolge und wird immer dann verwendet, wenn auf ein Ziel unmittelbar ein weiteres Ziel folgt. Während der Tokenisierung wandert die aktuelle Suchposition über eventuelle Leerzeichen hinweg zum Anfang der nächsten Wortes weiter. Der Endeindex ist die Position genau hinter dem Ende des Worts, so daß die Wertzeichenfolge weder voran- noch nachgestellte Leerzeichen aufweist.
Ziele werden durch variable Symbole angegeben. Der Platzhalter Punkt (.) ist ein spezieller Zieltyp und verhält sich genau wie ein normales Ziel, mit der Ausnahme, daß er nicht über einen zugeordneten Wert verfügt.
Jedes Objekt in einer Schablone wird durch ein oder mehrere Tokens angegeben:
Das Kommandoanalyseprogramm der ARexx-Schnittstelle wurde dahingehend vereinheitlicht, daß Sequenzen mit doppelten Begrenzungszeichen innerhalb einer (in Anführungszeichen stehenden) Zeichenfolgendatei erkannt werden. Die Konvention für die Verwendung von Anführungszeichen ist besonders geeignet für kleinere Programme. In komplexeren Programmen kann es relativ leicht vorkommen, daß die Verschachtelungsebenen für das Setzen von Anführungszeichen nicht mehr ausreichen. Einzelne und doppelte Anführungszeichen sind innerhalb eines REXX-Programms äquivalent, allerdings trifft die externe Umgebung möglicherweise eine Unterscheidung zwischen den verschiedenen Anführungszeichen.
AmigaDOS verwendet das doppelte Anführungszeichen. Zeichenfolgen, die von einer Shell aus eingegeben werden, müssen mit einem doppelten Anführungszeichen beginnen, besonders, wenn sie Semikolons enthalten sollen. Beispiel:
RX "SAY `Das is'' ja `'n
Ding - ich glaub'', mich tritt `'n Pferd!' "
-> Das is' ja `n Ding - ich glaub', mich tritt `n Pferd!
RX "SAY `""Hallo!""'" -> "Hallo!"