From 54b792ba1085ed8417c4bcea5ae216440663e1c5 Mon Sep 17 00:00:00 2001 From: Apoorva Ranade Date: Sun, 2 May 2021 20:11:59 +0530 Subject: [PATCH] Fixing while --- src/main/java/chocopy/pa3/CodeGenImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/chocopy/pa3/CodeGenImpl.java b/src/main/java/chocopy/pa3/CodeGenImpl.java index d2b7b33..021a450 100644 --- a/src/main/java/chocopy/pa3/CodeGenImpl.java +++ b/src/main/java/chocopy/pa3/CodeGenImpl.java @@ -718,13 +718,13 @@ public class CodeGenImpl extends CodeGenBase { Label startLoop = generateLocalLabel(); backend.emitLocalLabel(startLoop, "Beginning of while loop"); - node.condition.dispatch(this); + Register result = node.condition.dispatch(this); Label endLoop = elseBlock; + backend.emitBEQZ(result, endLoop,"Jump to beginning of loop"); for(Stmt stmt:node.body) stmt.dispatch(this); backend.emitJ(startLoop, "Jump to beginning of loop"); backend.emitLocalLabel(endLoop, "End of while loop"); - return null; }