やり直し

SkRegExpに再帰を実装すべくいじっていますが、「何でこんなコードなんだ?」と思うものをたくさん見つけました。

1年以上放置しているので、どうしてそのような実装をしたのかよく覚えていません。

その中でも最大のものが「なぜ、構文木からNFAを作っているのか?」です。

構文木を完全な再帰下降で作れば、NFAを作らなくてもそのまま照合を実行できるんじゃないかと思ったのです。

構文解析しながらオブジェクトを作っているので、構文木そのものが何をすべきか知っていると思うのです。

これがオブジェクト指向ってヤツですよね。

構文解析の手法は拙作の返信屋2007のマクロで使った方法を流用したものです。

この方法は中田育夫先生の著書を参考に作ったと思います。

返信屋2007のマクロは構文木をそのまま実行しています。

それなのに、なぜ、SkRegExpはそうしなかったのかわからないのです。

正規表現とプログラム言語風のマクロ、何が違うのか?と思うのです。

どうしても気になって仕方ありません。気になるとやらずにはいられない性分です。

構文木をそのまま実行するというアイデアに魅力を感じてしまって他のことには手が付かない状態です。

なので、すいませんがSkRegExpの再帰サポートは放り出します。

実は、既に昨日から構文木をそのまま実行するアイデアを実装してます。こっちの方が楽しいです。

コメントを残す

メールアドレスが公開されることはありません。