编译原理课程设计 - 算符优先分析法研究 - 附源程序(2)

来源:网络收集 时间:2025-06-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2、FirstVt、LastVt集的构造:

FirstVt(sen[][],first[][],sen_len,frist_len); LastVt(sen[][],last[][],sen_len,frist_len); 3、算符优先关系表OpPriotable的构造:

OpPriotable(sen,first,last,opTable,sen_len,first_len,&opTable_len); 4、算符优先分析过程的实现:

InputAnalyse(opTable[][col],string[col],opTable_len); 5、主函数:main()。

5

4.2 主要算法的流程图

读入.txt文件初始化存放产生式的数组判断是否为算符文法打印文法不是算符文法初始化操作栈操作栈是否为空N弹出栈顶填入FIRSTVT表Y反转构造LASTVT表构造算符优先关系表头产生式全扫描完?输入串分析当前输入符给a初始化分析栈SK=1,S[K]=#YN扫描产生式相邻符号构造算符优先关系表NOpTable[i][j]=’\\0’找离栈顶最近的终结符S[j]YS[j]aY找出离栈顶最近的S[j]

图4-1 算符优先分析法程序流程图

6

4.3 数据分析与定义

1、文法(产生式):文法使用产生式来定义

char sen[row][col]:用二维数组表示产生式; int sen_len:产生式的个数 ;

char first[row][col]:用二维数组构造FIRSTVT表 int first_len: Firstvt表的行数; 3、LASTVT集:

char last[row][col]:用二维数组构造LASTVT表; int frist_len:LASTVT表的行数;

char opTable[row][col]:用二维数组表示算符优先关系表; int opTable_len:算符优先关系表的行数和列数; char string[col]:用一维数组记录输入串; char S[SIZE]:用一维数组表示分析栈 ; char a:当前输入字符; typedef struct {

char nonterm; //非终结符 char term; //终结符

2、FIRSTVT集:

4、算符优先关系表:

5、算符优先分析表

6、其他数据结构:

}StackElement;

FIRSTVT表或LASTVT表中一个表项(A,a); {

StackElement *top; StackElement *bottom; int stacksize;

7、typedef struct

}stack;

以形如表项(A,a)为元素的栈,在构造FirstVt集的过程中用到;

4.4 系统界面设计

本实验没有考虑界面设计,将结果直接打印输出在DOS界面下。

7

5 测试方法和测试结果

5.1 测试用例1

测试目的:使用算符优先分析法对一个算符文法中的句子进行分析。

读入一个算符优先文法进行分析,给出文件路径

D:\\\\courses\\\\C_source_file\\\\成品\\\\算符优先文法1.txt。结果如下:

图5-1 测试用例1运行截图1

输入一个字符串,使得该字符串是该文法的一个句子。则输入字符串i+i*i/(i+i)#时运行结果为:

8

图5-2 测试用例1运行截图2

5.2 测试用例2

测试目的:使用算符优先分析法,分析一个字符串不是该文法的句子,并输入一个字符串,使得该字符串不是文法的句子。

9

输出出错信息。

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库编译原理课程设计 - 算符优先分析法研究 - 附源程序(2)在线全文阅读。

编译原理课程设计 - 算符优先分析法研究 - 附源程序(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/465827.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219