summaryrefslogtreecommitdiff
path: root/st/SymbolTable.java
diff options
context:
space:
mode:
Diffstat (limited to 'st/SymbolTable.java')
-rw-r--r--st/SymbolTable.java23
1 files changed, 21 insertions, 2 deletions
diff --git a/st/SymbolTable.java b/st/SymbolTable.java
index a8a6dcf..ed1506b 100644
--- a/st/SymbolTable.java
+++ b/st/SymbolTable.java
@@ -109,6 +109,9 @@ public class SymbolTable {
this.getClass(c) :
null;
+ if (cls != null)
+ MinimalLogger.info(String.format("%s is an instance of class %s",
+ t.getName(), c));
t.addClassInstance(cls);
}
@@ -159,6 +162,20 @@ public class SymbolTable {
return ret;
}
+ public MethodInstance getMethod(String name, ClassInstance c) {
+ TokenKey id = new TokenKey(name,
+ c,
+ null);
+ AbstractInstance symbol;
+ MethodInstance ret = ((symbol = this.symt.get(id)) !=
+ null && symbol instanceof MethodInstance) ?
+ (MethodInstance) symbol : null;
+ if (ret == null)
+ MinimalLogger.severe(String.format("getMethod returning null for missing alias %s!",
+ id));
+ return ret;
+ }
+
public ClassInstance getClass(String name) {
TokenKey id = new TokenKey(name,
null,
@@ -170,11 +187,13 @@ public class SymbolTable {
if (ret == null)
MinimalLogger.severe(String.format("getClass returning null for missing alias %s!",
id));
- return ret;
+ MinimalLogger.severe(String.format("It was: %s",
+ this.symt.get(id)));
+ return ret;
}
public AbstractInstance getActive(TypeEnum type) {
- return this.active.get(type);
+ return this.active.get(type);
}
}