22#ifndef __ACT_CHECK_H__
23#define __ACT_CHECK_H__
57#define T_DATA_BOOL 0x8
60#define T_DATA_ENUM 0xb
69#define T_FIXBASETYPE(x) ((((x) & T_MASK) == T_DATA_BOOL) ? T_BOOL : ((((x) & T_MASK) == T_DATA_INT) ? T_INT : ((x) & T_MASK)))
74#define T_BASETYPE(x) ((x) & T_MASK)
80#define T_BASETYPE_ISNUM(x) (T_FIXBASETYPE (x) == T_INT || T_BASETYPE (x) == T_REAL)
85#define T_BASETYPE_INT(x) (T_FIXBASETYPE(x) == T_INT)
90#define T_BASETYPE_BOOL(x) (T_FIXBASETYPE(x) == T_BOOL)
96#define T_BASETYPE_ISINTBOOL(x) (T_BASETYPE_INT(x) || T_BASETYPE_BOOL(x))
Array expressions.
Definition: act_array.h:529
This class is used to store Act identifiers that correspond to instances. Identifiers have an optiona...
Definition: act_id.h:56
Used to represent the built-in ACT Paramterized chan(foo) type or chan(foo,foo) bi-directional/exchan...
Definition: types.h:237
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
void typecheck_err(const char *s,...)
void type_set_position(int l, int c, char *n)
int act_type_chan(Scope *sc, Chan *ch, int is_send, Expr *e, ActId *id, int override_id)
InstType * act_expr_insttype(Scope *s, Expr *e, int *islocal, int only_chan)
const char * act_type_errmsg(void)
int act_type_var(Scope *s, ActId *id, InstType **xit)
InstType * act_actual_insttype(Scope *s, ActId *id, int *islocal)
int act_type_expr(Scope *s, Expr *e, int *width, int only_chan=0)
int act_type_conn(Scope *, ActId *, AExpr *)
int type_chp_check_assignable(InstType *lhs, InstType *rhs)
int type_connectivity_check(InstType *lhs, InstType *rhs, int skip_last_array=0)