diff options
author | bd-912 <bdunahu@colostate.edu> | 2024-04-06 21:10:55 -0600 |
---|---|---|
committer | bd-912 <bdunahu@colostate.edu> | 2024-04-06 21:10:55 -0600 |
commit | bb8d3aff71f8f89bed2ab94f382675a2312b1893 (patch) | |
tree | aea71a22ad5a893083feebb661a50a413f4f0049 /st/SymbolTable.java | |
parent | 8e660afb356c1f6d0b9cd115426cf21129e5d304 (diff) |
Add test file, fix minor issues in SymbolTable
Diffstat (limited to 'st/SymbolTable.java')
-rw-r--r-- | st/SymbolTable.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/st/SymbolTable.java b/st/SymbolTable.java index d6bba37..154c142 100644 --- a/st/SymbolTable.java +++ b/st/SymbolTable.java @@ -19,7 +19,7 @@ public class SymbolTable { public String toString() { StringBuilder mapAsString = new StringBuilder("{"); for (String key : this.symt.keySet()) { - mapAsString.append(key + ":" + this.symt.get(key) + ", "); + mapAsString.append(key + ":" + this.symt.get(key).getType() + ", "); } mapAsString.delete(mapAsString.length()-2, mapAsString.length()).append("}"); return mapAsString.toString(); @@ -37,10 +37,20 @@ public class SymbolTable { /** * Methods intended to be used during the second pass */ - public void setActive(TypeEnum type, String id) { + public void setActive(String id, TypeEnum type) { this.active.put(type, id); } + public void setExtend(String arg) { + String str = this.active.get(TypeEnum.classname); + ClassInstance cls = this.getClass(str); + ClassInstance ext = this.getClass(arg); + + cls.setExtend(ext); + // for (TypeInstance : ext.attrs) //FIXME add the extended classes' stuff + // cls.add + } + public void addAttribute(String arg) { String str = this.active.get(TypeEnum.classname); ClassInstance cls = this.getClass(str); @@ -74,7 +84,7 @@ public class SymbolTable { TypeInstance var = this.getType(lvar); var.setScope(mtd); - mtd.addArgument(var); + mtd.addLocal(var); } |