summaryrefslogtreecommitdiff
path: root/st/SymbolTable.java
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-04-06 21:10:55 -0600
committerbd-912 <bdunahu@colostate.edu>2024-04-06 21:10:55 -0600
commitbb8d3aff71f8f89bed2ab94f382675a2312b1893 (patch)
treeaea71a22ad5a893083feebb661a50a413f4f0049 /st/SymbolTable.java
parent8e660afb356c1f6d0b9cd115426cf21129e5d304 (diff)
Add test file, fix minor issues in SymbolTable
Diffstat (limited to 'st/SymbolTable.java')
-rw-r--r--st/SymbolTable.java16
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);
}