我对Haskell和Parsec都很陌生。在阅读了Real World Haskell的第16章使用Parsec之后,我有一个问题:为什么和何时使用Parsec比其他解析器生成器(如Yacc/Bison/Antlr)更好?
我的理解是,Parsec创建了一种很好的编写解析器的DSL,并且Haskell使其非常易于表达。但解析是一种如此标准/流行的技术,值得拥有自己的语言,可以输出到多个目标语言。那么我们应该在什么情况下使用Parsec,而不是从Bison/Antlr生成Haskell代码呢?
这个问题可能超出了技术范畴,涉及到行业实践。从零开始编写解析器时,与选择Bison/Antlr或类似工具相比,选择Haskell/Parsec的好处是什么?
顺便说一句:我的问题与这个问题非常相似,但那里的答案并不令人满意。
我的理解是,Parsec创建了一种很好的编写解析器的DSL,并且Haskell使其非常易于表达。但解析是一种如此标准/流行的技术,值得拥有自己的语言,可以输出到多个目标语言。那么我们应该在什么情况下使用Parsec,而不是从Bison/Antlr生成Haskell代码呢?
这个问题可能超出了技术范畴,涉及到行业实践。从零开始编写解析器时,与选择Bison/Antlr或类似工具相比,选择Haskell/Parsec的好处是什么?
顺便说一句:我的问题与这个问题非常相似,但那里的答案并不令人满意。