算符优先语法分析设计原理与实现技术-实验报告-及源代码-北京交通大学(共14页).doc
《算符优先语法分析设计原理与实现技术-实验报告-及源代码-北京交通大学(共14页).doc》由会员分享,可在线阅读,更多相关《算符优先语法分析设计原理与实现技术-实验报告-及源代码-北京交通大学(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上算符优先语法分析设计原理与实现技术XXX 1028XXX 计科1XXX班功能描述能够有效识别以下算符优先文法E E+T | E-TT T*F | T/F | FF (E) | i所描述算术表达式主要数据结构描述数据结构功能描述string 存储该算符优先文法,对栈顶元素进行规约时要用到map符号表中的元素映射成整数map将用整数表示的符号映射到响应的行或列map将整数映射成相应的字母表中的符号int 分析栈程序结构描述n 设计方法1. 由文法构造算符优先矩阵+-*/()i#+-*/(=i#) 再找最左素短语的头部()以分析表达式i+i*i为例,详细过程如下:n 函数定
2、义函数原型功能描述void init()各种初始化操作,主要是建立符号与整数、整数与行列号、整数与符号之间的映射,也包括各全局变量的初始化void isVt(int )判断某整数所代表的符号是否是终结符号或#void comp(int a, int b)比较两整数所代表的字符的优先关系void advance()从输入文件中读入一个词bool parser()算符优先分析函数,根据算符优先矩阵进行语法分析int main(int argc, char *argv)主函数,参数argv1代表输入文件n 函数调用关系maininitisVtadvanceparsercompn 程序执行图程序测试测
3、试用例一:(a+b*c)+d+e+a*c/b首先调用实验一的词法分析程序,得到如下分析结果:(19, ()(12, a)(14, +)(12, b)(16, *)(12, c)(20, )(14, +)(12, d)(14, +)(12, e)(14, +)(12, a)(16, *)(12, c)(17, /)(12, b)在以此分析结果作为本程序实验结果的输入,得到如下分析结果:该结果显示了详细的分析过程,且表明该表达式是一个符合该文法的表达式测试用例二:(a+b*c)+d*-a*c+(a+b同样调用实验一的词法分析程序,得到如下结果:(19, ()(12, a)(14, +)(12, b
4、)(16, *)(12, c)(20, )(14, +)(12, d)(16, *)(15, -)(12, a)(16, *)(12, c)(14, +)(19, ()(12, a)(14, +)(12, b)以此分析结果作为本实验程序的输入,得到如下语法分析结果:实验结果表明,在分析过程中出现了错误,分析过程未完成,该样例是一个非法的表达式学习总结 按算符优先关系所确定的应被规约的子串恰好是当前举行的最左素短语 尽管算符优先分析也属于自底向上语法分析的范畴,但却不是严格的从左至右的规范分析,每步所得的句型自然也不是一个规范句型 采用上述策略进行算符优先分析时,尽管我们也指出了每一最左素短语应
5、规约到的非终结符号,然而每次在查找最左素短语时,起主导作用的是终结符号间的优先关系,两终结符号之间究竟是哪个非终结符号无关宏旨/ operator_prior.cpp : Defines the entry point for the console application./#include stdafx.h#include #include #include #include #include #define ID 12#define ADD 14#define SUB 15#define MUL 16#define DIV 17#define LP 19#define RP 20#def
6、ine EOI 31#define SHARP 32#define EQ 0#define BT 1#define LT 2#define UD 3#define N_Base 1000using namespace std;FILE *fp;int lookahead, yylineno;bool success;map intToint;map charToint;map intTochar;string grammer8 = E+T, E-T, T, T*F, T/F, F, (E), i;int prior_matrix99 = BT, BT, LT, LT, LT, BT, LT,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优先 语法分析 设计 原理 实现 技术 实验 报告 源代码 北京 交通大学 14
限制150内