调用返回
编译原理
对 和Aβ不→同α,时A推→导β其出中空A时∈(V设N ,α不α, 推β ∈导V出N空*,,当β推α 导出空),则当 FIRST(α)∩(FIRST(β)∪FOLLOW(A))=Φ时, 对于非终结符A的替换仍可唯一地确定候选。
编译原理
定义:给定上下文无关文法的产生式A→α, A若∈α V*Nε,, α则∈SVEL*,ECT(A→α)=FIRST(α) 如果α *ε,则 SELECT(A→α)=FIRST(α)∪FOLLOW(A)
FOLLOW(S)= {#} FOLLOW(A)= {a,c,#} FOLLOW(B)= {#} FOLLOW(C)= {#} FOLLOW(D)= {#}
4.计算SELECT集
S→AB S→bC A→ε A→b B→ε B→aD C→AD C→b D→aS D→c
SELECT(S→AB)={a,b,ε,#} SELECT(S→bC)={b} SELECT(A→ε)={a,c,#,ε} SELECT(A→b)={b} SELECT(B→ε)={#,ε} SELECT(B→aD)={a} SELECT(C→AD)={a,b,c} SELECT(C→b)={b} SELECT(D→aS)={a} SELECT(D→c)={c}
• 3.若XY…是一个产生式且YVN,则把FIRST(Y)中 的所有非元素都加到FIRST(X)中;若X Y1Y2…YK 是一个产生式,Y1,Y2,…,Y(i-1)都是非终
结符,而且,对于任何j,1≤j ≤i-1,FIRST(Yj)都含 有元(素即都Y加1..到Y(Fi-I*1R) ST(X)),中则;把特F别IR是ST,(若Yj所)中有的的所有非 FIRST(Yj , j=1,2,…,K)均含有,则把加到 FRIST(X)中.