class TP_TBL |
---|
**** | A table of types in a program. This ensures that each type is only represented by a single object so that object equality can be used to test for type equality. |
attr class_tbl:TP_CLASS_TBL; |
---|
**** | Types defined by classes. |
attr included_classes:TP_CLASS_TBL; |
---|
**** | Types defined by include clauses. |
attr iter_tbl:TP_ITER_TBL; |
---|
**** | Bound iter types. |
attr prog:PROG; |
---|
**** | The program this belongs to. |
attr rout_tbl:TP_ROUT_TBL; |
---|
**** | Bound routine types. |
attr class_tbl:TP_CLASS_TBL; |
---|
**** | Types defined by classes. |
attr included_classes:TP_CLASS_TBL; |
---|
**** | Types defined by include clauses. |
attr iter_tbl:TP_ITER_TBL; |
---|
**** | Bound iter types. |
attr prog:PROG; |
---|
**** | The program this belongs to. |
attr rout_tbl:TP_ROUT_TBL; |
---|
**** | Bound routine types. |
create(prog:PROG):SAME |
---|
**** | A table of type for the program `prog'. |
delete(t:$TP) |
---|
**** | Delete the type `t' from the table. |
insert(t:$TP) |
---|
**** | Insert the type `t' into the table. |
test(t:$TP):BOOL |
---|
**** | True if the type `t' is in the table. |
tp_class_for(name:IDENT, params:ARRAY{$TP}): TP_CLASS |
---|
tp_class_for(name:IDENT, params:ARRAY{$TP}, memorize:BOOL ):TP_CLASS |
---|
**** | Return the class type object for the name `name' and the parameters (if any) `params'. If this has already been accessed, return the old object, otherwise create a new one using the array `params'. |
tp_class_for(s:STR):TP_CLASS |
---|
tp_iter_for(args:ARRAY{ARG}, hot:ARRAY{BOOL}, ret:$TP):TP_ITER |
---|
**** | Return the bound iter type object for the argument types `args' (if any), marked according to `hot' (if any) and with return type `ret' (if any). If this has already been accessed, return the old object, otherwise create a new one using the arrays `args' and `hot'. |
tp_rout_for(args:ARRAY{ARG}, ret:$TP):TP_ROUT |
---|
**** | Return the bound routine type object for the argument `args' (if any) and the return type `ret' (if any). If this has already been accessed, return the old object, otherwise create a new one using the array `args'. |
tp_class_for(s:STR,inout i:INT):TP_CLASS |
---|
**** | converts a string representation of a type to tp. reads only as many characters as needed. Returns the number of characters in i, and starts to read the string at pos i |