Skip to content
Snippets Groups Projects
Select Git revision
  • 25f347c7a606ebc455e693764109cd249634d3f7
  • master default protected
2 results

SemanticAnalyzer.java

Blame
  • SemanticAnalyzer.java 2.61 KiB
    /*
     * Semantic analyser that walks the AST.
     * Check for scope and type compatibility.
     */
    
    // TODO: A vous de jouer...
    // L'analyse sémantique dans notre projet (dans un vrai langage c'est plus conséquent) consiste à tester les choses suivantes :
    // 1. Lors de l'utilisation d'une variable (ou de son affectation), vérifiez son existence (HINT: la TDS peut être utile...)
    // 2. Vérification de la concordance des types (on affecte pas un boolean à un int, on additionne pas un boolean avec un int, on attends un boolean dans le test d'un if et pas autre chose, etc.)
    // 3. Vérifiez qu'il n'y a pas de modification de la valeur des constantes
    public class SemanticAnalyzer implements ASTVisitor {
    
        public Object visit(Addition node) {
            return null;
        }
    
        public Object visit(Affectation node) {
            return null;
        }
    
        public Object visit(Bloc node) {
            return null;
        }
    
        public Object visit(Chaine node) {
            return null;
        }
    
        public Object visit(Condition node) { return null; }
    
        // public Object visit(DeclarationConstant node) { return null; }
    
        public Object visit(DeclarationProgramme node) {
            return null;
        }
    
        // public Object visit(DeclarationVariable node) { return null; }
    
        public Object visit(Diff node) { return null; }
    
        public Object visit(Division node) {
            return null;
        }
    
        public Object visit(Ecrire node) { return null; }
    
        public Object visit(Egal node) {
            return null;
        }
    
        public Object visit(Et node) {
            return null;
        }
    
        public Object visit(Faux node) { return null; }
    
        public Object visit(Idf node) {
            return null;
        }
    
        public Object visit(InfEgal node) { return null; }
    
        public Object visit(Inferieur node) { return null; }
    
        public Object visit(Lire node) { return null; }
    
        public Object visit(Moins node) { return null; }
    
        public Object visit(Nombre node) {
            return null;
        }
    
        public Object visit(Non node) { return null; }
    
        public Object visit(Ou node) { return null; }
    
        public Object visit(Parentheses node) { return null; }
    
        // public Object visit(Pour node) { return null; }
    
        public Object visit(Produit node) {
            return null;
        }
    
        // public Object visit(Relation node) { return null; }
    
        public Object visit(Soustraction node) {
            return null;
        }
    
        public Object visit(SupEgal node) { return null; }
    
        public Object visit(Superieur node) { return null; }
    
        // public Object visit(Tantque node) { return null; }
    
        // public Object visit(Unaire node) { return null; }
    
        public Object visit(Vrai node) { return null; }
    }