Mercurial > hg > Applications > Grep
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);