Passa al contenuto principale

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.