2012-07-24 11 views
-2

왼쪽 피하는 I가 다음 작품순환이 하강 파서 - 재귀

A -> Aa 
A -> b 

그래서

parseA() { 
    parseA();//recursion 
    parsea(); 
} 

처럼이 왼쪽 재귀 사용을 방지 할 수 있다고한다 재귀가 남아있는 것이 분명하다 다음 규칙은 무엇입니까?

A -> bA' 
A' -> aA'|null 

여기에 왼쪽 재귀는 피할 수 있습니까? 아직 재귀가 있습니다. 함수 A '에서. 누구든지이 사실을 설명 할 수 있습니까? 나는이 주제의 초보자입니까?

+0

무슨 일이 일어나는지 확인하려면 함수를 작성하십시오. 재귀는 이제 왼쪽 재귀 대신 꼬리 재귀입니다. –

+0

실제로이 '왼쪽'재귀는 무엇입니까 –

+4

모든 활성 채팅방을 입력하고 초 질문에 대한 링크 만있는 사람을 맞이하는 것은 예의 없습니다. –

답변

2

왼쪽 재귀는 어떻게 피할 수 있습니까? 여전히 함수 A '에서 재귀가 있습니다.

이 부분을 다시 읽으십시오. 왼쪽 재귀는 피할 수 있습니다. 비 왼쪽 재귀는 아닙니다.

+0

그래도 A라는 함수에 재귀가 있습니까? –

+0

또한 실제로이 '왼쪽'재귀는 무엇입니까? –

+2

가장 왼쪽 요소의 재귀. 그러므로 'A = A something'과 같은 규칙은 재귀 적으로 남게됩니다. Left-recursion은 모든 LL 파서에 적합합니다. – Puppy