Summary Files Commits Branches @commit @diff @stats
path: root / Year 2 / Implementation of Programming Languages / Transpiler / src / LLVMVisitor / LLVMVisitor.cpp
diff options
context:
space:
mode:
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;
+}