3. 计算FOLLOW集 ① 根据定义计算 对文法中每一 A∈VN 计算 FOLLOW(A) (a) 设S为文法中开始符号,把{#}加入FOLLOW(S)中(这里"#"为句子括号)。 (b) 若A→αBβ是一个产生式,则把FIRST(β)的非空元素加入FOLLOW(B)中。 如果β ![]() ![]() (c) 反复使用(b)直到每个非终结符的FOLLOW集不再增大为止。 现计算例5.5文法各非终结符的FOLLOW集。 FOLLOW(S)={#}∪ FOLLOW(D) FOLLOW(A)=(FIRST(B) \{ε})∪ FOLLOW(S) ∪ FIRST(D) FOLLOW(B)=FOLLOW(S) FOLLOW(C)=FOLLOW(S) FOLLOW(D)=FOLLOW(B)∪FOLLOW(C) 由以上最终计算结果得: FOLLOW(S)={#} FOLLOW(A)={a,#,c} FOLLOW(B)={#} FOLLOW(C)={#} FOLLOW(D)={#} |