Select Git revision
SemanticAnalyzer.java
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; }
}