summaryrefslogtreecommitdiff
path: root/st/SymTableTopDown.java
diff options
context:
space:
mode:
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);