Mercurial > hg > Members > masakoha > testcode
annotate regexParser/TODO @ 291:1b75546ff65f
fix TODO
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 01 Feb 2016 12:20:16 +0900 |
parents | 20ed7536784f |
children | 948428caf616 |
rev | line source |
---|---|
289 | 1 Mon Feb 1 01:51:10 JST 2016 kono |
2 | |
3 非決定性がある時の maxmum match がよろしくない | |
4 これ以上拡張できないという終了条件の実現は? | |
5 | |
6 ./regexParser -ts -subset -regex '(a|b)*a' -file ahoaho.txt | |
7 | |
8 で、bの後にaが来なくなると、bの手前までをacceptする | |
9 | |
291 | 10 subset construction はいじらない方針で。 |
11 | |
12 | |
13 state : 1 | |
14 node : + 1 -> 1 | |
15 [a-a] (3) | |
16 [b-b] (1) | |
17 | |
18 state : 2* | |
19 node : e 2 -> 1 | |
20 | |
21 state : 3* | |
22 [a-a] (3) | |
23 [b-b] (1) | |
24 | |
25 * はaccept state。 | |
26 | |
27 [a-a] (3) で stateMatch で良いが、maxmum だと match している間は stateMatch はしない。 | |
28 現状は、*の付いているstateで、条件にmatchしない時に stateMatch してる。 | |
29 これだと state 3 で b で satete 1 に行ってしまい、b 以降に a がない時に失敗する。b に行く前の state 3 で stateMatchするべき。 | |
30 | |
31 matchする可能性がなくなったところで、前の部分でmatchさせる必要がある。 | |
32 * match してなければ、match top をupdate | |
33 * match している間は直前matchをupdate | |
34 * match fail したところで、直前のmatch があれば、それを返す | |
35 という感じか? | |
36 | |
37 minimum match は | |
38 * match してなければ、match top をupdate | |
39 * match したところで、直前のmatch があれば、それを返す | |
40 か? | |
41 | |
42 ソース生成を CbC に対応させる。(でないと動かないらしい) | |
289 | 43 |
44 | |
284 | 45 Sun Jan 31 20:37:49 JST 2016 masa |
289 | 46 並列処理時のバグ Ok |
47 (mili|have) のsubset construction のミス Ok | |
48 tSearch の segv Ok | |
284 | 49 |
289 | 50 '(main|int) ' .. Ok |
51 '(main|int)\(' .. Ok | |
287 | 52 |
53 とかが動かない。 | |
54 | |
291 | 55 start state に accept flag が立っていると''にmatchしてしまう。それは別に生成する。 |
56 | |
221 | 57 Sat Jan 2 15:29:16 JST 2016 kono |
58 | |
59 stateよりもstate transitionの方が大きいので、subset contructionで CharClassWalkするのは良くない。 | |
60 mergeTransition した時に、state listに新しいものを接続してやれば、CharClassWalkの必要はない。 | |
61 その時に、stateArray には入れないでおく。sateArrayは処理済みなので。 | |
62 | |
63 EOF stateには cc がないので特別扱いする必要がある。 | |
64 | |
65 Tue Dec 29 17:55:17 JST 2015 kono | |
215 | 66 |
67 Todo は上に付け加えていく。 | |
68 | |
69 abc*d + | |
70 / \ | |
71 + d | |
72 / \ | |
73 + * | |
74 / \ | | |
75 a b c | |
76 | |
77 Parserを書き換えて、 | |
78 | |
79 abc*d + | |
80 / \ | |
81 a + | |
82 / \ | |
83 b + | |
84 / \ | |
85 * d | |
86 | | |
87 c | |
88 | |
89 とすることもできる。たぶん、こっちの方が良い。でも、 | |
90 ((ab)(c*))d | |
91 と書いても良いはずで、しかも、これは abc*d とおなじになるので解決になってない。 | |
92 | |
93 sub treeは、最初の状態を返す必要がある。そうでないと、 | |
94 (ab*|bc*) | |
95 とかがうまく動かない。 | |
96 | |
97 最後が*で終わっている時には、次の式と重ねる必要がある。なので、 | |
98 最後の*があれば、それを持ち歩く | |
99 方式が良いと思います。 | |
100 | |
101 stateAllocateをgenerateTransitionは1 passにすると stateArrayの大きさを徐々に増やす必要がある。 | |
102 少なくともループは一つにした方が間違いが少ないだろう。 | |
103 | |
210
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
104 |
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
105 2015年 12月27日 日曜日 19時31分03秒 JST |
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
106 例題 特定の IP のアクセス数をカウントする |
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
107 concordance |
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
108 regex をつかった条件付き concordance |
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
109 regex をつかった条件付き wordcount |
e8aa8a1ea749
add benchmark TODO
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
204
diff
changeset
|
110 これを行う perl スクリプトと比較 |
215 | 111 |
112 2015年 12月26日 土曜日 18時07分00秒 JST | |
113 TODO CharClassWalker の routine test を作成する | |
114 TODO CharClassMerge の routine test を作成する | |
115 TODO searchBit の routine test を作成する | |
116 TODO subsetConstraction の routine test を作成する | |
117 |