Parsec满足uu-parsinglib中的等价物

时间:2014-11-28 16:12:56

标签: haskell parser-combinators uu-parsinglib

我正在寻找像Parsec那样的satisfy函数。类似的东西:

--The parser satisfy f succeeds for any character for which the supplied
--function f returns True.
--Returns the character that is actually parsed.
satisfy :: (Char -> Bool) -> Parser Char

我唯一找到的是pSatisfy,它需要Insertion作为参数。我不明白为什么这是必要的...我只是希望解析器在谓词不满意的情况下失败!

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

最后,我设法破解了satisfy功能,满足了我的需求。但是,uu-parsinglib是一个纠错解析器,如果你没有提供更正的替代方法,它将抛出异常。

这意味着您应该使用普通pSatisfy函数并提供Insertion元素。如果您不确定应该花费多少,您可以使用5,如pSymbol等其他解析器的实现中所示。