C言語のソースをパースしたいと思ってたときがあったな、と思い出した。RubyでRaccを使って、K&Rに載ってるBNFを食わせてみたが、コンフリクトが発生する。 $ racc c.y 1 shift/reduce conflicts 2 reduce/reduce conflicts本によれば「唯一ぶつかりがあるのは、if-elseのあいまいさである。」と書いてあるんだけど。「-v」オプションをつけて詳細を表示するとぶつかってるのは state 2 7) declaration : declaration_specifiers _ init_declarator_list_opt ";" 13) declaration_specifiers_opt : declaration_specifiers _ "*" shift, and go to state 36 "*" [reduce us