ptree.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 411 行 · 第 1/2 页
H
411 行
} type;
struct { // PT_SYMBOL (normal)
SYMBOL symbol; // - symbol entry
SEARCH_RESULT * result; // - result type from look-up
} symcg;
struct { // PT_DUP_EXPR (normal)
PTREE subtree[1]; // - subtree or NULL
PTREE node; // - duplication partner
} dup;
struct { // PT_IC
unsigned opcode; // - opcode
CGVALUE value; // - value
} ic;
PTREE subtree[2]; // all others
} u;
} PTREE_NODE;
extern PTREE PTreeAlloc( void );
extern PTREE PTreeAssign( PTREE to, PTREE from );
extern PTREE PTreeAssignReloc( PTREE to, PTREE from, RELOC_LIST *reloc_list );
extern PTREE PTreeFree( PTREE );
extern void PTreeFreeSubtrees( PTREE );
extern PTREE PTreeBoolConstant( int );
extern PTREE PTreeIntConstant( signed long, type_id );
extern PTREE PTreeInt64Constant( signed_64, type_id );
//extern PTREE PTreeUIntConstant( unsigned long, type_id );
extern PTREE PTreeFloatingConstantStr( char *, unsigned, type_id );
extern PTREE PTreeFloatingConstant( CPP_FLOAT *, type_id );
extern PTREE PTreeId( char * );
extern PTREE PTreeIdSym( SYMBOL );
extern PTREE PTreeDottedSyms( SYMBOL base, SYMBOL qual );
extern PTREE PTreeSymbol( SYMBOL, char * );
extern PTREE PTreeThis( void );
extern PTREE PTreeCDtorExtra( void );
extern PTREE PTreeLiteral( STRING_CONSTANT );
extern PTREE PTreeLiteralWide( STRING_CONSTANT );
extern PTREE PTreeDupExpr( PTREE );
extern PTREE PTreeType( TYPE );
extern PTREE PTreeForceIntegral( PTREE );
extern PTREE PTreeNonZeroConstantExpr( PTREE );
extern PTREE PTreeTListAppend( PTREE, PTREE );
extern PTREE PTreeReplaceLeft( PTREE, PTREE );
extern PTREE PTreeReplaceRight( PTREE, PTREE );
extern PTREE ThrowsAnything( void );
extern PTREE ConvertToType( PTREE );
typedef enum { // parse tree traversal states
PTREE_LEFT, // - descend down left subtree (if possible)
PTREE_RIGHT, // - descend down right subtree (if possible)
PTREE_PROCESS, // - process current tree node
PTREE_UNWIND, // - move back up to parent of current tree node
} PTREE_STATE;
PTREE PTreeBinary( // CREATE BINARY PTREE NODE
CGOP cgop, // - operator for code generation
PTREE sub_1, // - subtree to left
PTREE sub_2 ) // - subtree to right
;
PTREE PTreeCopySrcLocation( // COPY LOCATION OF SOURCE
PTREE tgt, // - target node
PTREE src ) // - source node
;
PTO_FLAG PTreeEffFlags( // GET MEANINGFUL FLAGS FOR A PTREE OPERAND
PTREE node ) // - node
;
PTREE PTreeSetErrLoc( // SET THE ERROR LOCATION FOR A TREE
PTREE tree ) // - tree with error
;
msg_status_t PTreeErrorExpr( // ISSUE ERROR MESSAGE FOR PTREE NODE
PTREE expr, // - node for error
unsigned err_code ) // - error code
;
void PTreeErrorExprName( // ISSUE ERROR MESSAGE FOR PTREE NODE, NAME
PTREE expr, // - node for error
unsigned err_code, // - error code
char *name ) // - name
;
void PTreeErrorExprSym( // ISSUE ERROR MESSAGE FOR PTREE NODE, SYMBOL
PTREE expr, // - node for error
unsigned err_code, // - error code
SYMBOL sym ) // - symbol
;
void PTreeErrorExprSymInf( // ISSUE ERROR MESSAGE FOR PTREE NODE, SYMBOL
PTREE expr, // - node for error
unsigned err_code, // - error code
SYMBOL sym ) // - symbol
;
void PTreeErrorExprType( // ISSUE ERROR MESSAGE FOR PTREE NODE, TYPE
PTREE expr, // - node for error
unsigned err_code, // - error code
TYPE type ) // - type
;
void PTreeErrorExprNameType( // ISSUE ERROR MESSAGE FOR PTREE NODE, NAME, TYPE
PTREE expr, // - node for error
unsigned err_code, // - error code
char *name, // - name
TYPE type ) // - type
;
PTREE PTreeErrorNode( // SET NODE TO BE AN ERROR
PTREE curr ) // - node to be transformed
;
PTREE PTreeIc( // CREATE PT_IC NODE
unsigned opcode, // - IC opcode
CGVALUE value ) // - IC value
;
PTO_FLAG PTreeOpFlags( // GET FLAGS FOR A PTREE NODE
PTREE curr ) // - current node
;
PTREE PTreeOp( // FETCH (OVER COMMAS) PTREE PTR.
PTREE *addr_expr ) // - addr( PTREE node )
;
PTREE PTreeOpLeft( // GET LEFT NODE, SKIPPING "," OPERATOR
PTREE expr ) // - expression
;
PTREE PTreeOpRight( // GET RIGHT NODE, SKIPPING "," OPERATOR
PTREE expr ) // - expression
;
PTREE PTreePromoteLocn( // ENSURE TOP OF TREE HAS SOURCE LOCATION
PTREE tree ) // - the tree
;
boolean PTreePropogateError( // CHECK AND PROPOGATE ERRORS FROM SUB-TREES
PTREE curr ) // - current node
;
PTREE *PTreeRef( // FIND REFERENCE TO OPERAND
PTREE *tgt ) // - target location
;
PTREE *PTreeRefLeft( // FIND REFERENCE TO LEFT OPERAND
PTREE expr ) // - expression
;
PTREE *PTreeRefRight( // FIND REFERENCE TO RIGHT OPERAND
PTREE expr ) // - expression
;
PTREE PTreeSetLocn( // SET LOCATION IN A PTREE NODE
PTREE tree, // - node
TOKEN_LOCN *locn ) // - location
;
PTREE PTreeTraverseInitRef( // TRAVERSE A PTREE FOR REFERENCE INIT.
PTREE tree, // - tree to be traversed
PTREE (*visit_rtn) // - visiting routine
( PTREE curr ) ) // - - addr( current node )
;
PTREE PTreeTraversePostfix( // TRAVERSE A PTREE IN (LEFT,RIGHT,SELF) ORDER
PTREE tree, // - tree to be traversed
PTREE (*visit_rtn) // - visiting routine
( PTREE curr ) ) // - - current node
;
PTREE PTreeTraversePrefix( // TRAVERSE A PTREE IN (SELF,LEFT,RIGHT) ORDER
PTREE tree, // - tree to be traversed
PTREE (*visit_rtn) // - visiting routine
( PTREE curr ) ) // - - addr( current node )
;
PTREE PTreeCopyPrefix( // COPY A PTREE IN (SELF,LEFT,RIGHT) ORDER
PTREE tree, // - tree to be copied
PTREE (*copy_rtn) // - copy routine
( PTREE curr, // - - addr( current node )
void *param ), // - - parameter
void *param ) // param to pass to copy_rtn
;
PTREE PTreeUnary( // CREATE UNARY PTREE NODE
CGOP cgop, // - operator for code generation
PTREE sub_1 ) // - subtree to left
;
msg_status_t PTreeWarnExpr( // ISSUE WARNING MESSAGE FOR PTREE NODE
PTREE expr, // - node for error
unsigned err_code ) // - error code
;
extern PTREE SimpleDestructorId( TYPE );
extern PTREE MakeDestructorId( PTREE );
extern PTREE MakeDestructorIdFromType( DECL_SPEC * );
extern PTREE MakeOperatorId( CGOP );
extern PTREE MakeUserConversionId( DECL_SPEC *, DECL_INFO * );
extern PTREE MakeFunctionLikeCast( DECL_SPEC *, PTREE );
extern PTREE MakeNormalCast( PTREE, PTREE );
extern PTREE MakeMemInitItem( DECL_SPEC *, PTREE, PTREE, TOKEN_LOCN * );
extern PTREE MakeIdFromType( DECL_SPEC * );
extern PTREE MakeDeleteExpr( PTREE, CGOP, PTREE );
extern PTREE MakeGlobalId( PTREE );
extern PTREE MakeGlobalOperatorId( PTREE, CGOP );
extern PTREE MakeScopedId( PTREE );
extern PTREE CheckScopedId( PTREE );
extern PTREE MakeScopedDestructorId( PTREE, PTREE );
extern PTREE MakeScopedUserConversionId( PTREE, PTREE );
extern PTREE MakeScopedOperatorId( PTREE, CGOP );
extern boolean IsLinkerConstant( PTREE, PTREE *, target_size_t * );
extern boolean IsStringConstant( PTREE, boolean * );
extern SYMBOL FunctionSymbol( PTREE );
extern PTREE PTreeIntrinsicOperator( PTREE, CGOP );
extern PTREE PTreeExtractLocn( PTREE, TOKEN_LOCN * );
extern void PTreeDeleteSizeExpr( PTREE );
extern PTREE PTreeStringLiteralConcat( PTREE, PTREE );
extern PTREE CutAwayQualification( PTREE );
extern PTREE MakeBuiltinIsFloat( PTREE );
extern PTREE PTreeOffsetof( PTREE, PTREE );
extern PTREE PTreeCheckFloatRepresentation( PTREE tree );
extern PTREE PTreeMSSizeofKludge( PTREE );
extern PTREE PTreeGetIndex( PTREE );
extern PTREE PTreeMapIndex( PTREE );
unsigned PTreeGetFPRaw( PTREE, char *, unsigned );
#define _PTREE_H
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?