4
글쎄, 나는 아래와 같이 문법을 구문 분석하기 위해 재귀 적 하강 구문 분석을 사용하여 함수를 작성해야하는지 잘 모르겠습니다. 사실, 난 ...BNF 문법의 재귀문
BNF 내가 바로 그 일을하고 있는지 확실하지 않습니다 :
A : B | A '!'
B : '[' ']'
의사 코드 :
f()
{
if(tok is B)
parse_b();
return somethingB
else if(????) how will I know if it's start of A or I don't need to?
x = f();
parse_c();
return somethingA
}
내가 있는지 확인하기 위해이 (어떤 검사를 수행하지 않았다 그것은 A의하지만 난 뭔가 잘못) 그것으로 거기 느낌 :
f()
{
if(tok is B)
parse_b();
return somethingB
else
x = f();
parse_c();
return somethingA
}
http://stackoverflow.com/questions/16165352/why-cant-a-ll-grammar-be-left-reursive – didierc
어떤 기호가 토큰이고 어떤 기호가 아닌 기호인지는 명확하지 않습니다. B와 C 만 토큰이면 문법을 리팩터링하거나 선견자보다 더 많이 사용해야합니다. –
didierc : 나는 이것을 조사 할 것이다. @ n.m .:은'A : B | '!''더 명확한가요? – Jack