bob.substitution
Class TSubAppelOp

java.lang.Object
  extended by bob.elementB.TElementB
      extended by bob.substitution.TSubstitution
          extended by bob.substitution.TSubAppelOp

public class TSubAppelOp
extends TSubstitution

La classe TSubAppelOp contient les informations sur un appel d'opération. C'est une substitution généralisée non primitive.

Syntaxe B:

liste de TExprIdentificateur <-- TExprIdentificateur(liste de TExpression)

La méthode Convertir() est maintenant codee.

Version:
1.0 du 13/06/2001
Author:
Frédéric Chatel
See Also:
TSubstitution, TExprIdentificateur

Field Summary
 
Fields inherited from class bob.substitution.TSubstitution
Primitive
 
Constructor Summary
TSubAppelOp(java.util.Vector<TExprIdentificateur> liste_res, TExprIdentificateur nom_op, java.util.Vector<TExpression> liste_param)
          Constructeur paramétré qui initialise les attributs avec les entrées de l'utilisateur.
 
Method Summary
 void Afficher(java.io.Writer flux_sortie)
          Affiche un appel d'opération.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche un appel d'opération avec presentation.
 TPredicat CalculerWP(TPredicat post_cond)
          Calcule la plus faible précondition [r1,..
 tatibouet.bparser.Noeud ConstruireNoeud()
          construit un Noeud à partir d'un appel d'opération
 TSubstitution Convertir()
          Convertit un appel d'opération.
 TExprIdentificateur DonnerNomOperation()
          Donne le nom de l'opération appelée.
 java.util.Vector<TExpression> DonnerParametres()
          Donne la liste des paramètres.
 java.util.Vector<TExprIdentificateur> DonnerResultats()
          Donne la liste des résultats.
 TElementB Dupliquer()
          Renvoie un clone de la substitution TSubAppelOp.
 java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
          METHODES
 TElementB Remplacer(TExprIdentificateur Id, TExpression e)
          Remplace un identificateur libre dans l'élément B courant par une expression donnee.
 TSubstitution RemplacerAppelOp()
          Ne convertit que les appels d'opérations
 
Methods inherited from class bob.substitution.TSubstitution
CalculerGarde, CalculerTermin, EstPrimitive, EstSubMachine, Simplifier, TraiterAssertSansRenommage
 
Methods inherited from class bob.elementB.TElementB
RemplacerMultiple
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TSubAppelOp

public TSubAppelOp(java.util.Vector<TExprIdentificateur> liste_res,
                   TExprIdentificateur nom_op,
                   java.util.Vector<TExpression> liste_param)
Constructeur paramétré qui initialise les attributs avec les entrées de l'utilisateur.

Parameters:
liste_res - Liste des résultats éventuels (mettre null s'il n'y en a pas).
nom_op - Nom de l'opération appelée.
liste_param - Liste des paramètres éventuels (mettre null s'il n'y en a pas).
Method Detail

DonnerNomOperation

public TExprIdentificateur DonnerNomOperation()
Donne le nom de l'opération appelée.

Returns:
Le nom de l'opération appelée.

DonnerParametres

public java.util.Vector<TExpression> DonnerParametres()
Donne la liste des paramètres.

Returns:
La liste des paramètres s'il y en a.
null sinon.

DonnerResultats

public java.util.Vector<TExprIdentificateur> DonnerResultats()
Donne la liste des résultats.

Returns:
La liste des résultats s'il y en a.
null sinon.

ListeDesNomsLibres

public java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
METHODES

Overrides:
ListeDesNomsLibres in class TElementB
Returns:
Vecteur dont chaque element est un TExprIdentificateur libre.

Dupliquer

public TElementB Dupliquer()
Renvoie un clone de la substitution TSubAppelOp. NOTE: Cette méthode avait été oubliée. Ajoutée le 24/11/2004 Auteur: Olivier BERT

Overrides:
Dupliquer in class TElementB
Returns:
TElementB element

Remplacer

public TElementB Remplacer(TExprIdentificateur Id,
                           TExpression e)
Remplace un identificateur libre dans l'élément B courant par une expression donnee.

Overrides:
Remplacer in class TElementB
Parameters:
Id - : l'identificateur a remplacer
e - : la nouvelle expression
Returns:
Si Id est libre dans l'element B courant alors toutes ses occurences sont remplacees par e Sinon : L'element B courant est renvoye non modifie Remarque: Cette methode avait ete oubliee. En effet la methode remplacer est bien presente pour toutes les substitutions, sauf celle-la. Auteur: Olivier BERT

Convertir

public TSubstitution Convertir()
Convertit un appel d'opération.
On suppose l'ensemble du projet valide dans l'atelier B.
Par consequent, on se premunit de la precondition qu'il n'y a pas
de conflits de noms de variables dans les composants en question.

Overrides:
Convertir in class TSubstitution
Returns:
Une substitution primitive.
Auteur: Olivier BERT

RemplacerAppelOp

public TSubstitution RemplacerAppelOp()
Ne convertit que les appels d'opérations

Overrides:
RemplacerAppelOp in class TSubstitution
Returns:
TSubstitution
Auteur: Olivier BERT

CalculerWP

public TPredicat CalculerWP(TPredicat post_cond)
Calcule la plus faible précondition [r1,..,rn <-- op(p1,..,pn)]R.

Overrides:
CalculerWP in class TSubstitution
Parameters:
post_cond - Postcondition vérifiée après la fin de la substitution.
Returns:
La plus faible précondition obtenue. Auteur: Olivier BERT

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche un appel d'opération.

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 un appel d'opération 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 à partir d'un appel d'opération

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.