symtype.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 1,407 行 · 第 1/5 页
H
1,407 行
extern void LinkageReset( void );
extern LINKAGE LinkageAdd( char *, AUX_INFO * );
extern void LinkagePush( char * );
extern void LinkagePushC( void );
extern void LinkagePushCpp( void );
extern void LinkageBlock( void );
extern void LinkagePop( void );
extern LINKAGE LinkageMergePop( void );
extern int LinkageDeclaration( void );
extern void LinkageSet( SYMBOL, char * );
extern boolean LinkageIsCpp( SYMBOL );
extern boolean LinkageIsC( SYMBOL );
extern boolean LinkageIsCurr( SYMBOL );
extern boolean LinkageSpecified( void );
// defined in SCOPE.C
#if 0 /* hate globals! */
extern SCOPE CurrScope;
extern SCOPE FileScope;
extern SCOPE InternalScope;
#endif
extern SCOPE GetCurrScope(void);
extern SCOPE SetCurrScope(SCOPE);
extern SCOPE GetFileScope(void);
extern SCOPE SetFileScope(SCOPE);
extern SCOPE GetInternalScope(void);
extern SCOPE SetInternalScope(SCOPE);
extern SYMBOL ChipBugSym;
extern SYMBOL PCHDebugSym;
extern SYMBOL DFAbbrevSym;
extern boolean ScopeAccessType( scope_type_t );
extern boolean ScopeType( SCOPE, scope_type_t );
extern boolean ScopeEquivalent( SCOPE, scope_type_t );
#define ScopeId( s ) ((s)->id)
#define ScopeEnclosedInUnnamedNameSpace( s ) ((s)->in_unnamed)
typedef enum {
FVS_VIRTUAL_ABOVE = 0x01, // sym[0] will be set
FVS_USE_INDEX = 0x02, // sym[0] will be set
FVS_RETURN_THUNK = 0x04, // sym[0] will be set
FVS_NAME_SAME_TABLE = 0x08, // sym[1] will be set
FVS_NULL = 0x00
} find_virtual_status;
extern find_virtual_status ScopeFindVirtual( SCOPE, SYMBOL [2], char * );
extern void ScopeAddUsing( SCOPE, SCOPE );
extern SCOPE ScopeIsGlobalNameSpace( SCOPE );
extern SCOPE ScopeIsUnnamedNameSpace( SCOPE );
extern void ScopeBeginFunction( SYMBOL );
extern void ScopeBeginBlock( unsigned );
extern SCOPE ScopeBegin( scope_type_t );
extern SCOPE ScopeEnd( scope_type_t );
extern void ScopeEndFileScope( void );
extern SCOPE ScopeCreate( scope_type_t );
extern void ScopeOpen( SCOPE );
extern void ScopeRestoreUsing( SCOPE );
extern void ScopeEstablish( SCOPE );
extern SCOPE ScopeOpenNameSpace( char *, SYMBOL );
extern SCOPE ScopeSetEnclosing( SCOPE, SCOPE );
extern SCOPE ScopeEstablishEnclosing( SCOPE, SCOPE );
extern void ScopeSetClassOwner( SCOPE, TYPE );
extern SCOPE ScopeSetContaining( SYMBOL_NAME, SCOPE );
extern SCOPE ScopeClose( void );
extern void ScopeCreatePCHDebugSym( void );
extern target_offset_t ScopeVBPtrOffset( SCOPE );
extern boolean ScopeHasVirtualBases( SCOPE );
extern boolean ScopeHasVirtualFunctions( SCOPE );
extern void ScopeJumpForward( SCOPE );
extern void ScopeJumpBackward( SCOPE );
extern BASE_CLASS *ScopeFindVFPtrInVBase( TYPE );
extern TYPE ScopeFindBoundBase( TYPE, TYPE );
extern boolean ScopeHasPureFunctions( SCOPE );
extern void ScopeNotePureFunctions( TYPE );
extern SYMBOL ScopePureVirtualThunk( THUNK_ACTION * );
extern SYMBOL ScopeAlreadyExists( SCOPE, char * );
extern SYMBOL_NAME ScopeYYLexical( SCOPE, char * );
extern SYMBOL_NAME ScopeYYMember( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindSymbol( SYMBOL );
extern SEARCH_RESULT *ScopeFindLexicalNameSpace( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindLexicalColonColon( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindMemberColonColon( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindBaseMember( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindLexicalClassType( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindLexicalEnumType( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindNakedFriend( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindNaked( SCOPE, char * );
extern SEARCH_RESULT *ScopeContainsNaked( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindScopedNaked( SCOPE, SCOPE, char * );
extern SEARCH_RESULT *ScopeFindMember( SCOPE, char * );
extern SEARCH_RESULT *ScopeFindScopedMember( SCOPE, SCOPE, char * );
extern SEARCH_RESULT *ScopeFindScopedMemberConversion( SCOPE, SCOPE, TYPE, type_flag );
extern SEARCH_RESULT *ScopeFindNakedConversion( SCOPE, TYPE, type_flag );
extern SEARCH_RESULT *ScopeFindScopedNakedConversion( SCOPE, SCOPE, TYPE, type_flag );
extern FNOV_LIST *ScopeConversionList( SCOPE, type_flag, TYPE );
extern SEARCH_RESULT *ScopeContainsMember( SCOPE, char * );
extern boolean ScopeImmediateCheck( SEARCH_RESULT * );
extern boolean ScopeAmbiguousSymbol( SEARCH_RESULT *, SYMBOL );
extern boolean ScopeCheckSymbol( SEARCH_RESULT *, SYMBOL );
extern void ScopeDontCheckSymbol( SEARCH_RESULT * );
extern void ScopeFreeResult( SEARCH_RESULT * );
extern SEARCH_RESULT *ScopeDupResult( SEARCH_RESULT * );
extern boolean ScopeEnclosed( SCOPE, SCOPE );
extern void ScopeKeep( SCOPE );
extern void ScopeArgumentCheck( SCOPE );
extern void ScopeQualifyPush( SCOPE, SCOPE );
extern SCOPE ScopeQualifyPop( void );
extern SYMBOL ScopeOrderedStart( SCOPE );
extern SYMBOL ScopeOrderedNext( SYMBOL, SYMBOL );
extern SYMBOL ScopeOrderedFirst( SCOPE );
extern SYMBOL ScopeOrderedLast( SCOPE );
extern SCOPE ScopeEnclosingId( SCOPE, scope_type_t );
extern SCOPE ScopeNearestNonClass( SCOPE );
extern SCOPE ScopeNearestFile( SCOPE );
extern SCOPE ScopeNearestFileOrClass( SCOPE );
extern SCOPE ScopeFunctionScopeInProgress( void );
extern SYMBOL ScopeFunctionScope( SCOPE );
extern void ScopeMemberModuleFunction( SCOPE, SCOPE );
extern void ScopeRestoreModuleFunction( SCOPE );
extern boolean ScopeLocalClass( SCOPE );
extern SCOPE ScopeHostClass( SCOPE );
extern BASE_CLASS *ScopeFindVBase( SCOPE, TYPE );
extern void ScopeMemberPtrCastAction( MEMBER_PTR_CAST * );
extern void ScopeEmitIndexMappings( void );
extern void ScopeClear( SCOPE );
extern boolean ScopeDebugable( SCOPE );
extern void ScopeSetParmClass( SCOPE, TEMPLATE_INFO * );
extern void ScopeSetParmFn( SCOPE, FN_TEMPLATE_DEFN * );
extern void ScopeSetParmCopy( SCOPE, SCOPE );
typedef enum {
SCV_CTOR = 0x01, // collect will be used for ctor code
SCV_NO_DIAGNOSE = 0x02, // diagnostic msgs are not allowed
SCV_NULL = 0x00
} scv_control;
extern CLASS_VBTABLE *ScopeCollectVBTable( SCOPE, scv_control );
extern CLASS_VFTABLE *ScopeCollectVFTable( SCOPE, scv_control );
/* front-end #pragma support */
extern SYMBOL ScopeASMUseSymbol( char *, boolean * );
extern void ScopeASMUsesAuto( void );
extern SYMBOL ScopeASMLookup( char * );
extern SYMBOL ScopeIntrinsic( boolean );
extern void ScopeAuxName( char *, AUX_INFO * );
extern SYMBOL ScopeInsert( SCOPE, SYMBOL, char * );
extern boolean ScopeCarefulInsert( SCOPE, SYMBOL *, char * );
extern SYMBOL ScopePromoteSymbol( SCOPE, SYMBOL, char * );
extern void ScopeInsertErrorSym( SCOPE, PTREE );
extern void ScopeRawAddFriend( CLASSINFO *, SYMBOL );
extern void ScopeAddFriend( SCOPE, SYMBOL );
extern SYMBOL AllocSymbol( void );
extern SYMBOL AllocTypedSymbol( TYPE );
extern SYMBOL_NAME AllocSymbolName( char *, SCOPE );
boolean EnumTypeName( SYMBOL_NAME sym_name );
boolean ClassTypeName( SYMBOL_NAME sym_name );
extern void FreeSymbol( SYMBOL );
extern void FreeSymbolName( SYMBOL_NAME );
extern void ScopeBurn( SCOPE );
extern void ScopeMarkVisibleAutosInMem( void );
extern void ScopeWalkNames( SCOPE, void (*)( SYMBOL_NAME ) );
extern void ScopeWalkSymbols( SCOPE, void (*)( SYMBOL ) );
extern void ScopeWalkOrderedSymbols( SCOPE, void (*)( SYMBOL ) );
extern void ScopeWalkDataMembers( SCOPE, void (*)(SYMBOL,void*), void* );
extern void ScopeWalkAllNameSpaces( void (*)(NAME_SPACE*,void*), void* );
extern unsigned ScopeRttiClasses( TYPE );
extern unsigned ScopeRttiLeaps( TYPE, GEN_LEAP ** );
extern void ScopeRttiFreeLeaps( GEN_LEAP * );
extern derived_status ScopeDerivedCount( SCOPE, SCOPE, unsigned * );
extern derived_status ScopeDerived( SCOPE, SCOPE );
extern SCOPE ScopeCommonBase( SCOPE, SCOPE );
extern target_offset_t ScopeBaseDelta( SCOPE , SCOPE );
extern SEARCH_RESULT *ScopeBaseResult( SCOPE , SCOPE );
extern SEARCH_RESULT *ScopeResultFromBase( TYPE, BASE_CLASS * );
extern BASE_CLASS *ScopeInherits( SCOPE );
extern FRIEND *ScopeFriends( SCOPE );
extern boolean ScopeDirectBase( SCOPE, TYPE );
extern boolean ScopeIndirectVBase( SCOPE, TYPE );
extern char *ScopeUnnamedNamespaceName( TOKEN_LOCN * );
extern char *ScopeNameSpaceName( SCOPE );
extern char *ScopeNameSpaceFormatName( SCOPE );
extern TYPE ScopeClass( SCOPE );
extern SYMBOL ScopeFunction( SCOPE );
extern unsigned ScopeIndex( SCOPE );
extern boolean VariableName( SYMBOL_NAME );
extern SYMBOL ScopeFunctionInProgress( void );
extern SCOPE ScopeForTemps( void );
extern SYMBOL ScopeFuncParm( unsigned );
extern void ScopeResultErrLocn( SEARCH_RESULT*, TOKEN_LOCN* );
extern boolean ScopeSameVFuns( SYMBOL, SYMBOL );
SYMBOL ScopeFindExactVfun( // FIND EXACT VIRTUAL FUNCTION IN DERIVED CLASS
SYMBOL vfun, // - virtual fun in a base class
SCOPE scope, // - scope for derived class
target_offset_t* a_adj_this,// - adjustment for this
target_offset_t* a_adj_retn)// - adjustment for return
;
void ScopeWalkAncestry( // VISIT ONCE ALL CLASSES IN ANCESTRY
SCOPE scope, // - class scope
void (*rtn)( // - walker routine
SCOPE, // -- base class scope
void * ), // -- user data
void *data ) // - user supplied data
;
void ScopeWalkDirectBases( // WALK DIRECT BASES
SCOPE scope, // - scope
void (*rtn)(BASE_CLASS*,void*), // - routine
void *data ) // - data to be passed
;
void ScopeWalkVirtualBases( // WALK VIRTUAL BASES
SCOPE scope, // - scope
void (*rtn)(BASE_CLASS*,void*), // - routine
void *data ) // - data to be passed
;
// defined in TYPE.C
extern TYPE TypeError;
extern type_flag BaseTypeClassFlags( TYPE );
extern TYPE TypedefRemove( TYPE );
extern TYPE TypedefModifierRemove( TYPE );
TYPE TypedefModifierRemoveOnly( TYPE );
extern arg_list *TypeArgList( TYPE type );
extern boolean TypeCompareExclude( TYPE, TYPE, type_exclude );
extern boolean TypesSameExclude( TYPE, TYPE, type_exclude );
extern boolean TypesIdentical( TYPE, TYPE );
// extern boolean TypesSame( TYPE, TYPE );
extern SYMBOL MakeTypeidSym( TYPE );
extern SYMBOL MakeVATableSym( SCOPE );
extern SYMBOL MakeVBTableSym( SCOPE, unsigned, target_offset_t );
extern SYMBOL MakeVFTableSym( SCOPE, unsigned, target_offset_t );
extern SYMBOL MakeVMTableSym( SCOPE, SCOPE, boolean * );
extern target_offset_t PackAlignment( target_offset_t, target_size_t );
extern boolean TypePartiallyDefined( TYPE );
extern boolean TypeDefined( TYPE );
extern boolean TypeAbstract( TYPE );
extern TYPE TypeNeedsCtor( TYPE );
extern boolean TypeIsCharString( TYPE );
extern boolean TypeIsClassInstantiation( TYPE );
extern boolean TypeIsConst( TYPE );
extern boolean TypeIsAnonymousEnum( TYPE );
extern boolean TypeHasEllipsisArg( TYPE );
extern boolean TypeHasNumArgs( TYPE, unsigned );
extern boolean TypeHasReverseArgs( TYPE );
extern boolean TypeVAStartWontWork( TYPE, int * );
extern TYPE DefaultIntType( TYPE );
extern TYPE CleanIntType( TYPE );
extern TYPE SegmentShortType( TYPE );
extern TYPE VoidType( TYPE );
extern TYPE ArrayType( TYPE );
extern TYPE ArithType( TYPE );
extern TYPE EnumType( TYPE );
extern TYPE BoolType( TYPE );
extern TYPE GenericType( TYPE );
extern TYPE BasedType( TYPE );
extern TYPE BasedPtrType( TYPE );
extern TYPE IntegralType( TYPE );
extern TYPE Integral64Type( TYPE );
extern TYPE FloatingType( TYPE );
extern TYPE MemberPtrType( TYPE );
extern TYPE MemberPtrClass( TYPE );
extern TYPE PointerType( TYPE );
extern TYPE PointerTypeEquivalent( TYPE );
extern TYPE AlignmentType( TYPE );
extern TYPE ArrayBaseType( TYPE type );
extern TYPE ArrayModifiedBaseType( TYPE type );
extern TYPE FunctionDeclarationType( TYPE );
extern type_flag FunctionThisFlags( SYMBOL );
extern type_flag
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?