编译原理 LR(0)

讲解视频:编译原理LR(0)分析表(上)_哔哩哔哩_bilibili

【编译原理】LR(0)分析表分析输入串_哔哩哔哩_bilibili

拓广文法

已知G:S->(S)S | ε
拓广文法:
S' -> S
S -> (S)S 

S -> ε

写出所有项目

S' -> .S
S' -> S.
S -> .(S)S
S -> (.S)S
S -> (S.)S
S -> (S).S
S -> (S)S.
S -> .

构建项目规范簇

GOTO{ I0 , (  }的意思是在I0状态推进 '('

比如说I0 = S->.(S)S

GOTO(I0,S) = CLOUSRE(S->(.S)S) ( . 后移一位)

                    =(S->(.S)S,S->.(S)S,S->.) (自身再加上 . 后的非终结符S且具有S->.α的项目)

如果A->.B 且接着B->.C,要把B->.C也加上

 构造DFA

构造分析表

action写终结符,GOTO写非终结符

I0推进S到I1,就在I0行S列写上1

I0推进(到I1,就在I0行(写上S2

Ii(i = 0,1,2,3,4,5)是改造文法的第一个文法(S'->S)就在$那列写上acc

给改造文法标号:

0 S' -> S
1 S -> (S)S 

2 S -> ε

. 结尾的且是改造文法中的式子

比如I5:S->(S)S.  ,I5的action部分全写上r1

例题

 

 

怎样利用分析表分析串

 

程序验证

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值