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

    1.已知文法:

    E→E+T | T

    T→T*F | F

    F→(E) | i

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

     答:符号串‘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

    #

    归约

    #E+T*F

    #

    归约

    #E+T

    #

    归约

    #E

    #

    接受

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

    1)计算FIRSTVT和 LASTVT。

    2)找三种关系对。

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

    解: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

         

     >

    ^

         

     >

    (

    =

     

    )

         

     >

    ,

     

    #

       

    =

     

  • 相关阅读:
    使用IDEA整合SSM框架
    宏任务与微任务
    setTimeout的实现及其问题
    JS的闭合(Closure)
    this详解
    JS的作用域和作用域链
    JS的执行上下文
    JS内存机制
    抽象工厂模式(c++实现)
    迭代器模式(c++实现)
  • 原文地址:https://www.cnblogs.com/crjia/p/11997500.html
Copyright © 2011-2022 走看看