Flux et contrôle
controlst = gost / subst / loopstr / casest;
Instructions GO TO
gost = "GO" "TO" (labelv / .id);
assignlabel = "ASSIGN" .id "TO" labelv;
Sous-programmes
subst = callst / returnst / cortnout;
callst = "CALL" procname (exp / .emptyu);
returnst = "RETURN" (exp / .empty);
cortnout = "STUFF" exp "IN" pipename;
cortnin = "FETCH" pipename;
- FETCH est une fonction prédéfinie dont la valeur est calculée en invoquant la co-routine nommée.
Instructions de boucle
Syntaxe
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;
-
La valeur des instructions while et until est définie comme fausse et vraie (ou 0 et non nulle) respectivement.
-
Les instructions for évaluent leur exp initiale, la partie by et la partie to une fois, au moment de l'initialisation. L'indice courant des instructions for n'est pas modifiable à l'intérieur de la boucle, il peut seulement être lu. Si certains compilateurs peuvent en tirer parti (par exemple le placer dans un registre), tant mieux. L'incrément et la borne to seront tous deux arrondis à des entiers lors de l'initialisation.