From 9a94dfccd95a7295d36e92d2c9b7f50a52093e45 Mon Sep 17 00:00:00 2001
From: John Tinnerholm <jtinnerholm@gmail.com>
Date: Mon, 21 Dec 2020 13:50:49 +0100
Subject: [PATCH] Added copy instruction for array..

---
 lab3-4/codegen.cc | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/lab3-4/codegen.cc b/lab3-4/codegen.cc
index c517e2c..a49b682 100644
--- a/lab3-4/codegen.cc
+++ b/lab3-4/codegen.cc
@@ -1257,11 +1257,15 @@ void Quad::print_c(ostream& o)
           << setw(8) << "="
           << setw(8) << sym1;
         break;
-    case aassign:
-        o << setw(8) << "aassign "
-          << setw(8) << sym1
-          << setw(8) << int1
-          << setw(8) << sym3;
+    case aassign: {
+      ::string itVar = sym1->id + "_" + ::string(int1);
+      o << setw(8) << "for(int " << itVar << " = 0 ;"
+	<< setw(8) << itVar << "<" << int1 << ";"
+	<< setw(8) << itVar << "++;)" //Increment & close for loop.
+	/*Assign the array*/
+	<< setw(8) << sym3 << "[" << itVar << "]" << "="
+	<< setw(8) << sym1 << "[" << itVar << "];";
+    }
         break;
     case hcf:
       o << setw(8) << "exit(-1)";
-- 
GitLab