相关疑难解决方法(0)

Parsec vs Yacc/Bison/Antlr:为什么以及何时使用Parsec?

我是Haskell和Parsec的新手.在阅读了第16章使用真实世界Haskell的Parsec之后,我脑子里出现了一个问题:为什么以及何时Parsec比Yacc/Bison/Antlr等其他解析器生成器更好?

我的理解是Parsec创建了一个很好的编写解析器的DSL,而Haskell使它非常容易和富有表现力.但解析是一种标准/流行的技术,值得使用自己的语言,输出到多种目标语言.那么我们何时应该使用Parsec而不是从Bison/Antlr生成Haskell代码呢?

这个问题可能会超越技术,进入行业实践领域.从头开始编写解析器时,与Bison/Antlr或类似的东西相比,拾取Haskell/Parsec有什么好处?

顺便说一句:我的问题与这个问题非常相似,但在那里没有得到令人满意的回答.

haskell parsec

42
推荐指数
3
解决办法
9765
查看次数

哪种Haskell解析技术最令人愉快,为什么?

"愉快"的含义,例如:你可以以"自然"的方式编写语法而不必以复杂的方式重写它们,而不必引入枯燥的样板.

让我们为这个问题的目的规定,除非技术性能在病理上是坏的,否则性能不是最重要的问题.

尽管如此,你可能想提一下,当出于性能原因而不得不重写语法时,技术是否会失败.

在回答这个问题时,请让我了解你曾经使用的语法的大小和复杂性.此外,您是否使用了相关技术的任何值得注意的"高级"功能,以及您对这些功能的印象.

当然,这个问题的答案可能取决于领域,在这种情况下,我很乐意了解这一事实.

parsing haskell

39
推荐指数
3
解决办法
5603
查看次数

选择Haskell解析器

Haskell中有许多可供我们使用的开源解析器实现.Parsec似乎是文本解析的标准,而attoparsec似乎是二进制解析的流行选择,但除此之外我不太了解.是否存在选择解析器实现的特定决策树?您是否了解过有关图书馆优势或劣势的任何有趣内容?

parsing haskell

31
推荐指数
2
解决办法
4936
查看次数

与使用解析器组合器相比,使用像happy一样的解析器生成器有什么好处?

要学习如何编写和解析无上下文语法,我想选择一个工具.对于Haskell,有两个很大的选项:Happy,它从语法描述中生成解析器,以及*Parsec,它允许您直接在Haskell中编写解析器代码.

这两种方法的(dis)优势是什么?

parsing haskell parsec parser-generator happy

27
推荐指数
2
解决办法
4049
查看次数

Parsec或happy(使用alex)或uu-parsinglib

我将编写一个verilog(或vhdl)语言的解析器,并将对解析数据进行大量操作(某种转换).我打算解析真正的大文件(完整的Verilog设计,大到10K行),我最终会支持大部分的Verilog.我不介意输入,但每当我添加对其他规则的支持时,我不想重写代码的任何部分.

在Haskell,你会推荐哪个图书馆?我知道Haskell并且之前使用过Happy(玩).我觉得有可能使用Parsec来转换代码中的解析字符串(这是一个很好的加分).我没有使用uu-paringlib的经验.

那么要解析verilog/VHDL的全语法,推荐其中一个?我主要担心的是我可以随心所欲地操纵解析数据的简易性和"正确性".速度不是主要问题.

parsing haskell parsec happy uu-parsinglib

16
推荐指数
1
解决办法
3996
查看次数