From 8f41c57ff12fa72693016b75fec63bb86ae6560f Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 18 Jan 2023 11:51:57 +0200 Subject: [IPL/T] Implemented initial structure with Integer data type --- .../Transpiler/src/LLVMVisitor/LLVMVisitor.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp (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 new file mode 100644 index 0000000..f68b80d --- /dev/null +++ b/Year 2/Implementation of Programming Languages/Transpiler/src/LLVMVisitor/LLVMVisitor.cpp @@ -0,0 +1,12 @@ +#include "LLVMVisitor.h" + +LLVMVisitor::LLVMVisitor(const char* fileName) : outFile(std::ofstream(fileName)), reg() { + if (!outFile.is_open()) + throw std::runtime_error("Couldn't open file for writing!"); +} + +std::string LLVMVisitor::Visit(const Integer& vint) { + std::string valRegister = *(reg++); + outFile << valRegister + " = " + std::to_string(vint.get_value()) + "\n"; + return valRegister; +} -- cgit v1.3.1-23-gd82d