Mercurial > hg > Applications > Grep
comparison regexParser/subsetConstruction.cc @ 255:61d4d466e64c
fix Makefile
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 Jan 2016 18:20:37 +0900 |
parents | 21b9ba76f91b |
children | 72f3673dd7a5 |
comparison
equal
deleted
inserted
replaced
254:21b9ba76f91b | 255:61d4d466e64c |
---|---|
212 | 212 |
213 StatePtr createState(TGValue tgv,NodePtr n) { | 213 StatePtr createState(TGValue tgv,NodePtr n) { |
214 BitVector bi = createBitVector(tgv.tg->totalStateCount); | 214 BitVector bi = createBitVector(tgv.tg->totalStateCount); |
215 StatePtr s = createState(tgv.tg,bi); | 215 StatePtr s = createState(tgv.tg,bi); |
216 n->stateNum = s->stateNum; | 216 n->stateNum = s->stateNum; |
217 s->next = tgv.tg->stateList; | |
218 tgv.tg->stateList = s; | |
219 s->node = n; | 217 s->node = n; |
220 s->bitState = bi; | 218 s->bitState = bi; |
221 s->accept = false; | 219 s->accept = false; |
222 s->cc = n->cc; | 220 s->cc = n->cc; |
223 return s; | 221 return s; |
308 return tgv; | 306 return tgv; |
309 } | 307 } |
310 | 308 |
311 TGValue generateTransitionList(NodePtr n) { | 309 TGValue generateTransitionList(NodePtr n) { |
312 TGValue tgv = createTGValue(); | 310 TGValue tgv = createTGValue(); |
311 State dummy; | |
312 tgv.tg->stateEnd = &dummy; | |
313 StatePtr startState = tgv.startState = createState(tgv,n); | 313 StatePtr startState = tgv.startState = createState(tgv,n); |
314 tgv.tg->stateList = startState; | |
314 NodePtr eof = createNode(NULL,'e',NULL,NULL,NULL); | 315 NodePtr eof = createNode(NULL,'e',NULL,NULL,NULL); |
315 StatePtr endState = tgv.endState = createState(tgv,eof); | 316 StatePtr endState = tgv.endState = createState(tgv,eof); |
316 endState->accept = true; | 317 endState->accept = true; |
317 tgv.startState = startState; | 318 tgv.startState = startState; |
318 tgv.endState = endState; | 319 tgv.endState = endState; |