编译预处理实验心得

编译预处理实验心得

ID:30365239

大小:17.25 KB

页数:7页

时间:2018-12-29

编译预处理实验心得_第1页
编译预处理实验心得_第2页
编译预处理实验心得_第3页
编译预处理实验心得_第4页
编译预处理实验心得_第5页
资源描述:

《编译预处理实验心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划编译预处理实验心得  预处理实验报告  1  2  3  4  5  实验三词法分析  实验目的:  1.熟悉给定的词法分析程序;  2.改进词法分析程序。  实验内容:  1.熟读给出的词法分析程序,理解程序设计内容。  2.尝试多方面改进此Test语言的文法,从而尝试在此词法分析程序的基础上改进程序,并编程运行。  实验要求:  1.写出改进的文法;  2.写出改进部分的程序。  注意:由于此实验有一定的难度,

2、所以可以自由组织3为同学一组,一组同学仅需上交一份报告。报告上需要写明3位同学的学号和姓名。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  实验结果:  修改的词法分析程序,添加保留字do、双分界符&&和

3、

4、以及单分界符!的处理。  修改后程序如下:  #include  #include  //下面定义保留,为简化程序,使用字符指针

5、数组保存所有保留字。  //如果想增加保留字,可继续添加,并修改保留字数目  #definekeywordSum11  char  *keyword[keywordSum]={"if","else","for","while","do","int","read","write","main","printf","include"};  //下面定义纯单分界符,如需要可添加  charsingleword[50]="+-*(){};,:!";  //下面定义双分界符的首字符  chardoubleword[10]=">=key

6、wordSum)//不是保留字,输出标识符fprintf(fout,"%st%s","ID",token);//输出标识符符号else//是保留字,输出保留字  fprintf(fout,"%st%s",token,token);//输出保留字符号}elseif(isdigit(ch))//数字处理目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能

7、及个人素质的培训计划  {  token[0]=ch;j=1;ch=getc(fin);//读下一个字符while(isdigit(ch))//如果是数字则组合整数;如果不是则整数组合结束{token[j++]=ch;//组合整数保存在token中ch=getc(fin);//读下一个字符}  token[j]='';//整数组合结束  fprintf(fout,"%st%s","NUM",token);//输出整数符号}elseif(strchr(singleword,ch)>0)//单分符处理  {  toke

8、n[0]=ch;token[1]='';  ch=getc(fin);//读下一个符号以便识别下一个单词  fprintf(fout,"%st%s",token,token);//输出单分界符符号}elseif(strchr(doubleword,ch)>0)//双分界符处理  {  token[0]=ch;ch=getc(fin);//读下一个字符判断是否为双分界符if(ch=='=')//如果是=,组合双分界符{token[1]=ch;token[2]='';//组合双分界符结束ch=getc(fin);/

9、/读下一个符号以便识别下一个单词}else//不是=则为单分界符  token[1]='';目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  fprintf(fout,"%st%s",token,token);//输出单或双分界符符号}elseif(ch=='/')//注释处理  {  ch=getc(fin);//读下一个字

10、符  if(ch=='*')//如果是*,则开始处理注释{charch1;ch1=getc(fin);//读下一个字符do{ch=ch1;ch1=getc(fin);}//删除注释while((ch!='*'

11、

12、ch1!='/')&&ch1!=EOF);//直到遇到注释结束符*/或文件尾c

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

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

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