correction Call et CallVoid avec print et read + clean

This commit is contained in:
Rochas
2025-04-30 10:32:07 +02:00
parent d4a9b1f71d
commit 2853688baa
3 changed files with 21 additions and 21 deletions

View File

@@ -173,7 +173,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
ArrayList<ValLLVM> params = new ArrayList<>();
String name = h.getGlobalDeclName();
VarLLVMImp varGlobal = new VarLLVMImp(new CharLLVMImp(true),name,true);
VarLLVMImp varGlobal = new VarLLVMImp(new PointerLLVMImp(new CharLLVMImp()),name,true);
params.add(varGlobal);
String strGlobal = "";
@@ -183,7 +183,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
if(obj instanceof String){
String str = (String)obj;
size+=str.length(); //on compte avant car \0A compte pour 1 en LLVM, mais 3 pour java
str = str.replace("\n", "\\0A");
str = str.replace("\\n", "\\0A");
strGlobal+=str;
}
else if(obj instanceof Expression){
@@ -198,7 +198,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
}
strGlobal+="\\00";
DeclarGlobalLLVMImp globalDecl = new DeclarGlobalLLVMImp(varGlobal,new CharLLVMImp(false),strGlobal,size); //TODO
DeclarGlobalLLVMImp globalDecl = new DeclarGlobalLLVMImp(varGlobal,new CharLLVMImp(),strGlobal,size); //TODO
h.addGlobalDecl(globalDecl);
l.add(new PrintLLVMImp(globalDecl,params));
@@ -211,7 +211,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
ArrayList<ValLLVM> params = new ArrayList<>();
String name = h.getGlobalDeclName();
VarLLVMImp varGlobal = new VarLLVMImp(new CharLLVMImp(true),name,true);
VarLLVMImp varGlobal = new VarLLVMImp(new PointerLLVMImp(new CharLLVMImp()),name,true);
params.add(varGlobal);
@@ -232,7 +232,7 @@ public class toLLVM_Visitor implements ProgramVisitor<SymTable,ProgramLLVMImp>,
}
strGlobal+="\\00";
DeclarGlobalLLVMImp globalDecl = new DeclarGlobalLLVMImp(varGlobal,new CharLLVMImp(false),strGlobal,size);//TODO
DeclarGlobalLLVMImp globalDecl = new DeclarGlobalLLVMImp(varGlobal,new CharLLVMImp(),strGlobal,size);//TODO
h.addGlobalDecl(globalDecl);
l.add(new ScanLLVMImp(globalDecl,params));