controleDeType
Class ControleDeType

java.lang.Object
  |
  +--controleDeType.ControleDeType
All Implemented Interfaces:
asa.ParserVisitor

public class ControleDeType
extends java.lang.Object
implements asa.ParserVisitor


Field Summary
private  asa.SimpleNode currentNode
          Noeud courant
static boolean DEBUG
          Booleen représentant le mode d'execution de la classe (Debug ou non)
private  java.util.Vector listeCst
          Vecteur contenant la liste des constantes
private  java.util.Vector listeErreur
          Vecteur contenant la liste des erreurs rencontrées
private  java.util.Vector listeMethode
          Vecteur contenant la liste des déclarations des méthodes
private  java.util.Vector listeTab
          Vecteur contenant la liste des tableaux
private  java.util.Vector listeVar
          Vecteur contenant la liste des variables
private  java.lang.String nomMethodeActuelle
          Nom de la méthode en cours (aucune méthode : prend la valeur "globale")
static int NON_DECLARE
          Type d'erreur rencontré dans le contrôle de type
private  int numMethode
          Entier correspondant au numéro que la méthode actuelle occupe dans le vecteur listeMethode (utilisé pour l'ajout des paramètres)
private  java.lang.Object objectParam
          Paramètres du noeud
static int TYPE_INCORRECT
          Type d'erreur rencontré dans le contrôle de type
 
Constructor Summary
ControleDeType(asa.SimpleNode n)
          Constructeur par défaut
 
Method Summary
 void afficheCst()
          Affiche la liste des tableaux qui ont été déclarées (noms+types)
 void afficheErreur()
          Affiche la liste des erreurs rencontrées pendant le parcours
 void afficheMethode()
          Affiche la liste des méthodes qui ont été déclarées (type de retour+nom+type des paramètres)
 void afficheTab()
          Affiche la liste des tableaux qui ont été déclarées (noms+types)
 void afficheVariable()
          Affiche la liste des variables qui ont été déclarées (noms+types)
 void ajouteNonDeclare(java.lang.String nom, int ligne)
          Fonction qui ajoute a la liste des erreurs, une erreur de type NON_DECLARE (utilisé lorsqu'une variable est employée sans avoir été déclarée)
 boolean chercherCst(java.lang.String cst)
          Fonction recherchant si une constante nommée "nomCst" apparait dans le vecteur des constantes déclarées
 boolean chercherTab(java.lang.String tab)
          Fonction recherchant si un tableau nommé "nomTab" apparait dans le vecteur des tableaux déclarés
 java.lang.String chercherTypeNoeud2(java.lang.String nodeToString, java.lang.String nodeJJTAccept, int ligne, asa.SimpleNode node, int fils)
          Fonction renvoyant le type d'un noeud
 java.lang.String chercherTypeNoeudSansConstante2(java.lang.String nodeToString, java.lang.String nodeJJTAccept, int ligne, asa.SimpleNode node, int fils)
          Fonction renvoyant le type d'un noeud, en vérifiant qu'il ne s'agit pas d'une constante
 boolean chercherVar(java.lang.String var)
          Fonction recherchant si une variable nommée "nomVar" apparait dans le vecteur des variables déclarées
 java.lang.String getTypeCst(java.lang.String nomCst)
          Fonction renvoyant le type d'une constante
 java.lang.String getTypeTab(java.lang.String nomTab)
          Fonction renvoyant le type d'un tableau
 java.lang.String getTypeVar(java.lang.String nomVar)
          Fonction renvoyant le type d'une variable
 java.util.Vector getVectorErreurs()
          Fonction qui retourne la liste des erreurs dans un vecteur d'erreur
 java.lang.String nouveauNomCst(java.lang.String cst)
          Fonction retournant le nouveau nom d'une constante (nom modifié pour gérer la portée des variables)
 java.lang.String nouveauNomTab(java.lang.String tab)
          Fonction retournant le nouveau nom d'un tableau (nom modifié pour gérer la portée des variables)
 java.lang.String nouveauNomVar(java.lang.String var)
          Fonction retournant le nouveau nom d'une variable (nom modifié pour gérer la portée des variables)
 void supprDoublons(java.util.Vector v)
          Fonction qui supprime les éventuels doublons dans un vecteur
 java.lang.Object visit(asa.ASTaffectation node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTanalyse node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTappelE node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTappelI node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTbooleen node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTclasse node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTcst node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTdecls node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTdiv node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTegal node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTenil node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTentete node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTentetes node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTentier node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTet node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTexnil node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTfaux node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTident node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTincrement node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTinil node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTinstrs node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTlistexp node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTmain node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTmethode node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTmoins node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTmulti node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTnbre node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTnon node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTomega node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTou node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTpgq node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTplus node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTretour node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTrien node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTsi node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTsomme node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTsoustrac node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTtableau node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTtab node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTtantque node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTvar node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTvars node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTvnil node, java.lang.Object data)
           
 java.lang.Object visit(asa.ASTvrai node, java.lang.Object data)
           
 java.lang.Object visit(asa.SimpleNode node, java.lang.Object data)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
Booleen représentant le mode d'execution de la classe (Debug ou non)

See Also:
Constant Field Values

NON_DECLARE

public static final int NON_DECLARE
Type d'erreur rencontré dans le contrôle de type

See Also:
Constant Field Values

TYPE_INCORRECT

public static final int TYPE_INCORRECT
Type d'erreur rencontré dans le contrôle de type

See Also:
Constant Field Values

listeVar

private java.util.Vector listeVar
Vecteur contenant la liste des variables


listeTab

private java.util.Vector listeTab
Vecteur contenant la liste des tableaux


listeCst

private java.util.Vector listeCst
Vecteur contenant la liste des constantes


listeMethode

private java.util.Vector listeMethode
Vecteur contenant la liste des déclarations des méthodes


listeErreur

private java.util.Vector listeErreur
Vecteur contenant la liste des erreurs rencontrées


numMethode

private int numMethode
Entier correspondant au numéro que la méthode actuelle occupe dans le vecteur listeMethode (utilisé pour l'ajout des paramètres)


nomMethodeActuelle

private java.lang.String nomMethodeActuelle
Nom de la méthode en cours (aucune méthode : prend la valeur "globale")


currentNode

private asa.SimpleNode currentNode
Noeud courant


objectParam

private java.lang.Object objectParam
Paramètres du noeud

Constructor Detail

ControleDeType

public ControleDeType(asa.SimpleNode n)
Constructeur par défaut

Method Detail

afficheVariable

public void afficheVariable()
Affiche la liste des variables qui ont été déclarées (noms+types)


afficheErreur

public void afficheErreur()
Affiche la liste des erreurs rencontrées pendant le parcours


afficheTab

public void afficheTab()
Affiche la liste des tableaux qui ont été déclarées (noms+types)


afficheCst

public void afficheCst()
Affiche la liste des tableaux qui ont été déclarées (noms+types)


afficheMethode

public void afficheMethode()
Affiche la liste des méthodes qui ont été déclarées (type de retour+nom+type des paramètres)


getVectorErreurs

public java.util.Vector getVectorErreurs()
Fonction qui retourne la liste des erreurs dans un vecteur d'erreur

Returns:
Le vecteur d'erreurs

supprDoublons

public void supprDoublons(java.util.Vector v)
Fonction qui supprime les éventuels doublons dans un vecteur

Returns:
v un vecteur

chercherTab

public boolean chercherTab(java.lang.String tab)
Fonction recherchant si un tableau nommé "nomTab" apparait dans le vecteur des tableaux déclarés

Returns:
un booléen.

nouveauNomTab

public java.lang.String nouveauNomTab(java.lang.String tab)
Fonction retournant le nouveau nom d'un tableau (nom modifié pour gérer la portée des variables)

Parameters:
tab - Le nom du tableau
Returns:
Une chaine de caractère contenant le nouveau nom du tableau

ajouteNonDeclare

public void ajouteNonDeclare(java.lang.String nom,
                             int ligne)
Fonction qui ajoute a la liste des erreurs, une erreur de type NON_DECLARE (utilisé lorsqu'une variable est employée sans avoir été déclarée)

Parameters:
nom - Nom du symbole
ligne - Numéro de ligne du "problème"

getTypeTab

public java.lang.String getTypeTab(java.lang.String nomTab)
Fonction renvoyant le type d'un tableau

Parameters:
nomTab - Le nom du tableau
Returns:
Une chaine de caractère contenant le type du tableau

chercherVar

public boolean chercherVar(java.lang.String var)
Fonction recherchant si une variable nommée "nomVar" apparait dans le vecteur des variables déclarées

Returns:
un booléen.

nouveauNomVar

public java.lang.String nouveauNomVar(java.lang.String var)
Fonction retournant le nouveau nom d'une variable (nom modifié pour gérer la portée des variables)

Returns:
Une chaine de caractère contenant le nouveau nom de la variable

getTypeVar

public java.lang.String getTypeVar(java.lang.String nomVar)
Fonction renvoyant le type d'une variable

Parameters:
nomVar - Le nom de la variable
Returns:
Une chaine de caractère contenant le type de la variable

nouveauNomCst

public java.lang.String nouveauNomCst(java.lang.String cst)
Fonction retournant le nouveau nom d'une constante (nom modifié pour gérer la portée des variables)

Returns:
Une chaine de caractère contenant le nouveau nom de la constante

chercherCst

public boolean chercherCst(java.lang.String cst)
Fonction recherchant si une constante nommée "nomCst" apparait dans le vecteur des constantes déclarées

Returns:
un booléen.

getTypeCst

public java.lang.String getTypeCst(java.lang.String nomCst)
Fonction renvoyant le type d'une constante

Returns:
Une chaine de caractère contenant le type de la constante

visit

public java.lang.Object visit(asa.SimpleNode node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTanalyse node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTclasse node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTident node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTdecls node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTtableau node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTmethode node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTvar node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTcst node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTvars node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTmain node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTentetes node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTentete node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTinstrs node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTtab node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

chercherTypeNoeudSansConstante2

public java.lang.String chercherTypeNoeudSansConstante2(java.lang.String nodeToString,
                                                        java.lang.String nodeJJTAccept,
                                                        int ligne,
                                                        asa.SimpleNode node,
                                                        int fils)
Fonction renvoyant le type d'un noeud, en vérifiant qu'il ne s'agit pas d'une constante

Parameters:
nodeToString - Chaine de caractère renvoyée par la fonction toString() du noeud
nodeJJTAccept - Chaine de caractère renvoyée par la fonction jjtAccept() du noeud
ligne - Ligne a laquelle se situe le noeud
node - Le noeud
fils - Le numéro de fils a étudier
Returns:
Une chaine de caractère contenant le type du noeud

chercherTypeNoeud2

public java.lang.String chercherTypeNoeud2(java.lang.String nodeToString,
                                           java.lang.String nodeJJTAccept,
                                           int ligne,
                                           asa.SimpleNode node,
                                           int fils)
Fonction renvoyant le type d'un noeud

Parameters:
nodeToString - Chaine de caractère renvoyée par la fonction toString() du noeud
nodeJJTAccept - Chaine de caractère renvoyée par la fonction jjtAccept() du noeud
ligne - Ligne a laquelle se situe le noeud
node - Le noeud
fils - Le numéro de fils a étudier
Returns:
Une chaine de caractère contenant le type du noeud

visit

public java.lang.Object visit(asa.ASTaffectation node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTsomme node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTincrement node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTappelI node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTretour node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTsi node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTtantque node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTlistexp node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTnon node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTet node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTou node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTmoins node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTegal node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTpgq node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTplus node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTsoustrac node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTmulti node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTdiv node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTappelE node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTvrai node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTfaux node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTnbre node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTrien node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTentier node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTbooleen node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTvnil node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTomega node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTenil node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTinil node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor

visit

public java.lang.Object visit(asa.ASTexnil node,
                              java.lang.Object data)
Specified by:
visit in interface asa.ParserVisitor