]> granicus.if.org Git - onig/commitdiff
refactoring
authorK.Kosako <kosako@sofnec.co.jp>
Wed, 24 May 2017 05:19:43 +0000 (14:19 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Wed, 24 May 2017 05:19:43 +0000 (14:19 +0900)
src/regparse.c

index 689055a040630553514380303535c20cb11080cf..8153513202b3c32446add0bb30d0dc9629be85bf 100644 (file)
@@ -4088,8 +4088,8 @@ next_state_class(CClassNode* cc, OnigCodePoint* vs, enum CCVALTYPE* type,
 }
 
 static int
-next_state_val(CClassNode* cc, OnigCodePoint *vs, OnigCodePoint v,
-              int* vs_israw, int v_israw,
+next_state_val(CClassNode* cc, OnigCodePoint *from, OnigCodePoint to,
+              int* from_israw, int to_israw,
               enum CCVALTYPE intype, enum CCVALTYPE* type,
               enum CCSTATE* state, ScanEnv* env)
 {
@@ -4098,13 +4098,13 @@ next_state_val(CClassNode* cc, OnigCodePoint *vs, OnigCodePoint v,
   switch (*state) {
   case CCS_VALUE:
     if (*type == CCV_SB) {
-      if (*vs > 0xff)
+      if (*from > 0xff)
           return ONIGERR_INVALID_CODE_POINT_VALUE;
 
-      BITSET_SET_BIT(cc->bs, (int )(*vs));
+      BITSET_SET_BIT(cc->bs, (int )(*from));
     }
     else if (*type == CCV_CODE_POINT) {
-      r = add_code_range(&(cc->mbuf), env, *vs, *vs);
+      r = add_code_range(&(cc->mbuf), env, *from, *from);
       if (r < 0) return r;
     }
     break;
@@ -4112,40 +4112,32 @@ next_state_val(CClassNode* cc, OnigCodePoint *vs, OnigCodePoint v,
   case CCS_RANGE:
     if (intype == *type) {
       if (intype == CCV_SB) {
-        if (*vs > 0xff || v > 0xff)
+        if (*from > 0xff || to > 0xff)
           return ONIGERR_INVALID_CODE_POINT_VALUE;
 
-        if (*vs > v) {
+        if (*from > to) {
           if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))
             goto ccs_range_end;
           else
             return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS;
         }
-        bitset_set_range(cc->bs, (int )*vs, (int )v);
+        bitset_set_range(cc->bs, (int )*from, (int )to);
       }
       else {
-        r = add_code_range(&(cc->mbuf), env, *vs, v);
+        r = add_code_range(&(cc->mbuf), env, *from, to);
         if (r < 0) return r;
       }
     }
     else {
-#if 0
-      if (intype == CCV_CODE_POINT && *type == CCV_SB) {
-#endif
-        if (*vs > v) {
-          if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))
-            goto ccs_range_end;
-          else
-            return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS;
-        }
-        bitset_set_range(cc->bs, (int )*vs, (int )(v < 0xff ? v : 0xff));
-        r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )*vs, v);
-        if (r < 0) return r;
-#if 0
+      if (*from > to) {
+        if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))
+          goto ccs_range_end;
+        else
+          return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS;
       }
-      else
-        return ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE;
-#endif
+      bitset_set_range(cc->bs, (int )*from, (int )(to < 0xff ? to : 0xff));
+      r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )*from, to);
+      if (r < 0) return r;
     }
   ccs_range_end:
     *state = CCS_COMPLETE;
@@ -4160,9 +4152,9 @@ next_state_val(CClassNode* cc, OnigCodePoint *vs, OnigCodePoint v,
     break;
   }
 
-  *vs_israw = v_israw;
-  *vs       = v;
-  *type     = intype;
+  *from_israw = to_israw;
+  *from       = to;
+  *type       = intype;
   return 0;
 }