summaryrefslogtreecommitdiff
path: root/st/SymTableTopDown.java
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-04-15 15:19:54 -0600
committerbd-912 <bdunahu@colostate.edu>2024-04-15 15:19:54 -0600
commit04e9109f112f4cb7317416c2e31806f42663cb45 (patch)
tree9ae99f2bc5d5fbb41d731792b1d22a30f2e642b3 /st/SymTableTopDown.java
parent056690e0e60d4d0ce046c171691aa02a7071eeae (diff)
Allow MethodInstance to keep track of parent class
Diffstat (limited to 'st/SymTableTopDown.java')
-rw-r--r--st/SymTableTopDown.java7
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);