问题标签 [attoparsec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
136 浏览

haskell - 管道 attoparsec 的类型检查问题

我一直在尝试管道-attoparsec,但运气不佳。

在相对简单的代码中(似乎是),似乎 Void 和 X 之间存在类型不匹配。从我在库中读到的内容(在某些时候这将成为类型同义词),我不确定如何解释类​​型错误。

测试代码:

这会导致错误:

0 投票
1 回答
146 浏览

haskell - Data.Attoparsec.ByteString 是否使用“零复制”?

takeWhile 为例。它在内部使用span

这是否意味着它只引用输入字节串?可能不是,如果是这样,有没有办法做到这一点?

激励用例是一个大(> 2gb)文件,我想将其映射到内存中并提取指向映射内存的字节串。

0 投票
2 回答
634 浏览

haskell - 如何使用 takeTill 直到 Haskell Attoparsec 中的制表符或换行符?(布尔表达式的问题)

我正在编写我的第一个 Haskell 程序。该程序解析普通的 CSV 文件,但我遇到了许多问题,这些问题无疑源于我对语法的缺乏经验。

目前,代码成功解析了一条记录,但在最后一条记录上,解析器占用了换行符,因此不处理后续行的记录。

我提出的解决方案是在我的 fieldData 规范中添加一个检查以检查“takeTill 选项卡或换行符”,但我不知道该怎么做。

当前代码:

尝试:

我觉得我对如何在 Haskell 中构造布尔条件有一些基本的误解,希望得到帮助。例如,在 ghci 中我可以做到let fun x = (x == 'a' || x == 'b'),它会很好地匹配不同的字符,所以在将它与函数一起使用时,我显然遗漏了一些东西。

或者,这甚至是正确的方法吗?如果这不是解决问题的正确方法,我将不胜感激指向“正确”方法的指针。

完整代码如下:

0 投票
2 回答
138 浏览

haskell - 在 attoparsec 中实现 skipWhile1

Attoparsec提供了takeWhile1至少消耗一个字符的函数。

但是,没有类似的skipWhile. 我怎样才能实现这个功能skipWhile1

注意:这个问题故意显示没有研究工作,因为它是问答式回答的。

0 投票
2 回答
497 浏览

haskell - 跳过 attoparsec 中不包括换行符的空格

Attoparsec提供了函数skipSpace

此函数消耗所有可用的空白。

如何实现一个跳过除and之外的skipSpaceNoNewline任何空格的函数?\n\r\n

注意:这个问题故意显示没有研究工作,因为它是问答式回答的。

0 投票
1 回答
60 浏览

haskell - 在 attoparsec 中实现 takeTill1

Attoparsec提供了takeWhile1至少消耗一个字符的函数。

但是,没有类似的takeTill. 我怎样才能实现这个功能takeTill1

注意:这个问题故意显示没有研究工作,因为它是问答式回答的。虽然这个问题与前一个问题相似,但答案并不相同。我认为缺少takeTill1对于初学者来说是一个潜在的障碍,因此这个问题值得单独回答。

0 投票
2 回答
329 浏览

haskell - 如何使用 Attoparsec 解析雅虎历史 csv

我是haskell的初学者,如何用attoparsec解析成开放数组、高数组等

错误信息:

0 投票
1 回答
157 浏览

parsing - 使用 Attoparsec 内存不足

我正在尝试用 attoparsec 制作一个简单的解析器。生产规则大致如下:

所以,我想要得到的是,一个块以文字 ? 开头,然后是一个标记,然后是 >,然后是一系列内联。

内联是 foo 形式的序列,或者只是任何纯文本。

我有爆炸性的内存使用,但我不确定如何分解解析器来避免它。我正在编写的解析器的目的是提取那些“令牌”的东西。这是我的实现:

对我来说,这看起来是将生产规则非常直接地转换为 LL 解析器。我想困难在于我不确定如何表达内联的产生。它应该是“任意”文本,但是一旦找到 hiddenInline,解析就应该停止。

0 投票
1 回答
804 浏览

haskell - Haskell attoparsec: "Failed reading: satisfyWith"

I want to parse text like "John","Kate","Ruddiger" into list of Strings.

I tried to start with parsing "John", to Name (alias for String) but it already fails with Fail "\"," [","] "Failed reading: satisfyWith".

Question A: Why does this error occur and how can I fix it? (I didn't find call to satisfyWith in attoparsec's source code)

Question B: How can I make the parser to not require a comma after the last name?

I am using GHC 7.6.3 and attoparsec-0.11.3.4.

0 投票
4 回答
773 浏览

parsing - Haskell 中的广义自下而上解析器组合器

我想知道为什么 Haskell 中没有用于自下而上解析的通用解析器组合器,例如用于自上而下解析的 Parsec 组合器。
(我可以找到一些研究工作在 2004 年进行,但在
https://haskell-functional-parsing.googlecode.com/files/Ljunglof-2002a.pdf http://www.di.ubi.pt/~jpf/Site /Publications_files/technicalReport.pdf )

没有实现它有什么具体原因吗?