Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

75 lines
2.2 KiB

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 );