| 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 |