構文木を使って照合するバージョンを引き続き作業中。今のところ順調。
実は、今のバージョンを作っていて、鬼車やPCREがやっていることの意味がようやくわかりました。
この構文木からバイトコードを作って、仮想マシンに実行させれば私のマクロと同じだ!と一人で感動していたら腑に落ちたのです。
そうか、鬼車やPCRも仮想マシンで動いていたんだ・・・と、今頃やっと理解できました。
「正規表現を実装するにはNFAを使わなければならない」と、かたくなに思い込んでいたためにずいぶん回り道をしたものです。
だから、鬼車のソースを見て「どこでNFAを作っているの?」とありもしないものを探してパニックになって、それで理解できなかったんです。
何か、霧がすっきり晴れた感じです。
とは言っても、仮想マシンバージョンは別な機会にして、取り敢えず、構文木で照合するバージョンの公開を目指して作業します。