annotate regexParser/transition.h @ 175:3be0fbcd4b52 pairPro

implement createTransitionGenerator
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Dec 2015 20:27:26 +0900
parents cca8bb5aeded
children c092dd0e1ae0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
66c633575b53 remove error and warning
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 112
diff changeset
1 #include "bitVector.h"
66c633575b53 remove error and warning
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 112
diff changeset
2
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
3 typedef struct transition {
a3adc5c24e19 start branch
masa
parents:
diff changeset
4 CharClassPtr condition;
a3adc5c24e19 start branch
masa
parents:
diff changeset
5 struct transition *next;
116
66c633575b53 remove error and warning
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 112
diff changeset
6 } Transition, *TransitionPtr;
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
7
a3adc5c24e19 start branch
masa
parents:
diff changeset
8 typedef struct state {
175
3be0fbcd4b52 implement createTransitionGenerator
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
9 BitVector bitState;
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
10 TransitionPtr transition;
173
masa
parents: 172
diff changeset
11 NodePtr nextNode;
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
12 struct state *next;
116
66c633575b53 remove error and warning
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 112
diff changeset
13 } State, *StatePtr;
140
84a2a5209d3a change some variable name
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 116
diff changeset
14
175
3be0fbcd4b52 implement createTransitionGenerator
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
15 StatePtr createState(StatePtr state,BitVector bi);
172
540fc12871d9 remove some warnings and errors (not working)
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
16 TransitionPtr createTransition(CharClassPtr cc, BitVectorPtr state);
140
84a2a5209d3a change some variable name
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 116
diff changeset
17 TransitionPtr appendTransition0(TransitionPtr curr,TransitionPtr next);
84a2a5209d3a change some variable name
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 116
diff changeset
18 TransitionPtr appendTransition(TransitionPtr curr,TransitionPtr next);
84a2a5209d3a change some variable name
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 116
diff changeset
19
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
20 /*
a3adc5c24e19 start branch
masa
parents:
diff changeset
21 正規表現木を辿って transition のList をつくる
112
ec485345daf9 some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 110
diff changeset
22 CharClass のかさなりを判定して重なりのない新しいCharClassをつくる
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
23 重なっている状態はbitvectorのorをとる
a3adc5c24e19 start branch
masa
parents:
diff changeset
24 重なっている状態はそれぞれの状態について木をたどる
112
ec485345daf9 some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 110
diff changeset
25
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
26 nextState == 0 は正規表現の末端を表す
a3adc5c24e19 start branch
masa
parents:
diff changeset
27 nextState == 1 は受理状態を表す
a3adc5c24e19 start branch
masa
parents:
diff changeset
28 正規表現のノードの番号 n に対応する 2^n のbitをセットした状態
112
ec485345daf9 some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 110
diff changeset
29
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
30 | の場合は両方のListを結合する
a3adc5c24e19 start branch
masa
parents:
diff changeset
31 + の場合は左のノードに * がある場合は右のリストも結合する
112
ec485345daf9 some function use static
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 110
diff changeset
32 左のノードに*がない場合は、右のほうだけみる
110
a3adc5c24e19 start branch
masa
parents:
diff changeset
33 * は直下のリストを使って、次の状態を自分自身にする
a3adc5c24e19 start branch
masa
parents:
diff changeset
34 */