语法分析:算术表达式预测分析程序设计
1、实验目的:
(1)掌握自上而下语法分析的要求与特点。
(2)掌握 LL(1)语法分析的基本原理和方法。
(3)掌握相应数据结构的设计方法。
2、实验内容:
编程实现给定算术表达式的分析器。
算术表达式文法如下:
E-->E+T|T
T-->T*F|F
F-->(E)|i
3、设计说明:
首先改写文法为 LL(1)文法;构造 LL(1)分析表,然后编写预测分析程序。
4、设计分析与步骤
(1)将原算术表达式方法改写为 LL(1)文法为:
E-->TE'
E'-->+TE'|ε
T-->FT'
T'-->*FT'|ε
F-->(E)|i
(2)计算文法中每一个非终结符的 FIRST 集和 FOLLOW 集
FIRST FOLLOW
E { (,i } { $,) }
E’ { +,ε } { ),$ }
T { (,i } { ),+,$ }
T’ { *,ε } { ),+,$ }
F { (,i } { * }
(3)构造预测分析表
1 、 对 于 规 则 E-->TE’, 因 为 有 E 的 FIRST(TE’)={(,i} , 所 以 可 以 置 M[E,(]=E--
>TE’,M[E,i]=E-->TE’
2、 对规则 E’-->+TE’,有 FIRST(+TE’)={+},所以有 M[E’,+]=E’-->+TE’