C’est une phrase de contrôle de boucle qui porte sur des entités contenues dans une file d’attente.
"Ensemble" est un ensemble et "Repère" une variable entière (index ou pointeur). La boucle passe en revue les entités membres de l’ensemble "Ensemble" depuis le first F.Ensemble jusqu’au last L.Ensemble dans l’ordre de leur rangement (ou en sens inverse s’il est spécifié "in reverse order") et place le repère de l’entité dans la variable "Repère" . On peut imposer le démarrage de la bouche "Borne". Si "Borne" n’est pas dans l’ensemble "Ensemble", un message d’erreur est émis et le programme s’arrête. Par contre si la file est vide, ou si les conditions spécifiées par des phrases with, unless, until ajoutées au for ne sont jamais vérifiées, les énoncés de la boucle commandée par le for ne sont pas exécutées et la variable "Repère" garde la valeur zéro.
Exemple :
for each Canal called i,
 for each Sens called j.
 for each Paquet in Bac(i, j) with Type(Paquet) = _Ack
 do
 loop ;

Simscript III/Dictionnaire des instructions/FUNCTION

L’énoncé function marque le début d’un sous-programme de type fonction. Le corps de la fonction doit se terminer par un énoncé end et doit également avoir un énoncé return with…
où f est un nom apparaissant dans un define ... function du preamble et "a"1, ..., "a"n est une liste d’arguments d’entrée. Par défaut, une fonction est implantée à droite et le mot-clé right est facultatif.
Exemples :
preamble
 define toHexa as an integer function with 4 alpha arguments
end " preamble
main
 define 0x80000000, 0xFFFFFFFF as integer variables
 define 0x00 = 0, 0x80 = 128, 0xFF = 255 as constants;
 let 0xFFFFFFFF = toHexa ( 0xFF, 0xFF, 0xFF, 0xFF); 
 let 0x80000000 = toHexa ( 0x80, 0x00, 0x00, 0x00);
 write 0x80000000, 0xFFFFFFFF
 as S 10, "0x80000000 = ", C 8 , /, 
 S 10, "0xFFFFFFFF = ", C 8 , / 
 end " main
" Converts a four character to an integer, using little-endian form
function toHexa( b4, b3, b2, b1)
 define b1, b2, b3, b4 as alpha variables
 return with or.f( shl.f(b4, 24), or.f( shl.f(b3, 16), or.f( shl.f(b2, 8), b1))); 
end " toHexa
Dans le cas d’une implantation à gauche, (utilisée à gauche du signe = d’un énoncé let, dans un énoncé yielding d’un sous-programme, ou utilisée dans un énoncé read), le mot-clé left précède l’énoncé function. Dans ce cas, on affecte une valeur à la fonction. Alors, le premier énoncé exécutable de cette fonction à gauche est enter with "variable" qui permet d’obtenir la valeur affectée à la fonction à gauche, et de l’affecter à "variable". Le mode de la valeur affectée à la fonction doit correspondre au mode de la fonction définie dans l’énoncé define ….function dans le préambule.(voir l’énoncé move from)

Simscript III/Dictionnaire des instructions/GO TO

Transfert inconditionnel vers l’énoncé qui suit l’étiquette spécifiée par le go to. On peut employer des étiquettes indicées. Une étiquette est un champ de caractères encadré par des apostrophes (Exemples : ’ABC’ ’TRACE(I+2)’).

Simscript III/Dictionnaire des instructions/GO TO .... PER

Aiguillage vers l’énoncé qui suit la n-ième étiquette d’une liste, "n" étant la valeur entière d’une expression arithmétique.

Simscript III/Dictionnaire des instructions/IF ... ELSE ... ENDIF

La construction if ... else ... endif détermine si une expression logique suivant le if est vraie ou fausse; si la condition est vérifiée, l’exécution continue avec l’énoncé suivant, jusqu’au else, puis reprend après endif (fin du if); si la condition n’est pas vérifiée, l’exécution est transférée aux énoncés suivant le else.
Si le groupe d’énoncés suivant if se termine par un transfert inconditionnel (go to, return, stop), il ne faut pas de endif.
Plusieurs constructions if peuvent être imbriquées. Quelques exemples parlent d’eux-mêmes:

Simscript III/Dictionnaire des instructions/INTERRUPT

