2014-09-09 3 views
0

언어를 구문 분석하려고합니다. 추적의 ANTLR4 파서 규칙이 직접 언어 사양에서 복사 :ANTLR4에서 왼쪽 재귀 오류를 제거하기 위해 문법을 수정하는 방법은 무엇입니까?

physical_value 
: raw_value DIV factor MUL factor PLUS offset 
; 

raw_value 
: (physical_value MINUS offset) DIV factor 
; 

하지만 오류가 ANTLR보고 : 규칙의 다음 세트는 상호 왼쪽 재귀 나는 문법을 수정하는 방법을 모르고있다, 희망의 사람 나를 도와 줄 수 있니. 감사합니다. .

+0

http://en.wikipedia.org/wiki/Left_recursion # Removing_immediate_left_recursion –

+0

@DavidBrabant ANTLR 4는 즉시 왼쪽 재귀를 제거합니다. 유토피아로. 이것은 간접적 인 왼쪽 재귀입니다 (링크 된 페이지에도 나타나지만 다른 섹션에 나타남). –

+0

정확한 문서를 알려주시겠습니까? 고마워 :) – sara

답변

1

일치하는 유일한 문자열이 무한 시퀀스이므로 게시 된 규칙에서 왼쪽 재귀를 제거 할 수 없습니다.

physical_value

와 항상 raw_value

  • raw_value 시작과 함께 항상 시작
    • physical_value... 반복

  • +0

    답변 주셔서 감사합니다, 거기에 규칙을 수정할 수있는 방법은 무엇입니까? 나는 아무것도 할 수 없어? – sara

    +0

    @sara : 샘플 입력을 게시하고 규칙과 일치해야하는 항목을 게시 할 수 있습니까? 규칙을 수정하는 방법이 있을지도 모릅니다. – Onur