From 257e30fdea1698dbaa61e165c50a965369dbf026 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Sat, 22 Nov 2014 17:07:40 +0800 Subject: fix error --- src/spiglet/visitor/GenKangaVisitor.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/spiglet/visitor/GenKangaVisitor.java b/src/spiglet/visitor/GenKangaVisitor.java index dbd5ae1..b4beb6c 100644 --- a/src/spiglet/visitor/GenKangaVisitor.java +++ b/src/spiglet/visitor/GenKangaVisitor.java @@ -34,6 +34,7 @@ import spiglet.syntaxtree.Temp; * order. Your visitors may extend this class. */ public class GenKangaVisitor extends GJDepthFirst { + String lastlb; // // User-generated visitor methods below @@ -92,7 +93,10 @@ public class GenKangaVisitor extends GJDepthFirst { * | PrintStmt() */ public SpgSym visit(Stmt n, SpgSym argu) { - n.f0.accept(this, argu); + SpgProc p = (SpgProc)argu; + n.f0.accept(this, p); + p.statements.lastElement().lb = lastlb; + lastlb = null; return null; } @@ -219,7 +223,7 @@ public class GenKangaVisitor extends GJDepthFirst { // argu should be SpgProc SpgProc p = (SpgProc)argu; n.f1.accept(this, p); - p.retexp = (SpgSimpExpr)n.f3.accept(this, argu); + p.retexp = (SpgSimpExpr)n.f3.accept(this, null); return null; } @@ -315,8 +319,7 @@ public class GenKangaVisitor extends GJDepthFirst { e.s = n.f0.tokenImage; if (argu!=null) { // should be a procedure - SpgProc p = (SpgProc)argu; - p.statements.lastElement().lb = e.s; + lastlb = e.s; } return e; } -- cgit v1.2.3