流程与控制
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 边界在初始化期间都会被舍入为整数。