#include "SDCCsymt.h"
#include "SDCCval.h"
#include "SDCCset.h"
+#include "SDCCmem.h"
#define EX_OP 0
#define EX_VALUE 1
/* easy access macros */
#define IS_AST_OP(x) (x && x->type == EX_OP)
+#define IS_CALLOP(x) (IS_AST_OP(x) && x->opval.op == CALL)
#define IS_BITOR(x) (IS_AST_OP(x) && x->opval.op == '|')
#define IS_BITAND(x) (IS_AST_OP(x) && x->opval.op == '&' && \
x->left && x->right )
x->opval.op == EQ_OP || \
x->opval.op == NE_OP ))
#define IS_CAST_OP(x) (IS_AST_OP(x) && x->opval.op == CAST)
+#define IS_TERNARY_OP(x) (IS_AST_OP(x) && x->opval.op == '?')
+#define IS_COLON_OP(x) (IS_AST_OP(x) && x->opval.op == ':')
#define IS_ADDRESS_OF_OP(x) (IS_AST_OP(x) && \
x->opval.op == '&' && \
x->right == NULL )
#define AST_VALUE(x) (x->opval.val)
#define AST_VALUES(x,y) (x->values.y)
#define AST_FOR(x,y) x->values.forVals.y
+#define IS_AST_PARAM(x) (IS_AST_OP(x) && x->opval.op == PARAM)
#define CAN_EVAL(x) ( x == '[' || x == '.' || x == PTR_OP || \
x == '&' || x == '|' || x == '^' || x == '*' || \
// exported variables
extern set *operKeyReset;
extern int noAlloc;
+extern int inInitMode;
#endif