编译原理词法分析器代码修改.docx
- 文档编号:24118233
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:5
- 大小:14.58KB
编译原理词法分析器代码修改.docx
《编译原理词法分析器代码修改.docx》由会员分享,可在线阅读,更多相关《编译原理词法分析器代码修改.docx(5页珍藏版)》请在冰豆网上搜索。
编译原理词法分析器代码修改
//456.cpp:
定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include
#include
#include
usingnamespacestd;
boolIsnoshow(charch){//判断是不是空格、回车、换行符
if(ch=='\n'||ch=='\t'||ch=='')
returntrue;
returnfalse;
}
boolIsletter(charch){//判断是不是字母
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
returntrue;
returnfalse;
}
boolIsdigital(charch){//判断是不是数字
if(ch>='0'&&ch<='9')
returntrue;
returnfalse;
}
boolIsunline(charch){//判断是不是下划线
if(ch=='_')
returntrue;
returnfalse;
}
boolIscacus(charch){//判断是不是运算符
if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='%'||
ch=='<'||ch=='>'||ch=='&'||ch=='|'||ch=='!
'||ch=='=')
returntrue;
returnfalse;
}
boolIssplits(charch){//判断是不是分界符
if(ch=='{'||ch=='}'||ch=='['||ch==']'||ch=='('||
ch==')'||ch==';'||ch==','||ch=='.'||ch==':
'||ch=='"')
returntrue;
returnfalse;
}
int_tmain(intargc,_TCHAR*argv[])
{
charb[1000];
ifstreamifile;
ifile.open("d:
\\1.txt");
inti=0;
while(ifile.get(b[i])){
{
inta=i+1;
if(ifile.eof()==1)break;
if(Isletter(b[i])||Isunline(b[i]))
{
if(Isdigital(b[i-1]))
cout<<"是数字"< elseif(Issplits(b[i-1])) cout<<"是分界符"< elseif(Iscacus(b[i-1])) cout<<"是运算符"< cout< } elseif(Isnoshow(b[i])) { if(Isletter(b[i-1])||Isunline(b[i-1])) cout<<"是标识符"< elseif(Isdigital(b[i-1])) cout<<"是数字"< elseif(Issplits(b[i-1])) cout<<"是分界符"< elseif(Iscacus(b[i-1])) cout<<"是运算符"< } elseif(Isdigital(b[i])) { if(Isletter(b[i-1])||Isunline(b[i-1])) cout<<"是标识符"< elseif(Issplits(b[i-1])) cout< elseif(Iscacus(b[i-1])) cout<<"是运算符"< cout< } elseif(Iscacus(b[i]))//运算符 { if(Isletter(b[i-1])||Isunline(b[i-1])) cout<<"是标识符"< elseif(Isdigital(b[i-1])) cout<<"是数字"< elseif(Issplits(b[i-1])) cout<<"是分界符"< cout< } elseif(Issplits(b[i]))//分界符 { if(Isletter(b[i-1])||Isunline(b[i-1])) cout<<"是标识符"< elseif(Isdigital(b[i-1])) cout<<"是数字"< elseif(Iscacus(b[i-1])) cout<<"是运算符"< cout< } i++; } } if(b[i]='/0') { if(Isletter(b[i-1])||Isunline(b[i-1])) cout<<"是标识符"< elseif(Isdigital(b[i-1])) cout<<"是数字"< elseif(Issplits(b[i-1])) cout<<"是分界符"< elseif(Iscacus(b[i-1])) cout<<"是运算符"< } ifile.close(); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 词法 分析器 代码 修改