X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FIR%2FTypeUtil.java;h=d289a9535e8d20ba2956d174d2826fbc65460b41;hb=3ed159976d22ddaf99cec81365e7f913b97c4bbc;hp=981a098da102bc556f61196ae1d1b82b77c1f41e;hpb=ebc35d5dd596636b70848ff97ed061058ddddd75;p=IRC.git diff --git a/Robust/src/IR/TypeUtil.java b/Robust/src/IR/TypeUtil.java index 981a098d..d289a953 100644 --- a/Robust/src/IR/TypeUtil.java +++ b/Robust/src/IR/TypeUtil.java @@ -1,200 +1,338 @@ package IR; import java.util.*; +import IR.Tree.*; +import java.io.File; +import Main.Main; public class TypeUtil { - public static final String StringClass="String"; - public static final String ObjectClass="Object"; - public static final String StartupClass="StartupObject"; - public static final String TagClass="TagDescriptor"; - State state; - Hashtable supertable; - Hashtable subclasstable; - - public TypeUtil(State state) { - this.state=state; - createTables(); - } + public static final String StringClass="String"; + public static final String ObjectClass="Object"; + public static final String StartupClass="StartupObject"; + public static final String TagClass="TagDescriptor"; + public static final String ThreadClass="Thread"; + public static final String TaskClass="Task"; + State state; + Hashtable supertable; + Hashtable subclasstable; + BuildIR bir; - public ClassDescriptor getClass(String classname) { - ClassDescriptor cd=(ClassDescriptor)state.getClassSymbolTable().get(classname); - return cd; - } + public TypeUtil(State state, BuildIR bir) { + this.state=state; + this.bir=bir; + createTables(); + } - private void createTables() { - supertable=new Hashtable(); - - Iterator classit=state.getClassSymbolTable().getDescriptorsIterator(); - while(classit.hasNext()) { - ClassDescriptor cd=(ClassDescriptor)classit.next(); - String superc=cd.getSuper(); - if (superc!=null) { - ClassDescriptor cd_super=getClass(superc); - supertable.put(cd,cd_super); - } + public void addNewClass(String cl, Set todo) { + for(int i=0;i