diff options
Diffstat (limited to 'st/SymbolTable.java')
-rw-r--r-- | st/SymbolTable.java | 23 |
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); } } |