X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FIR%2FTypeUtil.java;h=d289a9535e8d20ba2956d174d2826fbc65460b41;hb=3ed159976d22ddaf99cec81365e7f913b97c4bbc;hp=99123806fb26a7468b33ba6b043129b15a793aaf;hpb=50995c8b04832effecb46d20912183e3623b2ddc;p=IRC.git diff --git a/Robust/src/IR/TypeUtil.java b/Robust/src/IR/TypeUtil.java index 99123806..d289a953 100644 --- a/Robust/src/IR/TypeUtil.java +++ b/Robust/src/IR/TypeUtil.java @@ -1,51 +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="java.lang.String"; - State state; - Hashtable supertable; - - public TypeUtil(State state) { - this.state=state; - createTables(); - } - - public ClassDescriptor getClass(String classname) { - ClassDescriptor cd=(ClassDescriptor)state.getClassSymbolTable().get(classname); - return cd; - } - - 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 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 TypeUtil(State state, BuildIR bir) { + this.state=state; + this.bir=bir; + createTables(); + } + + public void addNewClass(String cl, Set todo) { + for(int i=0;i