diff regexParser/regexParser.cc @ 192:ecf70fb215a5 pairPro

print charclass
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Fri, 25 Dec 2015 19:31:53 +0900
parents 3e8e5780ad4a
children b0ae5273925c
line wrap: on
line diff
--- a/regexParser/regexParser.cc	Fri Dec 25 16:08:02 2015 +0900
+++ b/regexParser/regexParser.cc	Fri Dec 25 19:31:53 2015 +0900
@@ -20,6 +20,8 @@
     n->cc = NULL;
     n->left = NULL;
     n->right = NULL;
+    n->stateNum = 0;
+    n->nextStateNum = 0;
     return n;
 }
 
@@ -36,9 +38,12 @@
 CharClassPtr createCharClassWord(RegexInfoPtr ri) {
     CharClassPtr cc = NEW(CharClass);
     cc->type = 'a';
+    cc->left = NULL;
+    cc->right = NULL;
     cc->cond.w.word = ri->tokenValue;
     cc->cond.w.length = ri->ptr - ri->tokenValue;
     cc->cond.range.begin = cc->cond.range.end = *ri->tokenValue;
+    cc->cond.range.next = NULL;
     return cc;
 }
 
@@ -145,7 +150,7 @@
     for (; r; r = r->next) {
         cc = insertCharClass(cc, r->begin, r->end);
     }
-
+    cc->cond.range.next = 0;
     // TODO literal support
     // merge rangeList here
     if (*ri->ptr) ri->ptr++;
@@ -239,12 +244,6 @@
     return n;
 }
 
-RegexInfoPtr createRegexInfo (RegexInfoPtr ri) {
-    ri->stateNumber++;
-    return ri;
-}
-
-
 // <regex> ::= <regexAtom> | <regexAtom>'*'<regex> | <regexAtom>'|'<regex> | <regexAtom><regexAtom>'*' | <regexAtom><regex>
 NodePtr regex(RegexInfoPtr ri) {
     token(ri);