class IFC < $STR |
---|
**** | A type interface. |
$STR | SELECT_SIG |
attr sigs:SIG_TBL; |
---|
**** | The interface signatures. |
attr tp:$TP; |
---|
**** | The type whose interface this is. |
attr sigs:SIG_TBL; |
---|
**** | The interface signatures. |
attr tp:$TP; |
---|
**** | The type whose interface this is. |
shared abs_cur:FSET{TUP{IDENT,INT}}; |
---|
**** | The set of abstract class names and number of parameters which are currently having their interfaces worked out. |
shared abs_cur:FSET{TUP{IDENT,INT}}; |
---|
**** | The set of abstract class names and number of parameters which are currently having their interfaces worked out. |
conflicting_sigs:TUP{SIG,SIG} |
---|
**** | If self has a conflict, return two conflicting signatures. Otherwise, return #(void,void). |
conforms_to(i:IFC):BOOL |
---|
**** | True if self conforms to `i'. This means that for every signature in `i' there is a signature in self which conforms to it. |
create(sigs:SIG_TBL, tp:$TP):SAME |
---|
**** | An interface with the signatures `sigs' for the type `tp'. Never gives void. |
cycle_err |
---|
**** | Print an error message about a cycle of include type names. |
ifc_for_class(t:TP_CLASS):SAME |
---|
ifc_for_iter(t:TP_ITER):SAME |
---|
**** | The interface of a bound iter type. |
ifc_for_rout(t:TP_ROUT):SAME |
---|
**** | The interface of a bound routine type. |
is_conflict_free:BOOL |
---|
**** | True if self is free of conflicting signatures. |
nonconforming_sig(i:IFC):SIG |
---|
**** | If self conforms to `i' then return void, otherwise return a signature in `i' for which there is no conforming signature in self. |
nonconforming_sig_list(i: IFC): FLIST{SIG} |
---|
**** | Version of nonconforming_sig that returns all the nonconforming signatures for better error reporting and so generates all the non-conforming messages at one go, rather than one at a time |
prog:PROG |
---|
**** | The program this interface belongs to. |
stub prog: PROG; |
---|
show |
---|
**** | Print the interface on OUT. |
sig_conforming_to(s:SIG):SIG |
---|
**** | A signature from the interface which conforms to `s' or void if none. This will be unique if the interface has no conflicts. |
sig_equal_to(s:SIG):SIG |
---|
**** | A signature from self which is equal to `s' if present, void if not. |
sig_for_call(c:CALL_SIG):SIG |
---|
**** | A signature from the interface to which the call `c' conforms. Void if none. Reports an error if the call is ambiguous or missing (assumes that "err_loc" has been set). If it is unknown whether there is a return value, then choose the signature without one in case of conflict. |
str:STR |
---|