假设我有以下CFG:
S-> AACD | BcAe
A-> b | EPSILON
B-> cf | d
C-> FE
现在我在CFG上应用FIRST规则:
FIRST(S)= FIRST(aAcd)U FIRST(BcAe)
= {a} U FIRST(BcAe)
= {a} U FIRST(B) - {EPSILON} U FIRST(cAe)
= {a} U FIRST(B) - {EPSILON} U {c}
= {a} U FIRST(Cf)U FIRST(d) - {EPSILON} U {c}
= {a,f,d,c,EPSILON}
FIRST(A)= FIRST(b)U FIRST(EPSILON)= = {B,EPSILON}
FIRST(B)= FIRST(Cf)U FIRST(d)= {d,f}
FIRST(C)= FIRST(FE)= {F}
现在我在CFG上应用FOLLOW规则:
请(S)= {$}
请(A)= {C,E}
请(B)= {C}
请(C)= {F}
有什么不对吗?如果有问题请告诉我该怎么做。
答案 0 :(得分:2)
您上面的工作(问题)表明您不擅长基本概念。因此,您可以使用this tutorial。
Grammer:
S-> AACD | BcAe
A-> b | EPSILON
B-> cf | d
C-> FE
没有生产意味着EPSILON,
D-> EPSILON
申请第一条规则:
FIRST(A)= FIRST(b)U FIRST(EPSILON)= = {b,EPSILON}
FIRST(B)= FIRST(cf)U FIRST(d)= {c} U {d} = {c,d}
FIRST(C)= FIRST(FE)= {F}
FIRST(d)= {} EPSILON
FIRST(S)= FIRST(aACD)U FIRST(BcAe)
= {a} U FIRST(BcAe)
= {a} U FIRST(B)
= {a} U {c,d}
= {a,c,d}
关于应用关注规则:
请(S)= {$}
跟随(A)=第一(C)U第一(e)= {f,e}
请(B)= {C}
请(C)= {$}
请(d)= {$}