问题标签 [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.
haskell - 管道 attoparsec 的类型检查问题
我一直在尝试管道-attoparsec,但运气不佳。
在相对简单的代码中(似乎是),似乎 Void 和 X 之间存在类型不匹配。从我在库中读到的内容(在某些时候这将成为类型同义词),我不确定如何解释类型错误。
测试代码:
这会导致错误:
haskell - Data.Attoparsec.ByteString 是否使用“零复制”?
以takeWhile 为例。它在内部使用span。
这是否意味着它只引用输入字节串?可能不是,如果是这样,有没有办法做到这一点?
激励用例是一个大(> 2gb)文件,我想将其映射到内存中并提取指向映射内存的字节串。
haskell - 如何使用 takeTill 直到 Haskell Attoparsec 中的制表符或换行符?(布尔表达式的问题)
我正在编写我的第一个 Haskell 程序。该程序解析普通的 CSV 文件,但我遇到了许多问题,这些问题无疑源于我对语法的缺乏经验。
目前,代码成功解析了一条记录,但在最后一条记录上,解析器占用了换行符,因此不处理后续行的记录。
我提出的解决方案是在我的 fieldData 规范中添加一个检查以检查“takeTill 选项卡或换行符”,但我不知道该怎么做。
当前代码:
尝试:
我觉得我对如何在 Haskell 中构造布尔条件有一些基本的误解,希望得到帮助。例如,在 ghci 中我可以做到let fun x = (x == 'a' || x == 'b')
,它会很好地匹配不同的字符,所以在将它与函数一起使用时,我显然遗漏了一些东西。
或者,这甚至是正确的方法吗?如果这不是解决问题的正确方法,我将不胜感激指向“正确”方法的指针。
完整代码如下:
haskell - 在 attoparsec 中实现 skipWhile1
Attoparsec提供了takeWhile1
至少消耗一个字符的函数。
但是,没有类似的skipWhile
. 我怎样才能实现这个功能skipWhile1
?
注意:这个问题故意显示没有研究工作,因为它是问答式回答的。
haskell - 跳过 attoparsec 中不包括换行符的空格
Attoparsec提供了函数skipSpace
。
此函数消耗所有可用的空白。
如何实现一个跳过除and之外的skipSpaceNoNewline
任何空格的函数?\n
\r\n
注意:这个问题故意显示没有研究工作,因为它是问答式回答的。
haskell - 在 attoparsec 中实现 takeTill1
Attoparsec提供了takeWhile1
至少消耗一个字符的函数。
但是,没有类似的takeTill
. 我怎样才能实现这个功能takeTill1
?
注意:这个问题故意显示没有研究工作,因为它是问答式回答的。虽然这个问题与前一个问题相似,但答案并不相同。我认为缺少takeTill1
对于初学者来说是一个潜在的障碍,因此这个问题值得单独回答。
haskell - 如何使用 Attoparsec 解析雅虎历史 csv
我是haskell的初学者,如何用attoparsec解析成开放数组、高数组等
错误信息:
parsing - 使用 Attoparsec 内存不足
我正在尝试用 attoparsec 制作一个简单的解析器。生产规则大致如下:
所以,我想要得到的是,一个块以文字 ? 开头,然后是一个标记,然后是 >,然后是一系列内联。
内联是 foo 形式的序列,或者只是任何纯文本。
我有爆炸性的内存使用,但我不确定如何分解解析器来避免它。我正在编写的解析器的目的是提取那些“令牌”的东西。这是我的实现:
对我来说,这看起来是将生产规则非常直接地转换为 LL 解析器。我想困难在于我不确定如何表达内联的产生。它应该是“任意”文本,但是一旦找到 hiddenInline,解析就应该停止。
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.
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 )
没有实现它有什么具体原因吗?