下载此文档

PL0词法分析器代码.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
#include<iostream>#include<>#include<>#defineLINE100//源程序每行至多100个字符usingnamespacestd;charbuf[LINE];//按行存放字符intlength;//记录每行长度char*key[9]={"PROGRAM","BEGIN","END","CONST","VAR","WHILE","DO","IF","THEN"};//关键字char*ch[15]={"+","-","*","/",":=","=","<",">",">=","<=","(",")",";",","};//限定符/界符intreadfile(FILE*fp)//,只读取一行{charch;//存放读取的单个字符length=0;ch=fgetc(fp);//调用函数fgetc()读取文件内容while(!feof(fp)&&ch!='\n')//读取字符到buf[]数组 {buf[length]=ch; ch=fgetc(fp);length++; } if(length!=0) return1; else return0;}voidlexical(char*buf,intlength)//词法分析函数{ inti; charbuffer[LINE]; for(i=0;i<length;i++) { buffer[i]=*buf;buf++; } for(i=0;i<length;i++) { //判断是否为“常数” if(buffer[i]=='0'||buffer[i]=='1'||buffer[i]=='2'||buffer[i]=='3'||buffer[i]=='4'||buffer[i]=='5'||buffer[i]=='6'||buffer[i]=='7'||buffer[i]=='8'||buffer[i]=='9') { cout<<"常数"<<buffer[i]; while(1) { i++; if(buffer[i]=='0'||buffer[i]=='1'||buffer[i]=='2'||buffer[i]=='3'||buffer[i]=='4'||buffer[i]=='5'||buffer[i]=='6'||buffer[i]=='7'||buffer[i]=='8'||buffer[i]=='9') cout<<buffer[i]; else break; } cout<<endl; } //判断是否为“算符/界符” elseif(buffer[i]=='+'||buffer[i]=='-'||buffer[i]=='*'||buffer[i]=='/'||buffer[i]=='='||buffer[i]=='('||buffer[i]==')'||buffer[i]==';'||buffer[i]==',') cout<<"算符/界符"<<""<<buffer[i]<<endl;// elseif(buffer[i]=='>'||buffer[i]=='<') { if(buffer[i+1]=='=') cout<<"算符/界符"<<""<<buffer[i]<<buffer[i+1]<<endl; else

PL0词法分析器代码 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人feng1964101
  • 文件大小19 KB
  • 时间2020-09-10
最近更新