编译原理中的follow集怎么计算
2个回答
展开全部
follow集看产生式右边,紧跟它其后的字符。
①紧跟的为终结符(小写),直接将其加入follow集。
②紧跟的为非终结符(大写),看此非终结符的first集,把first集加入到follow集,注意若first集包含ε(空符号串),则去掉ε,并且把产生式左边非终结符follow集也加入到follow集。
③后无,则产生式左边非终结符follow集加进去。
注:follow集无ε。开始符(一般S)follow集记得一定要加上#。
over,其实first集更麻烦。
①紧跟的为终结符(小写),直接将其加入follow集。
②紧跟的为非终结符(大写),看此非终结符的first集,把first集加入到follow集,注意若first集包含ε(空符号串),则去掉ε,并且把产生式左边非终结符follow集也加入到follow集。
③后无,则产生式左边非终结符follow集加进去。
注:follow集无ε。开始符(一般S)follow集记得一定要加上#。
over,其实first集更麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FOLLOW(A)
指的是所有包含A的句型中,直接跟在A后面的终结符或#的集合。
举例:
对于文法G(S)
1.S->L=R
2.S->R
3.L->*R
4.L->i
5.R->L
要求L的FOLLOW集,则首先要找出所有包含L的句型
根据产生式1可知有句型L=R
将产生式5带入1或2中有L=L或L
则L的FOLLOW集就是上边所有包含L句型中L后边紧跟着的终结符,如果L在句型的结尾则#包含在其FOLLOW集中
所有FOLLOW(L)={=,#}
希望我的回答能帮到楼主~
指的是所有包含A的句型中,直接跟在A后面的终结符或#的集合。
举例:
对于文法G(S)
1.S->L=R
2.S->R
3.L->*R
4.L->i
5.R->L
要求L的FOLLOW集,则首先要找出所有包含L的句型
根据产生式1可知有句型L=R
将产生式5带入1或2中有L=L或L
则L的FOLLOW集就是上边所有包含L句型中L后边紧跟着的终结符,如果L在句型的结尾则#包含在其FOLLOW集中
所有FOLLOW(L)={=,#}
希望我的回答能帮到楼主~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询