编译原理 培法分析一自下而上分析 分析器的四种动作 雪1) 移进:将下一输入符号移入栈 2)归约:当栈顶出现句柄,用产生式左侧 的非终结符替换栈顶的句柄 雪3)接受:分析成功,是归约的一种特殊情 况 4) 出错:栈顶的内容与输入符号相悖,进 行出错处理 雪??决定移进和归约的依据是什么 第21页
编译原理 第21页 语法分析-自下而上分析 分析器的四种动作 1) 移进:将下一输入符号移入栈 2) 归约:当栈顶出现句柄,用产生式左侧 的非终结符替换栈顶的句柄 3) 接受:分析成功,是归约的一种特殊情 况 4) 出错:栈顶的内容与输入符号相悖,进 行出错处理 ??决定移进和归约的依据是什么
编泽原理 培法分折一自下而上分析 考虑文法G(E):E→TE+T T→FT*F F→(E)i 输入串为i*i+i,分析步骤为: 步骤 符号栈 输入串 动作 0 # *i+# 预备 1 粉 *i+i# 进 2 #F *i+讲 归,用Fi 3 #T *i+# 归,用TF 4 #T* i+i# 进 第22苑
编译原理 第22页 语法分析-自下而上分析 步骤 符号栈 输入串 动作 0 # i*i+i# 预备 1 #i *i+i# 进 2 #F *i+i# 归,用F→i 3 #T *i+i# 归,用T→F 4 #T* i+i# 进 考虑文法G(E): E → T | E+T T → F | T*F F → (E) | i 输入串为i*i+i ,分析步骤为:
G(E): 昏法分析-自下而上分析 E→T|E+T T->FIT*F F→(E)Ii 步骤 符号栈 输入串 动作 4 #T* i2+i3# 进 5 #T*i2 +i3# 进 6 #T*F +i3# 归,用Fi 7 #T +i3# 归,用T→T*F 8 #E +i3# 归,用E→T 9 #E+ i3# 进 第23贡
编译原理 第23页 语法分析-自下而上分析 步骤 符号栈 输入串 动作 4 #T* i2+i3# 进 5 #T*i2 +i3# 进 6 #T*F +i3# 归,用F→i 7 #T +i3# 归,用T→T*F 8 #E +i3# 归,用E→T 9 #E+ i3# 进 G(E): E → T | E+T T → F | T*F F → (E) | i
G(E): 客法分析一自下而上分析 E→T|E+T T→F|T*F F→(E)1i 步骤 符号栈 输入串 动作 9 #E+ i3# 进 10 #E+i3 # 进 11 #E+F # 归, 用Fi 12 #E+T # 归,用TF 13 #E # 归,用EE+T 14 #E # 接受 第2负
编译原理 第24页 语法分析-自下而上分析 步骤 符号栈 输入串 动作 9 #E+ i3# 进 10 #E+i3 # 进 11 #E+F # 归,用F→i 12 #E+T # 归,用T→F 13 #E # 归,用E→E+T 14 #E # 接受 G(E): E → T | E+T T → F | T*F F → (E) | i
编泽原理 培法分析一自下而上分析 回顾 语法分析的方法: @自下而上分析法(Bottom--up) 基本思想:从输入串开始,逐步进行“妇约”, 直到文法的开始符号。即从树末端开始,构造语 法树。所谓约,是指根据文法的产生式规 则,把产生式的右部替换成左部符号。 第25页1
编译原理 第25页 语法分析-自下而上分析 语法分析的方法: 自下而上分析法(Bottom-up) 基本思想:从输入串开始,逐步进行“归约”, 直到文法的开始符号。即从树末端开始,构造语 法树。所谓 归约 ,是指根据文法的产生式规 则,把产生式的右部替换成左部符号。 回顾