我正在阅读很多关于Haskell Parser Combinators的内容,并发现了很多主题,如:
但所有这些主题都会将Parser Combinators
与Parser Generators
进行比较。
我想问你哪个Parser Combinator
最适合以下条件:
我发现,最流行的解析器组合是:
答案 0 :(得分:3)
我肯定会说与Parsec一起去,为什么:
Attoparsec旨在快速使用,但缺乏对您在Parsec中获得的错误消息的强大支持,因此这是您的第一点胜利。
我使用解析器组合子库的经验是,在GHCi或测试中测试解析器的各个部分非常容易,所以第二点真正满足了所有这些。最后,Attoparsec和Parsec非常快。
最后,Parsec已经存在时间最长,并且具有许多有用和高级的功能。这意味着一般可维护性将变得更容易,Parsec中有更多示例,更多人熟悉它。 uu-parsinglib绝对值得探索,但我建议首先熟悉Parsec是因为这些原因更好的课程。 (Alex也是与Parsec一起使用的最推荐的词法分析器,否则我自己没有使用它。)
答案 1 :(得分:2)
我会在这里发布我的答案,以防有人发现这个问题。目前的答案已经过时了。
最好使用megaparsec
包作为解析器组合库。它是一个现代化的生产就绪型图书馆。它的README.md
包含与其他解析器组合子库的完美比较: