Zurück Weiter Kapitel

ECHO

ECHO [Ausdruck]

Der Befehl ECHO ist gleichbedeutend mit dem Befehl SAY. Er zeigt das Ergebnis des Ausdrucks am Konsolenbildschirm an. Beispiel:

ECHO "Was Du nicht sagst!"

ELSE

ELSE [;] [bedingte Anweisung]

Der Befehl ELSE leitet den alternativen bedingten Zweig einer IF-Anweisung ein. Er ist nur innerhalb des Bereichs eines IF-Befehls gültig und muß auf die bedingte Anweisung des THEN-Zweiges folgen. Wurde der THEN-Zweig nicht ausgeführt, wird die auf die Klausel ELSE folgende Anweisung verarbeitet.

ELSE-Klauseln beziehen sich stets auf die unmittelbar davor befindliche IF-Anweisung. In manchen Fällen ist es notwendig, "Pseudo" ELSE-Klauseln für die inneren IF-Bereiche mehrerer verschachtelter IF-Anweisungen anzugeben, damit auch die äußeren IF-Anweisungen über alternative Verzweigungen verfügen können. Es genügt nicht, die ELSE-Anweisung mit einem Semikolon oder einer Null-Klausel abzuschließen. Stattdessen kann der Befehl NOP (No-Operation) verwendet werden. Beispiel:

IF i > 2 THEN SAY `Tatsächlich?'
ELSE SAY `Habe ich mir gedacht'

END

END [Variable]

Der Befehl END schließt den Bereich eines DO- oder SELECT-Befehls ab. Wenn das wahlfreie Variablensymbol angegeben wird, wird es mit der Indexvariablen der DO-Anweisung verglichen (die iterativ sein muß). Stimmen die Symbole nicht überein, kommt es zu einem Fehler. Beispiel:

DO i=1 to 5 /*Indexvariable ist i*/
SAY i
END i /*"i"-Schleife beenden*/

EXIT

EXIT [Ausdruck]

Der Befehl EXIT beendet die Ausführung eines Programms. Er ist an jeder beliebigen Stelle in einem Programm gültig. Der ausgewertete Ausdruck wird als Ergebnis der Funktion oder des Kommandos an die Aufrufebene zurückgegeben.

Die Verarbeitung des EXIT-Ergebnisses hängt davon ab, ob das aufrufende Programm eine Ergebniszeichenfolge angefordert hat und ob der aktuelle Aufruf aus einem Kommando oder Funktionsaufruf hervorging:

Beispiel:

EXIT /*Kein Ergebnis erforderlich*/
EXIT 10 /*Eine Fehlerrückmeldung*/

IF

IF Ausdruck [THEN] [;] [bedingte Anweisung]

Der Befehl IF wird in Verbindung mit den Befehlen THEN und ELSE zur bedingten Ausführung einer Anweisung verwendet. Das Ergebnis des Ausdrucks muß ein boolescher Wert sein. Ist das Ergebnis 1 ("Wahr"), wird die auf das Symbol THEN folgende Anweisung ausgeführt. Andernfalls geht die Steuerung an die nächste Anweisung über. Das Schlüsselwort THEN muß nicht unmittelbar auf den IF-Ausdruck folgen, sondern kann auch als separate Klausel vorliegen.

Der Befehl wird als "IF Ausdruck; THEN; Anweisung" analysiert. Der Ausdruck, der auf die IF-Anweisung folgt, stellt die Testbedingung dar, die entscheidet, ob im folgenden die Klausel THEN oder ELSE ausgeführt wird. Auf das Symbol THEN kann eine beliebige gültige Anweisung folgen. Insbesondere ermöglicht ein Block "DO . . . END;" die bedingte Ausführung mehrerer Anweisungen. Beispiel:

IF result < 0 THEN exit /*Alles erledigt?*/

INTERPRET

INTERBRET Ausdruck

Das Kommando INTERPRET behandelt den Ausdruck wie einen Block von Quellenanweisungen. Der Ausdruck wird ausgewertet, und das Ergebnis wird wie eine oder mehrere Programmanweisungen ausgeführt. Die Anweisungen werden als Block betrachtet, so als ob sie von "DO ...END" umschlossen wären. Jede beliebige Anweisung kann in dem INTERPRETierten Quelltext enthalten sein, einschließlich der Befehle DO und SELECT. Der Befehl BREAK kann zur Beendigung der Verarbeitung INTERPRETierter Anweisungen eingesetzt werden.

Ein INTERPRET-Befehl aktiviert bei seiner Ausführung einen Steuerbereich, der als Begrenzung für die Befehle LEAVE und ITERATE dient. Diese Befehle können nur in DO-Schleifen verwendet werden, die innerhalb von INTERPRET definiert wurden. Es ist zwar kein Fehler, wenn Sprungmarkenklauseln innerhalb der interpretierten Zeichenfolge stehen. Zur Übertragung der Steuerung wird jedoch nur unter denjenigen Sprungmarken gesucht, die im Originalprogramm definiert wurden.

