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