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