* device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
[fw/sdcc] / src / SDCCast.h
index e14ef46fe84a4101d5cf1a048ba39a2f0458bd46..4d43b5a00a2452730948f1539b3c1333347f1701 100644 (file)
@@ -112,42 +112,43 @@ 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 )
-#define IS_FOR_STMT(x) (IS_AST_OP(x) && x->opval.op == FOR)
-#define IS_LEFT_OP(x) (IS_AST_OP(x) && x->opval.op == LEFT_OP)
-#define IS_RIGHT_OP(x) (IS_AST_OP(x) && x->opval.op == RIGHT_OP)
-#define  IS_AST_VALUE(x)       ((x) && (x)->type == EX_VALUE && (x)->opval.val)
-#define  IS_AST_LINK(x)                (x->type == EX_LINK)
-#define  IS_AST_NOT_OPER(x)    (x && IS_AST_OP(x) && x->opval.op == '!')
-#define  IS_ARRAY_OP(x) (IS_AST_OP(x) && x->opval.op == '[')
-#define  IS_COMPARE_OP(x)      (IS_AST_OP(x)           &&              \
+#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 )
+#define IS_FOR_STMT(x)          (IS_AST_OP(x) && x->opval.op == FOR)
+#define IS_LEFT_OP(x)           (IS_AST_OP(x) && x->opval.op == LEFT_OP)
+#define IS_RIGHT_OP(x)          (IS_AST_OP(x) && x->opval.op == RIGHT_OP)
+#define IS_AST_VALUE(x)         ((x) && (x)->type == EX_VALUE && (x)->opval.val)
+#define IS_AST_LINK(x)         (x->type == EX_LINK)
+#define IS_AST_NOT_OPER(x)     (x && IS_AST_OP(x) && x->opval.op == '!')
+#define IS_ARRAY_OP(x)          (IS_AST_OP(x) && x->opval.op == '[')
+#define IS_COMPARE_OP(x)       (IS_AST_OP(x)           &&              \
                                  (x->opval.op == '>'   ||              \
                                   x->opval.op == '<'   ||              \
                                   x->opval.op == LE_OP ||              \
                                   x->opval.op == GE_OP ||              \
                                   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 IS_AST_LIT_VALUE(x) (IS_AST_VALUE(x) && \
-                             IS_LITERAL((x)->opval.val->etype))
+#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 IS_AST_LIT_VALUE(x)     (IS_AST_VALUE(x) && \
+                                 IS_LITERAL((x)->opval.val->etype))
 #define IS_AST_SYM_VALUE(x)     (IS_AST_VALUE(x) && x->opval.val->sym)
-#define AST_LIT_VALUE(x)        (floatFromVal(x->opval.val))
+#define AST_FLOAT_VALUE(x)      (floatFromVal(x->opval.val))
+#define AST_ULONG_VALUE(x)      (ulFromVal(x->opval.val))
 #define AST_SYMBOL(x)           (x->opval.val->sym)
 #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 AST_ARGREG(x) x->values.argreg
+#define AST_VALUES(x,y)         (x->values.y)
+#define AST_FOR(x,y)            x->values.forVals.y
+#define AST_ARGREG(x)           x->values.argreg
 
-#define  IS_AST_PARAM(x)       (IS_AST_OP(x) && x->opval.op == PARAM)
+#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 == '*' || \