The only use of CRANGE was removed by commit 193830d.  In theory it is
more correct to do what CRANGE did, but in practice it seems like it did
not work.

* src/dfa.h (token): Remove CRANGE.
* src/dfa.c (atom): Do not handle CRANGE.
(prtok): Likewise.
---
 src/dfa.c |   18 ------------------
 src/dfa.h |    6 ------
 2 files changed, 0 insertions(+), 24 deletions(-)

diff --git a/src/dfa.c b/src/dfa.c
index aef789e..b43dad7 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -147,7 +147,6 @@ prtok (token t)
        case ORTOP: s = "ORTOP"; break;
        case LPAREN: s = "LPAREN"; break;
        case RPAREN: s = "RPAREN"; break;
-       case CRANGE: s = "CRANGE"; break;
 #ifdef MBS_SUPPORT
        case ANYCHAR: s = "ANYCHAR"; break;
        case MBCSET: s = "MBCSET"; break;
@@ -1170,7 +1169,6 @@ addtok (token t)
      ENDWORD
      LIMWORD
      NOTLIMWORD
-     CRANGE
      LPAREN regexp RPAREN
      <empty>
 
@@ -1207,22 +1205,6 @@ atom (void)
        }
 #endif /* MBS_SUPPORT  */
     }
-  else if (tok == CRANGE)
-    {
-      /* A character range like "[a-z]" in a locale other than "C" or
-        "POSIX".  This range might any sequence of one or more
-        characters.  Unfortunately the POSIX locale primitives give
-        us no practical way to find what character sequences might be
-        matched.  Treat this approximately like "(.\1)" -- i.e. match
-        one character, and then punt to the full matcher.  */
-      charclass ccl;
-      zeroset (ccl);
-      notset (ccl);
-      addtok (CSET + charclass_index (ccl));
-      addtok (BACKREF);
-      addtok (CAT);
-      tok = lex ();
-    }
   else if (tok == LPAREN)
     {
       tok = lex();
diff --git a/src/dfa.h b/src/dfa.h
index cff2b0b..685ce94 100644
--- a/src/dfa.h
+++ b/src/dfa.h
@@ -122,12 +122,6 @@ typedef enum
 
   RPAREN,                      /* RPAREN never appears in the parse tree. */
 
-  CRANGE,                      /* CRANGE never appears in the parse tree.
-                                  It stands for a character range that can
-                                  match a string of one or more characters.
-                                  For example, [a-z] can match "ch" in
-                                  a Spanish locale.  */
-
 #ifdef MBS_SUPPORT
   ANYCHAR,                     /* ANYCHAR is a terminal symbol that matches
                                   any multibyte (or single byte) characters.
-- 
1.6.6




Reply via email to