资源简介
词法分析器(c++版)
词法分析程序,能识别出所有的关键字、标识符、常数、运算符(包括复合运算符,如++)、界符;能过滤掉源程序中的注释、空格、制表符、换行符等等
代码片段和文件信息
#include
#include
using namespace std;
bool jiancha_int(int iint jchar s[100])
{
if((j-i)==2)
{
if(s[i]==‘i‘)
{
i++;
if(s[i]==‘n‘)
{
i++;
if(s[i]==‘t‘)
{
cout<<“int是一个关键字“< return true;
}
else
return false;
}
else
return false;
}
else
return false;
}
else
return false;
}
bool jiancha_if(int iint jchar s[100])
{
if((j-i)==1)
{
if(s[i]==‘i‘)
{
i++;
if(s[i]==‘f‘)
{
cout<<“if是一个关键字“< return true;
}
else
return false;
}
else
return false;
}
else
return false;
}
bool jiancha_else(int iint jchar s[100])
{
if((j-i)==3)
{
if(s[i]==‘e‘)
{
i++;
if(s[i]==‘l‘)
{
i++;
if(s[i]==‘s‘)
{
i++;
if(s[i]==‘e‘)
{
cout<<“else是一个关键字“< return true;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
bool jiancha_void(int iint jchar s[100])
{
if((j-i)==3)
{
if(s[i]==‘v‘)
{
i++;
if(s[i]==‘o‘)
{
i++;
if(s[i]==‘i‘)
{
i++;
if(s[i]==‘d‘)
{
cout<<“void是一个关键字“< return true;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
bool jiancha_while(int iint jchar s[100])
{
if((j-i)==4)
{
if(s[i]==‘w‘)
{
i++;
if(s[i]==‘h‘)
{
i++;
if(s[i]==‘i‘)
{
i++;
if(s[i]==‘l‘)
{
i++;
if(s[i]==‘e‘)
{
cout<<“while是一个关键字“< return true;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
else return false;
}
char numb[10]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘};
char letter[53]={‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘‘_‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘‘G‘‘H‘‘I‘‘J‘‘K‘‘L‘‘M‘‘N‘‘O‘‘P‘‘Q‘‘R‘‘S‘‘T‘‘U‘‘V‘‘W‘‘X‘‘Y‘‘Z‘};
char digit[63]={‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘‘_‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘‘G‘‘H‘‘I‘‘J‘‘K‘‘L‘‘M‘‘N‘‘O‘‘P‘‘Q‘‘R‘‘S‘‘T‘‘U‘‘V‘‘W‘‘X‘‘Y‘‘Z‘‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘};
bool Identifier(int xint ychar s[100])
{
int ia=xb=yn=0m=1c=0a1=xb1=ym1=0n1=1;;
int p[1024];
for(i=0;i<1024;i++)
p[i]=0;
for(i=0;i<53;i++)
{
if(s[x]==letter[i])
{n=1;}
}
if(n==1)
{}
else
{
int P[1024];
for(i=0;i<1024;i++)
{
P[i]=0;
}
while(x {
for(i=0;i<10;i++)
{
if(s[x]==numb[i])
{
P[m1]=1;
}
}
x++;
m1++;
}
for(i=0;i {
if(P[i]==0)
{n1=0;}
}
if(n1==1)
{
for(i=a;i<=b;i++)
cout<cou
- 上一篇:大一课程设计[小学生数学测试软件]
- 下一篇:成三围棋c语言开发
相关资源
- 北邮-编译原理-词法分析
- 智商超高的中国象棋游戏源码(C++版
- 现代编译原理-C语言描述
- 高考成绩管理系统 c++版
- 编译原理实验报告+代码+使用说明
- 编译原理课程设计-C语言子集编译器
- 学校信息管理系统(C++版[原创])
- c++版学生成绩管理系统实验报告及源
- 赋值语句翻译c语言实现四元式
- NOIP2006-2017普及组初赛c++版试题+答案
- 编译原理用C++消除左递归
- 编译原理简易C编译器
- 实现语法分析器-编译原理
- 火烧连营C++版本
- C++版计算器带括号dos版本
- 编译原理 LR分析器 c++代码
- 设计并实现TINYC语言的扫描程序TINYC
- LL(1)文法分析全过程(FIRST/FLLOW/S
- 编译原理 LR0项目集规范族的构造 L
- 24点游戏:c++版
- 山东大学编译原理实验源代码c++版
- 词法分析器有去除注释功能
- Spline曲线(穿过控制点CC++版本)
- Cocos2d-x C++版仿《王者之剑》实现(
- C++版本计算机实现,支持小数、负数
- C++版仿Linux文件管理系统
- 数据结构C++版第三版 习题解析 邓俊辉
- ini文件读写操作类C++版
- 拓扑排序与关键路径(C++版)
- 蚁群算法在TSP中的运用c++版
评论
共有 条评论