498 const char *_msg = NULL) :
ActBody (line) {
550 const char *name_check,
void act_syn_loop_setup(ActNamespace *ns, Scope *s, const char *id, Expr *lo, Expr *hi, ValueIdx **vx, int *ilo, int *ihi)
void act_syn_loop_teardown(ActNamespace *ns, Scope *s, const char *id, ValueIdx *vx)
Array expressions.
Definition: act_array.h:529
This is used to store assertions in the body. There are two types of assertions:
Definition: body.h:476
ActId * id1
Definition: body.h:523
int type
Definition: body.h:527
Expr * e
Definition: body.h:518
ActBody_Assertion(int line, Expr *_e, const char *_msg=NULL)
Definition: body.h:483
~ActBody_Assertion()
Definition: body.h:506
union ActBody_Assertion::@9 u
const char * msg
Definition: body.h:519
int op
Definition: body.h:522
struct ActBody_Assertion::@9::@10 t0
ActId * id2
Definition: body.h:523
ActBody_Assertion(int line, ActId *_id1, ActId *_id2, int op, const char *_msg=NULL)
Definition: body.h:497
void Expand(ActNamespace *, Scope *)
struct ActBody_Assertion::@9::@11 t1
This is used to record attributes associated with an instance name.
Definition: body.h:192
const char * inst
Definition: body.h:222
Array * arr
Definition: body.h:224
ActBody_Attribute(int line, const char *_inst, act_attr *_a, Array *_arr=NULL)
Definition: body.h:203
void Expand(ActNamespace *, Scope *)
act_attr * a
Definition: body.h:223
This is used to record a connection in the input design file.
Definition: body.h:234
void Expand(ActNamespace *, Scope *)
AExpr * rhs
Definition: body.h:270
unsigned int type
Definition: body.h:276
AExpr * lhs
Definition: body.h:273
struct ActBody_Conn::@6::@8 general
struct ActBody_Conn::@6::@7 basic
ActBody_Conn(int line, ActId *id1, AExpr *ae)
Definition: body.h:243
ActBody_Conn(int line, AExpr *id1, AExpr *id2)
Definition: body.h:255
ActId * lhs
Definition: body.h:269
This is used to contain a generalized loop in the ACT body.
Definition: body.h:449
void Expand(ActNamespace *, Scope *)
ActBody_Select_gc * gc
Definition: body.h:464
ActBody_Genloop(int line, ActBody_Select_gc *_gc)
Definition: body.h:455
ActBody_Select_gc * getGC()
Definition: body.h:461
This class is used to hold information about an instance in the body of a namespace and/or user-defin...
Definition: body.h:132
InstType * t
the type
Definition: body.h:181
const char * getName()
Definition: body.h:166
ActBody_Inst(int line, InstType *, const char *)
const char * id
the name of the identifier to be instantiated
Definition: body.h:182
void updateInstType(InstType *u)
InstType * getType()
Definition: body.h:161
void Expand(ActNamespace *, Scope *)
This is a language body.
Definition: body.h:631
void Expand(ActNamespace *, Scope *)
ActBody_Lang(int line, enum langtype _t, void *l)
Definition: body.h:664
ActBody_Lang(int line, act_spec *s)
Definition: body.h:659
ActBody_Lang(int line, act_sizing *s)
Definition: body.h:674
langtype
Definition: body.h:634
@ LANG_CHP
Definition: body.h:636
@ LANG_REFINE
Definition: body.h:639
@ LANG_HSE
Definition: body.h:637
@ LANG_PRS
Definition: body.h:635
@ LANG_INIT
Definition: body.h:641
@ LANG_SPEC
Definition: body.h:638
@ LANG_DFLOW
Definition: body.h:642
@ LANG_SIZE
Definition: body.h:640
ActBody_Lang(int line, act_initialize *init)
Definition: body.h:679
ActBody_Lang(int line, act_prs *p)
Definition: body.h:645
void * getlang()
Definition: body.h:693
ActBody_Lang(int line, act_refine *r)
Definition: body.h:669
ActBody_Lang(int line, act_dataflow *dflow)
Definition: body.h:684
ActBody_Lang(int line, act_chp *c, int ishse=0)
Definition: body.h:649
void * lang
Definition: body.h:698
enum langtype gettype()
Definition: body.h:694
enum langtype t
Definition: body.h:697
This holds information about loops that has to be unrolled. Loops can be of different types.
Definition: body.h:285
const char * id
Definition: body.h:319
ActBody_Loop(int line, const char *_id, Expr *_lo, Expr *_hi, ActBody *_b)
Definition: body.h:296
Expr * lo
Definition: body.h:320
Expr * hi
Definition: body.h:320
ActBody * getBody()
Definition: body.h:316
void Expand(ActNamespace *, Scope *)
ActBody * b
Definition: body.h:321
This is used to switch namespaces during the expansion phase.
Definition: body.h:599
ActBody_Namespace(ActNamespace *_ns)
Definition: body.h:604
ActNamespace * ns
Definition: body.h:613
void Expand(ActNamespace *, Scope *)
ActNamespace * getNS()
Definition: body.h:610
This is added for override checks that can be completed only during the expansion phase....
Definition: body.h:540
~ActBody_OverrideAssertion()
Definition: body.h:557
InstType * _new_type
Definition: body.h:562
ActBody_OverrideAssertion * Clone()
void Expand(ActNamespace *, Scope *)
ActBody_OverrideAssertion(int line, const char *name_check, InstType *it, InstType *chk)
Definition: body.h:549
InstType * _orig_type
Definition: body.h:562
const char * _name_check
Definition: body.h:563
This is used to display messages during expansion.
Definition: body.h:572
void Expand(ActNamespace *, Scope *)
list_t * l
Definition: body.h:588
ActBody_Print(int line, list_t *_l)
Definition: body.h:579
~ActBody_Print()
Definition: body.h:582
This is used to represent the list of guards and statements for conditional circuit construction.
Definition: body.h:331
ActBody_Select_gc * next
Definition: body.h:406
const char * id
Definition: body.h:399
ActBody_Select_gc * getNext()
Definition: body.h:391
Expr * lo
Definition: body.h:403
ActBody_Select_gc * Clone()
Expr * g
Definition: body.h:404
ActBody_Select_gc(const char *_id, Expr *_lo, Expr *_hi, Expr *_g, ActBody *_s)
Definition: body.h:360
void Append(ActBody_Select_gc *s)
Definition: body.h:374
ActBody * getBody()
Definition: body.h:386
ActBody_Select_gc(Expr *_g, ActBody *_s)
Definition: body.h:338
ActBody * s
Definition: body.h:405
int isElse()
Definition: body.h:381
Expr * hi
Definition: body.h:403
This is used to contain the complete selection statement in the core ACT language.
Definition: body.h:420
ActBody_Select_gc * gc
the guarded command list
Definition: body.h:440
void Expand(ActNamespace *, Scope *)
ActBody_Select_gc * getGC()
Definition: body.h:437
ActBody_Select(int line, ActBody_Select_gc *_gc)
Definition: body.h:426
This class is used to hold the contents of the body of any user-defined type or namespace....
Definition: body.h:52
ActBody * Next()
Definition: body.h:81
ActBody * next
next pointer for linked list of body items
Definition: body.h:122
virtual ActBody * Clone()
Definition: body.h:86
virtual void Expand(ActNamespace *, Scope *)
Definition: body.h:92
virtual void Print(FILE *)
Definition: body.h:102
void updateInstType(list_t *namelist, InstType *it)
int getLine()
Definition: body.h:116
void insertNext(ActBody *b)
void Expandlist(ActNamespace *, Scope *)
int _line
saved away line number information
Definition: body.h:119
This class is used to store Act identifiers that correspond to instances. Identifiers have an optiona...
Definition: act_id.h:56
The ActNamespace class holds all the information about a namespace.
Definition: namespaces.h:469
Dense arrays, sparse arrays, and array dereferences.
Definition: act_array.h:65
An instance type.
Definition: inst.h:92
This is the data structure that holds all instances and their associated types within a scope....
Definition: namespaces.h:77
The abstract base class for all types in the system.
Definition: basetype.h:45
This class is used to create an instance in a scope. The name comes from the fact that this is used t...
Definition: value.h:342
Attribute list associated with an instance.
Definition: lang.h:44
Holds a CHP sub-language.
Definition: lang.h:367
The dataflow sub-language.
Definition: lang.h:592
The Initialize { ... } body. Only used in the global namespace.
Definition: lang.h:513
Structure that holds all the prs { } blocks in a particular scope. This is a linked-list of blocks,...
Definition: lang.h:194
The refinement sub-language just contains an ActBody.
Definition: lang.h:444
The sizing { ... } body data.
Definition: lang.h:482
The specification sub-language.
Definition: lang.h:397