构造FIRST集和FOLLOW集的方法.pdfVIP

  • 40
  • 0
  • 约1.67千字
  • 约 1页
  • 2021-01-11 发布于浙江
  • 举报
构造 FIRST集和 FOLLOW集的方法 1、构造 FIRST 集的算法 (1) 对于 G 中的每个文法符号X,为求FIRST(X),反复应用如下规则,直到集合不再增大: ① 若 X ∈VT ,则 FIRST(X)是{X} ② 若 X ∈V ,且X→aα (a∈V ) ,则{ a }  FIRST(X) N T X→ε , 则{ε}  FIRST(X) ③ 若 X-Y Y … Y Y … Y ∈P,Y ∈V ,则 1 2 i-1 i K 1 N FIRST(Y )- {ε}  FIRST(X) 1 ∗ 而对所有的j(1 ≤j ≤i-1), Y ∈V ,且Y ⇒ ε ,则令 j N j FIRST(Y )- {ε}  FIRST(X) (1≤j ≤i) j 特别,当ε∈FIRST(Y ) (1≤j ≤k)时,令ε∈FIRST(X) j (2) 对文法 G 的任何符号串=X X …X 构造集合 FIRST() 1 2 n ① 置 FIRST(X )- {}  FIRST() 1 ② 若对任何 1j i-1 ,FIRST(X ) , j 则 FIRST(X ) - {}  FIRST() i 特别是,若所有的 FIRST(X )均含有 ,1j n ,则{}  FIRST()。 j 显然,若 =则 FIRST() ={}。 2、构造 FOLLOW 集的算法 对于 G 中的每一 A ∈VN ,为构造FOLLOW(A) ,可反复使用如下的规则,直到每个 FOLLOW 集不再增大为止: ① 对于文法的开始符号 S ,令# ∈ FOLLOW(S)。 ② 对于每一 A→αBβ∈P , 令 FIRST(β) - {ε}  FOLLOW(B) 。 ③ 对于每一 A→αB ∈P , 或 A→αBβ∈P ,且ε∈FIRST(β) , 则令 FOLLOW(A)  FOLLOW(B) 。

文档评论(0)

1亿VIP精品文档

相关文档