comparison c/regexParser/transition.h @ 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 a3adc5c24e19
children 66c633575b53
comparison
equal deleted inserted replaced
111:1d30f70702df 112:ec485345daf9
9 TransitionPtr transition; 9 TransitionPtr transition;
10 struct state *next; 10 struct state *next;
11 } State; StatePtr; 11 } State; StatePtr;
12 /* 12 /*
13 正規表現木を辿って transition のList をつくる 13 正規表現木を辿って transition のList をつくる
14 HcarClass のかさなりを判定して重なりのない新しいCharClassをつくる 14 CharClass のかさなりを判定して重なりのない新しいCharClassをつくる
15 重なっている状態はbitvectorのorをとる 15 重なっている状態はbitvectorのorをとる
16 重なっている状態はそれぞれの状態について木をたどる 16 重なっている状態はそれぞれの状態について木をたどる
17 17
18 nextState == 0 は正規表現の末端を表す 18 nextState == 0 は正規表現の末端を表す
19 nextState == 1 は受理状態を表す 19 nextState == 1 は受理状態を表す
20 正規表現のノードの番号 n に対応する 2^n のbitをセットした状態 20 正規表現のノードの番号 n に対応する 2^n のbitをセットした状態
21 21
22
23 | の場合は両方のListを結合する 22 | の場合は両方のListを結合する
24 + の場合は左のノードに * がある場合は右のリストも結合する 23 + の場合は左のノードに * がある場合は右のリストも結合する
25 左のノードにあすたがない場合は、右のほうだけみる 24 左のノードに*がない場合は、右のほうだけみる
26 * は直下のリストを使って、次の状態を自分自身にする 25 * は直下のリストを使って、次の状態を自分自身にする
27 */ 26 */