55 vector<CPortDir*> portDirList;
74 virtual void Dump( FILE* f );
221 virtual void CodeListChanged() { portDirListValid = FALSE; }
225 void EvaluateArgs( CContext* context,
CNode* args );
231 #endif // CFUNCTION_HPP
static int WidthEvaluateable(CSymbol *symbol, CNode *args, CBlock *block)
Determine if width of function is evaluateable.
void InlinePortDecls(int v)
Set inline declaration attribute.
Definition: cfunction.h:99
virtual void PreVisit1(int(*func)(CNode *, void *), void *data)
void SetOutput(CDecl *output)
Set output declaration for function.
Definition: cfunction.h:104
CFunction(CSymbol *symbol, Coord_t *aLoc, int automatic)
Create function/task declaration object.
static double EvalReal(CSymbol *symbol, CNode *args, CBlock *block)
Evaluate function as a real and return result.
static NodeType_t Type(CSymbol *symbol, CNode *args, CBlock *block)
Determine if type of result of function.
static void EvalVector(CVector &v, CSymbol *symbol, CNode *args, CBlock *block)
Evaluate function as a vector and return result.
static int Width(CSymbol *symbol, CNode *args, CBlock *block)
Get width of function.
Structure to hold file coordinates.
Definition: cdecl.h:47
Holder for character strings.
Definition: csymbol.h:44
virtual vector< CPortDir * > * GetPortDirList()
Get array of port declarations.
Primary data structure representing parse tree nodes.
Definition: cnode.h:197
virtual void PostSubVisit1(CNode *(*func)(CNode *, void *), void *data)
virtual void Dump(FILE *f)
Dump function info to file descriptor.
CNode * GetPorts()
Get function port list.
Definition: cfunction.h:89
Base class for describing declaration objects.
Definition: cdecl.h:164
static int Evaluateable(CSymbol *symbol, CNode *args, CBlock *block)
Determine if function can be evaluated.
static CNode * WidthExp(CSymbol *symbol, CNode *args, CBlock *block)
Get width of function as an expression.
Bit vector class for implementing 4 state verilog signed and unsigned arithmetic. ...
Definition: cvector.h:58
virtual void PostVisit1(void(*func)(CNode *, void *), void *data)
static int WidthConstant(CSymbol *symbol, CNode *args, CBlock *block)
Determine if width of function is constant.
Declaration object for functions and tasks.
Definition: cfunction.h:50
NodeType_t
Expression node type.
Definition: cdatatype.h:101
int InlinePortDecls()
Get inline declaration attribute.
Definition: cfunction.h:94
CSymtab< CDecl > symtab
Definition: cblock.h:63
Declaration class for block constructs.
Definition: cblock.h:52
CDecl * GetOutput()
Get output declaration.
Definition: cfunction.h:109
static int WidthVolatile(CSymbol *symbol, CNode *args, CBlock *block)
Determine if width of function is volatile.
int GetAutomatic()
Get automatic attribute.
Definition: cfunction.h:115
void SetPorts(CNode *n)
Set function port list.
Definition: cfunction.h:84