bob.elementB
Class TElementB

java.lang.Object
  extended by bob.elementB.TElementB
Direct Known Subclasses:
TClause, TComposant, TExpression, TPredicat, TSubstitution

public abstract class TElementB
extends java.lang.Object

La classe TElementB généralise tous les éléments pouvant constituer un source écrit en B: composant, substitution, prédicat, expression, etc.

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

Constructor Summary
TElementB()
           
 
Method Summary
 void Afficher(java.io.Writer flux_sortie)
          Affiche un élément B.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche un element quelconque avec presentation.
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit un noeud Tatibouet correspondant à l'objet courant.
 TElementB Dupliquer()
          Renvoie une copie de l'élément courant
 java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
          Renvoie la liste des identificateurs libres de l'élément B courant.
 TElementB Remplacer(TExprIdentificateur Id, TExpression e)
          Remplace un identificateur libre dans l'élément B courant par une expression donnee.
 TElementB RemplacerMultiple(java.util.Vector<TExprIdentificateur> ListeId, java.util.Vector<TExpression> ListeExpr)
          Cette methode permet d'effectuer des remplacements multiples (remplacements simultanes) de plusieurs identificateurs libres par des expressions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TElementB

public TElementB()
Method Detail

Dupliquer

public TElementB Dupliquer()
Renvoie une copie de l'élément courant

Returns:
TElementB element

ListeDesNomsLibres

public java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
Renvoie la liste des identificateurs libres de l'élément B courant.

Returns:
Vecteur dont chaque element est un TExprIdentificateur libre.

Remplacer

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

Parameters:
Id - l'identificateur a remplacer
e - la nouvelle expression
Returns:
Si Id est libre dans l'element B courant alors toutes ses occurrences sont remplacees par e
Sinon : L'element B courant est renvoye non modifie

RemplacerMultiple

public TElementB RemplacerMultiple(java.util.Vector<TExprIdentificateur> ListeId,
                                   java.util.Vector<TExpression> ListeExpr)
Cette methode permet d'effectuer des remplacements multiples (remplacements simultanes) de plusieurs identificateurs libres par des expressions.

Remarque: Notez que le pemplacement séquentiel ne marche pas dans certains cas si capture de variable : les identificateurs remplaçants ont des noms similaires aux identificateurs a remplacer.
Cette méthode est commune à tous les TElementB : TSubstitution, TExpression ...

Auteur: Olivier Bert.

Parameters:
ListeId - Vector de TExprIdentificateur
ListeExpr - liste des expressions par quoi on remplace.
Returns:
une nouvelle instance de TElementB

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche un élément B.

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 element quelconque avec presentation.

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 correspondant à l'objet courant.



Copyright OB.