我正在寻找像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
作为参数。我不明白为什么这是必要的...我只是希望解析器在谓词不满意的情况下失败!
我怎样才能做到这一点?
答案 0 :(得分:1)
最后,我设法破解了satisfy
功能,满足了我的需求。但是,uu-parsinglib是一个纠错解析器,如果你没有提供更正的替代方法,它将抛出异常。
这意味着您应该使用普通pSatisfy
函数并提供Insertion
元素。如果您不确定应该花费多少,您可以使用5,如pSymbol
等其他解析器的实现中所示。