ANTLR 4.6, 2011 년 11 월 23 일의 스냅 샷.왼쪽 재귀 규칙에서 상호 왼쪽 재귀 제거
두 개의 규칙이 각각 왼쪽 재귀 적입니다. 왼쪽 재귀를 노출하는 여러 가지 대안을 확장했습니다. 왼쪽 재귀가 명시 적이기 때문에 ANTLR4가이를 처리합니다. 그러나 두 규칙은 상호 왼쪽 - 재귀 적입니다.
어떻게하면 상호 왼쪽 재귀를 해결할 수 있습니까? 그렇다면 규칙이 완전히 엉망이 아닙니다. 지금은 확장 된 것을 보여주는 좋은 설명이 있습니다. 그리고이를 상호 왼쪽 재귀에 관여하지 않는 primary2와 constant_primary2로 옮겼습니다.
constant_primary :
constant_primary2
| primary '.' method_call_body
| constant_primary '\'' '(' constant_expr ')'
;
primary :
primary2
| primary '.' method_call_body
| constant_primary '\'' '(' expr ')'
;