找到以下语法的 FIRST & FOLLOW E → E + T|T T → T ∗ F|F F → (E)|id
解决方案
FIRST的计算
E→E+T|T
由于FIRST(E)不包含ε。
∴第一(E)=第一(E+T)=FIRST(E)
作为,E→T
∴第一(E)={FIRST(T)}(1)
T→T∗F|F
由于FIRST(T)不包含ε或T不导出ε。
∴FIRST(T)=FIRST(T∗F)={FIRST(T)}
作为,T→F(FIRST(T)={FIRST(F)}(2)
F→(E)|id
∴根据FIRST的规则(3)
第一(F)={(,id}(3)
来自(1),(2)&(3)
第一(F)={(,id}(3)
第一(T)={FIRST(F)}(2)
第一(E)={FIRST(T)}(1)
∴第一(E)=FIRST(T)=FIRST(F)={(,id}
FOLLOW的计算
E→E+T|T
T→T∗F|F
F→(E)|id
应用规则(1)跟随(E)={$}(1)