我阅读了很多有关 Haskell Parser Combinators 的内容,发现了很多主题,例如:
- Parsec vs Yacc/Bison/Antlr:为什么以及何时使用 Parsec?
- 哪种 Haskell 解析技术使用起来最愉快,为什么?
- Parsec 或 happy (with alex) 或 uu-parsinglib
- 选择 Haskell 解析器
- 与使用解析器组合器相比,使用快乐之类的解析器生成器有什么优势?
但所有这些主题都Parser Combinators
与Parser Generators
.
我想问你哪一个Parser Combinator
最适合以下条件:
- 我想对用户的错误(包括错误恢复)和消息有很好的控制
- 我希望能够为解析器提供一小部分文本(不是一次整个文件)
- 我希望能够很好地重新设计语法(我目前正在开发语法,所以“很好的工作”很重要”
- 最终的解析器应该很快(性能很重要,但不如第 1-3 点那么多)。
我发现,最流行的解析器组合器是: