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 :



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....................................................