在 Haskell/Parsec 中引发 ParseError
题
引发错误的首选方式是什么(ParseError
)秒差距?我在解析器中得到了一些代码来执行检查,如果检查失败 ParseError
应该被退回(即 Left ParseError
跑步时 parse
).
解决方案
您可以使用 Text.ParserCombinators.Parsec.Prim.unexpected
和 Control.Monad.fail
为了这。两者都需要一个 String
参数表示错误消息,并将返回(在本例中)类型的值 GenParser tok st a
.
有关更多信息,请参阅 Text.ParserCombinators.Parsec.Error
, , 具体来说 Message
. 。在那里您可以阅读在哪种情况下使用哪个函数(尽管两者都表示解析错误,但它们在语义上略有不同)。
不隶属于 StackOverflow