summaryrefslogtreecommitdiff
path: root/st/SymTableVars.java
diff options
context:
space:
mode:
Diffstat (limited to 'st/SymTableVars.java')
-rw-r--r--st/SymTableVars.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/st/SymTableVars.java b/st/SymTableVars.java
index 014beb1..b9a7c1b 100644
--- a/st/SymTableVars.java
+++ b/st/SymTableVars.java
@@ -55,6 +55,17 @@ public class SymTableVars<R> extends GJDepthFirst<R,SymbolTable> {
n.f16.accept(this, symt);
n.f17.accept(this, symt);
+ // add the "string" arg
+ TokenKey s = new TokenKey(n.f11.f0.tokenImage,
+ TypeEnum.integer,
+ (ClassInstance) symt.getActive(TypeEnum.classname),
+ (MethodInstance) symt.getActive(TypeEnum.method));
+ TypeInstance instance = new TypeInstance(s.getName(), TypeEnum.string, (MethodInstance) symt.getActive(TypeEnum.method),
+ (ClassInstance) symt.getActive(TypeEnum.classname));
+ symt.put(s, instance);
+ symt.addParameter(s.getName());
+
+
symt.addMethod(id);
symt.removeActive(TypeEnum.method);
symt.removeActive(TypeEnum.classname);
@@ -119,6 +130,7 @@ public class SymTableVars<R> extends GJDepthFirst<R,SymbolTable> {
n.f1.accept(this, symt);
n.f2.accept(this, symt);
TokenKey id = new TokenKey(n.f1.f0.tokenImage,
+ TypeEnum.integer,
(ClassInstance) symt.getActive(TypeEnum.classname),
(MethodInstance) symt.getActive(TypeEnum.method));
TypeEnum rtrn = null;
@@ -191,6 +203,7 @@ public class SymTableVars<R> extends GJDepthFirst<R,SymbolTable> {
n.f0.accept(this, symt);
n.f1.accept(this, symt);
TokenKey id = new TokenKey(n.f1.f0.tokenImage,
+ TypeEnum.integer,
(ClassInstance) symt.getActive(TypeEnum.classname),
(MethodInstance) symt.getActive(TypeEnum.method));