编译原理(求First集).pdf

编译原理(求First集).pdf

ID:57310274

大小:58.08 KB

页数:3页

时间:2020-08-11

编译原理(求First集).pdf_第1页
编译原理(求First集).pdf_第2页
编译原理(求First集).pdf_第3页
资源描述:

《编译原理(求First集).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1、问题描述题目:First集和Follow集生成算法模拟设计一个由正规文法生成First集和Follow集并进行简化的算法动态模拟。动态模拟算法的基本功能是:ⅰ.输入一个文法G;ⅱ.输出由文法G构造FIRST集的算法;ⅲ.输出First集;ⅳ.输出由文法G构造FOLLOW集的算法;ⅴ.输出FOLLOW集。2、分析、设计、实现通过对产生式的顺序扫描,运用上述规则,把每种规则都转换为相应的算法,经过规则后将产生的First集存下来。流程图3、函数与过程的功能(MFC)CStringCFirstAnd

2、Follow::First(charVn,charPVn){CStringresult,tmpresult;chartmpmid;inttmpflag;if(Vns.Find(Vn,0)==-1&&Vn!=';'&&Vn!='

3、'){result.Insert(result.GetLength(),Vn);returnresult;}for(intix=0;ix

4、{tmpflag=ix;break;}}tmpflag+=3;for(intindex=tmpflag;index=0)//Vn{if(tmp==PVn

5、

6、tmp==Vn){do{index++;tmpmid=Vpro.GetAt(index);}while(tmpmid!='

7、'&&tmpmid!=';');}else{CStrin

8、gtmpr=First(tmp,PVn);if(tmpr.Find('_',0)==-1)//Vn{tmpflag=tmpresult.Find('_',0);while(tmpflag>=0){tmpresult.Delete(tmpflag,1);tmpflag=tmpresult.Find('_',0);}index--;do{index++;tmpmid=Vpro.GetAt(index);}while(tmpmid!='

9、'&&tmpmid!=';');}else//Vn{tmpmid=

10、Vpro.GetAt(index);}tmpresult+=tmpr;}}else{if(tmp!='

11、'&&tmp!=';'){tmpflag=tmpresult.Find('_',0);while(tmpflag>=0){tmpresult.Delete(tmpflag,1);tmpflag=tmpresult.Find('_',0);}if(tmpresult.Find(tmp,0)==-1){tmpresult.Insert(tmpresult.GetLength(),tmp);}inde

12、x--;do{index++;tmpmid=Vpro.GetAt(index);}while(tmpmid!='

13、'&&tmpmid!=';');}}if(tmpmid==';'

14、

15、tmpmid=='

16、'){for(intii=0;ii

17、(ii));}if(tmpmid==';')break;tmpresult.Empty();}}returnresult;}4、运行结果分析5、总结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。