Levante Parseerror em Haskell/Parsec
Pergunta
Qual é a maneira preferida de levantar erros (ParseError
) no parsec? Eu tenho algum código dentro de um analisador que executa um cheque e se a verificação falhar um ParseError
deve ser devolvido (ou seja, Left ParseError
Ao correr parse
).
Solução
Você pode usar Text.ParserCombinators.Parsec.Prim.unexpected
e Control.Monad.fail
por esta. Ambos tomam um String
argumento significando a mensagem de erro e retornará (neste caso) um valor do tipo GenParser tok st a
.
Para mais, veja Text.ParserCombinators.Parsec.Error
, especificamente Message
. Lá você pode ler qual função usar, nesse caso (embora ambos signifiquem um erro de análise, eles são semanticamente um pouco diferentes).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow