diff options
author | bd-912 <bdunahu@colostate.edu> | 2024-04-15 15:19:54 -0600 |
---|---|---|
committer | bd-912 <bdunahu@colostate.edu> | 2024-04-15 15:19:54 -0600 |
commit | 04e9109f112f4cb7317416c2e31806f42663cb45 (patch) | |
tree | 9ae99f2bc5d5fbb41d731792b1d22a30f2e642b3 /st/SymTableTopDown.java | |
parent | 056690e0e60d4d0ce046c171691aa02a7071eeae (diff) |
Allow MethodInstance to keep track of parent class
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); |