gpt4 book ai didi

从 bison 或 yacc 过滤 y.output?

转载 作者:行者123 更新时间:2023-12-01 19:58:08 25 4
gpt4 key购买 nike

我正在使用 bison,通过查看 y.output 很难找出冲突。是否有工具可以制作或过滤 y.output 使其更有用?我很想看到冲突状态的完整路径,但我想要任何有帮助的东西。

最佳答案

我假设您知道什么是shift/reduce 和reduce/reduce 冲突以及它们何时发生。鉴于此,我所做的只是使用 vim...

在 y.output 的顶部,它列出了哪些状态有多少冲突。如果您只需输入“/statenumber”并按“n”几次,您应该能够直接进入该状态的转换。

在那里,您将看到您用“.”输入的产生式规则。在他们中。点表示产生式规则中已解析到的位置。如果点位于末尾,则意味着它将尝试“减少”,如果不是,则尝试“移动”。如果下一个标记位于 LHS 非终结符的 FOLLOWSET 中(下一个标记是可以跟随该非终结符的符号),则发生减少产生式,并且对于终结符或 FIRST(非终结符)发生移位在“.”之后。

如果对于下一个可能的标记有两种可能的移动(移位/归约或归约/归约),则会发生冲突。

当您发现冲突时,只需进入该状态,找出哪些产生式规则给您带来冲突,然后:a - 修改语法以消除该冲突,或 b - 使用 % 指定产生式规则优先级精确符号。

希望有帮助:)

关于从 bison 或 yacc 过滤 y.output?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348117/

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