66 #if defined CDATATYPE_CC 96 #endif // CDATATYPE_CC 118 int numberOfPackedDimensions;
119 vector<CNode*> packedRange;
180 virtual bool Validate(
string& errorMessage ) {
return true; }
290 {
return numberOfPackedDimensions;}
309 {
return packedRange[dim]; }
316 virtual void Dump( FILE* f )
const = 0;
324 virtual void PreVisit1(
int (*callback)(
CNode*,
void*),
void* data );
357 #endif // CDATATYPE_H virtual void SetVarDataType(VarDataType_t v)
Set declaration's variable data type.
Definition: cdatatype.h:138
int declaration
Definition: cdatatype.h:52
virtual void SetConst(int v)
Set declaration's const property.
Definition: cdatatype.h:154
undefined
Definition: cdatatype.h:102
virtual int IsScalar() const
Determine if complete data structure is a scalar.
signed bit vector, includes integer
Definition: cdatatype.h:104
shortreal declaration
Definition: cdatatype.h:45
virtual int IsPackedWidthEvaluateable(void) const
Determine if packed or vector width of declaration can be evaluated.
virtual int PackedWidthDirection(void) const
Evaluate current decl width direction.
tagged union declaration
Definition: cdatatype.h:59
longint declaration
Definition: cdatatype.h:55
virtual INT32 GetBaseWidth(void) const =0
Evaluate base width (sans packed dimensions) of declaration.
realtime declaration
Definition: cdatatype.h:46
virtual CNode * GetPackedMsb() const
Get expression for declaration's msb.
virtual VarDataType_t GetVarDataType() const
Get declaration's variable data type.
Definition: cdatatype.h:143
proxy declaration
Definition: cdatatype.h:62
long INT32
Short cut for signed 32 bit integer.
Definition: glue.h:38
virtual NodeType_t GetNodeType(void) const =0
Get data type.
register declaration
Definition: cdatatype.h:47
virtual int GetConst() const
Get declaration's const property.
Definition: cdatatype.h:159
virtual CNode * GetBaseWidthExp() const =0
Get expression for datatype's base width (sans packed dimensions)
virtual CDataType * Clone(CObstack *heap)=0
Create a new copy with a deep copy.
virtual CNode * GetPackedLsi(INT32 dim) const
Get expression tree for lower limit of packed array dimension.
virtual void Dump(FILE *f) const =0
Dump data type info to file descriptor.
Base class for describing data types.
Definition: cdatatype.h:112
byte declaration
Definition: cdatatype.h:53
real declaration
Definition: cdatatype.h:44
unsigned bit vector
Definition: cdatatype.h:106
virtual int IsPacked() const =0
Determine if complete data structure is packed.
virtual CNode * GetPackedRange() const
Get expression for datatype's overall packed or vector range (msb/lsb)
virtual CNode * GetPackedLsb() const
Get expression for declaration's lsb.
Bulk object allocation object.
Definition: cobstack.h:46
Primary data structure representing parse tree nodes.
Definition: cnode.h:197
CDataType(VarDataType_t t)
Create data type instance.
integer declaration
Definition: cdatatype.h:50
virtual int GetTwoState() const =0
Get declaration's 2 state property.
virtual bool Validate(string &errorMessage)
Validate data structure.
Definition: cdatatype.h:180
virtual INT32 GetPackedWidth(void) const
Evaluate packed or vector width of declaration.
string declaration
Definition: cdatatype.h:64
integer declaration
Definition: cdatatype.h:51
virtual int IsBaseWidthConstant(void) const =0
Determine if base width (sans packed dimensions) of declaration is constant, ie dependent upon only c...
virtual int IsBaseWidthEvaluateable(void) const =0
Determine if base width (sans packed dimensions) of declaration can be evaluated. ...
virtual int IsPackedWidthConstant(void) const
Determine if packed or vector width of declaration is constant, ie dependent upon only constants and ...
virtual int IsVector() const =0
Determine if complete data structure is a vector.
virtual int IsPackedWidthVolatile(void) const
Determine if packed or vector width of declaration is volatile, ie depend upon parameters or variable...
virtual void PreVisit1(int(*callback)(CNode *, void *), void *data)
Walk tree invoking callback on each node before children have been visited.
class declaration
Definition: cdatatype.h:61
shortint declaration
Definition: cdatatype.h:54
virtual INT32 GetNumberOfPackedDimensions(void) const
Get number of packed dimensions of declaration.
Definition: cdatatype.h:289
event - have width 0
Definition: cdatatype.h:105
Base class for vrq objects.
Definition: cobject.h:41
const char * varDataTypeName[]
Array to convert DataType_t to character string.
Definition: cdatatype.h:70
virtual CNode * GetPackedRange(INT32 dim) const
Get expression for range of packed array for dimension.
Definition: cdatatype.h:308
interface declaration
Definition: cdatatype.h:63
real - have width 0
Definition: cdatatype.h:103
virtual CNode * GetPackedMsi(INT32 dim) const
Get expression tree for upper limit of given packed array dimension.
virtual int IsBaseWidthVolatile(void) const =0
Determine if base width (sans packed dimensions) of declaration is volatile, ie depend upon parameter...
struct declaration
Definition: cdatatype.h:57
no type declaration
Definition: cdatatype.h:43
event declaration
Definition: cdatatype.h:56
VarDataType_t
Variable data types.
Definition: cdatatype.h:42
NodeType_t
Expression node type.
Definition: cdatatype.h:101
time declaration
Definition: cdatatype.h:48
virtual void PostSubVisit1(CNode *(*callback)(CNode *, void *), void *data)
Walk tree invoking callback on each node after children have been visited.
virtual CNode * GetPackedWidthExp() const
Get expression for datatype's overall packed or vector width.
virtual void PostVisit1(void(*callback)(CNode *, void *), void *data)
Walk tree invoking callback on each node after children have been visited.
enum declaration
Definition: cdatatype.h:60
virtual const char * GetVarDataTypeName() const
Get declaration's variable data type as a string.
Definition: cdatatype.h:148
logic declaration
Definition: cdatatype.h:49
union declaration
Definition: cdatatype.h:58
virtual int GetSigned() const =0
Get declartion's signed property.
void Copy(CObstack *heap, const CDataType &o)
Perform deep copy of given object to this one This should never be call directly, only by subclasses...