zoukankan      html  css  js  c++  java
  • 自下而上语法分析

    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

     

     

     

    ^

     

     

     

    (

    =

    )

     

     

     

    ,

    #

    =

  • 相关阅读:
    node03- FS内置模块
    node03- CommonJS
    删除当前目录下的所有文件夹和文件
    解决 idea 项目中Error:java: 无效的标记
    Raid0,Raid1,Raid5,Raid10 总结
    Tcpdump命令
    ClassNotFoundException 和 NoClassDefFoundError 区别
    Dart-List里面常用的属性和方法
    CSS实现等分布局的4种方式
    iOS项目添加CocoaPods
  • 原文地址:https://www.cnblogs.com/q1uj1e/p/11995331.html
Copyright © 2011-2022 走看看