clean
This commit is contained in:
@@ -112,12 +112,23 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
||||
Integer size=instr.s().get(i).size();
|
||||
if(size==null){
|
||||
r= h.addVar(nom,t2);
|
||||
h = r.symTable;
|
||||
list.add(new AssignLLVMImp(new VarLLVMImp(t2, r.var,false),new allocaLLVMImp(t2)));
|
||||
}else {
|
||||
TypeLLVM arrayType = new ArrayLLVMImp(t2, size);
|
||||
|
||||
//Alloca
|
||||
Result r_size= h.addNewTempVar();
|
||||
VarLLVMImp tmpVar = new VarLLVMImp(new IntLLVMImp(), r_size.var, false);
|
||||
list.add(new AssignLLVMImp(tmpVar, new allocaLLVMImp(t2)));
|
||||
|
||||
//Alloca table
|
||||
r = h.addVar(nom, arrayType);
|
||||
h = r.symTable;
|
||||
list.add(new AssignLLVMImp(new VarLLVMImp(t2, r.var,false),new allocaLLVMImp(new PointerLLVMImp(t2))));
|
||||
|
||||
//Store
|
||||
}
|
||||
h = r.symTable;
|
||||
list.add(new AssignLLVMImp(new VarLLVMImp(t2, r.var,false),new allocaLLVMImp(t2)));
|
||||
}
|
||||
return new InstrAndSymTable(list,h);
|
||||
}
|
||||
@@ -125,7 +136,8 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
|
||||
@Override
|
||||
public InstrAndSymTable visitVarDecl(VarDeclImp instr, SymTable h) {
|
||||
ArrayList<InstructionLLVM> list = new ArrayList<>();
|
||||
//TODO
|
||||
|
||||
|
||||
return new InstrAndSymTable(list,h);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FUNC INT main(x,y) {
|
||||
FUNC INT main() {
|
||||
INT a,b[10],c,d[11]
|
||||
a:=1
|
||||
c:=2
|
||||
}
|
||||
Reference in New Issue
Block a user