80得票1回答
在Haskell中,attoparsec或parsec是什么?

我需要解析一些文件并将它们转换为预定义的数据类型。 Haskell 提供了两个用于这个任务的包: attoparsec parsec 这两个包有什么区别?哪一个更适合根据某些规则解析文本文件?

20得票1回答
为什么库设计者在 Text 明显适用的情况下使用 ByteString?

在开发我的应用时,我遇到了Aeson不能解码UTF8输入的问题。深入挖掘后,我发现它依赖于Attoparsec的Parser ByteString,这似乎是问题的根源。但这不是我在此咨询的问题。 问题是,我看到有很多人在使用ByteString的地方,而我认为只有Text才是合适的,因为JS...

19得票1回答
Attoparsec在进行大量“take”操作时会分配大量内存

我正在编写一个数据包嗅探应用程序。基本上,我想让它嗅探TCP会话,然后解析它们以查看它们是否为HTTP,并且如果是,并且它们具有正确的内容类型等,则将它们保存在我的硬盘上。 因此,为了实现这个目标,我希望它能够高效。由于当前的http库是基于字符串的,而我将处理大文件,并且我只需要解析htt...

14得票1回答
为什么在使用attoparsec时我看到了部分结果,而不是失败?

我对 attoparsec 的这种行为感到有点困惑。$ ghci > :m Data.Attoparsec.Text > :m + Data.Text > parse (string (pack "module")) (pack "mox") Partial _ > p...

10得票1回答
Attoparsec迭代器

我想学习一些关于Iteratees的知识,重新实现一个简单的解析器,使用Data.Iteratee和Data.Attoparsec.Iteratee。但是我遇到了很大的困难。下面有一个简单的例子,能够从文件中解析出一行。我的解析器每次读取一行,所以我需要一种方法将行提供给iteratee,直到...

10得票2回答
Haskell解析器组合子

我正在阅读关于Haskell Parser Combinators的内容,发现有很多类似的话题: Parsec vs Yacc/Bison/Antlr:为什么以及何时使用Parsec? 哪种Haskell解析技术最易于使用,为什么? Parsec或happy(带有alex)或uu-pars...

9得票4回答
哈斯克尔中通用的自底向上解析组合器

我很惊讶为什么在Haskell中没有像Parsec组合器一样用于自底向上解析的通用解析器组合器。我找到了一些2004年的研究工作,但之后没有发现相关内容。 https://haskell-functional-parsing.googlecode.com/files/Ljunglof-2002...

7得票1回答
快速解析字符串并允许转义字符的方法?

我正在尝试解析一个可能包含转义字符的字符串,以下是一个示例: import qualified Data.Text as T exampleParser :: Parser T.Text exampleParser = T.pack <$> many (char '\\' *&...

7得票1回答
attoparsec:"嵌套"解析器——使用不同的解析器解析输入的子集

实际上,我相当确定我使用了错误的术语。这是我想解决的问题:一个解析器用于 markdown 格式,或者说它的一个子集。 我的问题在于块引用功能。块引用中的每一行都以 > 开头;否则,所有内容都是 markdown 文件中的正常结构。 您不能单独查看每一行,因为您需要将段落与正常行分开...

7得票3回答
使用Attoparsec时出现不完整输入的问题

我正在将一些使用Parsec的Haskell代码转换为Attoparsec,希望能获得更好的性能。我已经做出了更改并且一切都可以编译,但是我的解析器不能正确地工作。 我正在解析一个由各种记录类型组成的文件,每行一个记录。每个用于解析记录或注释的单独函数都能正常工作,但当我尝试编写一个函数来编...