bob.substitution
Class TElsif

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

public class TElsif
extends TSubstitution

La classe TElsif contient les informations sur une alternative introduite par le mot-clé ELSIF (ou ELSE). Partie variable de la substitution IF (classe TSubCondition).

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

Field Summary
 
Fields inherited from class bob.substitution.TSubstitution
Primitive
 
Constructor Summary
TElsif(TPredicat p, TSubstitution s)
          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 l'alternative d'une condition.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche l'alternative d'une condition avec presentation.
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit le Noeud Tatibouet.
 TElsif Convertir(TElsif else_if)
          Convertit un ELSIF P THEN S en ELSE (IF P THEN S ELSE T END).
 TPredicat DonnerPredicat()
          Donne le prédicat d'une alternative introduit par le mot-clé ELSIF.
 TSubstitution DonnerThen()
          Donne le corps d'une alternative introduit par le mot-clé THEN (ou ELSE).
 TElementB Dupliquer()
          Renvoie la copie conforme de l'element courant clone sur toute sa hauteur
 boolean EstSubMachine()
          Teste si l'assertion 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 de l'appel d'opération
Auteur: Olivier BERT
 TSubstitution Simplifier()
          Simplification d'un elsif (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, CalculerWP, Convertir, 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

TElsif

public TElsif(TPredicat p,
              TSubstitution s)
Constructeur paramétré qui initialise les attributs avec les informations données par l'utilisateur.

Parameters:
p - Prédicat introduit par le mot-clé ELSIF.
s - Subsitution introduite par le mot-clé THEN.
Method Detail

DonnerPredicat

public TPredicat DonnerPredicat()
Donne le prédicat d'une alternative introduit par le mot-clé ELSIF.

Returns:
Le prédicat d'une alternative ou null si branche ELSE.

DonnerThen

public TSubstitution DonnerThen()
Donne le corps d'une alternative introduit par le mot-clé THEN (ou ELSE).

Returns:
Le corps d'une alternative.

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()
Remplacement de 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'un elsif (remontée des préconditions).

ELSIF Q THEN (P|S) devient PRE P THEN (ELSIF Q THEN S) END

Ce n'est donc pas une substitution syntaxiquement correcte, mais elle sert de résultat intermédiaire pour la substitution IF englobante. Si la partie THEN (après simplification) n'est pas une précondition, on retourne un ELSIF Q THEN S', où S' est la forme simplifiée de S.

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

EstSubMachine

public boolean EstSubMachine()
Teste si l'assertion 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 TElsif Convertir(TElsif else_if)
Convertit un ELSIF P THEN S en ELSE (IF P THEN S ELSE T END).

Parameters:
else_if - Clause ELSIF déjà convertie. C'est l'élément suivant le ELSIF courant (this) lorsque les deux font partie d'une liste. Si ce paramètre vaut null, alors le ELSIF courant est le dernier de la liste.
Returns:
Le ELSE (IF P THEN S ELSE T END) obtenu.

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche l'alternative d'une condition.

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 l'alternative d'une condition 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 le Noeud Tatibouet.

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.