四LL(1)文法 1. FIRST集 (1)定义对a∈(V八V)*有 FIRST (a)=(a@=a.,, ae VT) 若a→>E,则∈ FIRST(a) (2对文法符号X∈VN (3)当0=X1X2X时
四. LL(1)文法 1.FIRST集 (1)定义:对α(VTVN)*,有 FIRST(α)={a|αa. . . , aVT} 若αε,则εFIRST(α) (2)对文法符号XVTVN (3)当α=X1X2…Xn时 * *
X∈V则 FIRST(X){X} X∈V,分三种情形 Ⅹ→>a. Ⅹ→Y →Y1Y2..Yk
XVT , 则FIRST(X)={X}; XVN, 分三种情形: X→a… X→Y… X→Y1Y2…Yk
2. FOLLOW集 (1)定义对A∈V有 FOLLOW(Aa s3.Aa.,aEVT) 若S→.A,则$∈ FOLLOW(A)其中S为开始符号
2. FOLLOW集 (1)定义:对AVN ,有 FOLLOW(A)={a│S . . .Aa. . . ,aVT} 若S ...A, 则$FOLLOW(A),其中S为开始符号 * *
(2)求法 $∈ FOLLOW(S) A→OBβ将 FIRST(β)-{}加入 FOLLOW(B) A→0B或者AB且B将 FOLLOW(A加入 FOLLOW(B) 注意:求 FOLLOW(B实际上是考察B在产生式右 端的每一次出现
(2)求法 $ FOLLOW(S) A→αBβ: 将FIRST()-{}加入FOLLOW(B) A→αB 或 者 A→αBβ 且 βε: 将 FOLLOW(A) 加 入 FOLLOW(B) 注意: 求FOLLOW(B)实际上是考察B在产生式右 端的每一次出现 *
例:G(EE→TE E→+TE T→FT T*FTe F→(E)i
例: G(E) E→TE’ E’→+TE’│ε T→FT’ T’→*FT’ │ε F→(E)│i