class TP_GRAPH |
---|
**** | Objects which represent Sather type graphs. The tables do not explicitly represent the edges between bound objects |
attr anc_tbl:FMAP{TP_CLASS,FSET{TP_CLASS}}; |
---|
**** | Map from each class type to its ancestors |
attr child_tbl:FMAP{TP_CLASS,FSET{$TP}}; |
---|
**** | Map from each abstract type to any explicit children |
attr cur:FSET{TUP{IDENT,INT}}; |
---|
**** | The set of type names and number of parameters which are in the process of determining their ancestors. Used to detect loops. |
attr des_tbl:FMAP{TP_CLASS,FSET{$TP}}; |
---|
**** | Table of descendants for each abstract type. |
attr par_tbl:FMAP{TP_CLASS,FSET{TP_CLASS}}; |
---|
**** | Map from each class type to the direct supertypes |
attr prog:PROG; |
---|
attr anc_tbl:FMAP{TP_CLASS,FSET{TP_CLASS}}; |
---|
**** | Map from each class type to its ancestors |
attr child_tbl:FMAP{TP_CLASS,FSET{$TP}}; |
---|
**** | Map from each abstract type to any explicit children |
attr cur:FSET{TUP{IDENT,INT}}; |
---|
**** | The set of type names and number of parameters which are in the process of determining their ancestors. Used to detect loops. |
attr des_tbl:FMAP{TP_CLASS,FSET{$TP}}; |
---|
**** | Table of descendants for each abstract type. |
attr par_tbl:FMAP{TP_CLASS,FSET{TP_CLASS}}; |
---|
**** | Map from each class type to the direct supertypes |
attr prog:PROG; |
---|
abs_subtype_test(t:$TP, at:TP_CLASS):BOOL |
---|
**** | True if the type `t' is a subtype of the abstract type `at'. |
create(prog:PROG):SAME |
---|
**** | A type graph for the program `prog'. |
get_anc(t:TP_CLASS):FSET{TP_CLASS} |
---|
**** | The set of "<" ancestors for `t'. Void if none. $OB is not explicitly included. Do not modify the returned table. Reports an error if there is a loop. All returned types should be abstract. |
get_children(tp:TP_CLASS):FSET{$TP} |
---|
get_des(t:TP_CLASS):FSET{$TP} |
---|
**** | The set of ">" descendants for `t'. Void if none. Do not modify the returned table. Reports an error if there is a loop. |
get_parents(tp:TP_CLASS):FSET{TP_CLASS} |
---|
make_family_members |
---|
**** | compute parents and children information for all classes using both subtyping ``>'' and supertyping ``<'' |
tup_str(t:TUP{IDENT,INT}):STR |
---|
**** | A string for the specified type of the form "FOO{_,_,_}". |