yaccに苦戦
Scriptive-C*1の文法をBNFで書くが、どうしてもyaccが『シフト・還元が衝突』やら『無意味な非終端記号が云々』などとうるさい。いろいろいじっているうち原因が判明
/* defvar=変数宣言 */ defvar_list: defvar_list defvar ; defvar: deftype varlist ';' ;
こんなの通るわけないよな*2。これ見つけるのに1.5時間かかった。でもおかげでbisonの-vオプションで出力されるX.output見てエラー箇所の見当が付くようになった気がする。
*1:id:kt-blackout:20040706参照
*2:だって、これを受理するためには無限の変数宣言が必要になるから