把上例倒过来写,则得到 S今 aAcBe→ aAcde aAbcde→/ abbcde 显然这是一个最右推导。 规范归约是一个最右推导的逆过程。 最左归约 规范推导 由规范推导推出的句型称为规范句型
把上例倒过来写,则得到: S aAcBe aAcde aAbcde abbcde 显然这是一个最右推导。 规范归约是一个最右推导的逆过程。 最左归约 规范推导 由规范推导推出的句型称为规范句型
利用语法树寻找句柄 a cB e A c/B e b d a b d b aa cb e a B e d
b b d a c e S A B A d b a c e S A B A d a c e S A B a c e S A B 利用语法树寻找句柄
2.5.1.3号栈的使用和分析树的表示 栈是语法分析的一种基本数据结构。’#作为 栈底符号 考虑文法G(E E→T丨E+T T→F|F F→>(E)|i 输入串为i*2+3,分析步骤为
2.5.1.3 符号栈的使用和分析树的表示 栈是语法分析的一种基本数据结构。’#’作为 栈底符号 考虑文法G(E): E → T | E+T T → F | T*F F → (E) | i 输入串为i1 *i2+i3 ,分析步骤为:
步骤号栈输入串动作 # i12+3#预备 01234567 #1 *12+i3#进 EF *12+i3#归,用F→i ET *12+i3#归,用T→F EtT 2+i3#进 #T*2 i3#进 ET"F +i3#归,用F→i iT +i3#归,用T→TF
步骤 符号栈 输入串 动作 0 # i1*i2+i3# 预备 1 #i1 *i2+i3# 进 2 #F *i2+i3# 归,用F→i 3 #T *i2+i3# 归,用T→F 4 #T* i2+i3# 进 5 #T*i2 +i3# 进 6 #T*F +i3# 归,用F→i 7 #T +i3# 归,用T→T*F
步骤号栈输入串动作 89 EE +i3# 归,用E→T EE+ i3# 10 #E+i3 进进 E+F 12 EE+T 13 EE ##### 归,用F→i 归,用T→F 归,用E→E+T 14 E 接受
步骤 符号栈 输入串 动作 8 #E +i3# 归,用E→T 9 #E+ i3# 进 10 #E+i3 # 进 11 #E+F # 归,用F→i 12 #E+T # 归,用T→F 13 #E # 归,用E→E+T 14 #E # 接受