Mercurial > hg > Applications > Grep
comparison c/regexParser/subsetConstraction.cc @ 146:1c74ac7d56ec pairPro
fix
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Dec 2015 16:20:35 +0900 |
parents | d8a4922eceae |
children | d1ebba6e117a |
comparison
equal
deleted
inserted
replaced
145:50217a0545e8 | 146:1c74ac7d56ec |
---|---|
3 #include <ctype.h> | 3 #include <ctype.h> |
4 #include "subsetConstraction.h" | 4 #include "subsetConstraction.h" |
5 | 5 |
6 static | 6 static |
7 CharClassPtr createCharClassWord(unsigned char *w, CharClassPtr cc1, CharClassPtr cc2) { | 7 CharClassPtr createCharClassWord(unsigned char *w, CharClassPtr cc1, CharClassPtr cc2) { |
8 CharClassPtr cc = NEW(CharClass); | |
9 cc->type = 'a'; | |
10 cc->cond.w.word = ri->tokenValue; | |
11 cc->cond.w.length = ri->ptr - ri->tokenValue; | |
12 cc->nextState.bitContainer = 0; | |
8 return cc1; | 13 return cc1; |
9 } | 14 } |
10 | 15 |
11 CharClassPtr charClassMerge(CharClassPtr src, CharClassPtr add) { | 16 CharClassPtr charClassMerge(CharClassPtr src, CharClassPtr add) { |
12 // 重なっているccの領域を分割する | 17 // 重なっているccの領域を分割する |
58 } else { | 63 } else { |
59 // error | 64 // error |
60 } | 65 } |
61 } | 66 } |
62 | 67 |
63 StatePtr createStateList(NodePtr n) { | |
64 StatePtr s0 = NULL; | |
65 if (n->left != NULL) { | |
66 s0 = createStateList(n->left); | |
67 } | |
68 | |
69 if (n->tokenType == 'a') { | |
70 BitVectorPtr bi = createBitVector(n); | |
71 StatePtr s1 = createState(bi,0,0); | |
72 } else if (n->tokenType == '+' || n->tokenType == '|') { | |
73 | |
74 } | |
75 | |
76 if (n->right != NULL) { | |
77 s0 = createStateList(n->right); | |
78 } | |
79 return s0; | |
80 } | |
81 | |
82 TransitionGenerator generateTransitionList(NodePtr n) { | 68 TransitionGenerator generateTransitionList(NodePtr n) { |
83 TransitionGenerator tg; | 69 TransitionGenerator tg; |
84 tg.state = createStateList(n); | |
85 generateTransition(n,tg); | 70 generateTransition(n,tg); |
86 return tg; | 71 return tg; |
87 } | 72 } |