1 / 15
文档名称:

编译原理课程设计-LR分析器总控程序的实现.doc

格式:doc   页数:15
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理课程设计-LR分析器总控程序的实现.doc

上传人:3346389411 2012/9/29 文件大小:0 KB

下载得到文件列表

编译原理课程设计-LR分析器总控程序的实现.doc

文档介绍

文档介绍:合肥工业大学
计算机与信息学院
课程设计
课程:编译原理
专业班级:计算机科学与技术09-2班
学号:
姓名:
一:设计题目
题目: LR分析器总控程序的实现
设计内容及要求:,。,对于输入串i*i+i,输出LR分析器的工作过程。
改进:可以自行输入输入串,能按重新按钮重新开始,外加了一个计时器。
二:设计目的
进一步了解了LR分析器的整个工作过程,将LR分析器以图形界面的形式展现了出来,有利加深了对LR分析过程的掌握。
三:实验原理
本程序是用windows编的,大体的思想是这样的:通过建立一个符号栈,状态栈,输入栈(结构体类型定义的)分别用来存放符号,状态,输入串,将LR分析表构造成为一个二维数组table[13][9],其中0--11表示状态结点,21--26表示规约标号,-1表示error(出错),(接受),在acation函数里面通过i等于多少来判断到底是规约还是移进。mand()函数中通过switch....case..来判断每次及下一步所要执行的操作。运行的时候,首先要输入一个以#结尾的输入串,然后单击开始——>下一步.....,如果规约成功,则弹出一个规约成功的对话框,否则弹出一个规约失败的对话框。当然在运行的过程中如果出现什么差错,都可以单击重新开始按钮重新输入输入串重新开始。
四:实验代码
#include ""
#include <>
#include <>
#include ""
#include ""
char *str2[6]={"E->E+T","E->T","T->T*F","T->F","F->(E)","F->i"};
int flag=0;
#define MAX 20
typedef struct{
int stack1[MAX];
int top1;
}status;
typedef struct{
char stack2[MAX];
int top2;
}symbol_instr;
char index_char[9]={'i','+','*','(',')','#','E','T','F'};//为二维数数组的纵坐标
//LR分析表
//0--11表示状态结点,21--26表示规约标号,
//-1表示error(出错),(接受)
int table[13][9] = {{ 5,-1,-1, 4,-1,-1, 1, 2, 3},\
{-1, 6,-1,-1,-1,12,-1,-1,-1},\
{-1,22, 7,-1,22,22,-1,-1,-1},\
{-1,24,24,-1,24,24,-1,-1,-1},\
{ 5,-1,-1, 4,-1,-1, 8, 2, 3},\
{-1,26,26,-1,26,26,-1,-1,-1},\
{ 5,-1,-1, 4,-1,-1,-1, 9, 3},\
{ 5,-1,-1, 4,-1,-1,-1,-1,10},\
{-1, 6,-1,-1,11,-1,-1,-1,-1},\
{-1,21, 7,-1,21,21,-1,-1,-1},\
{-1,23,23,-1,23,23,-1,-1,-1},\
{-1,25,25,-1,25,25,-1,-1,-1}};
//规约规则
struct rule{
char x;
int y;
}r[6]={{'E',3},{'E',1},{'T',3},{'T',1},{'F',3},{'F',1}}; //后面的代表A—>@中@的长度
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, MAND, mand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
}
return FALSE;
}
void init_stack1(HWND hwnd,status *p)
{

if( !p)
MessageBox(hwnd,TEXT("出错"),TEXT("警告"),MB_OK|MB_ICONHAND);
p->top1 = -1;
}

最近更新

2024年南乐县幼儿园教师招教考试备考题库含答.. 33页

海南封关循环经济发展模式 60页

2026年医生廉政知识测试题(word) 14页

2025山东菏泽照昕外国语学校招聘8人参考题库必.. 49页

2025年四川卫生康复职业学院马克思主义基本原.. 12页

2026年四川机电职业技术学院单招职业适应性测.. 46页

2026年国开电大基础写作形考题库精选答案 37页

2025江西吉安市工会社会工作者招聘8人参考题库.. 50页

2025蒙商银行招聘总行部分中层正职管理人员2人.. 37页

2025重庆万州区公安局辅警岗招聘100人笔试题库.. 36页

2026年廉政廉洁知识测试题1套 14页

2026年《红楼梦》知识竞赛试题库100道及答案参.. 39页

2026年二级建造师之二建机电工程实务考试题库.. 158页

2026年党建知识竞答试题一套 24页

2026年江苏省淮阴市单招职业适应性考试模拟测.. 44页

2026年注册造价工程师考试题库200道及参考答案.. 86页

2026年网络信息安全知识网络竞赛试题含答案(.. 40页

2026年宾馆安全生产考试题(名师系列) 28页

2026河北石家庄市公安局公开招聘公安机关警务.. 48页

c语言指针考试题库(轻巧夺冠) 13页

国税廉政知识测试题学生专用 14页

2026年沧州社区招聘考试题库附答案 42页

2026年泉州华光职业学院单招职业适应性考试模.. 45页

ALC墙板蒸压加气轻质混凝土板材安装施工方案及.. 3页

腰椎康复操ppt 27页

GBT228-2024金属材料室温拉伸试验方法 39页

单招考试-计算机网络技术期末试卷(带答案) 14页

沪科版八年级-《压强》单元测试题(含答案) 7页

企业承包商准入与退出机制 11页

中国明朝档案总汇-袁姓 52页