1 / 10
文档名称:

编译原理实验二LL语法分析实验报告.docx

格式:docx   大小:269KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

编译原理实验二LL语法分析实验报告.docx

上传人:cengwaifai1314 2020/3/17 文件大小:269 KB

下载得到文件列表

编译原理实验二LL语法分析实验报告.docx

文档介绍

文档介绍:专题3_LL(1)语法分析设计原理与实现李若森13281132计科1301一、理论传授语法分析的设计方法和实现原理;LL(1)析器的构造。二、目标任务实验项目分析表的构造;LL(1)分析过程;LL(1)分实现LL(1)分析中控制程序(表驱动程序);完成以下描述算术表达式的的LL(1)分析程序。G[E]:E→TE’E’→ATE’|εT→FT’T’→MFT’|εF→(E)|iA→+|-M→*|/设计说明LL(1)文法终结符号i为用户定义的简单变量,即标识符的定义。加减乘除即运算符。设计要求输入串应是词法分析的输出二元式序列,即某算术表达式“专题1”的输出结果,输出为输入串是否为该文法定义的算术表达式的判断结果;LL(1)分析程序应能发现输入串出错;设计两个测试用例(尽可能完备,正确和出错),并给出测试结果。任务分析重点解决LL(1)表的构造和LL(1)分析器的实现。三、实现过程实现LL(1)分析器将#号放在输入串S的尾部S中字符顺序入栈反复执行c),任何时候按栈顶Xm和输入ai依据分析表,执行下述三个动作之一。构造LL(1)分析表构造LL(1)分析表需要得到文法G[E]的FIRST集和FOLLOW集。构造FIRST(α)构造FOLLOW(A)构造LL(1)分析表算法根据上述算法可得G[E]的LL(1)分析表,如表3-1所示:表3-1LL(1)分析表主要数据结构pair<int,string>:用pair<int,string>来存储单个二元组。该对照表由专题1定义。map<string,int>:存储离散化后的终结符和非终结符。vector<string>[][]:存储LL(1)分析表函数定义init:voidinit();功能:初始化LL(1)分析表,关键字及识别码对照表,离散化(非)终结符传入参数:(无)传出参数:(无)返回值:(无)Parse:boolParse(constvector<PIS>&vec,int&ncol);功能:进行该行的语法分析传入参数:vec:该行二元式序列传出参数:emsg:出错信息epos:出错标识符首字符所在位置返回值:是否成功解析。是则返回true,否则返回false。errMsg:voiderrMsg(stringfilename,introwNo,intcolNo);功能:向屏幕输出错误信息传入参数:filename:正在处理的文件的文件名称rowNo:出错行colNo:出错列传出参数:(无)返回值:(无)四、。其中,、。在命令行中运行pars