gpt4 book ai didi

bison - 使用 Bison 的 C++ GLR 解析器

转载 作者:行者123 更新时间:2023-12-02 00:49:57 26 4
gpt4 key购买 nike

我正在使用 Bison 生成解析器。我有一个转变/减少冲突,我真的需要 Bison 使用 GLR 而不是 LALR 来处理它。但我已经传递了 %glr-parser 指令,并且源文件仍然声明它是一个 LALR 解析器。我什至发现了一个“glr.cc”骨架,表明它是一个 GLR C++ 解析器,并且通过 %sculpture "glr.cc" 使用它并没有改变输出。 Bison 没有为其所有目标语言提供所有算法吗?

最佳答案

您只需要 %glr-parser 即可获取 GLR 解析器。请注意,GLR 解析器可能仍然存在冲突(移位/归约或归约/归约),只是生成的解析器将尝试两种替代方案并统一结果。

如果您想关闭有关冲突的消息,可以使用%expect%expect-rr。然而,在您不了解所有冲突是什么的情况下盲目地使用 GLR 解析器是危险的——如果您不小心,生成的解析器可能会花费指数级的时间来解析某些输入,或者可能在运行时给您带来歧义错误。

关于bison - 使用 Bison 的 C++ GLR 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526887/

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