나는 충돌을 감소 나에게 세 가지 변화를주고 다음과 같은 문법이 있습니다시프트 중순 규칙 작업에서 충돌을 감소 들소
boolexpression: boolexpression OR boolterm
| boolterm ;
boolterm: boolterm AND boolfact
| boolfact;
boolfact: "!" "(" boolexpression ")"
| "(" boolexpression ")"
| BOOLLITERAL
| expression boolop expression
boolop: "<"| ">"| BOOLOPLEQ /* <= */ | BOOLOPGEQ /* >= */ | BOOLOPEQ /* == */ | BOOLOPNEQ /* != */;
expression: sum ;
sum: sum "+" term
| sum "-" term
| term ;
term: term "*" factor
| term "/" factor
| factor;
factor: ID
| NUMBER
| "(" {/* rules to generate IR/*} expression ")";
내가 {/* rules to generate IR/*}
을 제거하면 모든 것이 잘 작동합니다.
게시 한 문법에는 충돌이 없으므로 충돌하는 부분은 게시물에서 버린 문법의 다른 부분에서 비롯된 것입니다. –