Domanda

Qual è il modo preferito per raccogliere gli errori (ParseError) in Parsec? Ho avuto qualche codice all'interno di un parser che effettua un controllo e se il controllo non riesce a ParseError deve essere restituito (cioè Left ParseError durante l'esecuzione parse).

È stato utile?

Soluzione

È possibile utilizzare Text.ParserCombinators.Parsec.Prim.unexpected e Control.Monad.fail per questo. Entrambi prendono un argomento String significare il messaggio di errore e tornerà (in questo caso) un valore di tipo GenParser tok st a.

Per ulteriori informazioni, consultare Text.ParserCombinators.Parsec.Error , in particolare Message . Ci si può leggere che funzionano da usare in questo caso (anche se entrambi significare un errore di analisi, sono semanticamente leggermente diversi).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top