2017-05-15 15 views
0

나는 컴파일러의 마법을 연구 중이므로 결과를 이해하지 못한다. 편집 - LL1 문법

S -> A # 
A -> B G D E 
B -> + | - | EPSILON 
C -> c C | EPSILON 
G -> c C 
D -> . C | EPSILON 
E -> e B G | EPSILON 

나는 "첫 번째"와 "따라"세트를 찾으려고

, 나는 내가 온라인 예측 함께 할 때 얻을 것과 다른 결과를 얻을 : 여기

은 문법이다.

는 여기에 결과가 주어집니다 :

Non-terminal Symbol/Follow Set 
    S     $ 
    A     # 
    B     c 
    C    e, ., # 
    G     ., # 
    D     e, # 
    E     # 

왜 G의 후속 세트 {. 전자가, #} 아닌가요? 내가 이해할 수있는 것은 A 규칙에 따라 D가 G를 따르므로 추가하지만 EPSILON이기도하므로 E로 이동하면 ae가 될 수 있지만 EPSILON 그래서 우리는 S 규칙과 관련하여 #으로 이동합니다.

무엇이 여기에 있습니까?

난 G의 후속 집합 내 연산이 정확 http://hackingoff.com/compilers/predict-first-follow-set

답변

1

로 공구를 사용했다.

해킹 도구가 버그입니다.

S -> a B C a 
B -> b 
C -> EPSILON 

그것은 aB에 대한 FOLLOW 세트하지만 비어 설정 도구 보고서에 있음을 분명 다음은 동일한 오류를 전시 짧은 문법이다.

+0

감사합니다. http://hackingoff.com/compilers/predict-first-follow-set을 사용했습니다. – eli0T