M: マッチング時に_match_forwardをインライン展開(リビジョン39の変更により、nfa::match_forward()は1箇所からしか呼ばれなくなったため)
ヘルプ
F: 参考資料の"Henry Spencer"の綴りが間違っていたので修正(ゴメンナサイ)
A: 今後の予定にOpen Watcom C++への対応を追加
@@ -174,7 +174,8 @@ | ||
174 | 174 | do |
175 | 175 | { |
176 | 176 | // 前方一致 |
177 | - if(_match_forward(p, info.end, info.length)) | |
177 | + // NFAエンジンとして動作 | |
178 | + if(m_nfa.match_forward(p, info.end, info.length)) | |
178 | 179 | { |
179 | 180 | // 後方一致モードなのに末尾まで一致しなければやり直し |
180 | 181 | if(is_tail() && !p.eos(info.end)) |
@@ -195,14 +196,6 @@ | ||
195 | 196 | while(info.offset++, !(p++).eos()); // "!(++p).eos()"ではダメ("a*$"が"bbbb"にマッチしない) |
196 | 197 | return false; |
197 | 198 | } |
198 | - | |
199 | - // 前方一致チェック | |
200 | - template<typename _InputStreamIterator, typename _OutputIterator> | |
201 | - bool _match_forward(const _InputStreamIterator &text, _OutputIterator &match_end, size_t &match_length) const | |
202 | - { | |
203 | - // NFAエンジン | |
204 | - return m_nfa.match_forward(text, match_end, match_length); | |
205 | - } | |
206 | 199 | }; |
207 | 200 | |
208 | 201 | // char, wchar_tには専用の名前を付ける |
@@ -26,7 +26,13 @@ | ||
26 | 26 | <li>置換</li> |
27 | 27 | <li>後方参照</li> |
28 | 28 | <li>肯定先読み・否定先読み</li> |
29 | - <li>いろいろなコンパイラでコンパイルできるように</li> | |
29 | + <li> | |
30 | + いろいろなコンパイラに対応 | |
31 | + <ul> | |
32 | + <li><a href="http://www.digitalmars.com/" title="Digital Mars C++">Digital Mars C++</a>で独自の文字クラスを使えない問題への対応</li> | |
33 | + <li><a href="http://www.openwatcom.org/" title="Open Watcom C++">Open Watcom C++</a>対応</li> | |
34 | + </ul> | |
35 | + </li> | |
30 | 36 | </ul> |
31 | 37 | |
32 | 38 | <!-- 著作権表示 --> |
@@ -16,7 +16,7 @@ | ||
16 | 16 | |
17 | 17 | <h2>はじめに</h2> |
18 | 18 | <p> |
19 | - <strong class="software">Mercury::Regex</strong>は、誰でも、どんな目的にでも、どんな環境でも、どんな文字型でも、どんなデータ構造でも使える自由度の高い正規表現エンジンです。 | |
19 | + <strong class="software">Mercury::Regex</strong>は、誰でも、どんな目的にでも、どんな環境でも、どんな文字型でも、どんなデータ構造でも使える、移植性・自由度の高い正規表現エンジンです。 | |
20 | 20 | 面倒なインストールも追加ライブラリも必要ありません。 |
21 | 21 | </p> |
22 | 22 | <p> |
@@ -34,7 +34,7 @@ | ||
34 | 34 | </dd> |
35 | 35 | <dt id="HenrySpencer"><a href="http://arglist.com/regex/" title="regex - Henry Spencer's regular expression libraries">regex - Henry Spencer's regular expression libraries</a></dt> |
36 | 36 | <dd> |
37 | - Perlの正規表現の基になった、Henry Spancerの正規表現ライブラリです。 | |
37 | + <acronym title="Practical Extraction and Report Language">Perl</acronym>の正規表現の基になった、Henry Spencerの正規表現ライブラリです。 | |
38 | 38 | C言語で記述されています。 |
39 | 39 | </dd> |
40 | 40 | </dl> |