change name to LLVM
This commit is contained in:
@@ -96,7 +96,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
Result r = h.addVar(instr.s().get(i));
|
Result r = h.addVar(instr.s().get(i));
|
||||||
String name = r.var;
|
String name = r.var;
|
||||||
h = r.symTable;
|
h = r.symTable;
|
||||||
list.add(new AssignLVMImp(new VarLLVMImp(t2, name),new allocaLLVMImp(t2)));
|
list.add(new AssignLLVMImp(new VarLLVMImp(t2, name),new allocaLLVMImp(t2)));
|
||||||
}
|
}
|
||||||
prevSymTable.updateId(h);
|
prevSymTable.updateId(h);
|
||||||
return new InstrAndSymTable(list,h);
|
return new InstrAndSymTable(list,h);
|
||||||
@@ -156,7 +156,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
ValLLVM var = res.val;
|
ValLLVM var = res.val;
|
||||||
ArrayList<InstructionLLVM> result = new ArrayList<>();
|
ArrayList<InstructionLLVM> result = new ArrayList<>();
|
||||||
result.addAll(res.instrs);
|
result.addAll(res.instrs);
|
||||||
//InstructionLLVM r = new AssignLVMImp(new VarLLVMImpl(var.getType(),instr.t()),var);
|
//InstructionLLVM r = new AssignLLVMImp(new VarLLVMImpl(var.getType(),instr.t()),var);
|
||||||
InstructionLLVM r = new StoreLLVMImp(var.getType(),var,var.getType(),new VarLLVMImp(var.getType(),h.getVar(instr.t())));
|
InstructionLLVM r = new StoreLLVMImp(var.getType(),var,var.getType(),new VarLLVMImp(var.getType(),h.getVar(instr.t())));
|
||||||
result.add(r);
|
result.add(r);
|
||||||
return result;
|
return result;
|
||||||
@@ -201,7 +201,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
Result r = h.addNewTempVar();
|
Result r = h.addNewTempVar();
|
||||||
h = r.symTable;
|
h = r.symTable;
|
||||||
VarLLVMImp varCond = new VarLLVMImp(exTemp.getType(), r.var);
|
VarLLVMImp varCond = new VarLLVMImp(exTemp.getType(), r.var);
|
||||||
l.add(new AssignLVMImp(varCond,exTemp));
|
l.add(new AssignLLVMImp(varCond,exTemp));
|
||||||
l.add(new BrCondLLVMImp(varCond,labelThen,labelFin));
|
l.add(new BrCondLLVMImp(varCond,labelThen,labelFin));
|
||||||
|
|
||||||
l.add(new LabelLLVMImp(labelThen));
|
l.add(new LabelLLVMImp(labelThen));
|
||||||
@@ -232,7 +232,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
Result r = h.addNewTempVar();
|
Result r = h.addNewTempVar();
|
||||||
h = r.symTable;
|
h = r.symTable;
|
||||||
VarLLVMImp varCond = new VarLLVMImp(exTemp.getType(), r.var);
|
VarLLVMImp varCond = new VarLLVMImp(exTemp.getType(), r.var);
|
||||||
l.add(new AssignLVMImp(varCond,exTemp));
|
l.add(new AssignLLVMImp(varCond,exTemp));
|
||||||
l.add(new BrCondLLVMImp(varCond,labelThen,labelElse));
|
l.add(new BrCondLLVMImp(varCond,labelThen,labelElse));
|
||||||
|
|
||||||
l.add(new LabelLLVMImp(labelThen));
|
l.add(new LabelLLVMImp(labelThen));
|
||||||
@@ -266,7 +266,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
Result r = h.addNewTempVar();
|
Result r = h.addNewTempVar();
|
||||||
h = r.symTable;
|
h = r.symTable;
|
||||||
VarLLVMImp varCond = new VarLLVMImp(exTemp.getType(), r.var);
|
VarLLVMImp varCond = new VarLLVMImp(exTemp.getType(), r.var);
|
||||||
l.add(new AssignLVMImp(varCond,exTemp));
|
l.add(new AssignLLVMImp(varCond,exTemp));
|
||||||
l.add(new BrCondLLVMImp(varCond,labelDo,labelDone));
|
l.add(new BrCondLLVMImp(varCond,labelDo,labelDone));
|
||||||
|
|
||||||
l.add(new LabelLLVMImp(labelDo));
|
l.add(new LabelLLVMImp(labelDo));
|
||||||
@@ -299,7 +299,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
Result r = h.addNewTempVar();
|
Result r = h.addNewTempVar();
|
||||||
h = r.symTable;
|
h = r.symTable;
|
||||||
VarLLVMImp varTemp = new VarLLVMImp(h.getvar_Type(e.name()).accept(this,h),r.var);
|
VarLLVMImp varTemp = new VarLLVMImp(h.getvar_Type(e.name()).accept(this,h),r.var);
|
||||||
l.add(new AssignLVMImp(varTemp,((ExpressionLLVM)(new LoadLLVMImp(val)))));
|
l.add(new AssignLLVMImp(varTemp,((ExpressionLLVM)(new LoadLLVMImp(val)))));
|
||||||
prevSymTable.updateId(h);
|
prevSymTable.updateId(h);
|
||||||
return new InstrAndVal(l, varTemp);
|
return new InstrAndVal(l, varTemp);
|
||||||
}
|
}
|
||||||
@@ -326,7 +326,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
|||||||
String temp = r.var;
|
String temp = r.var;
|
||||||
h = r.symTable;
|
h = r.symTable;
|
||||||
VarLLVMImp var = new VarLLVMImp(type,temp);
|
VarLLVMImp var = new VarLLVMImp(type,temp);
|
||||||
list.add(new AssignLVMImp(var, new BinOpLLVMImp(type,e.op(),val1,val2)));
|
list.add(new AssignLLVMImp(var, new BinOpLLVMImp(type,e.op(),val1,val2)));
|
||||||
prevSymTable.updateId(h);
|
prevSymTable.updateId(h);
|
||||||
return new InstrAndVal(list, var);
|
return new InstrAndVal(list, var);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
PROTO INT add()
|
PROTO INT add(a,b)
|
||||||
|
|
||||||
FUNC INT add() {
|
FUNC INT add(a,b) {
|
||||||
INT z
|
INT z
|
||||||
z := 1
|
z := a+b
|
||||||
RETURN z
|
RETURN z
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ FUNC INT main(x,y) {
|
|||||||
x := 5
|
x := 5
|
||||||
minh := x * y
|
minh := x * y
|
||||||
b:=3
|
b:=3
|
||||||
c:=add()
|
c:=add(x,b)
|
||||||
PRINT "coucou, tu peux réparer le visitPrint dans LLVM stp","il manque virgule au milieu", c*5+b
|
PRINT "coucou, tu peux réparer le visitPrint dans LLVM stp","il manque virgule au milieu", c*5+b
|
||||||
WHILE b - 1
|
WHILE b - 1
|
||||||
DO{
|
DO{
|
||||||
|
|||||||
Reference in New Issue
Block a user