Flusso e controllo
controlst = gost / subst / loopstr / casest;
Istruzioni GO TO
gost = "GO" "TO" (labelv / .id);
assignlabel = "ASSIGN" .id "TO" labelv;
Subroutine
subst = callst / returnst / cortnout;
callst = "CALL" procname (exp / .emptyu);
returnst = "RETURN" (exp / .empty);
cortnout = "STUFF" exp "IN" pipename;
cortnin = "FETCH" pipename;
- FETCH è una funzione builtin il cui valore è calcolato invocando la co-routine indicata.
Istruzioni di ciclo
Sintassi
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;
-
Il valore delle istruzioni while e until è definito rispettivamente come falso e vero (o 0 e diverso da zero).
-
Le istruzioni for valutano la loro exp iniziale, la parte by e la parte to una sola volta, al momento dell'inizializzazione. L'indice corrente delle istruzioni for non è modificabile all'interno del ciclo, può solo essere letto. Se alcuni compilatori possono trarne vantaggio (ad esempio metterlo in un registro), tanto meglio. L'incremento e il limite to saranno entrambi arrotondati a numeri interi durante l'inizializzazione.