繁体   English   中英

如何找到第一个和第二个递归语法集?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM