symTable Var

This commit is contained in:
trochas
2025-04-10 10:27:33 +02:00
parent 77aef737c3
commit f59d92bc12
2 changed files with 16 additions and 3 deletions

View File

@@ -85,7 +85,10 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImpl>
ArrayList<InstructionLLVM> list = new ArrayList<>();
for(int i = 0; i<instr.s().size();i++){
TypeLLVM t2 = instr.t().accept(this,h);
String name = instr.s().get(i);//h.addVarLLVM(instr.s().get(i));
//String name = instr.s().get(i);//h.addVarLLVM(instr.s().get(i));
Result r = h.addVar(instr.s().get(i));
String name = r.var;
h = r.symTable;
list.add(new AssignLVMImpl(new VarLLVMImpl(t2, name),new allocaLLVMImpl(t2)));
}
return list;
@@ -115,7 +118,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImpl>
@Override
public InstrAndVal visitVar(VarImp e, SymTable h) {
ValLLVM val = new VarLLVMImpl(new IntLLVMImpl(), e.name());
ValLLVM val = new VarLLVMImpl(new IntLLVMImpl(), h.getVar(e.name()));
return new InstrAndVal(new ArrayList<>(), val);
}