From 07dfcf732fa7d88c196ad158ffa0326f757156b9 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 19 Jan 2023 14:56:29 +0200 Subject: [IPL/T] Added main entry point and constants are now directly passed --- .../Transpiler/src/LLVMVisitor/LLVMVisitor.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp') diff --git a/Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp b/Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp index d0d8de3..c12bd09 100644 --- a/Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp +++ b/Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp @@ -4,18 +4,19 @@ LLVMVisitor::LLVMVisitor(const char* fileName) : outFile(std::ofstream(fileName)), reg() { if (!outFile.is_open()) throw std::runtime_error("Couldn't open file for writing!"); + outFile << "define i32 @main() {\n"; +} + +void LLVMVisitor::finalizeFile() { + outFile << "ret i32 0\n}\n"; } std::string LLVMVisitor::Visit(const Integer& vint) { - std::string valRegister = *(reg++); - outFile << valRegister + " = " + std::to_string(vint.get_value()) + "\n"; - return valRegister; + return std::to_string(vint.get_value()); } std::string LLVMVisitor::Visit(const Float& vfloat) { - std::string valRegister = *(reg++); - outFile << valRegister + " = " + std::to_string(vfloat.get_value()) + "\n"; - return valRegister; + return std::to_string(vfloat.get_value()); } void f_add(std::string reg, std::string first, std::string second, std::ofstream& of) { -- cgit v1.3.1-23-gd82d