Mercurial > hg > Applications > Grep
annotate c/regexParser/transition.cc @ 112:ec485345daf9 pairPro
some function use static
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 23 Nov 2015 15:54:19 +0900 |
parents | 1d30f70702df |
children | 66c633575b53 |
rev | line source |
---|---|
111 | 1 #include "transition.h" |
2 | |
112
ec485345daf9
some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
111
diff
changeset
|
3 TransitionPtr createTransition(CharClass,BitVectorPtr); |
ec485345daf9
some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
111
diff
changeset
|
4 TransitionPtr appendTransition0(TransitionPtr,TransitionPtr); |
ec485345daf9
some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
111
diff
changeset
|
5 TransitionPtr appendTransition(TransitionPtr,TransitionPtr); |
ec485345daf9
some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
111
diff
changeset
|
6 |
111 | 7 TransitionPtr createTransition(CharClassPtr cc, BitVectorPtr state) { |
8 TransitionPtr transition = (TransitionPtr)malloc(sizeof(Transition)); | |
9 transition->condition = cc; | |
10 transition->nextState = state; | |
11 return transition; | |
12 } | |
13 | |
14 TransitionPtr appendTransition0(TransitionPtr x, TransitionPtr y) { | |
15 TransitionPtr x0 = x; | |
16 for(;;) { | |
17 if (x->next == NULL) { | |
18 x->next = y | |
19 return x0; | |
20 } | |
21 } | |
22 return x; | |
23 } | |
24 | |
25 TransitionPtr appendTransition(TransitionPtr x, TransitionPtr y) { | |
26 TransitionPtr x0 = createTransition(x->condition, x->nextState); | |
27 TransitionPtr x1 = x0; | |
28 for(;;) { | |
29 if (x->next == NULL) { | |
30 x1->next = y; | |
31 return x0; | |
32 } | |
33 x = x->next; | |
34 x1->next = createTransition(x->condition, x->nextState); | |
35 x1 = x1->next; | |
36 } | |
37 return x0; | |
38 } |