Simscript III/Dictionnaire des instructions/EVERY
L’énoncé every déclare une entité, un processus, un objet, ou une ressource, ses attributs et ses liens avec les ensembles ou une classe. Le type de l’entité est déterminé par la rubrique du preamble où l’énoncé every est placé (ces rubriques étant : permanent entities, temporary entities , resources , processes et begin class).
Syntaxe : |
|
où Liste_Attribut est une liste d’attributs de la forme : Attr1, Attr2, ...., Attrn , Nom_Classe est le nom d’une classe dont la classe présente hérite, Liste_Ensemble est une liste d’ensembles de la même forme Ens1, ..Ensn, Liste_Méthode est une liste de méthode ou de méthode processus de la forme Méth1, … Méthk, et Nom_Méthode est le nom d’une méthode processus ou d’une méthode d’un objet qui est surchargée.
Seules les entités permanentes, les ressources et les classes peuvent posséder des ensembles. Tous les types d’entités peuvent appartenir à des ensembles (y compris les processus), mais on ne peut pas mélanger des entités permanentes et temporaires dans un même ensemble. Dans le cas des entités permanentes, on peut avoir au lieu d’un nom d’entité unique, un n-uplet de la forme Entité1, Entité2, ..., Entitén (cas des attributs et ensembles à plusieurs indices).
Exemple :
every Cartes has
a Numéro,
a Couleur, ‘‘ Couleur de la carte
a No_Couleur, ‘‘ Un numéro de couleur
a Valeur, ‘‘ sa valeur,
a Rang, ‘‘ son rang lorsque brassées
a Construire method, ‘‘ Constructeur
may belong to a Main ‘‘ Peut être dans la main d'un joueur
and may belong to a Jeu_De_Cartes ‘‘ peut faire partie du jeu de cartes
every Dépot_Pétrole
is a Entité_Stockage,
and has an Initialiser method;
every Entité_Stockage
is a Ressource,
and has an Imprimer method,
an Initialiser method,
a Réinitialiser method,
a Demander method,
a Renoncer_A method,
an Utilisation method,
an Est_Disponible method,
an Attendre_Disponibilité method,
a Rendre_Disponible method,
a Rendre_Indisponible method,
an Obtenir_Nom method;
every Feu_Circulation
is a Entité_Interrupteur_Logique,
and has an Durée_Vert, ‘‘ Durée du vert
a Location, ‘‘ Sur quelle rive
an Initialiser method,‘‘ Initialiser le feu
a Changer_Le method,‘‘ Changer l'état du feu
a Rive_Opposée_f method,
a Cycle_Vert process method;
begin class Route........................................................
every Route
has a Nom
and a Longueur;
define Nom as a text variable;
define Longueur as a double variable monitored on the left and right;
end ‘‘ classe route........................................................
begin class Autoroute......................................................
every Autoroute
is a Route,
and overrides the Longueur;
end ‘‘ classe Autoroute....................................................