[英]How to find FIRST and FOLLOW set of a recursive grammar?
假设我有以下CFG:
S-> aACD | BcAe
A-> b | 爱普生
B-> cf | d
C->铁
现在,我在CFG上应用FIRST规则:
FIRST(S)= FIRST(aAcd)U FIRST(BcAe)
= {a} U FIRST(BcAe)
= {a}优先(B)-{epsilon}优先(cAe)
= {a} U首先(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规则:
跟随次数= {$}
跟随(A)= {c,e}
跟随(B)= {c}
跟随(C)= {f}
有什么事吗 如果有误,请告诉我该怎么做。
您上面的问题(问题)表明您在基本概念方面不擅长。 因此,您可以利用本教程 。
语法:
S-> aACD | BcAe
A-> b | 爱普生
B-> cf | d
C->铁
没有生产意味着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}
在遵循规则时:
跟随次数= {$}
FOLLOW(A)= FIRST(C)U FIRST(e)= {f,e}
跟随(B)= {c}
跟随(C)= {$}
跟随(D)= {$}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.