LR(1)分析法

LR(1)分析法通过增加展望符来避免SLR(1)的无效规约和动作冲突。其核心思想是在进行规约时,不仅要考虑栈内符号串,还要扫视一个输入符号,确保符合文法规范。LR(1)项目集由LR(0)项目加上展望符构成,项目集闭包和转换函数的构造是关键步骤。虽然LR(1)项目集通常多于LR(0),但LR(0)文法一定是SLR(1)和LR(1)文法。
摘要由CSDN通过智能技术生成

SLR(1)分析法只是简单地考察下一个输入符号b是否属于与归约项目 A → α A\rightarrowα Aα相关联的FOLLOW(A),但 b ∈ F O L L O W ( A ) b\in FOLLOW(A) bFOLLOW(A) 只是归约的一个必要条件,而非充分条件。

假设栈内的符号串为 $ $ \delta\alpha $ ,规约之后变为 $ $\delta A$ ,当前读到的输入为a,若文法中不存在以 $ $\delta a $ 为前缀的规范举行,那么这种规约就无效了。并不是FOLLOW(A)中的每个元素在A的所有举行中都会出现在A的后面。

LR(1)分析法的思想

当师徒用某一规则 A → α A \rightarrow{\alpha} Aα规约栈顶的符号 α \alpha α时,不仅应该查看栈中符号串 δ α \delta \alpha δα,还应向前扫视一个输入符号a,只有当 δ A a \delta Aa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值