où TCase modélise une branche de choix
Syntaxe B:
CASE TExpression OF
EITHER TExpression_1,TExpression_2,... THEN
TSubstitution
[OR TExpression_1',TExpression_2'... THEN
TSubstitution]*
[ELSE
TSubstitution]
END
END
- Version:
- 1.0 du 13/06/2001
- Author:
- Frédéric Chatel
- See Also:
TSubstitution
,
TExpression
,
TCase
Constructor Summary |
TSubCas(TExpression selec,
java.util.Vector<TCase> liste_cas)
Constructeur paramètré qui initialise les attributs avec les entrées de l'utilisateur. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TSubCas
public TSubCas(TExpression selec,
java.util.Vector<TCase> liste_cas)
- Constructeur paramètré qui initialise les attributs avec les entrées de l'utilisateur.
- Parameters:
selec
- Sélecteur.liste_cas
- Liste des cas à vérifier (objets de TCase).
DonnerSelecteur
public TExpression DonnerSelecteur()
- Donne l'expression de test (un ensemble)
- Returns:
- le sélecteur
DonnerCase
public java.util.Vector<TCase> DonnerCase()
- Donne la liste des cas.
- Returns:
- La liste des cas.
Dupliquer
public TElementB Dupliquer()
- Renvoie la copie conforme de l'element courant clone sur toute sa hauteur
- Overrides:
Dupliquer
in class TElementB
- Returns:
- un clone integral de l'element B courant
RemplacerAppelOp
public TSubstitution RemplacerAppelOp()
- Remplace l'appel d'opération
Auteur: Olivier BERT
- Overrides:
RemplacerAppelOp
in class TSubstitution
- Returns:
- La substitution obtenue.
ATTENTION !!! ATTENTION !!! : pour l'instant cette méthode prend
seulement en charge les substitutions que l'on peut trouver au niveau
spécification. Si il y a des ';', une exception sera levée.
Auteur: Olivier Bert
TraiterAssertSansRenommage
public TSubstitution TraiterAssertSansRenommage(java.util.Vector<TExprIdentificateur> vv,
java.util.Vector<TPredicat> PP)
- Aplatissement pour traiter AssertSansRenommage
Auteur Didier BERT
- Overrides:
TraiterAssertSansRenommage
in class TSubstitution
Simplifier
public TSubstitution Simplifier()
- Simplification d'une substitution CASE
Auteur: Olivier BERT
- Overrides:
Simplifier
in class TSubstitution
- Returns:
- la substitution this simplifiee
- See Also:
TSubPrecondition
EstSubMachine
public boolean EstSubMachine()
- Teste si la substitution CASE est une substitution de machine.
- Overrides:
EstSubMachine
in class TSubstitution
ListeDesNomsLibres
public java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
- Renvoie la liste des identificateurs libres dans un predicat, une
expression ou une substitution.
- Overrides:
ListeDesNomsLibres
in class TElementB
- Returns:
- un vecteur dont chaque element est un Tidentificateur libre.
Remplacer
public TElementB Remplacer(TExprIdentificateur Id,
TExpression e)
- Remplace un identificateur non libre dans l'élément B courant par une
expression donnee.
- Overrides:
Remplacer
in class TElementB
- Parameters:
Id
- : l'identificateur a remplacere
- : la nouvelle expression
- Returns:
- Si Id est non libre dans l'element B courant alors toutes ses
occurrences sont remplacees par e
Sinon : L'element B courant est renvoye non modifie
Convertir
public TSubstitution Convertir()
- Convertit la substitution "cas" en choix borné.
CASE E OF EITHER l THEN S...OR p THEN T ELSE U END END
en
SELECT E:{l} THEN S
...
WHEN E:{p} THEN T
ELSE U
END
puis convertit le select pour obtenir une subsitution primitive de CHOICE
- Overrides:
Convertir
in class TSubstitution
- Returns:
- Le choix borné obtenu.
CalculerWP
public TPredicat CalculerWP(TPredicat post_cond)
- Calcule la plus faible précondition
[CASE E OF EITHER l THEN S...OR p THEN T ELSE U]R.
Comme on est dans le cas d'une substitution généralisée, la conversion
est réalisée automatiquement avant le calcul.
- Overrides:
CalculerWP
in class TSubstitution
- Parameters:
post_cond
- Postcondition vérifiée après la fin de la
substitution "cas".
- Returns:
- Le prédicat
E:{l}=>[S]R & .. & E:{p}=>[T]R & not(E:{l} or ... or E:{p})=>[U]R.
Afficher
public void Afficher(java.io.Writer flux_sortie)
throws java.io.IOException,
java.io.FileNotFoundException
- Affiche une substitution "cas".
- Overrides:
Afficher
in class TElementB
- Parameters:
flux_sortie
- Flux de sortie: fichier de type FileWriter ou terminal(new PrintWriter(System.out)).
- Throws:
java.io.IOException
java.io.FileNotFoundException
Afficher
public void Afficher(java.io.Writer flux_sortie,
int niveau)
throws java.io.IOException,
java.io.FileNotFoundException
- Affiche une substitution "cas" avec presentation.
- Overrides:
Afficher
in class TElementB
- Parameters:
flux_sortie
- Flux de sortie: fichier de type FileWriter ou terminal(new PrintWriter(System.out)).niveau
- : un entier qui indique le niveau de tabulation.
- Throws:
java.io.IOException
java.io.FileNotFoundException
ConstruireNoeud
public tatibouet.bparser.Noeud ConstruireNoeud()
- Construit un Noeud Tatibouet à partir d'une substitution "cas"
- Overrides:
ConstruireNoeud
in class TElementB
- Returns:
- Noeud
Copyright OB.