资源简介
编译原理实验,语法分析器,用C++实验,里面将词法分析器与语法分析器连接在了一起,通过写一段简单的C++代码,能够通过词法分析,然后进行语法分析,判断是否符合简单的C++语法
代码片段和文件信息
#include
using namespace std;
#include
#include
#include
using std::string;
#include
#include
using std::ofstream;
using std::ifstream;
char ch;
int sp=0;
int j=0;
int k=0;
int buff[100]={0};
int bu=0;
string M[12][18]={“K)(m““&““&““&““&““&““&““&““&““&““&““&““&““&““&““&““&““$“
“&““&““&““}C{““&““&““&““&““&““&““&““&““&““&““&““&““&““&“
“&““&““&““&““$““&““&““C;Y““C;Y““C;Y““&““&““&““&““&““&““&““&“
“&““&““&““&““&““&““&““T““X““F““&““&““&““&““&““&““&““&“
“&““&““&““&““&““&““&““&““&““B=a““&““&““&““&““&““&““&““&“
“&““&““&““&““&““&““&““KJi““&““&““&““&““&““&““&““&““&““&“
“&““&““&““&““&““&““&““&““KJw““&““&““&““&““&““&““&““&““&“
“&““)BGB(““&““&““&““&““&““&““&““&““&““&““&““&““&““&““&““&“
“&““P)B(““&““&““&““&““&““&““&““Pa““Pd““&““&““&““&““&““&““&“
“&““PBZB““$““&““&““$““&““&““&““PBZB““PBZB““$““$““$““$““$““$““&“
“&““&““&““&““&““&““&““&““&““&““&““+““-““*““/““&““&““&“
“&““&““&““&““&““&““&““&““&““&““&““&““&““&““&““<““>““&“};
//&表示错误,$表示空串m=maina=idi=ifw=whilep=B‘d=num
char stack[100];
char* keyword[13]={“main““if““break““else““int““for“ “return““while““include““char““switch““void““new“};
int number[]={12345678910111213};
int number1[]={14151617181920212223242526};
char *operatornum[13]={“+““-““*““/““=““>““;““(““)““{““}““<““:“};
char *zhushifu[3]={“//““/*““*/“};//注释符
//////////////////////////////////////////////////////////////////////////////////////////
int a=0;
bool compare(char searchstr[]int wordtype)
{
int i;
switch (wordtype)
{
case 1:for(i=0;i<=12;i++)
{
if(strcmp(keyword[i]searchstr)==0)
{
a=i;
return(true);
}
}
case 2:{
for(i=0;i<=12;i++)
{
if(strcmp(operatornum[i]searchstr)==0)
{
a=i;
return(true);
}
}
break;
}
}
return(false);
}
void search(char ch[])
{
if(compare(ch1))
{
cout<<“<“<“< buff[bu]=number[a];
bu++;
}
else
{
a=27;
cout<<“<“<“< buff[bu]=27;
bu++;
}
}
void digitnumber(char ah[])
{
a=28;
cout<<“<“<“< buff[bu]=28;
bu++;
}
void other(char ah)
{
char c[2]={ah‘\0‘};
if(compare(c2))
{
cout<<“<“<“< buff[bu]=number1[a];
bu++;
}
else{
cout<<“error!“< buff[bu]=-1;
bu++;
}
}
void scnar()
{
char ch;
char sd[20];
int i=0;
char dg[32];
char bh;
ifstream inPut(“input.txt“ios::in);
if(!inPut)
{
cerr<<“File could not be opened“< exit(1);
}
else
{
inPut>>ch;
while(!inPut.eof())
{
if(isalpha(ch))
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 48 2011-12-23 13:46 yufa\input.txt
文件 7569 2011-12-23 12:32 yufa\test.cpp
目录 0 2012-01-17 19:44 yufa
----------- --------- ---------- ----- ----
7617 3
- 上一篇:实验一:词法分析程序c++
- 下一篇:C++ Qt设计模式第2版(中英文版)+源码
相关资源
- cminus语法分析器源代码完整版
- 基于算符优先分析方法的表达式语法
- 基于预测分析方法的表达式语法分析
- c++源码C-语法分析器源代码
- c语言语法分析器
- PL0语法分析器(递归子程序法)
- 编译原理实践:C++实现语法分析器.
- 预测分析语法分析器(c++源代码)
- 编译原理-语法分析器C语言源码
- 东南大学22系导航选修c++解析本地GP
- 用C语言变的语法分析器
- 递归下降语法分析器C++实现
- 编译原理 LL1语法分析器
- 编译原理语法分析器SLR(1)
- 简单的c语言语法分析器
- 词法分析C语言源代码附实验报告
- 语法分析器C语言源代码附实验报告
- 递归下降分析法实现LL(1)文法的语
- 编译原理实验c++实现LR(1)语法分析
- C语言 语法分析器 源代码
- 东南大学 MFC 课程设计 图书管理系统
- 东南大学c++ PPT
- 东南大学复试c++题目及答案
- 东南大学C++课件-何洁月80讲(总).
- 东南大学-教师住房系统
- C++实现SAMPLE语言的语法分析器
- c语言语法分析器,实现ll1分析
- 递归下降语法分析器 算术表达式
- c词法分析器语法分析器语法制导翻译
- 郑莉ppt\\清华C++程序设计
评论
共有 条评论