104 #if defined CDECL_CPP 174 {
return static_cast<Flag>(((unsigned)f1 | (
unsigned)f2)); }
176 {
return static_cast<Flag>(((unsigned)f1 | (
unsigned)f2) | (
unsigned)f3); }
185 vector<CNode*> unpackedRange;
186 int numberOfUnpackedDimensions;
206 MASSERT( flags & eFLAG_DATATYPE );
230 if( numberOfUnpackedDimensions ) {
242 if( numberOfUnpackedDimensions ) {
253 if( numberOfUnpackedDimensions ) {
264 if( numberOfUnpackedDimensions ) {
275 if( numberOfUnpackedDimensions ) {
313 return numberOfUnpackedDimensions;
332 MASSERT( flags & eFLAG_ARRAY );
333 numberOfUnpackedDimensions = dim;
334 unpackedRange.reserve( dim );
348 { MASSERT(flags & eFLAG_ARRAY); unpackedRange[dim] = v; }
418 int HasAttribute(
char* name,
CNode* n=NULL,
int init = 1 );
455 result.push_back(
ePARAM );
459 result.push_back(
eINPUT );
461 result.push_back(
eINOUT );
464 result.push_back( type );
521 fprintf( f,
"%s: %s, defined in '%s' line %d\n",
545 { MASSERT( flags & eFLAG_PRAGMA );pragmas = p; }
566 numberOfUnpackedDimensions = 0;
567 declStatement = FALSE;
575 this->dataType = dataType;
596 virtual void PreVisit1(
int (*func)(
CNode*,
void*),
void* data );
597 virtual void PostVisit1(
void (*func)(
CNode*,
void*),
void* data );
598 virtual void PostSubVisit1(
CNode* (*func)(
CNode*,
void*),
void* data );
virtual int GetVarAttr()
Get declaration's var attribute.
Definition: cdecl.h:370
Decl_t GetType(void)
Get declaration type.
Definition: cdecl.h:486
declaration superclass for all net types
Definition: cdecl.h:95
void SetDeclStatementCreated(void)
Set declaration statement created attribute.
Definition: cdecl.h:474
fork/join block declaration
Definition: cdecl.h:79
virtual void SetWireAttr(Wire_t v)
Set declaration's wire attribute.
Definition: cdecl.h:218
int lineno
file line number
Definition: cdecl.h:48
virtual CNode * GetLsb() const
Get expression for declaration's lsb.
Definition: cdecl.h:296
virtual int IsWidthVolatile(void) const
Determine if packed width of declaration is volatile, ie depend upon parameters or variables...
Definition: cdecl.h:241
triand type
Definition: cdecl.h:61
virtual INT32 GetNumberOfUnpackedDimensions(void)
Get number of unpacked dimensions of declaration.
Definition: cdecl.h:312
virtual void SetDataType(CDataType *dt)
Set declartion's data type property.
Definition: cdecl.h:205
virtual int IsPackedWidthConstant(void) const
Determine if packed or vector width of declaration is constant, ie dependent upon only constants and ...
virtual void DumpDeclInfo(FILE *f)
Dump declaration name, type and location to file descriptor.
Definition: cdecl.h:519
Flag
Definition: cdecl.h:167
Decl_t
Declaration types.
Definition: cdecl.h:74
tri1 type
Definition: cdecl.h:64
virtual void SetScalared(int v)
Set declartion's scalared property.
Definition: cdecl.h:396
virtual CNode * GetPackedLsb() const
Get expression for declaration's lsb.
virtual int IsPackedWidthVolatile(void) const
Determine if packed or vector width of declaration is volatile, ie depend upon parameters or variable...
attribute declaration
Definition: cdecl.h:97
named block declaration
Definition: cdecl.h:78
supply1 type
Definition: cdecl.h:68
CDecl(CSymbol *aSymbol, Coord_t *aLoc, Decl_t aType, CDataType *dataType, Flag flags)
Create instance of declaration.
Definition: cdecl.h:561
long INT32
Short cut for signed 32 bit integer.
Definition: glue.h:38
virtual NodeType_t GetNodeType(void) const =0
Get data type.
genvar declaration
Definition: cdecl.h:92
virtual int IsPackedWidthEvaluateable(void) const
Determine if packed or vector width of declaration can be evaluated.
module declaration
Definition: cdecl.h:81
virtual int IsWidthEvaluateable(void) const
Determine if packed width of declaration can be evaluated.
Definition: cdecl.h:252
trior type
Definition: cdecl.h:63
virtual void SetUnpackedRange(INT32 dim, CNode *v)
Set expression for range of unpacked array for declaration.
Definition: cdecl.h:347
virtual CNode * GetWidthExp(void) const
Get expression representing width of declaration.
Definition: cdecl.h:274
port declaration
Definition: cdecl.h:88
Base class for describing data types.
Definition: cdatatype.h:112
const char * wireName[]
Array to convert Wire_t to character string.
Definition: cdecl.h:108
inout declaration
Definition: cdecl.h:86
generate block declaration
Definition: cdecl.h:80
virtual int IsPacked() const =0
Determine if complete data structure is packed.
const char * filename
file name
Definition: cdecl.h:49
Structure to hold file coordinates.
Definition: cdecl.h:47
Holder for character strings.
Definition: csymbol.h:44
static Flag Or(Flag f1, Flag f2)
Definition: cdecl.h:173
Bulk object allocation object.
Definition: cobstack.h:46
void SetAttributes(CNode *attr)
Set declarations's attributes.
Definition: cdecl.h:406
virtual void Dump(FILE *f)
Dump declaration info to file descriptor.
Definition: cdecl.h:512
package declaration
Definition: cdecl.h:100
CNode * GetAttributes()
Get declaration's attributes.
Definition: cdecl.h:411
virtual CNode * GetPackedMsb() const
Get expression for declaration's msb.
int DeclStatementCreated(void)
Get declaration statement create attibute.
Definition: cdecl.h:480
const char * declName[]
Array to convert Decl_t to character string.
Definition: cdecl.h:126
virtual void SetVectored(int v)
Set declartion's vectored property.
Definition: cdecl.h:386
Primary data structure representing parse tree nodes.
Definition: cnode.h:197
instance declaration
Definition: cdecl.h:83
virtual CNode * GetPackedWidthExp() const
Get expression for datatype's overall packed or vector width.
virtual void SetVarAttr(int v)
Set declaration's var attribute.
Definition: cdecl.h:365
virtual void SetAutomatic(int v)
Set declaration's automatic property.
Definition: cdecl.h:376
tri type
Definition: cdecl.h:59
virtual INT32 GetPackedWidth(void) const
Evaluate packed or vector width of declaration.
static void GetMembers(Decl_t type, list< Decl_t > &result)
Get a list of members of the given declaration class/type.
Definition: cdecl.h:451
output declaration
Definition: cdecl.h:85
unspecified declaration
Definition: cdecl.h:87
type declaration
Definition: cdecl.h:93
virtual CNode * GetUnpackedRange(INT32 dim)
Get expression for range of array for dimension.
Definition: cdecl.h:341
virtual int GetConstAttr()
Get declaration's const attribute.
Definition: cdecl.h:359
const char * GetName(void) const
Get symbol's text.
Decl_t GetClass(void)
Get class of declaration.
Definition: cdecl.h:431
declaration superclass for all port dirs
Definition: cdecl.h:96
virtual INT32 GetWidth(void) const
Evaluate packed width of declaration.
Definition: cdecl.h:263
Base class for describing declaration objects.
Definition: cdecl.h:164
virtual Wire_t GetWireAttr()
Get declartion's wire type property.
Definition: cdecl.h:223
virtual int GetAutomatic()
Get declaration's automatic property.
Definition: cdecl.h:381
supply0 type
Definition: cdecl.h:67
trireg type
Definition: cdecl.h:66
Coord_t * GetCoord(void)
Get file coordinates for declaration.
Definition: cdecl.h:504
static Flag Or(Flag f1, Flag f2, Flag f3)
Definition: cdecl.h:175
void SetSymbol(CSymbol *aSymbol)
Set declaration's symbol.
Definition: cdecl.h:534
forward reference declaration (used by parser only)
Definition: cdecl.h:89
virtual int WidthDirection(void) const
Evaluate current decl width direction.
Definition: cdecl.h:304
const char * GetTypeName(void)
Get declaration type as a string.
Definition: cdecl.h:492
void SetPragmas(CNode *p)
Set declaration pragmas.
Definition: cdecl.h:544
enum declaration
Definition: cdecl.h:99
parameter declaration
Definition: cdecl.h:76
Base class for vrq objects.
Definition: cobject.h:41
virtual int GetScalared()
Get declartion's scalared property.
Definition: cdecl.h:401
macro module declaration
Definition: cdecl.h:82
CSymbol * GetSymbol(void)
Get declaration's symbol.
Definition: cdecl.h:539
list< string > pragmas
Definition: main.cc:268
wor type
Definition: cdecl.h:62
unspecified declaration used for wildcard
Definition: cdecl.h:101
void SetCoord(Coord_t *aLoc)
Set declaration coordinate.
Definition: cdecl.h:498
virtual int IsWidthConstant(void) const
Determine if packed width of declaration is constant, ie dependent upon only constants and parameters...
Definition: cdecl.h:229
virtual CNode * GetMsb() const
Get expression for declaration's msb.
Definition: cdecl.h:288
virtual CDataType * GetDataType()
Get declartion's data type property.
Definition: cdecl.h:213
NodeType_t GetNodeType(void)
Get node type of decl.
Definition: cdecl.h:423
function/task declaration
Definition: cdecl.h:90
CNode * GetPragmas()
Get declaration pragmas.
Definition: cdecl.h:550
virtual void SetConstAttr(int v)
Set declaration's const attribute.
Definition: cdecl.h:354
input declaration
Definition: cdecl.h:84
localparam declaration
Definition: cdecl.h:77
NodeType_t
Expression node type.
Definition: cdatatype.h:101
specify block declaration
Definition: cdecl.h:91
const char * GetName(void)
Shortcut to get declaration's name.
Definition: cdecl.h:529
Wire_t
Wire types.
Definition: cdecl.h:56
virtual void SetNumberOfUnpackedDimensions(INT32 dim)
Set number of unpacked dimensions for declaration.
Definition: cdecl.h:331
virtual int GetVectored()
Get declartion's vectored property.
Definition: cdecl.h:391
variable declaration
Definition: cdecl.h:75
no wire type
Definition: cdecl.h:57
tri0 type
Definition: cdecl.h:65
wire type
Definition: cdecl.h:58
wand type
Definition: cdecl.h:60
virtual int PackedWidthDirection(void) const
Evaluate current decl width direction.
udp declaration
Definition: cdecl.h:98