gpt4 book ai didi

haskell - 有没有办法让parsec报告 "shift-reduce"冲突?

转载 作者:行者123 更新时间:2023-12-02 16:51:51 25 4
gpt4 key购买 nike

我正在研究秒差距,并意识到我的语法不明确。显然这是我的一个错误,但我有点习惯 yacc 风格的解析器生成器让我知道我很愚蠢。 Parsec 只是按照您给解析器的顺序吃掉字符(是的,我知道 try)。

当我的语法不是左因子分解时,有什么方法可以让秒差距告诉我吗?对我有用的程序非常棒。

谢谢!

(我知道移位归约与一种不同类型的解析器技术有关。我只是想描述不明确的语法。)

最佳答案

我不是秒差距专家,所以我很可能会被纠正,但我认为这是不可能的,原因很简单,秒差距对你的语法一无所知。

或者换句话说,虽然你的语法可能是不明确的,但你的秒差距解析器却不是,并且程序无法确定秒差距组合器的某些其他排列(它为等效输入产生不同的输出)也是有效的未指定语法的表示。

由于您确实有语法,因此您可能更喜欢使用 happyalex ,这将为您提供更像 lexx/yacc 的体验。

一个有趣的项目可能是改编 BNFC生成秒差距组合子的 AST 来表示语法,但我怀疑这将是一项不平凡的任务。

关于haskell - 有没有办法让parsec报告 "shift-reduce"冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170780/

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