Question

Quelle est la façon de soulever des erreurs preferred (ParseError) à parsec? Je suis un peu de code à l'intérieur d'un analyseur qui effectue un contrôle et si la vérification échoue une ParseError doit être retourné (à savoir Left ParseError lors de l'exécution parse).

Était-ce utile?

La solution

Vous pouvez utiliser Text.ParserCombinators.Parsec.Prim.unexpected et Control.Monad.fail pour cela. Les deux prennent un argument String signifiant le message d'erreur et revenir (dans ce cas) une valeur de type GenParser tok st a.

Pour en savoir plus, voir Text.ParserCombinators.Parsec.Error , en particulier Message . Là, vous pouvez lire la fonction à utiliser dans ce cas (même si les deux signifier une erreur d'analyse, ils sont sémantiquement légèrement différentes).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top