下载此文档

编译原理实验报告38716.doc


文档分类:高等教育 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
编译原理实验报告一、实验目的设计一个词法分析器程序, 改程序能完成如下功能: 输入的字符串中的单词有整数和以字母开头的标识符, 分析器能识别出单词并区分是整数还是标识符, 标识符中是否有 while 、 do、 if、 then 、 else 、 begin 、 end 、 and 、 or、 not 等保留字。若单词是整数则输出整数的编码及数值, 是标识符则判定是否为保留字, 是保留字则将保留字及其对应的编码输出, 否则输出标识符号及其编码。二、实验代码#include<> #include<> int baoliuzi(char m[]) { char *b[] = {"while","do","if","then","else","end","and","or","not"}; int c[]={3,5,0,1,2,6,39,40,41}; for(int i= 0;i<9;i++) { if(strcmp(m,b[i])==0) return c[i]; } return 56; } int number(char n[]) { for(int i=0;n[i]!=NULL;i++) if(!(n[i]>='0'&&n[i]<='9')) return 0; return 1; } void main() { char a[100][100]; int b[100]; int i,j; FILE *fp; fp=fopen("d:\\","r"); for(i=0;!feof(fp);i++) fscanf(fp,"%s",a[i]); fclose(fp); for(j=0;j<i;j++) { if(number(a[j])) { b[j]=57; continue; } if(a[j][0]>='a'&&a[j][0]<='z') { b[j]=baoliuzi(a[j]); continue; } b[j]=-1; } for(j=0;j<i;j++) printf("(%s,%d) ",a[j],b[j]); printf("\n"); } 三、实验结果实验所用文件截图:

编译原理实验报告38716 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yixingmaoj
  • 文件大小0 KB
  • 时间2016-06-14
最近更新