Qual è il modo migliore per aumentare gli errori (ParseError
) in Parsec? Ho ottenuto del codice all'interno di un parser che esegue un controllo e se il controllo fallisce è necessario restituire ParseError
(ad esempio Left ParseError
durante l'esecuzione di parse
).Raise ParseError in Haskell/Parsec
6
A
risposta
5
È possibile utilizzare Text.ParserCombinators.Parsec.Prim.unexpected
e Control.Monad.fail
per questo. Entrambi accettano un argomento String
che indica il messaggio di errore e restituiranno (in questo caso) un valore di tipo GenParser tok st a
.
Per ulteriori informazioni, vedere Text.ParserCombinators.Parsec.Error
, in particolare Message
. Qui puoi leggere quale funzione usare in quel caso (anche se entrambi significano un errore di analisi, sono semanticamente leggermente differenti).
Problemi correlati
- 1. Cosa fa raise in Python?
- 2. istruzione raise su un'espressione condizionale
- 3. Qual è la differenza tra "raise" foo "` e `raise Exception.new (" foo ")`?
- 4. Python Mechanize select_form() - ParseError: OPTION all'esterno di SELECT
- 5. ruby - re-raise exception con sub-exception
- 6. python raise KeyError message with color
- 7. jQuery.ajax restituisce errore: token imprevisto con messaggio di errore: parseerror?
- 8. $ .ajax e JSONP. ParseError and Uncaught SyntaxError: Token imprevisto:
- 9. eccezione Raise a eccezione di blocco e reprimere primo errore
- 10. panda: FloatingPointError con np.seterr (all = 'raise') e dati mancanti
- 11. Raise ConnectionError (Connessione interrotta, BadStatusLine): utilizzando python e Last.fm API
- 12. Re-raise eccezione Python e conservare traccia dello stack
- 13. Qual è la differenza tra objc_exception_throw e [NSException raise]?
- 14. Memory raise on dialog button clic nell'applicazione javafx
- 15. Elmah aggiunge messaggio all'errore registrato tramite chiamata a Raise (e)
- 16. Perché i metodi sys.exit(), exit(), raise SystemExit non funzionano?
- 17. Non mostrare Python raise-line nello stack di eccezioni
- 18. Fail vs raise in Ruby: dovremmo davvero credere alla guida allo stile?
- 19. Signalr: client JavaScript non riuscire a ricollegare su IE (eccezione parseError)
- 20. instagram api keep raise 'È necessario fornire un'eccezione client_id' quando utilizzo la libreria python-instagram
- 21. come elaborare tutti i tipi di eccezione in un progetto scrapy, in errback e callback?
- 22. Qual è la regola dell'ordine di più variabili di tipo in haskell?
- 23. Immagine pin personalizzata in annotationView in iOS
- 24. Conversione XML in JSON in iOS
- 25. Modo corretto per generare un'eccezione in python?
- 26. Definizione eccezione personalizzata in un modulo in Rails
- 27. NSJSONSerialization non la creazione di contenitori mutevoli
- 28. Come funzionano gli eventi virtuali in C#?
- 29. segnale manipolazione in C - interrompere in interrupt
- 30. ricevere input sinistro di Parsec
puoi approfondire come combinarli con i parser? per esempio quando si ha parser come questo: 'p = someparser <|> errore" errore "" la cosa è quando someparser fallisce il suo messaggio di errore non scompare, invece la stringa "errore" viene aggiunta ad essa. – niceman