vrq
Public Member Functions | Protected Member Functions

CSimpleType Class Reference

class for describing simple builtin data types More...

#include <csimpletype.h>

Inheritance diagram for CSimpleType:
CDataType CObject

List of all members.

Public Member Functions

 CSimpleType (VarDataType_t vt)
 Create data type instance.
 CSimpleType (VarDataType_t vt, list< CNode * > &rangeList)
 Create data type instance.
virtual CDataTypeClone (CObstack *heap)
 Create a new copy with a deep copy.
virtual int GetSignedAttr () const
 Get declaration's signed attribute.
virtual int GetUnsignedAttr () const
 Get declaration's unsigned attribute.
virtual void SetSignedAttr (int v)
 Set declaration's signed attribute.
virtual void SetUnsignedAttr (int v)
 Set declaration's unsigned attribute.
virtual int GetSigned () const
 Get declartion's signed property.
virtual int GetTwoState () const
 Get declaration's 2 state property.
virtual NodeType_t GetNodeType (void) const
 Get data type.
virtual int IsBaseWidthConstant (void) const
 Determine if base width (sans packed dimensions) of declaration is constant, ie dependent upon only constants and parameters.
virtual int IsBaseWidthVolatile (void) const
 Determine if base width (sans packed dimensions) of declaration is volatile, ie depend upon parameters or variables.
virtual int IsBaseWidthEvaluateable (void) const
 Determine if base width (sans packed dimensions) of declaration can be evaluated.
virtual INT32 GetBaseWidth (void) const
 Evaluate base width (sans packed dimensions) of declaration.
virtual CNodeGetBaseWidthExp () const
 Get expression for datatype's base width (sans packed dimensions).
virtual int IsVector () const
 Determine if complete data structure is a vector.
virtual int IsPacked () const
 Determine if complete data structure is packed.
virtual CNodeGetPackedMsb () const
 Get expression for declaration's msb.
virtual CNodeGetPackedLsb () const
 Get expression for declaration's lsb.
virtual CNodeGetPackedRange () const
 Get expression for datatype's overall packed or vector range (msb/lsb).
virtual INT32 GetPackedWidth (void) const
 Evaluate packed or vector width of declaration.
virtual CNodeGetPackedWidthExp () const
 Get expression for datatype's overall packed or vetor width.
virtual int PackedWidthDirection (void) const
 Evaluate current decl width direction.
virtual INT32 GetNumberOfPackedDimensions (void) const
 Get number of packed dimensions of declaration.
virtual CNodeGetPackedMsi (INT32 dim) const
 Get expression tree for upper limit of given packed array dimension.
virtual CNodeGetPackedLsi (INT32 dim) const
 Get expression tree for lower limit of packed array dimension.
virtual CNodeGetPackedRange (INT32 dim) const
 Get expression for range of packed array for dimension.
virtual void Dump (FILE *f) const
 Dump data type info to file descriptor.

Protected Member Functions

void Copy (CObstack *heap, const CSimpleType &o)
 Perform deep copy of given object to this one This should never be call directly, only by subclasses.
int GetVectorWidth () const
 Get width of vector.

Detailed Description

class for describing simple builtin data types


Constructor & Destructor Documentation

CSimpleType::CSimpleType ( VarDataType_t  vt  ) 

Create data type instance.

Parameters:
vt variable simple data type
CSimpleType::CSimpleType ( VarDataType_t  vt,
list< CNode * > &  rangeList 
)

Create data type instance.

Parameters:
vt variable simple data type
rangeList vector of packed ranges for declaration.

Member Function Documentation

virtual CDataType* CSimpleType::Clone ( CObstack heap  )  [virtual]

Create a new copy with a deep copy.

Parameters:
heap heap to use for allocation.

Implements CDataType.

void CSimpleType::Copy ( CObstack heap,
const CSimpleType o 
) [protected]

Perform deep copy of given object to this one This should never be call directly, only by subclasses.

Parameters:
heap heap to use for allocation.
o declaration to copy.
virtual void CSimpleType::Dump ( FILE *  f  )  const [virtual]

Dump data type info to file descriptor.

Parameters:
f file descriptor.

Implements CDataType.

virtual INT32 CSimpleType::GetBaseWidth ( void   )  const [virtual]

Evaluate base width (sans packed dimensions) of declaration.

Returns:
packed or vector width of declaration.

Implements CDataType.

virtual CNode* CSimpleType::GetBaseWidthExp (  )  const [virtual]

Get expression for datatype's base width (sans packed dimensions).

