资源简介
编译原理的课程设计,语法分析器,附带报告
代码片段和文件信息
#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
相关资源
- 实验三 LL1语法分析器设计
- 电影院售票系统课程设计
- PL0词法语法分析器225358
- 编译原理中VC实现语法分析器
- 红外防护装置课程模拟电子技术课程
- 语法分析器 算符优先 编译原理实验
- 算符优先分析算法的设计与实现 编译
- 软件工程课程设计过程+报告
- 编译原理课设——算符优先分析程序
- 通信原理课程设计_△M通信系统设计
- 课程设计——路由与交换
- 网络课程中的网络构建pkt文件,配有
- 编译原理课程设计计软张芃教小子集
- 《软件工程》课程笔记
- 实验二 实现一门语言的词法分析器
- 编译原理课程设计报告_算符优先分析
- 超市会员管理系统的设计与实现
- 软件工程课程设计 基于Web汽车租赁系
- 编译原理 语法分析、语义分析综合实
- 编译原理SLR1分析
- 游泳馆会员管理系统课程设计
- 哈工大软件学院编译原理语法分析源
- 汇编语言课程设计实验报告——拼图
- 基于Pascal语言的语法分析器
- 2013集美大学编译原理部分考试题目
- 编译原理词法、语法、语义分析器
- 数字秒表--EDA课程设计完整版(设计报
- 数据库课程设计报告仓库管理系统
- 传感器与检测技术课程设计---光电式
- WHILE循环语句的翻译程序设计.zip
评论
共有 条评论