资源简介
完整的编译原理语法分析器的全套,还有实验报告。。。
代码片段和文件信息
//提供一个编译原理的语义分析程序 你可以直接复制 用TC进行调试
#include “stdio.h“
#include “string.h“
#include
#include
#include “stdlib.h“
char prog[100]token[8]ch;
char *rwtab[6]={“begin““if““then““while““do““end“};
int synpmnsumq;
int kk;
//四元式表的结构如下:
struct
{
char result1[8];
char ag11[8];
char op1[8];
char ag21[8];
}quad[20];
char *factor();
char *expression();
int yucu();
char *term();
int statement();
int lrparser();
char *newtemp();
void scaner();
void emit(char *resultchar *ag1char *opchar *ag2);
void main()
{
FILE *fp1*fp2;
if((fp1=fopen(“输入.txt““rt“))==NULL)
{
printf(“Cannot open 输入.txt\n“);
getch();
exit(1);
}
if((fp2=fopen(“输出.txt““wt+“))==NULL)
{
printf(“Cannot create 输出.txt FILE.strike any key exit“);
getch();
exit(1);
}
int j;
q=p=kk=0;
p=0;
//printf(“Please Input a String(end with ‘#‘):\n“);
while(ch!=‘#‘)
{
ch = fgetc(fp1);
if(ch == EOF)
{
printf(“文件为空,请检查后再尝试!“);
return ;
}
prog[p++]=ch;
}
if(prog[p]==‘#‘)
{
printf(“输入的待分析的串不是以‘#‘结尾请修改之后再尝试!\n“);
return;
}
p=0;
char buffer1[200] = {0};
sprintf(buffer1“词法分析结果如下:\n“);
fputs(buffer1fp2);
//printf(“词法分析结果如下:\n“);
do
{
scaner();
switch(syn)
{
case 11:
//printf(“(%d%d)\n“synsum);
sprintf(buffer1“(%d %d) \n“synsum);
fputs(buffer1fp2);
break;
default:
//printf(“(%d%s)\n“syntoken);
sprintf(buffer1“(%d %s)\n“syntoken);
fputs(buffer1fp2);
break;
}
}while(syn!=0);
printf(“\n“);
p=0;
char buffer[200]={0};
sprintf(buffer“语法分析结果如下:(以四元式形式输出)\n“);
fputs(bufferfp2);
//printf(“语法分析结果如下:(以四元式形式输出)\n“);
scaner();//扫描函数
lrparser();
if(q>19)
printf(“ to long sentense!\n“);
else
{
for (j=0;j {
//printf(“( %s %s %s %s) \n\n“quad[j].op1quad[j].ag11quad[j].ag21quad[j].result1);
sprintf(buffer“( %s %s %s %s) \n\n“quad[j].op1quad[j].ag11quad[j].ag21quad[j].result1);
fputs(bufferfp2);
}
}
printf(“已把相应的词法和语法的结果保存到相应的文件中,请查阅!\n“);
fclose(fp1);
fclose(fp2);
}
int lrparser()
{
int schain=0;
kk=0;
if (syn==1) //得到begin
{
scaner();//扫描下个字符
schain=yucu();
if(syn==6)//得到end
{
scaner();//扫描下个字符
if((syn==0)&&(kk==0)) //得到#
printf(“Success!\n“);
}
else
{
if(kk!=1)
printf(“short of ‘end‘ !\n“);
kk=1;
getch();
exit(0);
}
}
else
{
printf(“short of ‘begin‘ !\n“);
kk=1;
getch();
exit(0);
}
return (schain);
}
int yucu()
{
int schain=0;
schain=statement();
while(syn==26)
{
scaner();
schain=statement();
}
return (schain);
}
int statement()
{
char tt[8]eplace[8];
int schain=0;
if (syn==10)
{
strcpy(tttoken); //tt中保存的是第一个字符
scaner();
if(syn==18) //检测到=号
{
scaner();
strcpy(eplaceexpression());
emit(tt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6695 2008-06-18 12:04 编译原理课程设计\语法分析.cpp
文件 1394176 2008-06-19 17:31 编译原理课程设计\课程设计.doc
文件 41984 2008-06-19 10:55 编译原理课程设计\语法分析.ncb
文件 718 2008-06-19 10:37 编译原理课程设计\语法分析.plg
文件 37 2008-06-19 10:26 编译原理课程设计\输入.txt
文件 328 2008-06-19 10:36 编译原理课程设计\输出.txt
文件 3427 2008-06-19 10:23 编译原理课程设计\语法分析.dsp
文件 27648 2008-06-19 11:36 编译原理课程设计\编译任务书.doc
文件 25600 2008-06-19 10:41 编译原理课程设计\封面.doc
文件 48640 2008-06-19 10:55 编译原理课程设计\语法分析.opt
文件 541 2008-06-19 10:55 编译原理课程设计\语法分析.dsw
文件 41984 2008-06-19 10:37 编译原理课程设计\Debug\vc60.idb
文件 53248 2008-06-19 10:24 编译原理课程设计\Debug\vc60.pdb
文件 196680 2008-06-19 10:37 编译原理课程设计\Debug\语法分析.exe
文件 205004 2008-06-19 10:37 编译原理课程设计\Debug\语法分析.ilk
文件 484352 2008-06-19 10:24 编译原理课程设计\Debug\语法分析.pdb
文件 238324 2008-06-19 10:24 编译原理课程设计\Debug\语法分析.pch
文件 23104 2008-06-19 10:37 编译原理课程设计\Debug\语法分析.obj
目录 0 2008-06-22 10:16 编译原理课程设计\Debug
目录 0 2008-06-22 10:16 编译原理课程设计
----------- --------- ---------- ----- ----
2792490 20
相关资源
- Generative Adversarial nets鉴赏.pdf
- 谷地地理信息系统GoodyGIS
- Goodman 傅里叶光学
- 傅里叶光学导论J.W. Goodman,1968中文版
- goodman名著:光学中的散斑现象:理论和
- 应用泛函分析的PPT课件(good)
- [简单的逻辑学].[Being.Logical.-.A.Guide.
- AD原理图库和封装库
- 华为眼图知识good
- Control System Design Goodwin
- Agile! The Good the Hype and the Ugly.pdf
- PC(win7win10)搭建Vxworks开发环境
- 深度学习Goodfellow Yoshua Bengio Aaron Cou
- 计算机安全导论 Micchael T.Goodrich 葛秀
- Learn You Some Erlang for Great Good!
- Deep Learning-Ian Goodfellow (2017)带书签
- Ian Goodfellow深度学习中文版+英文版
- 《DeepLearning》深度学习圣经-IanGoodfe
- 《DeepLearning》深度学习圣经-IanGoodfe
- 非常牛的文件同步工具GoodSync Enterpr
- Goodsync Enterprise v10.9.32.2 同步备份工具
- 文件同步工具GoodSync v10破解版-已验证
- Sklearn_与_TensorFlow_机器学习实用指南
- Deep Learning (Ian GoodFellow 等著) 完整
- DeepLearning(IanGoodfellow).pdf
- 深度学习 (Deep Learning by Ian Goodfello
- Deep Learning Ian Goodfellow Yoshua Bengio A
- GoodSync Enterprise v10.7.8.8中文版+注册文
- 深度学习 Deep Learning book MIT Ian Goodfe
- Ian Goodfellow等人的Deep Learning 英文版含
评论
共有 条评论