1.已知文法:
E→E+T | T
T→T*F | F
F→(E) | i
以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程。
2.P121练习1的(1)(2)。
1)计算FIRSTVT和 LASTVT。
2)找三种关系对。
3)构造算符优先关系表。
I + i * i
|
符号栈 |
输入串 |
动作 |
|
# |
i + i * i # |
移进 |
|
# i |
+ i * i # |
归约 |
|
# F |
+ i * i # |
归约 |
|
# T |
+ i * i # |
归约 |
|
# E |
+ i * i # |
移进 |
|
# E + |
i * i # |
移进 |
|
# E + i |
* i # |
归约 |
|
# E + F |
* i # |
归约 |
|
# E + T |
* i # |
移进 |
|
# E + T * |
i # |
归约 |
|
# E + T * i |
# |
|
S -> #E#
E -> E+T | T
T -> T*F | F
F -> (E) |i
1.
FirstVT(E) = { + , * , ( , i }
FirstVT(T) = { * , ( , i }
FirstVT(F) = { ( , i }
LastVT(E) = { + , * , ) , i }
LastVT(T) = { * , ) , i }
LastVT(F) = { ) , i }
2.符号对
= :
(E)
#E#
< :
#E
+T
#F
(E
> :
E#
E+
T*
E)
|
+ |
* |
i |
( |
) |
# |
+ |
> |
< |
< |
< |
> |
> |
* |
> |
> |
< |
< |
> |
> |
i |
> |
> |
|
|
> |
> |
( |
< |
< |
< |
< |
= |
|
) |
> |
> |
|
|
> |
> |
# |
< |
< |
< |
< |
|
= |
2.已知文法:
S -> a | ^ | (T)
T -> T , S | S
1)计算FIRSTVT和 LASTVT。
2)找三种关系对。
3)构造算符优先关系表。
因为:
E -> #S#
S -> a | ^ | (T)
T -> T , S | S
(1) 计算FIRSTVT和 LASTVT。
FisrtVT(S) = { a , ^ , ( }
FirstVT(T) = { a , ^ , ( , , }
LastVT(S) = { a , ^ , ) }
LastVT(T) = { a , ^ , ) , , }
(2) 找三种关系对。
= :
#S#
(T)
< :
#S
(T
,S
> :
S#
T)
T,
(3) 构造算符优先关系表。
|
a |
^ |
( |
) |
, |
# |
a |
|
|
|
> |
> |
> |
^ |
|
|
|
> |
> |
> |
( |
< |
< |
< |
= |
< |
< |
) |
|
|
|
> |
> |
> |
, |
< |
< |
< |
< |
< |
< |
# |
< |
< |
< |
< |
< |
= |