资源简介
编译原理的课程设计,语法分析器,附带报告

代码片段和文件信息
#include “stdio.h“
#include “ctype.h“
#include “string.h“
//#include “lex.h“
#define BEGIN 1
#define END 2
#define ID 3
#define NUM 4
#define ADD 5
#define SUB 6
#define MUL 7
#define DIV 8
#define EQ 9
#define SEMI 10
#define LP 11
#define RP 12
#define BOUND 0
#define OTHER -1
FILE *fp;
void block();//语句串分析程序block()
void factor();//因子分析程序factor()
void term();//项分析程序term()
void expression();//表达式分析程序expression()
void statement();//语句分析程序statement()
char TOKEN[20];
char *reserve[2]={“begin““end“};
int syn;
void out(int claschar* value)//定义种别码函数
{
syn=clas;
}
int lookup(char *array)//判别是否是begin,end
{
int iptr;
for(i=1;i<=2;i++)
{
ptr=strcmp(arrayreserve[i-1]);
if(ptr==0)
return i;
}
return 0;
}
int scaner(FILE *fp)//词法分析程序
{
char ch;
int icjk;
ch=fgetc(fp);
while(isspace(ch))
{
ch=fgetc(fp);
}
if(ch==EOF)
return;
if(isalpha(ch))//标识符
{
TOKEN[0]=ch;
ch=fgetc(fp);
i=1;
while(isalnum(ch))
{
TOKEN[i]=ch;
i++;
ch=fgetc(fp);
}
TOKEN[i]=‘\0‘;
fseek(fp-11);
c=lookup(TOKEN);
if(c==0)
out(IDTOKEN);
else
out(c““);
}
else
if(isdigit(ch))//整形常数
{
TOKEN[0]=ch;
ch=fgetc(fp);
i=1;
while(isdigit(ch))
{
TOKEN[i]=ch;
i++;
ch=fgetc(fp);
}
TOKEN[i]=‘\0‘;
fseek(fp-11);
out(NUMTOKEN);
}
else
{
switch(ch)
{
case ‘+‘:
out(ADD““);
break;
case ‘-‘:
out(SUB““);
break;
case ‘*‘:
out(MUL““);
break;
case ‘/‘:
out(DIV““);
break;
case ‘:‘:
ch=fgetc(fp);
if(ch==‘=‘)
out(EQ““);
else
{
fseek(fp-11);
out(OTHER““);
}
break;
case ‘;‘:
out(SEMI““);
break;
case ‘(‘:
out(LP““);
break;
case ‘)‘:
out(RP““);
break;
case ‘#‘:
out(BOUND““);
break;
default:
out(OTHER““);
break;
}
}
}
void error()//error函数:主要是输出错误信息,然后退出程
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-25 21:06 语法分析器\
目录 0 2014-03-25 20:53 语法分析器\源代码\
目录 0 2014-03-25 20:53 语法分析器\源代码\Debug\
文件 192609 2011-06-04 15:35 语法分析器\源代码\Debug\ex2.exe
文件 216600 2011-06-04 15:35 语法分析器\源代码\Debug\ex2.ilk
文件 13919 2011-06-04 15:35 语法分析器\源代码\Debug\ex2.obj
文件 187172 2011-06-04 13:54 语法分析器\源代码\Debug\ex2.pch
文件 476160 2011-06-04 15:35 语法分析器\源代码\Debug\ex2.pdb
文件 33792 2011-06-04 17:23 语法分析器\源代码\Debug\vc60.idb
文件 53248 2011-06-04 15:35 语法分析器\源代码\Debug\vc60.pdb
文件 5001 2011-06-04 15:35 语法分析器\源代码\ex2.c
文件 3363 2011-05-22 13:19 语法分析器\源代码\ex2.dsp
文件 514 2011-05-22 13:19 语法分析器\源代码\ex2.dsw
文件 50176 2011-06-04 17:23 语法分析器\源代码\ex2.ncb
文件 2505 2011-06-04 14:02 语法分析器\源代码\EX2.OBJ
文件 48640 2011-06-04 17:23 语法分析器\源代码\ex2.opt
文件 1938 2011-06-04 15:35 语法分析器\源代码\ex2.plg
文件 32 2011-06-04 15:48 语法分析器\源代码\test.txt
文件 576000 2014-03-25 20:55 语法分析器\语法分析器实验报告.doc
相关资源
- FTP课程设计(服务端+客户端)
- railroad铁路CAD生成
- ISE_14.7_license.lic
- ANSYS LS-DYNA
- phong模型(简单光照模型)
- 编译原理实验工具及参考源码(lex&
- Python全栈学习笔记面向对象大作业:
- 类pascal语言编译器(编译原理实验)
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 教室管理系统.rar
- 单片机课程设计 篮球计分器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 中科院 编译原理 习题及解答
- 课程作业:模拟仓库管理系统
- 编译原理四元式和逆波兰式
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- c 课程设计 职工信息管理系统
评论
共有 条评论