windows-nt/Source/XPSP1/NT/com/rpc/midl/codegen/ilanaly.hxx
2020-09-26 16:20:57 +08:00

70 lines
2.2 KiB
C++

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Copyright (c) 1999-1999 Microsoft Corporation
Module Name:
ilanaly.cxx
Abstract:
Intermediate langangage analyzer/optimizer
Notes:
Author:
mzoran Dec-13-1999 Created.
Notes:
----------------------------------------------------------------------------*/
class CG_ILANALYSIS_INFO
{
private:
unsigned long bIsConformant : 1;
unsigned long bIsVarying : 1;
unsigned long bIsForcedBogus : 1;
unsigned long bIsFullBogus : 1;
unsigned long bIsMutiDimensional : 1;
unsigned long bHasUnknownBuffer : 1;
unsigned long bIsArrayofStrings : 1;
unsigned long Dimensions : 8;
public:
CG_ILANALYSIS_INFO() :
bIsConformant( false ),
bIsVarying( false ),
bIsForcedBogus( false ),
bIsFullBogus( false ),
bIsMutiDimensional( false ),
bHasUnknownBuffer( false ),
bIsArrayofStrings( false )
{
}
bool IsConformant() { return (bool)bIsConformant; }
bool IsVarying() { return (bool)bIsVarying; }
bool IsForcedBogus() { return (bool)bIsForcedBogus; }
bool IsFullBogus() { return (bool)bIsFullBogus; }
bool IsMultiDimensional() { return (bool)bIsMutiDimensional; }
bool HasUnknownBuffer() { return (bool)bHasUnknownBuffer; }
bool IsArrayofStrings() { return (bool)bIsArrayofStrings; }
unsigned char GetDimensions() { return (unsigned char)Dimensions; }
void SetIsConformant( ) { bIsConformant = true; }
void SetIsVarying( ) { bIsVarying = true; }
void SetIsForcedBogus( ) { bIsForcedBogus = true; }
void SetIsFullBogus( ) { bIsFullBogus = true; }
void SetIsMutiDimensional( ) { bIsMutiDimensional = true; }
void SetHasUnknownBuffer( ) { bHasUnknownBuffer = true; }
void SetIsArrayofStrings( ) { bIsArrayofStrings = true; }
void SetDimensions(unsigned char NewDims) { Dimensions = NewDims; }
void MergeAttributes( CG_ILANALYSIS_INFO *pMerge );
};