Mercurial > hg > Applications > Grep
diff c/regexParser/regexParser.cc @ 145:50217a0545e8 pairPro
fix charClass()
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 14 Dec 2015 19:39:16 +0900 |
parents | d8a4922eceae |
children | 84d32375383a |
line wrap: on
line diff
--- a/c/regexParser/regexParser.cc Mon Dec 14 17:14:33 2015 +0900 +++ b/c/regexParser/regexParser.cc Mon Dec 14 19:39:16 2015 +0900 @@ -63,22 +63,23 @@ RangeListPtr rangeList = &cc->cond.range; rangeList->begin = (unsigned long)*ri->ptr; rangeList->end = (unsigned long)*ri->ptr; + rangeList->next = NULL; for (ri->ptr++; *ri->ptr && *ri->ptr != ']'; ri->ptr++) { if (*ri->ptr == '-') { - rangeList->end = (unsigned long)(ri->ptr + 1); + rangeList->end = (unsigned long)*(ri->ptr + 1); ri->ptr++; continue; } if (ri->ptr[0] == 0 || ri->ptr[0] == ']') break; if (ri->ptr[0] == rangeList->end + 1) { - rangeList->end = (unsigned long)ri->ptr; + rangeList->end = (unsigned long)*ri->ptr; continue; } rangeList->next = NEW(RangeList); rangeList = rangeList->next; - rangeList->begin = (unsigned long)ri->ptr; - rangeList->end = (unsigned long)ri->ptr; + rangeList->begin = (unsigned long)*ri->ptr; + rangeList->end = (unsigned long)*ri->ptr; rangeList->next = NULL; } // TODO literal support @@ -119,7 +120,6 @@ ri->ptr++; ri->tokenType = '|'; ri->tokenValue = NULL; - ri->orNum++; return; } else if (ri->ptr[0] == '*'){ ri->ptr++;