引发错误的首选方式是什么(ParseError)秒差距?我在解析器中得到了一些代码来执行检查,如果检查失败 ParseError 应该被退回(即 Left ParseError 跑步时 parse).

有帮助吗?

解决方案

您可以使用 Text.ParserCombinators.Parsec.Prim.unexpectedControl.Monad.fail 为了这。两者都需要一个 String 参数表示错误消息,并将返回(在本例中)类型的值 GenParser tok st a.

有关更多信息,请参阅 Text.ParserCombinators.Parsec.Error, , 具体来说 Message. 。在那里您可以阅读在哪种情况下使用哪个函数(尽管两者都表示解析错误,但它们在语义上略有不同)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top