我是 Haskell 和 Parsec 的新手。读完第 16 章 Using Parsec of Real World Haskell后,我的脑海中出现了一个问题:为什么 Parsec 比 Yacc/Bison/Antlr 等其他解析器生成器更好?
我的理解是 Parsec 创建了一个很好的编写解析器的 DSL,而 Haskell 使它变得非常简单和富有表现力。但是解析是一种标准/流行的技术,值得拥有自己的语言,可以输出到多种目标语言。那么我们什么时候应该使用 Parsec 而不是从 Bison/Antlr 生成 Haskell 代码呢?
这个问题可能会超越技术,进入行业实践领域。从头开始编写解析器时,与 Bison/Antlr 或类似的东西相比,使用 Haskell/Parsec 有什么好处?
顺便说一句:我的问题与这个问题非常相似,但在那里没有得到令人满意的回答。