.y (yacc -- bison) ファイルの文法について、次のルールを定義しました。
C:E | D | ふ | あ
A:B | B '[' C ']' ;
(これは、オプションの [C] を持つ B のようなものです) 適切なレクサー ファイルを使用して適切な方法で .y ファイルをコンパイルすると、次の shift\reduce 競合が発生します。
状態 48
74 A: B .
75 | B. '[' C ']'
'[' シフトし、状態 91 に移動
'[' [reduce using rule 74 (A)]
$default reduce using rule 74 (A)
私の問題は、前任者 '[' がある場合は次のとおりです。縮小せずにシフトしたいのです。問題は、ドキュメントで何時間も検索しているときに、このエラーの解決策が見つからないことです。これを修正するにはどうすればよいですか (コード固有にしてください)。