76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
|
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
Copyright (c) 1989-1999 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
makexpr.hxx
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Routine prototypes for complex expression creation routines.
|
||
|
|
||
|
Notes:
|
||
|
|
||
|
|
||
|
History:
|
||
|
|
||
|
----------------------------------------------------------------------------*/
|
||
|
|
||
|
/****************************************************************************
|
||
|
* include files
|
||
|
***************************************************************************/
|
||
|
|
||
|
#include "nulldefs.h"
|
||
|
extern "C"
|
||
|
{
|
||
|
#include <stdio.h>
|
||
|
|
||
|
}
|
||
|
#include "expr.hxx"
|
||
|
#include "nodeskl.hxx"
|
||
|
#include "listhndl.hxx"
|
||
|
|
||
|
/****************************************************************************
|
||
|
* routine prototypes.
|
||
|
***************************************************************************/
|
||
|
|
||
|
expr_node * MakeRefExprOutOfDeref( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeReferentExpressionIfNecessary( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeDereferentExpressionIfNecessary( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeAddressExpressionNoMatterWhat( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeDerefExpressionOfCastPtrToType( node_skl * pType,
|
||
|
expr_node * pSrcExpr
|
||
|
);
|
||
|
expr_node * MakeExpressionOfCastPtrToType( node_skl * pType,
|
||
|
expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeExpressionOfCastToTypeName( PNAME pName,
|
||
|
expr_node * pExpr );
|
||
|
expr_proc_call * MakeProcCallOutOfParamExprList( PNAME ProcName,
|
||
|
node_skl * pProcType,
|
||
|
ITERATOR& ParamExprList );
|
||
|
expr_node * MakeAddressOfPointer( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeCastExprPtrToUChar( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeCastExprPtrToPtrToUChar( expr_node * pExpr );
|
||
|
|
||
|
expr_node * MakeCastExprPtrToVoid( expr_node * pExpr );
|
||
|
|
||
|
void SetPrefixes( ITERATOR& VarListToBeMangled,
|
||
|
char * pPrefix,
|
||
|
expr_node * pTargetExpr );
|
||
|
|
||
|
void ResetPrefixes( ITERATOR& VarListToBeMangled,
|
||
|
expr_node * pTargetExpr );
|
||
|
|
||
|
expr_node * Make_1_ArrayExpressionFromVarName( PNAME pName, int Dimension );
|
||
|
|
||
|
expr_node * CombineIntoLogicalAndExpr( ITERATOR& List );
|
||
|
|
||
|
expr_node * MakeAttrExprWithNullPtrChecks( expr_node * pExpr );
|