适用于LR(1)但不适用于LALR(1)的语法示例?

单宁

除了LALR(1)的状态似乎比LR(1)少,我似乎无法理解LALR(1)和LR(1)之间的区别。

我想知道是否有人有例子说明差异和一些解释。

谢谢

《龙书》中有一个示例(示例4.44;如果是第二版,则为4.58):

S' → S
S  → aAd | bBd | aBe | bAe
A  → c
B  → c

由于语法仅生成四个字符串,因此创建LR项目集非常容易。执行此操作时,您会看到有两个集合具有相同的项目,但前瞻不同,分别对应于前缀acbc没有冲突,因此语法为LR(1)。

LALR算法结合了项目集相同的状态,有效地合并了它们的先行状态。这会产生减少/减少冲突,因此语法不是LALR(1)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

云雀解析器语法适用于Earley,但不适用于LALR

laravel 5 Schedule适用于-> cron('* * / 1 * * *'),但不适用于-> hourly()

视差滚动适用于1张图像,但不适用于其他图像

“纹理”示例适用于 PySide2 但不适用于 PySide6

适用于 PHP 但不适用于脚本

setSelectedIndex(-1)不适用于JComboBox

knnMatch不适用于K!= 1

$ 1不适用于sed

指向成员的指针的语法糖适用于数组,但不适用于std :: vector

适用于MYSQL但不适用于SQLite的查询(语法不同吗?)

CSS 适用于 HTML 但不适用于 Razor 语法

重写规则适用于1-4个参数,但不适用于1个参数

相同的连接文件适用于 1 个脚本,但不适用于另一个

PHP Codeigniter-克隆数据(仅适用于1个单行,但不适用于所有行)

Google Colab GPU加速适用于2.x,但不适用于1.x

VBA 适用于工作表 2-15,但不适用于工作表 1

Chrome 仅适用于 1 个帐户,但不适用于其他 3 个帐户

Javascript 适用于 1 个网络主机,但不适用于另一个

MPI代码不适用于2个节点,但适用于1个节点

编码适用于 1 而不适用于 Twitter 中使用 python 的其他列表

NVM 不适用于 ZSH 但适用于 Bash - M1 Mac Mini

CSS不适用于body,h1等

“.toFixed(1);” 不适用于我的每个功能

.argmax(axis =1) 不适用于 numpy 数组

JSPX标记不适用于Wildfly CR1

CN1:滚动不适用于MultiButton

tabindex -1不适用于子元素

current_predicate / 1不适用于:-动态吗?

{Flex: 1} 不适用于相对定位