ACT Library
Loading...
Searching...
No Matches
Macros | Functions
expr_extra.h File Reference

Contains extra expression types beyond the standard ones from expr.h defined in the generic expression parser included with the parser generator. More...

Go to the source code of this file.

Macros

#define E_TYPE   (E_END + 10)
 the "l" field will point to an InstType
 
#define E_ARRAY   (E_END + 11)
 
#define E_SUBRANGE   (E_END + 12)
 
#define E_SELF   (E_END + 20)
 used for "self"
 
#define E_SELF_ACK   (E_END + 19)
 used for "selfack"
 
#define E_ANDLOOP   (E_END + 21)
 
#define E_ORLOOP   (E_END + 22)
 
#define E_BUILTIN_BOOL   (E_END + 23)
 for bool(x)
 
#define E_BUILTIN_INT   (E_END + 24)
 for int(x) or int(x,v)
 
#define E_ENUM_CONST   (E_END + 25)
 used for an enumeration constant
 
#define E_NEWEND   E_END + 26
 new "end" of expression options
 

Functions

Expract_parse_expr_syn_loop_bool (LFILE *l)
 
Expract_parse_expr_intexpr_base (LFILE *l)
 
Expract_expr_any_basecase (LFILE *l)
 
int act_expr_parse_newtokens (LFILE *l)
 
int act_expr_free_default (Expr *)
 

Detailed Description

Contains extra expression types beyond the standard ones from expr.h defined in the generic expression parser included with the parser generator.

Some of these are only used during expansion of expressions to return new result types (e.g. an array result)

Macro Definition Documentation

◆ E_ANDLOOP

#define E_ANDLOOP   (E_END + 21)

used for (&i:lo..hi:expr)
expressions. l->l = id, r->l
= lo, r->r->l = hi, r->r->r = expr

◆ E_ARRAY

#define E_ARRAY   (E_END + 11)

an expanded paramter array

  • the l field will point to the ValueIdx
  • the r field will point to the Scope

◆ E_BUILTIN_BOOL

#define E_BUILTIN_BOOL   (E_END + 23)

for bool(x)

◆ E_BUILTIN_INT

#define E_BUILTIN_INT   (E_END + 24)

for int(x) or int(x,v)

◆ E_ENUM_CONST

#define E_ENUM_CONST   (E_END + 25)

used for an enumeration constant

◆ E_NEWEND

#define E_NEWEND   E_END + 26

new "end" of expression options

◆ E_ORLOOP

#define E_ORLOOP   (E_END + 22)

used for (|i:lo..hi:expr)
expressions. l->l = id, r->l
= lo, r->r->l = hi, r->r->r = expr

◆ E_SELF

#define E_SELF   (E_END + 20)

used for "self"

◆ E_SELF_ACK

#define E_SELF_ACK   (E_END + 19)

used for "selfack"

◆ E_SUBRANGE

#define E_SUBRANGE   (E_END + 12)

like array, but it is a subrange

  • l points to the ValueIdx
  • r points to another Expr whose l points to Scope r points to the array range

◆ E_TYPE

#define E_TYPE   (E_END + 10)

the "l" field will point to an InstType

Function Documentation

◆ act_expr_any_basecase()

Expr * act_expr_any_basecase ( LFILE *  l)

◆ act_expr_free_default()

int act_expr_free_default ( Expr )

◆ act_expr_parse_newtokens()

int act_expr_parse_newtokens ( LFILE *  l)

◆ act_parse_expr_intexpr_base()

Expr * act_parse_expr_intexpr_base ( LFILE *  l)

◆ act_parse_expr_syn_loop_bool()

Expr * act_parse_expr_syn_loop_bool ( LFILE *  l)