gpt4 book ai didi

parsing - 解决减少/减少冲突

转载 作者:行者123 更新时间:2023-12-02 06:04:40 24 4
gpt4 key购买 nike

我们有一个 CFG 语法,并且构造了 LR(1) 解析表。我们看到解析表上的一个单元格存在归约-归约冲突。是否可以通过在每一步使用更多的前瞻输入符号来解决此冲突?我问这个问题是因为我认为通过增加先行符号,我们(并不总是)只能解决移位 - 减少冲突。我的意思是,减少 - 减少冲突中的额外先行对我们没有帮助。我说得对吗?

最佳答案

也许可以通过更多的前瞻来解决归约/归约冲突。或许也可以通过重构来解决。

这实际上取决于冲突的性质。没有通用程序。

可以通过额外的前瞻解决的归约/归约冲突示例:

A → something
B → A
C → A
D → B u v
D → C u w

这里是 D 的最后两部作品是明确的,但关于减少A的决定至B或发送至Cu 时无法制作被看到。不过,再多一个前瞻符号就可以做到这一点,因为下一个符号决定了减少。

重构解决方案:

Au → A u
Bu → Au
Cu → Au
D → Bu v
D → Cu w

通过将 B/C 选择推迟一个 token ,我们成功地消除了归约/归约冲突。请注意,即使 u,此解决方案也将起作用。不是一个单一的 token ;例如,它可以通过非终端来实现。因此,在仅增加前瞻功能不够的情况下,该模型可能会起作用。

关于parsing - 解决减少/减少冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com