Mercurial > hg > Applications > Grep
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 */ |