资源简介
编译原理
实验报告
语法分析器
c语言版
代码片段和文件信息
#include
#include
#include
int change(char n)
{
return n-48;
}
int find(char nchar m[])
{
int i=0;
while(m[i]!=n)i++;
return i;
}
int main()
{
char in[20]sign[30]avt[]={‘+‘‘*‘‘(‘‘)‘‘#‘};
int f[5][5]={{1-1-111}{11-111}{-1-1-102}{11211}{-1-1-120}};
int num[30]intop=-1tp=-1bsum;
sign[++top]=‘#‘;
l3:
system(“cls“);
printf(“请输入算式:(退出请按q键)\n“);
for(i=0;i<20;i++)
in[i]=‘\0‘;
scanf(“%s“in);
if(strcmp(in“q“)==0)exit(0);
strcat(in“#“);
for(i=0;i {
a=in[i];
if(a>=‘0‘&&a<=‘9‘)
{
b=change(a);
num[++tp]=b;
}
else if(a==‘+‘||a==‘*‘||a==‘(‘||a==‘)‘||a==‘#‘)
{
l1:
if(f[find(sign[top]vt)][find(avt)]==-1)
{
sign[++top]=a;
}
else if(f[find(sign[top]vt)][find(avt)]==2)
{
printf(“有错误的算式!\n“);
system(“pause“);
exit(0);
}
else
{
if(a==‘)‘)
{
if(sign[top]==‘(‘)
{
top--;
continue;
}
}
if(sign[top]==‘*‘)
{
sum=num[tp--];
sum*=num[tp--];
top--;
num[++tp]=sum;
if(a!=‘#‘&&a!=‘)‘)sign[++top]=a;
else goto l1;
}
else if(sign[top]==‘+‘)
{
sum=num[tp--];
sum+=num[tp--];
top--;
num[++tp]=sum;
if(a!=‘#‘&&a!=‘)‘)sign[++top]=a;
else goto l1;
}
else if(a==‘#‘)
{
sum=num[tp--];
}
}
}
else
{
printf(“错误的字符或符号!\n位置:%d错误的符号:%c\n“i+1a);
system(“pause“);
goto l1;
}
}
printf(“sum=%d\n“sum);
system(“pause“);
goto l3;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 203264 2012-05-30 17:01 编译原理课程设计_语法分析程序_[1]....doc
文件 2293 2010-01-19 12:30 语法分析 词法分析.cpp
----------- --------- ---------- ----- ----
205557 2
- 上一篇:C语言实现银行存款信息管理系统
- 下一篇:迷宫问题代码算法详解
相关资源
- 实验报告:数据结构长整数四则运算
- 北邮-编译原理-词法分析
- 现代编译原理-C语言描述
- 操作系统存储管理实验报告c/c++
- 编译原理实验报告+代码+使用说明
- 编译原理课程设计-C语言子集编译器
- c++版学生成绩管理系统实验报告及源
- 赋值语句翻译c语言实现四元式
- 语法分析c语言实现程序代码+实验报告
- 编译原理用C++消除左递归
- 编译原理简易C编译器
- 实现语法分析器-编译原理
- plo编译器 c语言 含测试 以及实验报告
- 编译原理 LR分析器 c++代码
- 设计并实现TINYC语言的扫描程序TINYC
- LL(1)文法分析全过程(FIRST/FLLOW/S
- 编译原理 LR0项目集规范族的构造 L
- 山东大学编译原理实验源代码c++版
- 中值滤波_均值滤波c语言实现_工程文
- 直方图均衡化_c语言实现_源代码+实验
- SVM分类算法实验报告+C语言程序 加强
- 计算机网络课程设计之Ping程序含C++原
- 语法分析器 tiny语言语法分析
- C++语法分析器
- C++网络嗅探器源代码及实验报告
- 地图着色mfc
- 简单函数绘图语言的解释器
- 银行家算法c语言实现+实验报告
- 基于AT89C51的8*8点阵字符显示的实验报
- 语法分析c语言实现含报告
评论
共有 条评论