fnovload.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 340 行 · 第 1/2 页
H
340 行
;
SYMBOL FnovNextRejectEntry( // TRAVERSE LIST OF REJECTED SYMBOLS
FNOV_DIAG *fnov_diag ) // - list is destroyed as it is traversed
;
void FnovNumCandidatesSet( // SET # CANDIDATES FROM LIST
FNOV_LIST *candidates ) // - the candidates list
;
int FnovRejectParm( // GIVE PARM # OF FIRST REJECTED SYMBOL
FNOV_DIAG *fnov_diag ) // - diagnosis information
;
FNOV_DIAG *FnovInitDiag( // INITIALIZE DIAGNOSIS LIST POINTERS TO NULL
FNOV_DIAG * // - pointer to (allocated) struct to init
);
void FnovFreeDiag( // FREE MEMORY IN DIAGNOSIS LISTS
FNOV_DIAG * // - pointer to struct containing list pointers
);
#ifndef NDEBUG
void PrintFnovResolution( // PRETTY DISPLAY OF OVERLOAD RESOLUTION
FNOV_RESULT result, // - resolution result
arg_list *alist, // - args compared
FNOV_LIST *match, // - list of match functions
FNOV_LIST *reject, // - list of reject functions
SYMBOL sym ) // - symbol being overloaded
;
#endif
FNOV_RESULT FuncOverloadedLimitDiag(// FIND OVERLOADED FUNCTION FOR ARGUMENTS
SYMBOL *resolved, // - resolved symbol (filled in)
SEARCH_RESULT *result, // - search result
SYMBOL sym, // - starting symbol
arg_list *alist, // - arguments
PTREE *ptlist, // - parse tree nodes for each argument
FNOV_CONTROL control, // - bits to regulate overloading
FNOV_DIAG *fnov_diag ) // - diagnosis information
;
FNOV_RESULT FuncOverloaded( // FIND OVERLOADED FUNCTION FOR ARGUMENTS
SYMBOL *resolved, // - resolved symbol (filled in)
SEARCH_RESULT *result, // - search result
SYMBOL sym, // - starting symbol
arg_list *alist, // - arguments
PTREE *ptlist ) // - parse tree nodes for each argument
;
FNOV_RESULT FuncOverloadedDiag( // FIND OVERLOADED FUNCTION FOR ARGUMENTS
SYMBOL *resolved, // - resolved symbol (filled in)
SEARCH_RESULT *result, // - search result
SYMBOL sym, // - starting symbol
arg_list *alist, // - arguments
PTREE *ptlist, // - parse tree nodes for each argument
FNOV_DIAG *fnov_diag ) // - diagnosis information
;
FNOV_COARSE_RANK UdcLocate( // SELECT A DIRECT OR COPY INITIALIZTION
// FROM SRC TO TGT TYPE
FNOV_UDC_CONTROL control, // - indicates type of udcs to consider
TYPE src, // - source class type
TYPE tgt, // - target class type
PTREE *src_ptree, // - source PTREE node
boolean *isctor, // - set to TRUE if ctor selected
// FALSE if UDCF selected
FNOV_LIST **match, // - will point to selected UDC if
// non-ambig match
FNOV_DIAG *fnov_diag // - ambig and reject lists
);
FNOV_COARSE_RANK UdcLocateRef( // SELECT A DIRECT OR COPY INITIALIZTION
// FROM SRC TO TGT TYPE
// HANDLE CASE OF TGT BEING A REF
FNOV_UDC_CONTROL control, // - indicates type of udcs to consider
TYPE src, // - source class type
TYPE tgt, // - target class type
PTREE *src_ptree, // - source PTREE node
boolean *isctor, // - set to TRUE if ctor selected
// FALSE if UDCF selected
FNOV_LIST **match, // - will point to selected UDC if
// non-ambig match
FNOV_DIAG *fnov_diag // - ambig and reject lists
);
FNOV_RESULT UdcOverloaded( // FIND OVERLOADED U-D CONVERSION TO TYPE
SYMBOL *resolved, // - resolved symbol
SEARCH_RESULT *result, // - search result
SYMBOL sym, // - starting symbol
TYPE type, // - target type
type_flag this_qualifier ) // - T cv-qual *this; (cv-qual flags)
;
FNOV_RESULT UdcOverloadedDiag( // FIND OVERLOADED U-D CONVERSION TO TYPE
SYMBOL *resolved, // - resolved symbol
SEARCH_RESULT *result, // - search result
SYMBOL sym, // - starting symbol
TYPE type, // - target type
type_flag this_qualifier, // - T cv-qual *this; (cv-qual flags)
FNOV_DIAG *fnov_diag ) // - diagnosis information
;
FNOV_RESULT OpOverloadedDiag( // SELECT OVERLOADED OPERATOR
SYMBOL *resolved, // - resolved symbol or NULL
SEARCH_RESULT *member, // - member operators
SEARCH_RESULT *nonmember, // - non member operators
SEARCH_RESULT *nonmember_namespace, // - non member operators
SYMBOL stdops, // - standard arithmetic operators
arg_list *alist, // - operands provided
PTREE *ptlist, // - parse tree nodes for operands
FNOV_DIAG *fnov_diag ) // - diagnosis information
;
FNOV_RESULT OpOverloadedLimitDiag( // SELECT OVERLOADED OPERATOR
SYMBOL *resolved, // - resolved symbol or NULL
SEARCH_RESULT *member, // - member operators
SEARCH_RESULT *nonmember, // - non member operators
SEARCH_RESULT *nonmember_namespace, // - non member operators
SYMBOL stdops, // - standard arithmetic operators
arg_list *alist, // - operands provided
PTREE *ptlist, // - parse tree nodes for operands
FNOV_CONTROL control,
FNOV_DIAG *fnov_diag ) // - diagnosis information
;
boolean IsOverloadedFunc( // TEST IF A FUNCTION HAS BEEN OVERLOADED
SYMBOL sym ) // - symbol
;
boolean IsActualOverloadedFunc( // TEST IF ACTUAL (IGNORE SC_DEFAULT) OVERLOAD
SYMBOL sym, // - symbol
SEARCH_RESULT *result ) // - search result
;
SYMBOL ActualNonOverloadedFunc( // GET SYMBOL FOR ACTUAL NON-OVERLOADED FUNC.
SYMBOL sym, // - symbol
SEARCH_RESULT *result ) // - search result
;
FNOV_RESULT IsOverloadedFuncDistinct(// TEST IF AN OVERLOADED FUNCTION IS DISTINCT
SYMBOL *pold_sym, // - existing symbols (returns best SYMBOL)
SYMBOL new_sym, // - new symbol
char *name, // - name of new symbol
FNOV_CONTROL control ) // - control word
;
FNOV_RESULT AreFunctionsDistinct(// - TEST if TWO FUNCTIONS ARE DISTINCT
SYMBOL *pold_sym, // - existing symbols (returns best SYMBOL)
SYMBOL new_sym, // - new symbol
char *name ) // - name of new symbol
;
void BuildUdcList( // BUILD FNOV_LIST FOR USER-DEFD CONVERSIONS
FNOV_LIST **pcandidates, // - pointer to candidate list
SYMBOL sym ) // - symbol to add
;
void BuildUdcListDiag( // BUILD FNOV_LIST FOR USER-DEFD CONVERSIONS
FNOV_LIST **pcandidates, // - pointer to candidate list
SYMBOL sym, // - symbol to add
FNOV_DIAG *fnov_diag )
;
FNOV_RESULT ResolveUdcList( // SELECT BEST USER-DEFD CONVERSION TO 'type'
FNOV_LIST *candidates, // - candidate list
type_flag this_qualifier, // - T cv-qual *this; (cv-qual flags)
TYPE type, // - destination type
SYMBOL *sym ) // - best user-defd conversion
;
FNOV_COARSE_RANK RankandResolveUDCsDiag( // RANK CTOR an UDCF LISTS
// RESOLVE AS IF ONE MERGED LIST
FNOV_LIST **ctorList, // - list of CTORs for class tgt
FNOV_LIST **udcfList, // - list of udcfs from class src
TYPE src, // - src class of UDC
TYPE tgt, // - tgt class of UDC
boolean *isctor, // - TRUE if ctor in match list
FNOV_LIST **pmatch, // - will point to selected UDC if
// non-ambig match
FNOV_UDC_CONTROL control, // - control copy or direct init
FNOV_INTRNL_CONTROL ictl, // - internal control of process
PTREE *src_ptree, // - source PTREE node
FNOV_RANK *rank,
FNOV_DIAG *fnov_diag // - diagnosis information
);
TYPE *CompareWP13332( // IMPLEMENT WP13332 (RETURNS BETTER TYPE)
TYPE *first_type // - first type
, TYPE *second_type // - seond type
);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?