flexで正規表現マッチ

flexって要は正規表現の状態遷移をマシン語に落としてるわけだから、そこらのregexより速くなる可能性があって、正規表現マッチがボトルネックのプログラムをflexでマッチしたら

  • perl : 10分か20分くらい(ちゃんと測ってない)
  • boost::regex : 6秒
  • flex : 2.5秒

とかになった。つか、perlのものとかなんで遅かったんだろうか。compileできるリテラルだったはずだけど。まあ周辺が遅かった可能性もあるけど。(ちゃんと計測しろよ)

%%
[a-z]+ { return 1; }
\n { return 0; }
\r { return 0; }
. { return 0; }
%%

とかする