1 / 12
文档名称:

实验报告_语法分析.doc

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

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

分享

预览

实验报告_语法分析.doc

上传人:63229029 2017/4/21 文件大小:237 KB

下载得到文件列表

实验报告_语法分析.doc

文档介绍

文档介绍:实验名称: 班级: 10级软件工程 2班班号: 10级软件工程 2班学号: 102511 6031 姓名: 张越 2013 年 04月 17日 1 、实验目的 1 、为初等函数运算语言构造 LL(1 )语法分析器。 2 、掌握 LL(1 )语法分析器的方法,加深对自上而下语法分析原理的理解。 3、掌握设计、编制并调试 LL(1) 语法分析程序的思想和方法。 2 、实验内容 、根据初等函数运算语言运算法则,将语法模式用上下文无关文法表达。注意运算的优先性,避免产生二义性文法。 S? A?B;# S? C;A| ε C?变量=B B? B+C|B-C|C C? C*D|C/D|D D? E|sin(E)|cos(E)|tg(E)|ctg(E)|lg(E)|ln(E)|log(E)|log(E,E)|E^E E?(B)|-E| 变量| 实数注:本文法的?前面是一些赋值语句(如: a=x+y; ) ?后面是一个算术表达式(如 a+b*sin(y); 以# 结束) 、将上述文法改写为 LL(1) 文法。 S? A?B;# A? C;A| ε C?变量=B B? DE E?+DE|-DE| ε D? FG G?* FG|/FG| ε F? HI|cos(H)|sin(H)|tg(H)| ctg(H)|lg(H)|ln(H)|log(HJ I?^H| ε J ?,H)|) H ?(B)|- H|变量|实数 、根据 LL(1 )文法给出预测分析表。 First 集 F irst(S)= {ε变量? } First(A)= {ε变量}F irst(B)={ (-变量实数 log sin cos tg ctg lg ln} F irst(C)={ 变量}F irst(D)={ (-变量实数 log sin cos tg ctg lg ln} F irst(E)= {ε+- }F irst(F)={ (-变量实数 log sin cos tg ctg lg ln} F irst(G)={ ε*/ }F irst(H)={ (-变量实数} F irst(I)={ ε^ }F irst(J)={ ,)} Follow 集 F ollow(S)= {#}F ollow(A)={ ?} F ollow(B)={ ;)}F ollow(C)={ ;}F ollow(D)={ +-;)}F ollow(E)={ ;)}F ollow(F)={ */+-;)} F ollow(G)={ +-;)}F ollow(H)={ */+-;)^,} F ollow(I)={ */+-;)} F ollow(J)={ */+-;)} 记号表非终结符 iostclg 记号 1234567 意义变量 cos sin tg ctg ln lg 非终结符 an+-*/^ 记号 89 10 11 12 13 14 意义 log 实数+-*/^ 非终结符=,;()?# 记号 15 16 17 18 19 20 21 意义=,;()? 结束标志 预测分析表 、根据预测分析表,给出解析 LL(1) 文法的递归下降子程序。 、本语法分析程序的输入是实验一生成的记号流; 本程序需定义语法树的数据结构;语法分析的输出是一棵语法树。 、当输入存在语法错误时, 需给出语法错误的提示, 指出语法错误发生的位置和错误类型。 3 、实验程序清单( 包括词法分析部分) 4、调试过程和运行结果 5、程序的主要部分及其功能说明