bob.expression
Class TExprIdentificateur

java.lang.Object
  extended by bob.elementB.TElementB
      extended by bob.expression.TExpression
          extended by bob.expression.TExprIdentificateur

public class TExprIdentificateur
extends TExpression

La classe TExprIdentificateur contient les informations contenues dans un identificateur.
On considère les identificateurs simples "nom", ou les identificateurs renommés "n1.n2.nom"
ou enfin, les identificateurs suffixés par "$0" ou meme "$i".

Syntaxe B:

[ Ident.]* Ident [$ ]

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

Field Summary
protected  java.lang.String Ident
           
protected  int Numero
           
protected  java.util.Vector<TExprIdentificateur> Prefixes
          Les préfixes du nom instancié ou renommé.
 
Constructor Summary
TExprIdentificateur(java.lang.String ident)
          Constructeur paramétré pour un identificateur simple.
TExprIdentificateur(java.lang.String ident, int numero)
          Constructeur paramétré pour un identificateur simple avec numéro.
TExprIdentificateur(java.util.Vector<TExprIdentificateur> prefix, java.lang.String ident)
          Constructeur paramétré pour un identificateur composé avec préfixes.
TExprIdentificateur(java.util.Vector<TExprIdentificateur> prefix, java.lang.String ident, int numero)
          Constructeur paramétré avec les trois informations explicites.
 
Method Summary
 void Afficher(java.io.Writer flux_sortie)
          Affiche un identificateur.
 void AjouterPrefixes(java.util.Vector<TExprIdentificateur> prefs)
          Renommer l'identificateur en rajoutant un préfixe apres
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit un Noeud Tatibouet à partir d'un identificateur.
 java.lang.String DonnerIdent()
          Renvoie l'identificateur simple d'un identificateur simple, composé, ou numéroté.
 java.lang.String DonnerNom()
          Donne le nom complet de l'identificateur tel qu'il s'affiche.
 int DonnerNumero()
          Renvoie le numéro de suffixe d'un identificateur numéroté.
 java.lang.String DonnerPrefixe()
          Retourne le préfixe sous forme d'une chaine de caractères.
 java.util.Vector<TExprIdentificateur> DonnerPrefixes()
          Renvoie le vecteur de préfixes d'un identificateur composé.
 TElementB Dupliquer()
          Renvoie la copie de l'élément courant cloné sur toute sa hauteur
 boolean EstEgalA(TExpression e)
          Indique si une expression est égale à l'identificateur.
 boolean EstIdCompose()
          Indique s'il s'agit d'un identificateur renommé avec préfixes (avec ou sans numéro)
 boolean EstIdNumerote()
          Indique s'il s'agit d'un identificateur avec numéro.
 boolean EstIdSimple()
          Indique s'il s'agit d'un identificateur simple (avec ou sans numéro).
 boolean EstSyntaxEgal(TExpression e)
          Recherche si l'expression en paramètre est syntaxiquement égale à l'objet courant.
 java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
          Renvoie la liste des identificateurs libres dans un predicat, une expression ou une substitution.
 void RangerIdent(java.lang.String s)
          Changer l'identifiant
 TElementB Remplacer(TExprIdentificateur Id, TExpression e)
          Remplace un identificateur non libre dans l'élément B courant par une expression donnee.
 void Renommer(java.util.Vector<TExprIdentificateur> prefs)
          Renommer l'identificateur en rajoutant un préfixe
 
Methods inherited from class bob.expression.TExpression
Simplifier
 
Methods inherited from class bob.elementB.TElementB
Afficher, RemplacerMultiple
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Prefixes

protected java.util.Vector<TExprIdentificateur> Prefixes
Les préfixes du nom instancié ou renommé.
L'identificateur propre de l'identificateur courant.
Le numéro indiqué après le dollar. Ce qu'on appelle "le nom" est le nom complet.


Ident

protected java.lang.String Ident

Numero

protected int Numero
Constructor Detail

TExprIdentificateur

public TExprIdentificateur(java.lang.String ident)
Constructeur paramétré pour un identificateur simple.

Parameters:
ident - le nom simple de l'identificateur.

TExprIdentificateur

public TExprIdentificateur(java.util.Vector<TExprIdentificateur> prefix,
                           java.lang.String ident)
