Add LIBS to linker command line (needed on Solaris)
[fw/sdcc] / src / SDCCast.h
index 735a6a937a7441b91203014955d56bb07983a424..da7572583f0f4e2097d6cf6325a17056da3b602c 100644 (file)
@@ -29,6 +29,7 @@
 #include "SDCCsymt.h"
 #include "SDCCval.h"
 #include "SDCCset.h"
+#include "SDCCmem.h"
 
 #define  EX_OP       0
 #define  EX_VALUE    1
@@ -111,6 +112,7 @@ ast;
 
 /* 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 )
@@ -129,6 +131,8 @@ ast;
                                   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 )
@@ -140,6 +144,7 @@ ast;
 #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 == '*' || \
@@ -203,5 +208,6 @@ void addSymToBlock (symbol *, ast *);
 // exported variables 
 extern set *operKeyReset;
 extern int noAlloc;
+extern int inInitMode;
 
 #endif