2014-07-13 6 views
1

저는 ANTLR의 문법 파서를 연구하고 있습니다. 현재()가 우선 순위가 가장 높은 단항 마이너스 등의 표현식에 대해 작업하고 있습니다.상호 왼쪽 재귀?

줄을 추가하면 ANTLR이 오류를 발생시킵니다. 다음 규칙 집합은 상호 왼쪽 재귀 적입니다 [add, mul , unary, not, expr, paren, accessMem, relation, or, assign, equal]이 문제를 해결하려면 어떻게해야합니까? 미리 감사드립니다.

답변

3

가장 쉬운 대답은 즉각적인 왼쪽 재귀에 문제가없는 antlr4가 아닌 3을 사용하는 것입니다. 그것은 옳은 일을하기 위해 표지 밑의 문법을 자동으로 다시 작성합니다. 많은 예제가 있습니다. 예를 들어 Java grammar 또는 내 작은 블로그 항목 left recursive rules을 검토 할 수 있습니다. v3에 익숙하다면 Java 문법의 이전 버전과 설명서 및 책에서 산술 표현식 규칙을 작성하는 방법에 대한 많은 자료가 있습니다.