| class TP_CONTEXT |
|---|
| **** | A context for converting AS_TYPE_SPEC trees into $TP objects. |
| attr is_abs:BOOL; |
|---|
| **** | True if in an abstract class. |
| attr pnames:ARRAY{IDENT}; |
|---|
| **** | Type parameter names, if any. |
| attr prog:PROG; |
|---|
| **** | The program this is for. |
| attr ptypes:ARRAY{$TP}; |
|---|
| **** | Type parameter values, if any. |
| attr same:TP_CLASS; |
|---|
| **** | The type that replaces "SAME", |
| attr is_abs:BOOL; |
|---|
| **** | True if in an abstract class. |
| attr pnames:ARRAY{IDENT}; |
|---|
| **** | Type parameter names, if any. |
| attr prog:PROG; |
|---|
| **** | The program this is for. |
| attr ptypes:ARRAY{$TP}; |
|---|
| **** | Type parameter values, if any. |
| attr same:TP_CLASS; |
|---|
| **** | The type that replaces "SAME", |
| create(same:TP_CLASS, pnames:ARRAY{IDENT}, ptypes:ARRAY{$TP}, |
|---|
| str: STR |
|---|
| **** | For debugging |
| tp_class_of(t:AS_TYPE_SPEC,memorize:BOOL):$TP |
|---|
| **** | The type object corresponding to the class type specifier `t' in this context. |
| tp_iter_of(t:AS_TYPE_SPEC):$TP |
|---|
| **** | The type object corresponding to the bound iter type specifier `t' in this context. |
| tp_of(t:AS_TYPE_SPEC): $TP |
|---|
| tp_of(t:AS_TYPE_SPEC,memorize:BOOL):$TP |
|---|
| **** | The type object corresponding to the type specifier `t' in this context. Void if `t' is void. If memorize is false to not write this type into the global type table. |
| tp_rout_of(t:AS_TYPE_SPEC):$TP |
|---|
| **** | The type object corresponding to the bound routine type specifier `t' in this context. |
| type_spec_has_same(t:AS_TYPE_SPEC):BOOL |
|---|
| **** | True if the type spec `t' contains "SAME". |
| type_spec_is_param(t:AS_TYPE_SPEC):BOOL |
|---|
| **** | True if `t' is a type specifier which is just a type parameter. |
| type_spec_params_have_same(t:AS_TYPE_SPEC):BOOL |
|---|
| **** | True if the type spec `t' contains "SAME". |
| value_of_param(s:IDENT):$TP |
|---|
| **** | The value of the parameter named by `s'. If `s' doesn't name a parameter, returns void. |