下载此文档

编译原理4.5.1-预测分析程序.ppt


文档分类:行业资料 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
第四章
语法分析器的功能
自上而下分析面临的问题
LL(1)分析法
递归下降分析程序构造
预测分析程序
LL(1)分析中的错误处理
预测分析程序
预测分析程序工作过程

G:
E → E+T | T
T → T*F | F
F →(E) | i
消除左递归:
G':
E → TE'
E'→+TE'|ε
T → FT'
T'→*FT'|ε
F →(E) | i
表达式文法的预测分析表
i
+
*
(
)
#
E
→TE'
→TE'
E'
→+TE'
→ε
→ε
T
→FT'
→FT'
T'
→ε
→*FT'
→ε
→ε
F
→i
→(E)
空白格均指“出错标志”
总控程序
预测分析表

输入串
输出
…… a ……#
*
.
.
.
#


"#" :句子括号
"S" :文法的开始符号
"X" :存放当前栈顶符号的工作单元
"a" :存放当前输入符号a的工作单元
把‘#’和S 推入 STACK 栈
把第一个输入符号读进a;
FLAG:=TRUE;
WHILE FIAG DO
把STACK栈顶符号上托出去, 并放入X
IF X∈VT THEN IF X=a THEN 把下一个输入符号读进a ELSE ERROR
ELSE IF X='#' THEN
IF X=a THEN FLAG:=FALSE
ELSE ERROR
ELSE IF M[X, a]={ X→X1X2...XK } THEN
把XK,XK-1,…X1 一一推进 STACK ELSE ERROR
END OF WHILE;
p77
对输入串 i+i*i# 进行分析

编译原理4.5.1-预测分析程序 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sxlw2017
  • 文件大小124 KB
  • 时间2018-03-27