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 }