资源简介
编译原理课程设计,简单编译器
希望对大家有帮助,不过话说是学校的作业,仅供参考的说

代码片段和文件信息
/*****************************************************************
最后修改时间2007.01.04 18:00
作者:040430101、040430102、040430103、040430201
规约式经过改动,为55条
*****************************************************************/
#include
#include
#include
#define INT 1 //int
#define VOID 2 //void
#define IF 3 // if
#define ELSE 4 // else
#define WHILE 5 // while
#define RETURN 6 // return
#define CONSTANT 7 //int型
#define ID 8 //标识符
#define RELOP 9 //关系符 <、>、==、<=、>=、!=
#define ADDOP 10 // +和-
#define MULOP 11 // *和/
#define L_BRACKET 12 //代表 [
#define R_BRACKET 13 //代表 ]
#define L_PARENTHESE 14 //代表 (
#define R_PARENTHESE 15 //代表 )
#define L_BPARENTHESE 16 //代表 {
#define R_BPARENTHESE 17 //代表 }
#define SEMICOLON 18 //代表 ;
#define COMMA 19 //代表
#define EQUATER 20 //代表 =
#define $ 21 //终结符
#define P 30 //非终结符的编号
#define D1 31
#define D2 32
#define V1 33
#define T1 34
#define F1 35
#define P1 36
#define P2 37
#define P3 38
#define C1 39
#define L 40
#define S 41
#define S1 42
#define E1 43
#define S2 44
#define I 45
#define R1 46
#define E2 47
#define V2 48
#define S3 49
#define A1 50
#define T2 51
#define F2 52
#define C2 53
#define A3 54
#define A4 55
#define M1 56
#define M2 57
#define N 58
typedef struct token//******词法分析中的 token结构体******
{
char *name;//字符串
int type;//类型
int LineNum;//所在行数
struct token *next;
}token;
token *TokenHead*TokenTail;
typedef struct pank//*********语法 action表结构体**********
{
char sr;//移进或归约
int state;//转到的状态编号
}pank;
pank action[97][21];//action表
int go_to[97][29];//语法 go_to表
typedef struct stack//****语法分析栈结构体*****
{
int state;//状态
int word;//符号编码
}stack;
typedef struct Tree_Node{//****语法分析树*****
int code;//记录字符串对应编号
char *word;//记录字符串
int Rnum;//记录规约式的编号
int LineNum;//记录字符所在行数
char *place;//传递变量名称
int E_type;//传递变量的类型
struct Tree_Node *child1;
struct Tree_Node *child2;
struct Tree_Node *para;
}Tree_Node;
Tree_Node *Head*Tail;
typedef struct ivan//****语法产生式结构体****
{
int left;//产生式的左部
int len;//产生式右部的长度
}ivan;
ivan css[56]={{00}{301}{312}{311}{321}{321}{333}{336}{341}
{341}{356}{361}{361}{373}{371}{382}{384}{394}{402}
{400}{412}{410}{421}{421}{421}{421}{421}{432}{431}
{446}{4410}{457}{462}{463}{473}{471}{481}{484}{493}
{491}{503}{501}{513}{511}{523}{521}{521}{521}{534}
{541}{540}{553}{551}{560}{570}{580}};
//css[56]存的是55条规约式的左边非终结符的编号和右边规约的个数*/
char *Grammar[56]={“\0““P->D1““D1->D1D2““D1->D2““D2->
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 254 2007-01-05 10:02 code\code\040430101\1.txt
文件 57149 2007-01-05 11:24 code\code\040430101\compilerNEW1.cpp
文件 3473 2007-01-05 11:19 code\code\040430101\compilerNEW1.dsp
文件 549 2007-01-05 11:39 code\code\040430101\compilerNEW1.dsw
文件 58368 2009-04-18 12:45 code\code\040430101\compilerNEW1.ncb
文件 48640 2009-04-18 12:45 code\code\040430101\compilerNEW1.opt
文件 258 2009-04-18 12:45 code\code\040430101\compilerNEW1.plg
文件 241735 2009-02-19 02:11 code\code\040430101\Debug\compilerNEW1.exe
文件 314180 2009-02-19 02:11 code\code\040430101\Debug\compilerNEW1.ilk
文件 118795 2009-02-19 02:11 code\code\040430101\Debug\compilerNEW1.obj
文件 2133048 2009-02-19 02:11 code\code\040430101\Debug\compilerNEW1.pch
文件 508928 2009-02-19 02:11 code\code\040430101\Debug\compilerNEW1.pdb
文件 91136 2009-04-18 12:45 code\code\040430101\Debug\vc60.idb
文件 118784 2009-02-19 02:11 code\code\040430101\Debug\vc60.pdb
目录 0 2009-05-21 00:10 code\code\040430101\Debug
目录 0 2009-05-21 00:10 code\code\040430101
目录 0 2009-05-21 00:10 code\code
目录 0 2009-05-21 00:10 code
----------- --------- ---------- ----- ----
3695297 18
- 上一篇:时间APF控制器的动静态性能分析
- 下一篇:编译原理大作业 完整编译器
相关资源
- FTP课程设计(服务端+客户端)
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 单片机课程设计 篮球计分器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- c 课程设计 职工信息管理系统
- 汇编语言,课程设计,红绿灯
- 机床液压系统课程设计卧式钻床动力
- 课程设计蔬菜大棚自动控制系统,包
- 密码学课程设计:DES加密解密算法的
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 《编译原理》清华大学版中的pl0扩充
评论
共有 条评论