diff options
Diffstat (limited to 'st/SymTableTopDown.java')
-rw-r--r-- | st/SymTableTopDown.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/st/SymTableTopDown.java b/st/SymTableTopDown.java index df136aa..566752e 100644 --- a/st/SymTableTopDown.java +++ b/st/SymTableTopDown.java @@ -121,8 +121,9 @@ public class SymTableTopDown<R> extends GJDepthFirst<R,SymbolTable> { null; String id = n.f1.f0.tokenImage; + TypeInstance me = symt.getType(id); symt.addLocal(id); - symt.addClassInstance(id, cls); + symt.addClassInstance(me, cls); n.f0.accept(this, symt); @@ -147,9 +148,13 @@ public class SymTableTopDown<R> extends GJDepthFirst<R,SymbolTable> { * f12 -> "}" */ public R visit(MethodDeclaration n, SymbolTable symt) { + String cls = symt.getActive(TypeEnum.classname); + String id = n.f2.f0.tokenImage; + MethodInstance me = symt.getMethod(id); symt.setActive(TypeEnum.method, id); symt.addMethod(id); + symt.addClassInstance(me, cls); n.f0.accept(this, symt); |