bob.predicat
Class TPredLogique

java.lang.Object
  extended by bob.elementB.TElementB
      extended by bob.predicat.TPredicat
          extended by bob.predicat.TPredLogique

public class TPredLogique
extends TPredicat

La classe TPredLogique contient les informations concernant les prédicats logiques.

Syntaxe B:

TPredicat TOpLogique TPredicat

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

Constructor Summary
TPredLogique(TOpLogique op, TPredicat mg, TPredicat md)
          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 prédicat logique.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche un prédicat logique avec presentation.
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit un Noeud Tatibouet à partir d'un prédicat logique.
 java.util.Vector<TPredicat> DecomposerET()
          Méthode qui décompose un prédicat logique en un vecteur de prédicats reliés par des ET.
 TPredicat DonnerMembreDroite()
          Donne le membre de droite du prédicat.
 TPredicat DonnerMembreGauche()
          Donne le membre de gauche du prédicat.
 TOpLogique DonnerOperateur()
          Donne l'opérateur logique utilisé.
 TElementB Dupliquer()
          Renvoie la copie conforme de l'element courant clone sur toute sa hauteur
 boolean EstSyntaxEgal(TPredicat P)
          Recherche si le prédicat courant est syntaxiquement égal au prédicat en paramètre.
 java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
          Renvoie la liste des identificateurs libres dans un predicat, une expression ou une substitution.
static TPredicat RecomposerET(java.util.Vector<TPredicat> lp)
          Méthode qui recompose une liste de prédicats en une conjonction avec associativité à gauche.
 TElementB Remplacer(TExprIdentificateur Id, TExpression e)
          Remplace un identificateur non libre dans l'élément B courant par une expression donnee.
 TPredicat Simplifier()
          Simplifie un predicat.
 
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

TPredLogique

public TPredLogique(TOpLogique op,
                    TPredicat mg,
                    TPredicat md)
Constructeur paramétré qui initialise les attributs avec les entrées de l'utilisateur.
Attention: pour les opérateurs EQUIVAlENT, ET, OU, IMPLIQUE, il y a deux prédicats en argument. Pour l'opérateur NON, le membre gauche est null, le membre droit est l'argument.

Parameters:
op - Opérateur logique à utiliser.
mg - Membre de gauche du prédicat
md - Membre de droite du prédicat
Method Detail

DonnerOperateur

public TOpLogique DonnerOperateur()
Donne l'opérateur logique utilisé.

Returns:
L'opérateur logique utilisé.

DonnerMembreGauche

public TPredicat DonnerMembreGauche()
Donne le membre de gauche du prédicat.

Returns:
membre de gauche du prédicat.

DonnerMembreDroite

public TPredicat DonnerMembreDroite()
Donne le membre de droite du prédicat.

Returns:
membre de droite du prédicat.

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

Simplifier

public TPredicat Simplifier()
Simplifie un predicat. Méthode de Fabien Sanglard.

Overrides:
Simplifier in class TPredicat
Returns:
Renvoie le predicat completement simplifie.

EstSyntaxEgal

public boolean EstSyntaxEgal(TPredicat P)
Recherche si le prédicat courant est syntaxiquement égal au prédicat en paramètre.
Méthode de Didier Bert Utilisée pour des simplifications (P => P, P & P, etc).

Overrides:
EstSyntaxEgal in class TPredicat
Returns:
vrai si les deux prédicats sont syntaxiquement égaux

DecomposerET

public java.util.Vector<TPredicat> DecomposerET()
Méthode qui décompose un prédicat logique en un vecteur de prédicats reliés par des ET. Si P est l'objet et [P1,P2,...,Pn] est le résultat, alors on a P <=> P1 & P2 & P3 ... & Pn
Cette méthode est utilisée pour traiter le prédicat des propriétés ou l'invariant dans l'aplatissement.
Auteur: Didier Bert

Returns:
le vecteur des prédicats

RecomposerET

public static TPredicat RecomposerET(java.util.Vector<TPredicat> lp)
Méthode qui recompose une liste de prédicats en une conjonction avec associativité à gauche.
Si le paramètre est [P1,P2,P3...,Pn] le résultat est le prédicat P1 & P2 & P3 &...& Pn, c'est à dire (...((P1 & P2) & P3) &...& Pn).

Returns:
le prédicat conjonction. Si le paramètre est null ou vide, alors le résultat est null.

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 occurrences sont remplacees par e Sinon : L'element B courant est renvoye non modifie

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche un prédicat logique.

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 prédicat logique avec presentation. En fait, on va a la ligne apres les &.

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 prédicat logique.

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.