在Haskell / Parsec中引发ParseError

时间:2009-11-18 22:27:10

标签: parsing haskell parsec

在Parsec中提出错误(ParseError)的首选方法是什么?我在执行检查的解析器中获得了一些代码,如果检查失败,则应返回ParseError(即运行Left ParseError时为parse)。

1 个答案:

答案 0 :(得分:5)

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

有关详情,请参阅Text.ParserCombinators.Parsec.Error,特别是Message。在那里你可以读取在哪种情况下使用哪个函数(尽管两者都表示解析错误,它们在语义上略有不同)。