我正在寻找一个像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作为参数。我不明白为什么要这样..。如果谓词不满足,我只希望解析器失败!
我怎样才能做到这一点?
发布于 2014-12-09 11:46:57
最后,我成功地破解了一个满足我需求的satisfy函数。但是,uu-parsinglib是一个纠错解析器,如果您不提供纠错选项,它将抛出一个异常。
这意味着您应该使用普通的pSatisfy函数并提供一个Insertion元素。如果您不确定成本应该是多少,可以使用5,就像在其他解析器(如pSymbol )的实现中看到的那样。
https://stackoverflow.com/questions/27192496
复制相似问题