]> granicus.if.org Git - onig/commitdiff
define NODE_STATUS macro
authorK.Kosako <kosako@sofnec.co.jp>
Thu, 8 Jun 2017 05:34:17 +0000 (14:34 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Thu, 8 Jun 2017 05:34:17 +0000 (14:34 +0900)
src/regparse.h

index d20c132f0b7940660d7d03cb7c7429df5f8b0575..bc50802066f098a45e46298a3bd8fbc5c0518ce3 100644 (file)
 #define NST_NEST_LEVEL            (1<<13)
 #define NST_BY_NUMBER             (1<<14) /* {n,m} */
 
+#define NODE_STATUS(node)          (((Node* )node)->u.base.status)
 #define NODE_STATUS_SET(node,f)    ((node)->u.base.status |= (f))
 #define NODE_STATUS_CLEAR(node,f)  ((node)->u.base.status &= ~(f))
 
-#define NODE_IS_BY_NUMBER(node)   (((node)->u.base.status & NST_BY_NUMBER) != 0)
-#define NODE_IS_IN_REPEAT(node)   (((node)->u.base.status & NST_IN_REPEAT) != 0)
-#define NODE_IS_CALLED(node)      (((node)->u.base.status & NST_CALLED)    != 0)
-#define NODE_IS_RECURSION(node)   (((node)->u.base.status & NST_RECURSION) != 0)
+#define NODE_IS_BY_NUMBER(node)   ((NODE_STATUS(node) & NST_BY_NUMBER) != 0)
+#define NODE_IS_IN_REPEAT(node)   ((NODE_STATUS(node) & NST_IN_REPEAT) != 0)
+#define NODE_IS_CALLED(node)      ((NODE_STATUS(node) & NST_CALLED)    != 0)
+#define NODE_IS_RECURSION(node)   ((NODE_STATUS(node) & NST_RECURSION) != 0)
 #define NODE_IS_STOP_BT_SIMPLE_REPEAT(node) \
-    (((node)->u.base.status & NST_STOP_BT_SIMPLE_REPEAT) != 0)
-#define NODE_IS_NAMED_GROUP(node) (((node)->u.base.status & NST_NAMED_GROUP) != 0)
-#define NODE_IS_ADDR_FIXED(node)  (((node)->u.base.status & NST_ADDR_FIXED)  != 0)
-#define NODE_IS_CLEN_FIXED(node)  (((node)->u.base.status & NST_CLEN_FIXED)  != 0)
-#define NODE_IS_MIN_FIXED(node)   (((node)->u.base.status & NST_MIN_FIXED)   != 0)
-#define NODE_IS_MAX_FIXED(node)   (((node)->u.base.status & NST_MAX_FIXED)   != 0)
-#define NODE_IS_MARK1(node)       (((node)->u.base.status & NST_MARK1)       != 0)
-#define NODE_IS_MARK2(node)       (((node)->u.base.status & NST_MARK2)       != 0)
-#define NODE_IS_NEST_LEVEL(node)  (((node)->u.base.status & NST_NEST_LEVEL)  != 0)
-#define NODE_IS_NAME_REF(node)    (((node)->u.base.status & NST_NAME_REF)    != 0)
+    ((NODE_STATUS(node) & NST_STOP_BT_SIMPLE_REPEAT) != 0)
+#define NODE_IS_NAMED_GROUP(node) ((NODE_STATUS(node) & NST_NAMED_GROUP) != 0)
+#define NODE_IS_ADDR_FIXED(node)  ((NODE_STATUS(node) & NST_ADDR_FIXED)  != 0)
+#define NODE_IS_CLEN_FIXED(node)  ((NODE_STATUS(node) & NST_CLEN_FIXED)  != 0)
+#define NODE_IS_MIN_FIXED(node)   ((NODE_STATUS(node) & NST_MIN_FIXED)   != 0)
+#define NODE_IS_MAX_FIXED(node)   ((NODE_STATUS(node) & NST_MAX_FIXED)   != 0)
+#define NODE_IS_MARK1(node)       ((NODE_STATUS(node) & NST_MARK1)       != 0)
+#define NODE_IS_MARK2(node)       ((NODE_STATUS(node) & NST_MARK2)       != 0)
+#define NODE_IS_NEST_LEVEL(node)  ((NODE_STATUS(node) & NST_NEST_LEVEL)  != 0)
+#define NODE_IS_NAME_REF(node)    ((NODE_STATUS(node) & NST_NAME_REF)    != 0)
 
 #define NODE_BODY(node)           ((node)->u.base.body)
 #define NODE_QTFR_BODY(node)      ((node)->body)