Constructeur paramétré pour un identificateur composé avec préfixes.

Parameters:
prefix - liste des préfixes.
ident - le nom simple de l'identificateur.

TExprIdentificateur

public TExprIdentificateur(java.lang.String ident,
                           int numero)
Constructeur paramétré pour un identificateur simple avec numéro.

Parameters:
ident - le nom simple de l'identificateur.
numero - numéro de l'instance.

TExprIdentificateur

public TExprIdentificateur(java.util.Vector<TExprIdentificateur> prefix,
                           java.lang.String ident,
                           int numero)
Constructeur paramétré avec les trois informations explicites.

Parameters:
prefix - liste des préfixes.
ident - le nom simple de l'identificateur.
numero - numéro de l'instance.
Method Detail

RangerIdent

public void RangerIdent(java.lang.String s)
Changer l'identifiant


EstIdSimple

public boolean EstIdSimple()
Indique s'il s'agit d'un identificateur simple (avec ou sans numéro).


EstIdCompose

public boolean EstIdCompose()
Indique s'il s'agit d'un identificateur renommé avec préfixes (avec ou sans numéro)


EstIdNumerote

public boolean EstIdNumerote()
Indique s'il s'agit d'un identificateur avec numéro.


Renommer

public void Renommer(java.util.Vector<TExprIdentificateur> prefs)
Renommer l'identificateur en rajoutant un préfixe

Parameters:
prefs - : liste de TExprIdentificateur qui est mise avant les autres préfixes s'ils y en a. ATTENTION !!! (WARNING!) : cette méthode ne duplique pas contrairement à ce qu'on pourrait penser. Il s'agit juste d'ajouter des préfixes au TExprIdentificateur. Auteur: Olivier BERT

AjouterPrefixes

public void AjouterPrefixes(java.util.Vector<TExprIdentificateur> prefs)
Renommer l'identificateur en rajoutant un préfixe apres

Parameters:
prefs - : liste de TExprIdentificateur qui est mise avant les autres préfixes s'ils y en a. ATTENTION !!! (WARNING!) : cette méthode ne duplique pas contrairement à ce qu'on pourrait penser. Il s'agit juste d'ajouter des préfixes au TExprIdentificateur. Auteur: Olivier BERT

DonnerIdent

public java.lang.String DonnerIdent()
Renvoie l'identificateur simple d'un identificateur simple, composé, ou numéroté.

Returns:
le champ identificateur.

DonnerPrefixes

public java.util.Vector<TExprIdentificateur> DonnerPrefixes()
Renvoie le vecteur de préfixes d'un identificateur composé. Précondition : id.EstIdCompose() doit etre vrai.

Returns:
le champ identificateur.

DonnerNumero

public int DonnerNumero()
Renvoie le numéro de suffixe d'un identificateur numéroté. Précondition : id.EstIdNumerote() doit etre vrai.

Returns:
le champ identificateur.

DonnerPrefixe

public java.lang.String DonnerPrefixe()
Retourne le préfixe sous forme d'une chaine de caractères.


DonnerNom

public java.lang.String DonnerNom()
Donne le nom complet de l'identificateur tel qu'il s'affiche.

Returns:
Le nom complet de l'identificateur.

Dupliquer

public TElementB Dupliquer()
Renvoie la copie de l'élément courant cloné sur toute sa hauteur

Overrides:
Dupliquer in class TElementB
Returns:
un clone integral de l'element B courant

EstEgalA

public boolean EstEgalA(TExpression e)
Indique si une expression est égale à l'identificateur. La comparaison est faite sur le nom.

Parameters:
e - Expression à tester.
Returns:
VRAI: L'expression e est égale à l'identificateur FAUX: L'expression e n'est pas égale à l'identificateur.

EstSyntaxEgal

public boolean EstSyntaxEgal(TExpression e)
Recherche si l'expression en paramètre est syntaxiquement égale à l'objet courant.

Overrides:
EstSyntaxEgal in class TExpression
Parameters:
e - l'expression à tester.
Returns:
Retourne vrai si les identificateurs sont égaux.

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'élément B courant est renvoyé non modifié

Afficher

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

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

ConstruireNoeud

public tatibouet.bparser.Noeud ConstruireNoeud()
Construit un Noeud Tatibouet à partir d'un identificateur.

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.