フローと制御
controlst = gost / subst / loopstr / casest;
GO TO文
gost = "GO" "TO" (labelv / .id);
assignlabel = "ASSIGN" .id "TO" labelv;
サブルーチン
subst = callst / returnst / cortnout;
callst = "CALL" procname (exp / .emptyu);
returnst = "RETURN" (exp / .empty);
cortnout = "STUFF" exp "IN" pipename;
cortnin = "FETCH" pipename;
- FETCHは組み込み関数であり、その値は指定されたコルーチンを起動することによって計算されます。
ループ文
構文
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;
-
while文とuntil文の値は、それぞれ偽と真 (または0と非ゼロ) であると定義されます。
-
for文は、初期化時に、その初期exp、by部分、およびto部分を一度だけ評価します。for文の実行インデックスは、ループ内で変更できず、読み取ることしかできません。もし、いくつかのコンパイラがこれを利用できる (例えばレジスタに置く) なら、なおさらよいです。増分とtoの境界はどちらも、初期化中に整数に丸められます。