Der Befehl INTERPRET kann zur dynamischen Gestaltung und Ausführung von Programmen verwendet werden. Programmfragmente können als Argumente an Funktionen weitergegeben werden, die dann die Fragmente INTERPRETieren. Beispiel:

bef = `SAY' /*Ein Befehl*/
INTERPRET bef hallo /*. . . "SAY HALLO"*/

ITERATE

ITERATE [Variable]

Der Befehl ITERATE beendet die aktuelle Iteration (den Schleifendurchlauf) eines DO-Befehls und startet die nächste Iteration. Effektiv bedeutet dies, daß die Steuerung an die END-Anweisung und anschließend (abhängig vom Ergebnis des Ausdrucks UNTIL) wieder zurück an die DO-Anweisung übertragen wird. Der Befehl wirkt sich normalerweise auf den innersten iterativen DO-Bereich aus. Wenn sich der Befehl ITERATE nicht innerhalb eines iterativen DO-Befehls befindet, kommt es zu einem Fehler.

Falls mehrere verschachtelte Bereiche existieren, bestimmt das wahlfreie Variablensymbol, welcher DO-Bereich verlassen werden soll. Die Variable wird als Literal gelesen und muß mit der Indexvariablen eines gegenwärtig aktiven DO-Befehls übereinstimmen. Wenn kein entsprechender DO-Befehl gefunden wird, kommt es zu einem Fehler. Beispiel:

DO i=1 to 5
IF i = 3 THEN ITERATE i
SAY i
END

LEAVE

LEAVE [Variable]

LEAVE führt zum sofortigen Verlassen des iterativen DO-Bereichs, der diesen Befehl enthält. Befindet sich der Befehl LEAVE nicht innerhalb eines iterativen DO-Befehls, kommt es zu einem Fehler. Falls mehrere verschachtelte Bereiche existieren, bestimmt das wahlfreie Variablensymbol, welcher DO-Bereich verlassen werden soll. Die Variable wird als Literal gelesen und muß mit der Indexvariablen eines gegenwärtig aktiven DO-Befehls übereinstimmen. Wenn kein entsprechender DO-Befehl gefunden wird, kommt es zu einem Fehler. Beispiel:

DO i = 1 to limit
IF i > 5 THEN LEAVE /*Maximale Iterationen*/
END

NOP

NOP

Der Befehl NOP (keine Operation, engl. no operation) dient zu Anbindung von ELSE-Klauseln an verschachtelte IF-Anweisungen. Beispiel:

IF i = j THEN /*Erstes (äußeres) IF*/
IF j = k THEN a = 0 /*Inneres IF*/
ELSE NOP/*Anbindung ans innere IF*/
ELSE a = a + 1 /*Anbindung ans äußere IF*/

NUMERIC

NUMERIC {DIGITS | FUZZ} Ausdruck NUMERIC FORM {SCIENTIFIC | ENGINEERING}

NUMERIC DIGITS 12 /*Auf 12 Ziffern genau*/
NUMERIC FORM SCIENTIFIC /*Resultat in wissenschaftlicher Schreibweise*/

OPTIONS

OPTIONS [FAILAT Ausdruck]

[PROMPT Ausdruck]

[RESULTS]

[CACHE]

Der Befehl OPTIONS dient zum Setzen verschiedener interner Standardwerte. Der Ausdruck nach FAILAT setzt den Grenzwert, bei dessen Erreichen oder Überschreiten Rückgabewerte von Kommandos als Fehler angesehen werden. Die Auswertung des Ausdrucks muß eine ganze Zahl ergeben. Der Ausdruck nach PROMPT legt eine Zeichenfolge fest, die bei dem Befehl PULL (oder PARSE PULL) als Eingabeaufforderung verwendet wird. Das Schlüsselwort RESULTS gibt an, daß der Interpreter eine Ergebniszeichenfolge anfordern soll, wenn er Kommandos an einen externen Host ausgibt.

Die über diesen Befehl gesteuerten internen Optionen bleiben auch über Funktionsaufrufe hinweg erhalten, d.h. ein Befehl OPTIONS kann innerhalb einer internen Funktion gegeben werden, ohne dadurch die Umgebung der Aufrufebene zu beeinflussen. Wird kein Schlüsselwort zum Befehl OPTIONS angegeben, nehmen alle genannten Optionen wieder ihre Standardwerte an. Der Befehl OPTIONS akzeptiert auch das Schlüsselwort NO, um eine ausgewählte Option auf ihren Standardwert rückzusetzen. Dies erleichtert es beispielsweise, das Attribut RESULTS für ein einzelnes Kommando rückzusetzen, ohne zusätzlich auch die Option FAILAT und PROMPT rücksetzen zu müssen.

OPTIONS akzeptiert auch das Schlüsselwort CACHE, das zur Aktivierung/Inaktivierung eines internen Cache zur Zwischenspeicherung von Anweisungen dient. Normalerweise ist der Cache aktiviert. Beispiel:

OPTIONS FAILAT 10
OPTIONS PROMPT "Ja, Chef?"
OPTIONS RESULTS

Hoch Zurück Weiter Kapitel