资源简介
编译原理实验,语法分析器,用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版(中英文版)+源码
相关资源
- 算符优先语法分析器(C语言编写)
- 实现语法分析器-编译原理
- mfc职员信息管理系统所有源代码
- MFC课程设计 职工信息管理系统含完整
- 语法分析器 tiny语言语法分析
- C++语法分析器
- C++东南大学何洁月课件(总)ppt
- LL1语法分析器(c++)
- 编译原理课程设计----语法分析器(
- 编译原理课程实验报告词法分析器及
- PL0编译器词法检查与语法分析器
- 2018年东南大学553C、C++程序设计考研复
- LL(1)语法分析器C++版
- LR(0)语法分析器程序
- 编译原理课程设计词法语法分析器
- 编译原理LL1语法分析器C++版源代码
- 东南大学计算机复试553C++教材 东南大
- 编译原理课程设计LR(0)语法分析器
- cminus语法分析器源代码完整版
- 基于算符优先分析方法的表达式语法
- 基于预测分析方法的表达式语法分析
- c++源码C-语法分析器源代码
- c语言语法分析器
- PL0语法分析器(递归子程序法)
- 编译原理实践:C++实现语法分析器.
- 预测分析语法分析器(c++源代码)
- 编译原理-语法分析器C语言源码
- 东南大学22系导航选修c++解析本地GP
- 用C语言变的语法分析器
- 递归下降语法分析器C++实现
评论
共有 条评论