comparison 2015/0804.html @ 33:8a5b151da414

add 0804.html
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 11 Aug 2015 18:35:42 +0900
parents 1b92285a767a
children
comparison
equal deleted inserted replaced
32:1b92285a767a 33:8a5b151da414
100 </div> 100 </div>
101 </td> 101 </td>
102 </tr> 102 </tr>
103 <tr> 103 <tr>
104 <td><div align="right"> 104 <td><div align="right">
105 <name>Masataka Kohagura 14th, July , 2015</name> 105 <name>Masataka Kohagura 4th, August , 2015</name>
106 </div></td> 106 </div></td>
107 </tr> 107 </tr>
108 </tr> 108 </tr>
109 </table> 109 </table>
110 </div> 110 </div>
117 本研究では正規表現を並列処理で実装することによってこの問題を解決し、Class NC に対応するライブラリを作成する。 117 本研究では正規表現を並列処理で実装することによってこの問題を解決し、Class NC に対応するライブラリを作成する。
118 </ul> 118 </ul>
119 </div> 119 </div>
120 120
121 <div id="cover"> 121 <div id="cover">
122 <h1>したこと</h1> 122 <h1>現在していること</h1>
123 characterClass 以外を実装 123 <p>正規表現の Subset Constraction の状態の集合を生成するために正規表現の Parser を記述している</p>
124 124 <p>正規表現の Parser によって生成された Tree が</p>
125 </div> 125 </div>
126 126
127 <div id="cover"> 127 <div id="cover">
128 <h1>BNF記法で正規表現の文法規則を表記してみる</h1> 128 <h1>どのように正規表現の Parser によって生成された木を表示させるか</h1>
129 <ul> 129 <pre>
130 <li> 130 <code>
131 &lt;literal&gt; ::= [a-z][A-Z][0-9] 131 % ./regexParser -regex abc
132 </li> 132
133 <li> 133 #-c
134 &lt;characterClass&gt; ::= '['&lt;literal&gt;'-'&lt;literal&gt;']' 134 #-+
135 </li> 135 # #-b
136 <li> 136 +
137 &lt;string&gt; :: = &lt;literal&gt; | &lt;literal&gt;* 137 #-a
138 </li> 138
139 <li> 139 % ./regexParser -regex (a*|bc)d
140 &lt;or&gt; ::= '('&lt;regex&gt;'|'&lt;regex&gt;')' 140
141 </li> 141
142 <li> 142 #-d
143 &lt;*&gt; ::= &lt;regex&gt;'*' 143 +
144 </li> 144 # #-c
145 <li> 145 # #-+
146 &lt;regex&gt; ::= &lt;literal&gt;|&lt;string&gt;|&lt;or&gt; 146 # # #-b
147 </li> 147 #-|
148 </ul> 148 #
149 &lt;or&gt; が '|' とグループ化の '('')' とまだ分解できるので、&lt;or&gt; を &lt;or&gt; と &lt;group&gt; に分割 149 #-*
150 </div> 150 #-a
151 151
152 <div id="cover"> 152 </code>
153 <h1>BNF記法で正規表現の文法規則を表記してみる(修正後)</h1> 153 </pre>
154 <ul> 154 <p>string なのか literal なのか判断しないで createNode をしてる</p>
155 <li>
156 &lt;literal&gt; ::= [a-z][A-Z][0-9]
157 </li>
158 <li>
159 &lt;characterClass&gt; ::= '['&lt;literal&gt;'-'&lt;literal&gt;']'
160 </li>
161 <li>
162 &lt;string&gt; :: = &lt;literal&gt; | &lt;literal&gt;*
163 </li>
164 <li>
165 <font color=red>&lt;group&gt; ::= '('&lt;regex&gt;')' &lt;- 追加</font>
166 </li>
167 <li>
168 <font color=blue>&lt;or&gt; ::= &lt;regex&gt;'|'&lt;regex&gt; &lt;- 修正</font>
169 </li>
170 <li>
171 &lt;*&gt; ::= &lt;regex&gt;'*'
172 </li>
173 <li>
174 &lt;regex&gt; ::= &lt;literal&gt;|&lt;string&gt;|&lt;or&gt;
175 </li>
176 </ul>
177 </div> 155 </div>
178 156
179 <div id="cover"> 157 <div id="cover">
180 <h1>問題点</h1> 158 <h1>問題点</h1>
181 <p>正規表現 a*b の tree 構造(本当はこうなってほしい)</p> 159 <p>正規表現 a*b の tree 構造(本当はこうなってほしい)</p>
183 <object data="images/vector/aastabtrue.svg" type="image/svg+xml"></object><br> 161 <object data="images/vector/aastabtrue.svg" type="image/svg+xml"></object><br>
184 <p>正規表現 a*b の tree 構造(現状)</p> 162 <p>正規表現 a*b の tree 構造(現状)</p>
185 <object data="images/vector/aastabfalse.svg" type="image/svg+xml"></object><br> 163 <object data="images/vector/aastabfalse.svg" type="image/svg+xml"></object><br>
186 </div> 164 </div>
187 165
188 <div id="cover"> 166 <!--
189 <h1>問題点</h1>
190 <p>正規表現 a tree 構造(現状)</p>
191 <object data="images/vector/aonly.svg" type="image/svg+xml"></object><br>
192 <p>原因は string()</p>
193
194 <pre> 167 <pre>
195 <code> 168 <code>
196 NodePtr string() { 169 NodePtr string() {
197 char c = *ptr; 170 char c = *ptr;
198 NodePtr n = NULL; 171 NodePtr n = NULL;
205 } 178 }
206 </code> 179 </code>
207 </pre> 180 </pre>
208 <p>string なのか literal なのか判断しないで createNode をしてる</p> 181 <p>string なのか literal なのか判断しないで createNode をしてる</p>
209 </div> 182 </div>
183 -->
210 184
211 <div id="cover"> 185 <div id="cover">
212 <h1>これからすること</h1> 186 <h1>これからすること</h1>
213 <ul> 187 <ul>
214 <li> 188 <li>