params toLLVM

This commit is contained in:
trochas
2025-04-25 16:42:36 +02:00
parent 4b6942160e
commit 29ab19fd7a
4 changed files with 29 additions and 27 deletions

View File

@@ -56,13 +56,18 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImpl>
@Override
public DefineLLVM visitFunction(FunctionImp fun, SymTable h) {
ArrayList<InstructionLLVM> instrLLVM = new ArrayList<>();
ArrayList<ValLLVM> paramsLLVM = new ArrayList<>();
ArrayList<VarLLVMImpl> paramsLLVM = new ArrayList<>();
for(VarImp param: fun.params()){
paramsLLVM.add(param.accept(this, h).val);
Result r = h.addParam(param.name());
String name = r.var;
VarLLVMImpl var = new VarLLVMImpl(new IntLLVMImpl(), name);
h = r.symTable;
paramsLLVM.add(var);
}
instrLLVM.addAll(fun.instruction().accept(this, h));
return new DefineLLVMImpl(fun.nom(), fun.type().accept(this, h), new ArrayList<>(), instrLLVM);
return new DefineLLVMImpl(fun.nom(), fun.type().accept(this, h), paramsLLVM, instrLLVM);
}
//DECLARATION