作者fbukevin (Veck)
看板CSSE
标题[问题] Compiler -LL(1) Grammar
时间Wed Apr 10 16:51:45 2013
Compute the First and Follow sets for the following grammar.
S ← TS | a
T ← UVb | ε
U ← V | ca | ε
B ← aUb | c
已经知道:
First(S) = {a,c}
First(T) = {a,c,ε}
First(U) = {a,c,ε}
First(V) = {a,c}
Follow(S) = {$}
Follow(T) = {a,c,$}
Follow(U) = {a,c,b}
Follow(V) = {a,b,c}
我想问为什麽 Follow(V) 中有 a 和 c 呢?
我看 Aho 的 Compiler Principle.. 那本
他说 Follow set 的计算有三个规则:
1. 将 $ 放到 Follow(S) 中,其中 S 是 start symbol
2. 如果存在一个 production A→αBβ
则 First(β) 中除了ε之外的所有符号都在Follow(B)中
3. 如果存在一个 production A→αB
或 A→αBβ且 First(β)包含ε
则 Follow(A)中所有符号都在Follow(B)中
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.224.200
1F:推 LPH66:U ← V 所以 Follow(U) 会加进 Follow(V) 里去 04/10 17:03
2F:→ LPH66:(用的是第 3 条规则) 04/10 17:03
3F:→ fbukevin:谢谢大大! 是把 V 看作是B,α没有,这样吗? 04/10 17:12