Select Git revision
ByteCodeGenerator.java
ByteCodeGenerator.java 2.61 KiB
/*
* Generates the Jasmin byte code from an AST instance
*/
import java.util.*;
// TODO: A vous de jouer...
// Voir la documentation : GenCod.pdf
public class ByteCodeGenerator 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; }
// TODO: Remplacez le return, celui-ci n'est là que pour ne pas provoquer une
// erreur de Jasmin quand le bytecode est vide.
public String getByteCode() {
return """
.class public Program
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit stack 20000
.limit locals 1
return
.end method
""";
}
}