n もイプシロン プロダクションであるため、bison の次の文法で reduce/reduce の競合が発生しています。
m : {$$=line_no;}
;
n : {
$$.nl=makelist(line_no);
codelines[line_no].opcode=GOTO;
codelines[line_no].result=0;
line_no++;
}
;
selection_statement
: IF '(' expression ')' m statement %prec THAN
| IF '(' expression ')' m statement n ELSE m statement
| SWITCH '(' expression ')' statement
;
これを変更してこの競合を取り除くにはどうすればよいですか?