This commit is contained in:
Rochas
2025-04-30 15:24:47 +02:00
2 changed files with 17 additions and 4 deletions

View File

@@ -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);
}

View File

@@ -1,4 +1,5 @@
FUNC INT main(x,y) {
FUNC INT main() {
INT a,b[10],c,d[11]
a:=1
c:=2
}