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).

Foi útil?

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
scroll top