Zum Hauptinhalt springen

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.