Skip to content
Snippets Groups Projects
Commit 995f4b05 authored by BAUQUIN Niels's avatar BAUQUIN Niels
Browse files

geg

parent 59cd6dbd
No related branches found
No related tags found
No related merge requests found
...@@ -41,10 +41,10 @@ public class Compiler ...@@ -41,10 +41,10 @@ public class Compiler
System.out.println("[BUILD C3A] "); System.out.println("[BUILD C3A] ");
buildC3a(); buildC3a();
/*
System.out.println("[BUILD PRE NASM] "); System.out.println("[BUILD PRE NASM] ");
buildPreNasm(); buildPreNasm();
System.out.println("[BUILD FLOW GRAPH] "); /* System.out.println("[BUILD FLOW GRAPH] ");
buildFg(); buildFg();
System.out.println("[SOLVE FLOW GRAPH]"); System.out.println("[SOLVE FLOW GRAPH]");
solveFg(); solveFg();
......
...@@ -29,30 +29,104 @@ public class C3a2nasm implements C3aVisitor <NasmOperand> { ...@@ -29,30 +29,104 @@ public class C3a2nasm implements C3aVisitor <NasmOperand> {
public Nasm getNasm(){return nasm;} public Nasm getNasm(){return nasm;}
public NasmOperand visit(C3a c3a){return null;} public NasmOperand visit(C3a c3a){
public NasmOperand visit(C3aInstAdd inst){return null;} c3a.affiche("caca");
public NasmOperand visit(C3aInstCall inst){return null;} for (C3aInst c3aInst : c3a.listeInst) {
public NasmOperand visit(C3aInstFBegin inst){return null;} c3aInst.accept(this);
System.out.println(c3aInst.getClass());
}
nasm.affichePreNasm("caca");
return null;
}
public NasmOperand visit(C3aInstAdd inst){
NasmOperand label = (inst.label != null) ?
inst.label.accept(this)
: null;
nasm.ajouteInst(new NasmMov(label,
inst.result.accept(this),
inst.op1.accept(this), ""));
nasm.ajouteInst(new NasmAdd(null,
inst.result.accept(this),
inst.op2.accept(this), ""));
return null;
}
public NasmOperand visit(C3aInstCall inst){
NasmOperand address = (inst.label != null) ?
inst.label.accept(this)
: null;
nasm.ajouteInst(new NasmCall(null, address, ""));
return null;
}
public NasmOperand visit(C3aInstFBegin inst){
return null;
}
public NasmOperand visit(C3aInst inst){return null;} public NasmOperand visit(C3aInst inst){return null;}
public NasmOperand visit(C3aInstJumpIfLess inst){return null;} public NasmOperand visit(C3aInstJumpIfLess inst){return null;}
public NasmOperand visit(C3aInstMult inst){return null;} public NasmOperand visit(C3aInstMult inst){
NasmOperand label = (inst.label != null) ?
inst.label.accept(this)
: null;
nasm.ajouteInst(new NasmMov(label,
inst.result.accept(this),
inst.op1.accept(this), ""));
nasm.ajouteInst(new NasmMul(null,
inst.result.accept(this),
inst.op2.accept(this), ""));
return null;
}
public NasmOperand visit(C3aInstRead inst){return null;} public NasmOperand visit(C3aInstRead inst){return null;}
public NasmOperand visit(C3aInstSub inst){return null;} public NasmOperand visit(C3aInstSub inst){
NasmOperand label = (inst.label != null) ?
inst.label.accept(this)
: null;
nasm.ajouteInst(new NasmMov(label,
inst.result.accept(this),
inst.op1.accept(this), ""));
nasm.ajouteInst(new NasmSub(null,
inst.result.accept(this),
inst.op2.accept(this), ""));
return null;
}
public NasmOperand visit(C3aInstAffect inst){return null;} public NasmOperand visit(C3aInstAffect inst){return null;}
public NasmOperand visit(C3aInstDiv inst){return null;} public NasmOperand visit(C3aInstDiv inst){
public NasmOperand visit(C3aInstFEnd inst){return null;} NasmOperand label = (inst.label != null) ?
inst.label.accept(this)
: null;
nasm.ajouteInst(new NasmMov(label,
inst.result.accept(this),
inst.op1.accept(this), ""));
nasm.ajouteInst(new NasmDiv(null,
inst.result.accept(this),
""));
return null;
}
public NasmOperand visit(C3aInstFEnd inst){
return null;
}
public NasmOperand visit(C3aInstJumpIfEqual inst){return null;} public NasmOperand visit(C3aInstJumpIfEqual inst){return null;}
public NasmOperand visit(C3aInstJumpIfNotEqual inst){return null;} public NasmOperand visit(C3aInstJumpIfNotEqual inst){return null;}
public NasmOperand visit(C3aInstJump inst){return null;} public NasmOperand visit(C3aInstJump inst){return null;}
public NasmOperand visit(C3aInstParam inst){return null;} public NasmOperand visit(C3aInstParam inst){return null;}
public NasmOperand visit(C3aInstReturn inst){return null;} public NasmOperand visit(C3aInstReturn inst){return null;}
public NasmOperand visit(C3aInstWrite inst){return null;} public NasmOperand visit(C3aInstWrite inst){
public NasmOperand visit(C3aInstStop inst){return null;}
return null;
}
public NasmOperand visit(C3aInstStop inst){
return null;
}
public NasmOperand visit(C3aConstant oper){return null;} public NasmOperand visit(C3aConstant oper){return null;}
public NasmOperand visit(C3aBooleanConstant oper){return null;} public NasmOperand visit(C3aBooleanConstant oper){return null;}
public NasmOperand visit(C3aLabel oper){return null;} public NasmOperand visit(C3aLabel oper){return null;}
public NasmOperand visit(C3aTemp oper){return null;} public NasmOperand visit(C3aTemp oper){
return null;
}
public NasmOperand visit(C3aVar oper){return null;} public NasmOperand visit(C3aVar oper){return null;}
public NasmOperand visit(C3aFunction oper){return null;} public NasmOperand visit(C3aFunction oper){return null;}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment