Ablauf und Steuerung
controlst = gost / subst / loopstr / casest;
GO TO-Anweisungen
gost = "GO" "TO" (labelv / .id);
assignlabel = "ASSIGN" .id "TO" labelv;
Unterprogramme
subst = callst / returnst / cortnout;
callst = "CALL" procname (exp / .emptyu);
returnst = "RETURN" (exp / .empty);
cortnout = "STUFF" exp "IN" pipename;
cortnin = "FETCH" pipename;
- FETCH ist eine eingebaute Funktion, deren Wert durch Aufrufen der benannten Koroutine berechnet wird.
Schleifenanweisungen
Syntax
loopst = whilest / untilst / forst;
whilest = "WHILE" conjunct "DO" statement;
untilst = "UNTIL" conjunct "DO" statement;
forst = "FOR" integerv '- exp ("BY" exp / .empty) "TO" exp
"DO" statements;
-
Der Wert von while- und until-Anweisungen ist als falsch bzw. wahr (oder 0 bzw. ungleich null) definiert.
-
for-Anweisungen werten ihren anfänglichen exp-, by-Teil und to-Teil einmal zum Initialisierungszeitpunkt aus. Der laufende Index von for-Anweisungen kann innerhalb der Schleife nicht geändert werden, er darf nur gelesen werden. Wenn einige Compiler dies ausnutzen können (etwa indem sie ihn in ein Register legen), umso besser. Das Inkrement und die to-Grenze werden während der Initialisierung beide auf ganze Zahlen gerundet.