2024-02-14: 空ループの扱いについて考えていた
やったこと
ミリシタ
バレンタインデー。
ということでロコからチョコを受け取っていた。
ロコが作るチョコはどんなのだろうか。
研究
論文を読んで実装していた。
アイディアはシンプルなので、論文の書き方などを吸収したい。
Ruby
空ループの扱いについて説明したり考察したりしていた。
TruffleRubyの方の実装 (TRegex) を確認したりもした。
恐らく空ループのチェックはTRegexでは次のようになっている。
- 空文字列にマッチする可能性のあるループの中のマッチ中に、キャプチャの更新があったかをチェック
- ただし、先読みの中のキャプチャなどはそのチェックから外れる
- つまり、空ループで更新され続けるキャプチャは空文字列にマッチするものだけになる
とはいえ細かい動作はよく分かっていないので難しい。
うーん。