bob.substitution
Class TSubDefinitionLocale

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

public class TSubDefinitionLocale
extends TSubstitution

La classe TSubDefinitionLocale contient les informations sur une définition locale. C'est une substitution généralisée non primitive.

Syntaxe B:

LET liste de TExprIdentificateur BE
     liste de Ident = TExpression
     représenté comme Tpredicat (modification)
IN
     TSubstitution
END

Version:
1.0 du 13/06/2001, modifiée le 27-09-02 par Didier Bert
Author:
Frédéric Chatel
See Also:
TSubstitution

Field Summary
 
Fields inherited from class bob.substitution.TSubstitution
Primitive
 
Constructor Summary
TSubDefinitionLocale(java.util.Vector<TExprIdentificateur> liste_id, TPredicat p, TSubstitution s)
          Constructeur paramétré qui initialise les attributs.
 
Method Summary
 void Afficher(java.io.Writer flux_sortie)
          Affiche une définition locale.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche une définition locale avec presentation.
 TPredicat CalculerWP(TPredicat post_cond)
          Calcule la plus faible précondition [LET x,..
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit un Noeud Tatibouet à partir d'une définition locale
 TSubstitution Convertir()
          Convertit la substitution "définition locale" en substitution "variable locale".
 TPredicat DonnerBe()
          Donne le prédicat d'initialisation introduit par le mot-clé BE.
 TSubstitution DonnerIn()
          Donne la substitution introduite par le mot-clé IN.
 java.util.Vector<TExprIdentificateur> DonnerLet()
          Donne la liste des identificateurs introduits par le mot-clé LET.
 TElementB Dupliquer()
          Renvoie la copie de l'element courant clone sur toute sa hauteur
 boolean EstSubMachine()
          Teste si le LET 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()
          Remplacement des appels d'opération
Auteur: Olivier Bert
 TSubstitution Simplifier()
          Simplification d'une substitution
Auteur Olivier Bert
 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

TSubDefinitionLocale

public TSubDefinitionLocale(java.util.Vector<TExprIdentificateur> liste_id,
                            TPredicat p,
                            TSubstitution s)
Constructeur paramétré qui initialise les attributs.

Parameters:
liste_id - Liste des identificateurs introduits par le mot-clé LET.
p - Prédicat introduit par le mot-clé BE pour initialiser les identificateurs.
s - Substitution introduite par le mot-clé IN.
Method Detail

DonnerLet

public java.util.Vector<TExprIdentificateur> DonnerLet()
Donne la liste des identificateurs introduits par le mot-clé LET.

Returns:
La liste des identificateurs introduits par le mot-clé LET.

DonnerBe

public TPredicat DonnerBe()
Donne le prédicat d'initialisation introduit par le mot-clé BE.

Returns:
Le prédicat d'initialisation introduit par le mot-clé BE.

DonnerIn

public TSubstitution DonnerIn()
Donne la substitution introduite par le mot-clé IN.

Returns:
La substitution introduite par le mot-clé IN.

Dupliquer

public TElementB Dupliquer()
Renvoie la copie 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()
Remplacement des appels 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
Auteur Olivier Bert

Overrides:
Simplifier in class TSubstitution
Returns:
la substitution this simplifiee
See Also:
TSubPrecondition

EstSubMachine

public boolean EstSubMachine()
Teste si le LET 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 la substitution "définition locale" en substitution "variable locale".

Syntaxe B:

VAR liste de TExprIdentificateur IN
     SELECT TPredicat THEN
         TSubstitution
     END
END

Overrides:
Convertir in class TSubstitution
Returns:
La substitution "variable locale" obtenue.

CalculerWP

public TPredicat CalculerWP(TPredicat post_cond)
Calcule la plus faible précondition [LET x,..,y BE x:=E ^..^ y:=F IN S]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 "définition locale".
Returns:
Le prédicat !(x,..,y).(x=E ^..^ y=F => [S]R).

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche une définition locale.

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 définition locale 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 définition locale. [ Correction non faite : à revoir ]

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.