vrq
Public Member Functions | Protected Attributes | List of all members
CBlock Class Reference

Declaration class for block constructs. More...

#include <cblock.h>

Inheritance diagram for CBlock:
CDecl CObject CFunction CModule CSpecify

Public Member Functions

 CBlock (CSymbol *name, Coord_t *aLoc)
 Constructor for BLOCK declarations. More...
 
 CBlock (CSymbol *name, Coord_t *aLoc, Decl_t dtype)
 Constructor for BLOCK declarations. More...
 
virtual ~CBlock ()
 Object destructor. More...
 
virtual CDeclClone (CObstack *heap)
 Create a clone of this declaration. More...
 
virtual void Add (CInstance *instance)
 
virtual void Add (CParam *param)
 
virtual void Add (CNet *net)
 
virtual void Add (CVar *var)
 
virtual void Add (CBlock *child)
 
virtual void Add (CFref *fref)
 
virtual void Add (CGenvar *genvar)
 
virtual void Add (CNode *code)
 Add parse tree code to this block. More...
 
void SetParent (CBlock *parent)
 Set this block's parent block. More...
 
CBlockGetParent (void)
 Get this block's parent block. More...
 
void SetTrailingLabel (CSymbol *s)
 Set this block's end label. More...
 
CSymbolGetTrailingLabel (void)
 Get this block's end label. More...
 
virtual void Dump (FILE *f)
 Dump information about block to a file. More...
 
vector< CNet * > * GetNetList ()
 Get list of object's nets. More...
 
vector< CVar * > * GetVarList ()
 Get list of object's registers. More...
 
vector< CParam * > * GetParamList ()
 Get list of object's parameters. More...
 
vector< CGenvar * > * GetGenvarList ()
 Get list of object's genvars. More...
 
virtual vector< CInstance * > * GetInstanceList ()
 Get list if module instances. More...
 
virtual CNodeGetCodeList ()
 Get blocks parse tree. More...
 
virtual void SetCodeList (CNode *list)
 Set block's parse tree. More...
 
vector< CBlock * > * GetChildList ()
 Get list of block's child blocks. More...
 
virtual vector< CPortDir * > * GetPortDirList ()
 Get list of block's port declarations. More...
 
virtual void SetSymtab (CSymtab< CDecl > &symtab)
 Set block's symbol table. More...
 
virtual CSymtab< CDecl > & GetSymtab ()
 Get block's symbol table. More...
 
- Public Member Functions inherited from CDecl
virtual void SetDataType (CDataType *dt)
 Set declartion's data type property. More...
 
virtual CDataTypeGetDataType ()
 Get declartion's data type property. More...
 
virtual void SetWireAttr (Wire_t v)
 Set declaration's wire attribute. More...
 
virtual Wire_t GetWireAttr ()
 Get declartion's wire type property. More...
 
virtual int IsWidthConstant (void) const
 Determine if packed width of declaration is constant, ie dependent upon only constants and parameters. More...
 
virtual int IsWidthVolatile (void) const
 Determine if packed width of declaration is volatile, ie depend upon parameters or variables. More...
 
virtual int IsWidthEvaluateable (void) const
 Determine if packed width of declaration can be evaluated. More...
 
virtual INT32 GetWidth (void) const
 Evaluate packed width of declaration. More...
 
virtual CNodeGetWidthExp (void) const
 Get expression representing width of declaration. More...
 
virtual CNodeGetMsb () const
 Get expression for declaration's msb. More...
 
virtual CNodeGetLsb () const
 Get expression for declaration's lsb. More...
 
virtual int WidthDirection (void) const
 Evaluate current decl width direction. More...
 
virtual INT32 GetNumberOfUnpackedDimensions (void)
 Get number of unpacked dimensions of declaration. More...
 
virtual CNodeGetUnpackedMsi (INT32 dim)
 Get expression tree for upper limit of given packed array dimension. More...
 
virtual CNodeGetUnpackedLsi (INT32 dim)
 Get expression tree for lower limit of unpacked array dimension. More...
 
virtual void SetNumberOfUnpackedDimensions (INT32 dim)
 Set number of unpacked dimensions for declaration. More...
 
virtual CNodeGetUnpackedRange (INT32 dim)
 Get expression for range of array for dimension. More...
 
virtual void SetUnpackedRange (INT32 dim, CNode *v)
 Set expression for range of unpacked array for declaration. More...
 
