summaryrefslogtreecommitdiff
path: root/st/SymTableVars.java
diff options
context:
space:
mode:
Diffstat (limited to 'st/SymTableVars.java')
-rw-r--r--st/SymTableVars.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/st/SymTableVars.java b/st/SymTableVars.java
index f356a8c..36f02fc 100644
--- a/st/SymTableVars.java
+++ b/st/SymTableVars.java
@@ -122,6 +122,7 @@ public class SymTableVars<R> extends GJDepthFirst<R,SymbolTable> {
(ClassInstance) symt.getActive(TypeEnum.classname),
(MethodInstance) symt.getActive(TypeEnum.method));
TypeEnum rtrn = TypeEnum.ERROR;
+ String cls = null;
switch (n.f0.f0.which) {
case 0:
rtrn = TypeEnum.intarray; break;
@@ -130,7 +131,8 @@ public class SymTableVars<R> extends GJDepthFirst<R,SymbolTable> {
case 2:
rtrn = TypeEnum.integer; break;
case 3:
- rtrn = TypeEnum.classname; break;
+ rtrn = TypeEnum.classname;
+ cls = ((Identifier) n.f0.f0.choice).f0.tokenImage; break;
default:
MinimalLogger.severe("Unsupported case");
}
@@ -139,7 +141,7 @@ public class SymTableVars<R> extends GJDepthFirst<R,SymbolTable> {
(ClassInstance) symt.getActive(TypeEnum.classname));
symt.put(id, instance);
symt.addLocal(id.getName());
-
+ symt.addClassInstance(instance, cls);
return null;
}