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

     

     

     

    ^

     

     

     

    (

    =

    )

     

     

     

    ,

    #

    =

  • 相关阅读:
    AngularJS方法 —— angular.bind
    rails 部署 nginx + passenger
    查找并删除
    rails 网站跨域
    From Ruby array to JS array in Rails- 'quote'?
    rails 网站字体
    form_tag
    bundle install 老是中断,可以在gemfile里面把source换成taobao源,可以自动安装
    ruby 功力修炼
    bootstrap 移动自适应界面
  • 原文地址:https://www.cnblogs.com/q1uj1e/p/11995331.html
Copyright © 2011-2022 走看看