virtual void SetConstAttr (int v)
 Set declaration's const attribute. More...
 
virtual int GetConstAttr ()
 Get declaration's const attribute. More...
 
virtual void SetVarAttr (int v)
 Set declaration's var attribute. More...
 
virtual int GetVarAttr ()
 Get declaration's var attribute. More...
 
virtual void SetAutomatic (int v)
 Set declaration's automatic property. More...
 
virtual int GetAutomatic ()
 Get declaration's automatic property. More...
 
virtual void SetVectored (int v)
 Set declartion's vectored property. More...
 
virtual int GetVectored ()
 Get declartion's vectored property. More...
 
virtual void SetScalared (int v)
 Set declartion's scalared property. More...
 
virtual int GetScalared ()
 Get declartion's scalared property. More...
 
void SetAttributes (CNode *attr)
 Set declarations's attributes. More...
 
CNodeGetAttributes ()
 Get declaration's attributes. More...
 
int HasAttribute (char *name, CNode *n=NULL, int init=1)
 Determine if declaration has the given attribute. More...
 
NodeType_t GetNodeType (void)
 Get node type of decl. More...
 
Decl_t GetClass (void)
 Get class of declaration. More...
 
void SetDeclStatementCreated (void)
 Set declaration statement created attribute. More...
 
int DeclStatementCreated (void)
 Get declaration statement create attibute. More...
 
Decl_t GetType (void)
 Get declaration type. More...
 
const char * GetTypeName (void)
 Get declaration type as a string. More...
 
void SetCoord (Coord_t *aLoc)
 Set declaration coordinate. More...
 
Coord_tGetCoord (void)
 Get file coordinates for declaration. More...
 
virtual void DumpDeclInfo (FILE *f)
 Dump declaration name, type and location to file descriptor. More...
 
const char * GetName (void)
 Shortcut to get declaration's name. More...
 
void SetSymbol (CSymbol *aSymbol)
 Set declaration's symbol. More...
 
CSymbolGetSymbol (void)
 Get declaration's symbol. More...
 
void SetPragmas (CNode *p)
 Set declaration pragmas. More...
 
CNodeGetPragmas ()
 Get declaration pragmas. More...
 
virtual void PreVisit1 (int(*func)(CNode *, void *), void *data)
 
virtual void PostVisit1 (void(*func)(CNode *, void *), void *data)
 
virtual void PostSubVisit1 (CNode *(*func)(CNode *, void *), void *data)
 
- Public Member Functions inherited from CObject
void * operator new (size_t size, CObstack *stack)
 Allocate object on CObstack heap. More...
 
void operator delete (void *object)
 Destroy object. More...
 

Protected Attributes

vector< CParam * > paramList
 
vector< CVar * > varList
 
vector< CGenvar * > genvarList
 
vector< CFref * > frefList
 
vector< CNet * > netList
 
vector< CInstance * > instanceList
 list of module instances. More...
 
CBlockparent
 
vector< CBlock * > children
 
CSymtab< CDeclsymtab
 
CSymboltrailingLabel
 

Additional Inherited Members

- Public Types inherited from CDecl
enum  Flag { eFLAG_NONE = 0, eFLAG_PRAGMA = 1, eFLAG_ARRAY = 2, eFLAG_DATATYPE = 4 }
 
- Static Public Member Functions inherited from CDecl
static Flag Or (Flag f1, Flag f2)
 
static Flag Or (Flag f1, Flag f2, Flag f3)
 
static void GetMembers (Decl_t type, list< Decl_t > &result)
 Get a list of members of the given declaration class/type. More...
 
- Protected Member Functions inherited from CDecl
 CDecl (CSymbol *aSymbol, Coord_t *aLoc, Decl_t aType, CDataType *dataType, Flag flags)
 Create instance of declaration. More...
 
void Copy (CObstack *heap, const CDecl &o)
 Perform deep copy of given object to this one This should never be call directly, only by subclasses. More...
 

Detailed Description

Declaration class for block constructs.

Constructor & Destructor Documentation

CBlock::CBlock ( CSymbol name,
Coord_t aLoc 
)

Constructor for BLOCK declarations.

Parameters
namename of block.
aLocfile coordinates of block.
CBlock::CBlock ( CSymbol name,
Coord_t aLoc,
Decl_t  dtype 
)

Constructor for BLOCK declarations.

