左辺の右端だけで決定されているというよりも、右辺をどこで終了させるかが問題なのでは。これは非常に困難です。左辺はまだ認識されていないためです。クンの読み方を制御するために左辺を調べようというのは因果律に反します。不可能とはいいませんが。Rubyの文法を人間が期待するように完全に解釈しようとすると、backtrackしかないような気はします。あたりかなぁ、とか思っています。それで嬉しい人はまずいないんじゃないですかね。どちらかというと、?のリテラルで空白を禁止したほうが直観的なような気がします。それと、こういうのも一見して分かりにくいと思うので、二文字以上の単語の先頭の?はリテラルとみなさないほうが良いのでは。97ついでに、ソースと別ディレクトリでコンパイルしていると、keywordsを変更しても$(srcdir)/lex.cが読み込まれてしまって、変更が反映されません。僕の前にBugはない。僕の後ろにBugはできる。