class TP_GRAPH_ABS_DES |
---|
**** | Table of all concrete descendants of abstract types. |
attr gate, mutex, dollar_lock:TP_CLASS; |
---|
attr gate, mutex, dollar_lock:TP_CLASS; |
---|
attr gate, mutex, dollar_lock:TP_CLASS; |
---|
attr prog:PROG; |
---|
**** | The program this table belongs to. of each abstract type. |
attr tbl:FMAP{TP_CLASS,FSET{$TP}}; |
---|
**** | Table of concrete descendants of each abstract type. |
attr gate, mutex, dollar_lock:TP_CLASS; |
---|
attr gate, mutex, dollar_lock:TP_CLASS; |
---|
attr gate, mutex, dollar_lock:TP_CLASS; |
---|
attr prog:PROG; |
---|
**** | The program this table belongs to. of each abstract type. |
attr tbl:FMAP{TP_CLASS,FSET{$TP}}; |
---|
**** | Table of concrete descendants of each abstract type. |
add(at:TP_CLASS,ct:$TP) |
---|
**** | Add the concrete type `ct' as one of the descendants of the abstract type `at'. |
create(prog:PROG):SAME |
---|
**** | Compute an abstract descendant table for the program `prog', from the explicit ancestor and descendant tables `anc' and `des'. |
des_of(tp:TP_CLASS):FSET{$TP} |
---|
**** | A table of the concrete descendants of the abstract type `tp'. Void if none. |
do_anc |
---|
**** | Put entries in the table based on the subtype edges. |
do_des |
---|
**** | Put entries in the table based on the supertype edges. |
do_dollar_ob |
---|
**** | Put in all concrete types under $OB. |
do_tbl |
---|
**** | Compute the table assuming that `prog.tp_graph' and `prog.find_types' are done. |