实验非递归预测分析
一、实验目的与任务
设计一个非递归预测分析器,实现对表达式语言的分析,理解自上而下语法 分析方法的基本思想,掌握设计非递归预测分析器的基本方法。
二、实验要求
建立文法及其LL(1)分析表表示的数据结构,设计并实现相应的预测分析器, 对源程序经词法分析后生成的二元式代码流进行预测分析,如果输入串是文法定 义的句子则输出是”否则输出否”
三、文法描述及其LL(1)分析表
表达式语言(XL)的语法规则如下:
1.
程序f表达式;
2.
|表达式;程序
3.
表达式
f 表达式 +项
4.
项
5.
项f
项*因式
6.
|因式
7.
因式 f num_or_id
8.
|(表达式)
将该语言的文法转换为如下的LL(1)文法:
1
prgm
、
f expr;prgm
8
term
f factor term
2
prgm
f prgm
9
term
f *factor term
3
prgm
f£
10
term
f£
4
expr
f term expr
11
factor
f (expr)
5
expr
f£
12
factor
f num
6
expr
f +term expr
13
system_goal f prgm
7
expr
f£
该LL(1)文法的LL(1)分析表如下:
T
N
Num
+
*
(
)
J
#
prgm
1
1
1
prg
原创力文档

文档评论(0)