Returns:
width expression

Implements CDataType.

virtual NodeType_t CSimpleType::GetNodeType ( void   )  const [virtual]

Get data type.

Returns:
node type

Implements CDataType.

virtual INT32 CSimpleType::GetNumberOfPackedDimensions ( void   )  const [virtual]

Get number of packed dimensions of declaration.

Returns:
number of dimensions, 0 if non-array.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedLsb (  )  const [virtual]

Get expression for declaration's lsb.

Valid only for Packed and Vector declarations.

Returns:
lsb expression, NULL if scalar.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedLsi ( INT32  dim  )  const [virtual]

Get expression tree for lower limit of packed array dimension.

Parameters:
dim dimension.
Returns:
expression tree for packed lower limit.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedMsb (  )  const [virtual]

Get expression for declaration's msb.

Valid only for Packed and Vector declarations.

Returns:
msb expression, NULL if scalar.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedMsi ( INT32  dim  )  const [virtual]

Get expression tree for upper limit of given packed array dimension.

Parameters:
dim dimension.
Returns:
expression tree for packed upper limit.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedRange (  )  const [virtual]

Get expression for datatype's overall packed or vector range (msb/lsb).

Returns:
range expression, NULL if scalar.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedRange ( INT32  dim  )  const [virtual]

Get expression for range of packed array for dimension.

Parameters:
dim dimension to get.
Returns:
range expression for limit.

Reimplemented from CDataType.

virtual INT32 CSimpleType::GetPackedWidth ( void   )  const [virtual]

Evaluate packed or vector width of declaration.

Returns:
packed or vector width of declaration.

Reimplemented from CDataType.

virtual CNode* CSimpleType::GetPackedWidthExp (  )  const [virtual]

Get expression for datatype's overall packed or vetor width.

Returns:
width expression

Reimplemented from CDataType.

virtual int CSimpleType::GetSigned (  )  const [virtual]

Get declartion's signed property.

Returns:
value of signed property.

Implements CDataType.

virtual int CSimpleType::GetSignedAttr (  )  const [inline, virtual]

Get declaration's signed attribute.

Returns:
value of signed attribute.
virtual int CSimpleType::GetTwoState (  )  const [virtual]

Get declaration's 2 state property.

Returns:
value of 2 state property.

Implements CDataType.

virtual int CSimpleType::GetUnsignedAttr (  )  const [inline, virtual]

Get declaration's unsigned attribute.

Returns:
value of unsigned attribute.
int CSimpleType::GetVectorWidth (  )  const [protected]

Get width of vector.

Only valid for vector types

Returns:
width of vector in bits.
virtual int CSimpleType::IsBaseWidthConstant ( void   )  const [inline, virtual]

Determine if base width (sans packed dimensions) of declaration is constant, ie dependent upon only constants and parameters.

Returns:
non-zero if vector or packed width of declaration is constant.

Implements CDataType.

virtual int CSimpleType::IsBaseWidthEvaluateable ( void   )  const [inline, virtual]

Determine if base width (sans packed dimensions) of declaration can be evaluated.

Returns:
non-zero of packed or vector width of declaration can be evaluated.

Implements CDataType.

virtual int CSimpleType::IsBaseWidthVolatile ( void   )  const [inline, virtual]

Determine if base width (sans packed dimensions) of declaration is volatile, ie depend upon parameters or variables.

Returns:
non-zero of vector or packed width of declaration is volatile.

Implements CDataType.

virtual int CSimpleType::IsPacked (  )  const [virtual]

Determine if complete data structure is packed.

Packed data structures can be treated as a single vector.

Returns:
non-zero if complete data structure is packed.

Implements CDataType.

virtual int CSimpleType::IsVector (  )  const [virtual]

Determine if complete data structure is a vector.

Vectors are a multi-bit intergal type.

Returns:
non-zero if complete data structure is a vector.

Implements CDataType.

virtual int CSimpleType::PackedWidthDirection ( void   )  const [virtual]

Evaluate current decl width direction.

Expression must be constant.

Returns:
1 - big endian, -1 - little endian, 0 - cannot be determined

Reimplemented from CDataType.

virtual void CSimpleType::SetSignedAttr ( int  v  )  [inline, virtual]

Set declaration's signed attribute.

Parameters:
v value of signed attribute.
virtual void CSimpleType::SetUnsignedAttr ( int  v  )  [inline, virtual]

Set declaration's unsigned attribute.

Parameters:
v value of unsigned attribute.

The documentation for this class was generated from the following file: