问题标签 [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 - 如何使用 Parsec 进行正确的大小写折叠
有没有办法进行正确的大小写折叠Parsec
(比如我想要一个行为类似于stringCI
from的解析器Data.Attoparsec.Text
)。Text.Parsec.Token
只使用不区分大小写解析的代码char (toLower c) <|> char (toUpper c)
,但没有正确的大小写折叠。所以我很困惑这是否可能。
haskell - 当输入大于缓冲区大小时 attoparsec-iteratee 不起作用
我有一个简单的基于 attoparsec 的pdf parser。在与 iteratee 一起使用之前,它工作正常。当输入的大小超过缓冲区大小时。
输入:
因此,解析器在没有迭代器的情况下工作,可以处理足够大的块,但不能处理较小的块。迭代中的错误?在 attoparsec-iteratee 中?在我的代码中?有什么解决方法吗?这对我来说是一个非常紧迫的问题。
谢谢。
haskell - 如何正确地将 IO 添加到 attoparsec 解析器?
我想在我的 attoparsec 解析器中进行一些跟踪/调试。这是最小的 [not] 工作示例:
为了在解析器中使用 IO 操作,我必须做什么?
haskell - 在haskell中解析Karva符号
Karva 符号在基因表达编程中用于表示数学表达式。
见这里http://www.gene-expression-programming.com/Tutorial002.asp
您可以通过读取基因并从左到右、从上到下填充节点来创建表达树。
因此,例如在 "+*+1+2*3456" 中使用运算符 (+, *) 和终端 (1,2,3,4,5,6) 将计算为 39。
我将如何使用 attoparsec(或 parsec)在 haskell 中执行此操作?
haskell - Attoparsec:跳过括号中的术语?
我正在尝试在第 5 列中使用 JSON 制作适合导入到 mongoDB 的大型 TSV 文件。特别是我想将顶级且仅顶级关键字段更改为_id。这是我到目前为止所拥有的,它似乎工作但很慢:
根据分析器,58.7% 的时间花在括号中,19.6% 用于 keyTo_id,17.1% 用于 main。
如果括号匹配,肯定有更好的方法来返回括号中的术语吗?
我简要地查看了 attoparsec-conduit,但我不知道如何使用该库,甚至不知道这是否是它可以用来做的事情。
编辑:更新了代码。数据来自openlibrary.org,例如http://openlibrary.org/data/ol_dump_authors_latest.txt.gz
parsing - 如何使 Attoparsec 解析器成功而不消耗(如 parsec lookAhead)
我写了一个快速的 attoparsec 解析器来遍历一个 aspx 文件并删除所有样式属性,它工作正常,除了其中一个我无法弄清楚如何在>
不消耗它的情况下使其成功匹配。
这是我所拥有的:
我理解这部分是因为我如何在所有内容中使用 manyTillButStyles,这就是我积极地将所有样式的东西放在地上的方式,但styleWithoutQuotes
我需要它以匹配“>”作为结尾,但不消耗它,以秒为单位我本来会这样做lookAhead ">"
,但我不能在 attoparsec 中这样做。
haskell - 试图简化 Attoparsec 解析器中 IO Bool 的检查
我正在尝试简化以下代码,该代码是网络数据包的 attoparsec 解析器的一部分,但我不知道如何做这件事。
它首先调用以atEnd :: IO Bool
确定是否还有更多要解析的内容。我找不到atEnd
比从 IO 解包然后在 if 语句中使用它更好的使用方法,但似乎必须有一种更简单的方法来检查 monad 中的 bool。这是代码:
目的是在Nothing
没有有效负载的情况下返回,Just A.Value
如果有有效的 JSON 有效负载则返回,如果有无效的有效负载则解析器失败。
这是最终创建的数据包记录:
haskell - 为什么图书馆设计者在 Text 似乎合适的地方使用 ByteString?
在我的应用程序上工作时,我偶然发现了Aeson 无法解码 UTF8 input的问题。深入挖掘我发现它依赖于Parser ByteString
Attoparsec,这对我来说似乎是问题的根源。但这实际上不是我在这里要问的。
问题是它不是我见过人们使用的唯一地方ByteString
,这对我来说似乎很明显,只有Text
合适的地方,因为 JSON 不是一些二进制文件,它是可读的文本,它很可能包含 UTF8 字符。
所以我想知道我是否遗漏了一些东西并且有正当的理由可以选择ByteString
,Text
或者这只是由于大多数人不太关心拉丁文以外的任何其他字符集而导致的糟糕库设计的普遍现象。
haskell - 当我预计会看到失败时,为什么我会看到 attoparsec 的部分结果?
我对 attoparsec 的这种行为有点困惑。
为什么我需要添加字符来触发失败?
遇到第一个“x”不应该失败吗?
parsing - 解析 Haskell 自定义数据类型
我已经完成了这里提供的 Haskell Koans: https ://github.com/roman/HaskellKoans
我被困在最后两个 Koans 上,都涉及解析自定义代数数据类型。这是第一个:
如何定义变量解析器以便它可以解析代数数据类型Atom
以传递断言?