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 + -
显示快捷键?