16得票5回答
在Haskell中解析XML

我正在尝试从一个定期提供股票报价的网页中获取数据(样例数据)。XML的结构非常简单,大致如下:<?xml version="1.0"?> <Contents> <StockQuote Symbol="PETR3" Date="21-12-2010" Time=...

16得票1回答
Parsec:消耗所有输入

我在使用Parsec时经常遇到的一个问题是,如果无效输入出现在“正确”的位置,它往往会忽略它。 举个具体例子,假设我们有integer :: Parser Int,并且我写了以下代码:expression = sepBy integer (char '+') (暂不考虑空格问题。) 此代码...

15得票2回答
将[(K,[V])]转置为[(V,[K])]时出现内存故障

我有一个279MB的文件,其中包含约1000万个键值对,大约500,000个独特的键。它们是按键分组的(每个键只需要写入一次),所以给定键的所有值都在一起。 我想要做的是转换关联,创建一个文件,其中键值对是按值分组的,并且给定值的所有键都存储在一起。 目前,我正在使用Parsec将Pair...

15得票2回答
有没有一种确定的方法可以编写解析器,可以重构其精确输入?

假设我想解析一种语言 X 的文件。实际上,我只对信息中的一个小部分感兴趣。可以很容易地使用Haskell的许多eDSL之一(例如Megaparsec)编写一个解析器来实现这个目的。data Foo = Foo Int -- the information I'm after. parseF...

14得票3回答
ghc-7.10:非类型变量参数(使用FlexibleContexts来允许此操作)

我试图使用ghc-7.10 (RC 2),但在很多情况下都会收到这个错误信息,例如: src/Text/Regex/XMLSchema/Generic/RegexParser.hs:439:5: Non type-variable argument in the cons...

14得票2回答
一个好的OCaml解析器?

我正在寻找一个好的ocaml解析库,不是flex/bison的变体。理想情况下,我希望有一个像parsec那样的单子组合器库,但我找不到任何类似的东西。 我本可以使用haskell,但为haskell创建llvm绑定比我最初想象的更加繁琐。 谢谢, Duane

14得票2回答
在Haskell的Parsec中解析基于缩进的语法

我正在尝试使用Parsec在Haskell中解析基于缩进的语言(类似Python,Haskell本身,Boo,YAML)。我看过IndentParser库,它看起来是完美的匹配,但我无法弄清楚如何将我的TokenParser变成缩进解析器。这是我目前的代码: import qualified...

13得票4回答
在 Parsec 中,是否有一种方法可以防止 lexeme 消耗换行符?

Text.Parsec.Token 中的所有解析器都会礼貌地使用 lexeme 来吃掉一个标记后面的空格。不幸的是,空格包括我想要用作表达式终止符的换行符。是否有办法让 lexeme 保留换行符?

13得票4回答
在Python中简单使用Parsec

我正在查看这个缺乏文档的库: https://pythonhosted.org/parsec/#examples 我知道有其他选择,但我想使用这个库。 我有一个以下字符串需要解析:mystr = """ <kv> key1: "string" key2: 1.00005...

12得票1回答
如何在Parsec中定义多种类型的注释块

我正尝试学习如何使用Parsec编写Delphi解析器,但在定义LanguageDef时遇到了困难。 在Delphi中,有两种类型的注释块:(* comments *)和{ comments }。但是LanguageDef的commentStart和commentEnd类型为String,而...