编译原理 FOLLOW集方法:E → TE’E’→ +TE’|εT→ F T’T’→ *F T’|εF → (E)|id——————————————为什么:FOLLOW(F)= {+,*,),$}不是应该中有{*,
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/31 13:23:05
编译原理 FOLLOW集方法:E → TE’E’→ +TE’|εT→ F T’T’→ *F T’|εF → (E)|id——————————————为什么:FOLLOW(F)= {+,*,),$}不是应该中有{*,
编译原理 FOLLOW集
方法:
E → TE’
E’→ +TE’|ε
T→ F T’
T’→ *F T’|ε
F → (E)|id
——————————————
为什么:
FOLLOW(F)= {+,*,),$}
不是应该中有{*,
编译原理 FOLLOW集方法:E → TE’E’→ +TE’|εT→ F T’T’→ *F T’|εF → (E)|id——————————————为什么:FOLLOW(F)= {+,*,),$}不是应该中有{*,
因为有:
T→ F T’
T’→ *F T’
所以FIRST(T')是FOLLOW(F)的子集.所以 * 是FOLLOW(F)中的元素.
因为有:
T→ F T’
T’→ε
所以FOLLOW(T)是FOLLOW(F)的子集.
因为有:
E’→ +TE’
所以FIRST(E‘)是FOLLOW(T)中的子集.所以FIRST(E‘)是FOLLOW(F) 中的子集.
因为有:
E’→ +TE’
所以+是FIRST(E’)中的元素,所以+是FOLLOW(F)中的元素.
因为有:
E’→ ε
E → TE’
所以有:
FOLLOW(E)是FOLLOW(T)子集.前面有所以FOLLOW(T)是FOLLOW(F)的子集.所以有
FOLLOW(E)是FOLLOW(F)的子集,
由F → (E)|id
知 ) 是FOLLOW(E)的元素.所以 ) 是FOLLOW (F)的元素.
因为E是开始符号,所以有 $ 是FOLLOW(E)中的元素,所以 $ 是FOLLOW(F)中的元素.
综上所述:
FOLLOW(F)= {*,+,),$}