Parameters
namename of block.
aLocfile coordinates of block.
dtypeblock type.
virtual CBlock::~CBlock ( )
inlinevirtual

Object destructor.

Member Function Documentation

virtual void CBlock::Add ( CInstance instance)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add instance to block.

Parameters
instancepointer to block object

Reimplemented in CModule.

virtual void CBlock::Add ( CParam param)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add parameter to block.

Parameters
parampointer to parameter object

Reimplemented in CModule.

virtual void CBlock::Add ( CNet net)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add net to block.

Parameters
netpointer to net object

Reimplemented in CModule.

virtual void CBlock::Add ( CVar var)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add register to block.

Parameters
varpointer to variable object

Reimplemented in CModule.

virtual void CBlock::Add ( CBlock child)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add child block to this block.

Parameters
childpointer to child block object
virtual void CBlock::Add ( CFref fref)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add forward reference to this block.

Parameters
frefpointer to forward reference object

Reimplemented in CModule.

virtual void CBlock::Add ( CGenvar genvar)
virtual
Todo:
This routine will eventually be eliminated. Currently the construct must be added with this routine as well as by adding a node to the code tree.

Add genvar to this block.

Parameters
genvarpointer to genvar reference object
virtual void CBlock::Add ( CNode code)
virtual

Add parse tree code to this block.

Parameters
codepointer to parse tree

Reimplemented in CModule.

virtual CDecl* CBlock::Clone ( CObstack heap)
inlinevirtual

Create a clone of this declaration.

Parameters
heapheap to use for allocation.
Returns
new declaration.

Implements CDecl.

Reimplemented in CModule.

virtual void CBlock::Dump ( FILE *  f)
virtual

Dump information about block to a file.

Parameters
ffile descriptor to output.

Reimplemented from CDecl.

Reimplemented in CModule, CFunction, and CSpecify.

vector<CBlock*>* CBlock::GetChildList ( )

Get list of block's child blocks.

Returns
array of child block objects.
virtual CNode* CBlock::GetCodeList ( )
virtual

Get blocks parse tree.

Returns
parse tree.
vector<CGenvar*>* CBlock::GetGenvarList ( )

Get list of object's genvars.

Returns
array of genvar objects.
virtual vector<CInstance*>* CBlock::GetInstanceList ( )
virtual

Get list if module instances.

Returns
vector of instances.

Reimplemented in CModule.

vector<CNet*>* CBlock::GetNetList ( )

Get list of object's nets.

Returns
array of net objects.
vector<CParam*>* CBlock::GetParamList ( )

Get list of object's parameters.

Returns
array of parameter objects.
CBlock* CBlock::GetParent ( void  )

Get this block's parent block.

Returns
pointer to parent block object.
virtual vector<CPortDir*>* CBlock::GetPortDirList ( )
inlinevirtual

Get list of block's port declarations.

Returns
array of port direction objects.

Reimplemented in CModule, and CFunction.

virtual CSymtab<CDecl>& CBlock::GetSymtab ( )
inlinevirtual

Get block's symbol table.

Returns
reference to block's symbol table.
CSymbol* CBlock::GetTrailingLabel ( void  )
inline

Get this block's end label.

Returns
blocks trailing label
vector<CVar*>* CBlock::GetVarList ( )

Get list of object's registers.

Returns
array of register objects.
virtual void CBlock::SetCodeList ( CNode list)
virtual

Set block's parse tree.

Parameters
listblock's parse tree.
void CBlock::SetParent ( CBlock parent)

Set this block's parent block.

Parameters
parentpointer to parent block object.
virtual void CBlock::SetSymtab ( CSymtab< CDecl > &  symtab)
virtual

Set block's symbol table.

Parameters
symtabreference to new symbol table.
void CBlock::SetTrailingLabel ( CSymbol s)
inline

Set this block's end label.

Parameters
strailing label

Member Data Documentation

vector<CBlock*> CBlock::children
protected
vector<CFref*> CBlock::frefList
protected
vector<CGenvar*> CBlock::genvarList
protected
vector<CInstance*> CBlock::instanceList
protected

list of module instances.

vector<CNet*> CBlock::netList
protected
vector<CParam*> CBlock::paramList
protected
CBlock* CBlock::parent
protected
CSymtab<CDecl> CBlock::symtab
protected
CSymbol* CBlock::trailingLabel
protected
vector<CVar*> CBlock::varList
protected

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