第十三次作业——自下而上语法分析

1.已知文法:

E→E+T | T

T→T*F | F

F→(E) | i

以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程。

知识点:

Firstvt
找Firstvt的三条规则:如果要找A的Firstvt,A的候选式中出现:
           A->a.......,即以终结符开头,该终结符入Firstvt
           A->B.......,即以非终结符开头,该非终结符的Firstvt入A的Firstvt
           A->Ba.....,即先以非终结符开头,紧跟终结符,则终结符入Firstvt

Lastvt
找Lastvt的三条规则:如果要找A的Lastvt,A的候选式中出现:
           A->.......a,即以终结符结尾,该终结符入Lastvt
           A->.......B,即以非终结符结尾,该非终结符的Lastvt入A的Lastvt
           A->.....aB,即先以非终结符结尾,前面是终结符,则终结符入Firstvt

1)求FIRSTVT和LASTVT 

 FIRSTVT(E) = {+,*,(,i}

 FIRSTVT(T) = {*,(,i}

 FIRSTVT(F) = {(,i}

 LASTVT(E) = {+,*,),i} 

 LASTVT(T) = {*,),i}

 LASTVT(F) = {),i}

 2)符号对:

=

(E)

<

+T

*F

(E

>

E+

T*

E)

3)优先关系表的构造

 

+

*

(

)

i

+

*

(

=

)

 

 

i

 

 


2.P121练习1的(1)(2)。
 

E→#S#

S→a|^|(T)

T→T,S|S

1)计算FIRSTVT和 LASTVT。

 FIRSTVT(S) = {a,^,(}

 FIRSTVT(T) = {逗号,a,^,(}

 LASTVT(S) = {a,^,)}

 LASTVT(T) = {逗号,a,^,)}

2)找三种关系对。

=

#S#

(T)

<

#S

(T

,S

>

S#

T)

T,

3)构造算符优先关系表。

 

^

,

(

)

a

#

^

 

>

 

 >

 

>

,

<

>

<

 >

 <

 

(

=

 

)

 

>

 

 >

 

>

a

 

>

 

 >

 

>

#

<

 

<

 

<

=

原文地址:https://www.cnblogs.com/lxml/p/11975763.html