JavaCC と LOOKAHEAD
基本的に、JavaCC のコンフリクトは 『LL(1) で判断できない分岐』 と 『shift-reduce confrict』 の2つ。
前者は
"a" "b" | "a" "c"
みたいなのが該当。この例の場合は LL(2) で判断できるから
LOOKAHEAD(2) "a" "b" | "a" "c"
みたいに修正。
後者は、例えば if-then-else みたいなのが該当する。こいつは
"if" "(" Expression() ")" Statement() [LOOKAHEAD(1) "else" Statement()]
ってすると解決。