bob.substitution
Class TSubChoixBorne

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

public class TSubChoixBorne
extends TSubstitution

La classe TSubstitutionChixBorne contient les informations sur les substitutions de type "choix borné". C'est une substitution généralisée primitive.

Syntaxe B:

CHOICE
    TSubstitution
OR
    TSubstitution
[OR
    TSubstitution]
END

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

Field Summary
 
Fields inherited from class bob.substitution.TSubstitution
Primitive
 
Constructor Summary
TSubChoixBorne(java.util.Vector<TSubstitution> liste_choix)
          Constructeur paramétré qui initialise les attributs avec les informations données par l'utilisateur.
 
Method Summary
 void Afficher(java.io.Writer flux_sortie)
          Affiche un choix borné.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche un choix borné avec presentation.
 TPredicat CalculerWP(TPredicat post_cond)
          Calcule la plus faible précondition [S [] T [] ...]R.
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit un Noeud Tatibouet à partir d'un choix borné
 TSubstitution Convertir()
          Convertit les substitutions incluses dans le choix borné.
 java.util.Vector<TSubstitution> DonnerChoice()
          Donne le corps d'une substitution "choix borné".
 TElementB Dupliquer()
          METHODES
 boolean EstSubMachine()
          Teste si la substitution CHOIX est une substitution de machine
 java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
          Renvoie la liste des identificateurs libres dans un predicat, une expression ou une substitution.
 TElementB Remplacer(TExprIdentificateur Id, TExpression e)
          Remplace un identificateur non libre dans l'élément B courant par une expression donnee.
 TSubstitution RemplacerAppelOp()
          Remplace les appels d'opérations.
 TSubstitution Simplifier()
          Simplifie le CHOICE (remontée des préconditions).
 TSubstitution TraiterAssertSansRenommage(java.util.Vector<TExprIdentificateur> vv, java.util.Vector<TPredicat> PP)
          Aplatissement pour traiter AssertSansRenommage
Auteur Didier BERT
 
Methods inherited from class bob.substitution.TSubstitution
CalculerGarde, CalculerTermin, EstPrimitive
 
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

TSubChoixBorne

public TSubChoixBorne(java.util.Vector<TSubstitution> liste_choix)
Constructeur paramétré qui initialise les attributs avec les informations données par l'utilisateur.

Parameters:
liste_choix - Liste des substitutions introduites par le mot_clé ou le mot_clé OR.
Method Detail

DonnerChoice

public java.util.Vector<TSubstitution> DonnerChoice()
Donne le corps d'une substitution "choix borné".

Returns:
La liste des substitutions incluses dans le choix borné.

Dupliquer

public TElementB Dupliquer()
METHODES

Overrides:
Dupliquer in class TElementB
Returns:
TElementB element

RemplacerAppelOp

public TSubstitution RemplacerAppelOp()
Remplace les appels d'opérations.
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()
Simplifie le CHOICE (remontée des préconditions).

Règle: (P1|S1)[](P2|S2)[]...[](Pn|Sn)
devient
(P1 & P2 &...& Pn |S1[]S2[]...[]Sn)

Overrides:
Simplifier in class TSubstitution
Returns:
la substitution simplifiée.
See Also:
TSubPrecondition

EstSubMachine

public boolean EstSubMachine()
Teste si la substitution CHOIX 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 remplacer
e - : la nouvelle expression
Returns:
Si Id est non libre dans l'element B courant alors toutes ses iterations sont remplacees par e Sinon : L'element B courant est renvoye non modifie

Convertir

public TSubstitution Convertir()
Convertit les substitutions incluses dans le choix borné.

Overrides:
Convertir in class TSubstitution
Returns:
Le choix borné avec les substitutions incluses converties.

CalculerWP

public TPredicat CalculerWP(TPredicat post_cond)
Calcule la plus faible précondition [S [] T [] ...]R.

Overrides:
CalculerWP in class TSubstitution
Parameters:
post_cond - Postcondition vérifiée après la fin de la substitution "choix borné".
Returns:
Le prédicat [S]R & [T]R & ...

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche un choix borné.

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 choix borné 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'un choix borné

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.