나는 이해할 수있는 교대/감소 충돌 규칙이있는 상황이 있습니다. 나는 최후의 순간까지 줄이기를 원한다. (줄의 끝). 그래서 저는 항상 교대라고 말하고 싶습니다. 어떻게해야합니까?충돌을 해결하기 위해 Bison/Yacc에게 알려주고 충돌을 해결하지 않기 위해 말하기
1
A
답변
2
Craig가 말한 것처럼 시프트 감소 충돌이있을 때 들소가 이동합니다. 그것에 관한 경고가 귀찮다면 bison의 % expect 지시문을 사용하여 예상되는 shift-reduce 충돌 횟수를 지정할 수 있습니다. 이런 식으로 유일한 충돌이라면 침묵 할 것입니다. 그러나 추가적인 충돌이 있다면 경고가 다시 올 것입니다.
0
기본적으로 Bison은 이동/축소 충돌이있을 때 이동합니다. 선행 선언을 사용하여 동작을 변경할 수 있습니다.
+0
나는 이것들을 들었다. 그러나 나는 shift/reduce 또는 감소/감소에 관한 경고 나 오류를 보는 것을 여전히 좋아하지 않는다. ATM은 구문 설탕 때문에 비활성화되었습니다. –
나는 대안을 선호하지만이 대답은 메시지를 제거합니다. 내가 그것을 옮길 수있는 방법을 주위에 내 머리를 감싸고 줄일 수 있지만 이동하지 알고 섹션을 다시 작성하고 싶습니다. (어쩌면 그것의 값이있는 ATM. 내가 끝까지 도착할 때 나는 볼 것이다). 감소/감소 충돌을 숨기기 위해 % expect-rr을 언급하는 중 btw –