題目
文法:
L →E ; L | ε
E →TE’ E’→ + T E’ | - T E’ | ε
T →FT’ T’→*F T’|/FT’|mod FT’|ε
F →(E) | id | num
FIRST()和FOLLOW()集合:
FIRST(F/T/E)= {( id num}
FIRST(T') = {* / mod ε}
FIRST(E') = {+ - ε}
FIRST(L) = {ε ( id num}
FOLLOW(L) = {#}
FOLLOW(E/E')= {) ;}
FOLLOW(T/T')= {+ - ; )}
FOLLOW(F) = {+ - * / mod ) ;}
分析句子: id+id*id;
分析表:
思考:
- 上面的句子在分析過程中哪幾步是匹配了FOLLOW集合裏的終結符而進行的動作?
- 需要去匹配FOLLOW集合中元素的前提條件是什麼?
解
2.
對文法的每個產生式A→α
有ε∈FIRST(α)