2
다음 문법은 LL (1)이 아닙니다. 그러나 나는 그 이유를 찾을 수 없습니다. 나는 왼쪽 재귀가없고 공통 접두사 문제가 없기 때문에 완벽하게 LL (1)이라고 생각합니다. 누군가 명확히 할 수 있습니까?왼쪽 재귀 나 공통 접두사가 없더라도 문법은 LL (1)이 아닙니다.
다음 문법은 LL (1)이 아닙니다. 그러나 나는 그 이유를 찾을 수 없습니다. 나는 왼쪽 재귀가없고 공통 접두사 문제가 없기 때문에 완벽하게 LL (1)이라고 생각합니다. 누군가 명확히 할 수 있습니까?왼쪽 재귀 나 공통 접두사가 없더라도 문법은 LL (1)이 아닙니다.
LL (1) 파서가 단일 토큰 예견을 사용하는 구성 될 수 있으며, stmt
에서 ID
둘이 assignment
및 subr_call
시작하므로 파서 두 경우를 구별 할 수없는 것을 의미 단지 첫 번째 토큰 (ID
)을보고
'LL (1)'가장 단순한 언어 = 1 토큰의 미리보기 머리글. 실제로 ID를 보는 stmt는 할당이나 subr_call을 구분하지 않습니다. 'stmt -> ID (rest_assignment | rest_subr_call)'는'LL (1)'이됩니다. –
@JoopEggen :과'expr'? 아니면 하나의 예를 제공 했습니까? – rici
@rici 예 expr은 기본에서 ID로, subr_call에서 ID로 같은 문제가 있습니다. –