누군가가 와 (순서대로) 를 시도하는 역 추적 기능이있는 재귀 적 하강 파서가 문법 의해 형성된 언어를 인식하지 못하는 이유를 누군가에게 ?S → a a S → a S a |
언어의 단어 만 구문 분석하는 것으로 보입니다 .
예를 들어 생산 규칙 과 함께이 ABNF 파서 생성기 를 사용하여 이러한 파서를 생성 S = "a" S "a" / "aa"
했지만 파서는 단어를 인식하지 못합니다 aaaaaa
.
왼쪽에서 구문 분석 트리의 터미널 노드가 연결될 때까지 프로덕션 를 사용 하고 트리가 보일 때까지 대신 프로덕션 를 선택하여 구문 분석 트리로 이동합니다. 이:S → a aa
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa
.
aaaaaa
은 파싱해야하며 그렇지 않습니다. 그러나 aaaa
파싱합니다. 당신은 2의 거듭 제곱에 대해 분명히 옳습니다. 그것은 단지 구문 분석 aa
과 함께 S = "aa" / "a" [S] "a"
. 파서의 기능을 추적 할 수 있습니까?