L’énoncé interrupt retire un processus "P" qui est dans l’état work (attribut prédéfini sta.a(P) = 1 de l’échéancier et le fait passer dans l’état interrompu (sta.a(P) = 3. Le temps restant à dérouler est automatiquement placé dans l’attribut time.a(P) ; le processus interrompu "P" finira éventuellement son work grâce à un énoncé resume de la routine interrompant (ou d’une autre routine), puis exécutera les énoncés qui suivent le work dans la routine associée à P.
On peut interrompre un processus "P" à partir de tout processus autre que "P", routine, method ou function.

Simscript III/Dictionnaire des instructions/LEAVE

Sortie de boucle inconditionnelle. Le transfert a lieu à l’énoncé qui suit le loop. L’index de boucle reste inchangé.
Cet énoncé placé à l’intérieur d’une construction do ... loop permet un transfert immédiat à l’énoncé qui suit le loop. L’index de la boucle garde la valeur qu’il avait au moment du leave.
Exemple :
for ...
do
 if ...
 leave -­
 else |
loop |

Simscript III/Dictionnaire des instructions/LET

L’affectation de la valeur d’une expression à une variable "V" se fait simplement en écrivant :
La conversion du résultat de l’"expression" dans le type de la variable est automatique, mais attention : si "V" est de type integer et si l’expression est réelle, le résultat mis dans "V" sera l’entier arrondi (et non tronqué) : -2.9 donnera -3 et 1.6 donnera 2.
On peut mélanger dans l’expression les types integer et double (mais pas le type text ou alpha), auquel cas le résultat est en double.
Exemple :
Energie_Cinétique(Train) = (Poids_Inertiel + Poids_Charge * Charge(Train))/ ( _Gravité * 2.0 )
 * Vit_Maximale(Train) **2 / _Kmh_Msec * 0.001 / 3600.0
 * Nb_Element/ _Kmh_Msec ;
let x = -b + sqrt.f( b* b - 4.0 a *c) / (2.0 *a) ;
Compteur = mod.f( Compteur, Nb_Cartes) + 1;
let un_Joueur = S.Table_Cartes(un_Joueur) ;

Simscript III/Dictionnaire des instructions/LIST

LIST.
L’énoncé list affiche l’identificateur et la valeur, dans un format standard, de variables, d’expressions et d’éléments de tableaux à une et deux dimensions.
Exemple :
Le programme suivant affiche les résultats suivants :
Programme : Résultats :
main
 define R as a double variable N = 5 
 define x as a 1-dim real array R = 10.0000000000 
 define n, i as an integer variable 2.0 * PI.C * R = 62.8318530718 
 let n = 5; X(1) = 1.0000000000
 reserve x(*) as n X(2) = 2.0000000000
 for i = 1 to n, X(3) = 3.0000000000
 x(i) = real.f(i); X(4) = 4.0000000000
 let R = 10.0; X(5) = 5.0000000000
 list n, R, 2.0 * pi.c * R, x; 
 read as /; ‘‘ Attendre un retour de chariot 
end ‘‘ main Résultats :

Simscript III/Dictionnaire des instructions/LIST ATTRIBUTES

L’énoncé list attributes affiche la valeur des attributs d’une entité permanente ou temporaire, d’une ressource ou d’un processus.

Simscript III/Dictionnaire des instructions/LIST ATTRIBUTES OF EACH

L’énoncé list attributes of each affiche la valeur des attributs d’une entité permanente ou temporaire, d’une ressource ou d’un processus ou d’un objet.
formula_1

Simscript III/Dictionnaire des instructions/MAIN

Introduit le programme principal main (terminé par end).

Simscript III/Dictionnaire des instructions/METHOD

L’énoncé method marque le début d’un sous-programme de type méthode pour un objet ou méthode processus sous programme.
où" Nom_Méthode" est un nom apparaissant dans un define ... method du preamble, "E"1, ..., "E"n est une liste de paramètres d’entrée et "S"1, ..., "S"m est une liste de paramètres de sortie si la méthode est appelée par un énoncé call.

Simscript III/Dictionnaire des instructions/METHODS FOR THE

L’énoncé method for the se place dans un module pour introduire le début des implantations des méthodes pour une "Classe "donnée"."

Simscript III/Dictionnaire des instructions/MOVE FROM

L’énoncé move from est utilisé dans l’implantation d’un sous-programme associé à une variable monitorée. Il sert à affecter la valeur de la "variable" monitorée une variable associée au sous-programme ou à affecter une valeur à la variable monitorée.