¿Cuál es la forma preferida de generar errores (ParseError
) en Parsec? Obtuve un código dentro de un analizador que realiza una comprobación y si la comprobación falla, se debe devolver un ParseError
(es decir, Left ParseError
cuando se ejecuta parse
).Elevar ParseError en Haskell/Parsec
6
A
Respuesta
5
Puede usar Text.ParserCombinators.Parsec.Prim.unexpected
y Control.Monad.fail
para esto. Ambos toman un argumento String
que significa el mensaje de error y devolverá (en este caso) un valor de tipo GenParser tok st a
. Para obtener más información, consulte Text.ParserCombinators.Parsec.Error
, específicamente Message
. Allí puede leer qué función usar, en cuyo caso (aunque ambos significan un error de análisis, son semánticamente ligeramente diferentes).
Cuestiones relacionadas
- 1. jQuery getJSON - ParseError ajax
- 2. Stylus ParseError: espera "guión", tiene "anular sangría"
- 3. Cómo elevar un SIGALARM inmediato en c
- 4. Necesito elevar permisos sin ventanas emergentes UAC
- 5. WPF: Deslizador duerma elevar MouseLeftButtonDown o MouseLeftButtonUp
- 6. Forma admitida para elevar los privilegios
- 7. $ .ajax y JSONP. ParseError y Untaught SyntaxError: token inesperado:
- 8. jQuery.ajax devuelve error: Token inesperado con mensaje de error: parseerror?
- 9. jQuery La respuesta JSON siempre desencadena un ParseError
- 10. Elevar a los derechos de administrador en la aplicación Mac
- 11. Cómo elevar evento personalizado a partir de una clase estática
- 12. R advertencia() envoltorio - elevar a la función de los padres
- 13. ValueError Python: No se permite elevar límite máximo
- 14. Cómo corregir: W602 forma obsoleta de elevar una excepción
- 15. ¿Cómo de-elevar los privilegios de un proceso hijo
- 16. ¿Desventaja de los productos de tipo sin elevar?
- 17. ¿Es posible UAC elevar un proceso sin iniciar otro proceso?
- 18. pitón: elevar una excepción si el valor ninguno encontró
- 19. Controlador de eventos de convenciones método de elevar
- 20. MENOS error de compilación ParseError: Error de sintaxis en la línea 1
- 21. Elevar un error de validación en el método de guardado de un modelo en Django
- 22. COM Elevation Moniker no puede elevar el servidor en Vista/Windows 7
- 23. Cómo evitar propiedades dinámicas en PHP (elevar un error al establecer una propiedad no declarada)
- 24. Windows 7: ¿Aprovechando la elevación automática para elevar mi propio proceso?
- 25. ¿Cómo puedo registrar la pila de llamadas con JCL sin utilizar elevar excepción
- 26. pitón: elevar child_exception, OSError: [Errno 2] No existe el fichero o directorio
- 27. EF. error de validación requerida para campos de cadena elevar sin [Obligatorio] atributo
- 28. Oracle PL/SQL - Elevar la excepción definida por el usuario con SQLERRM personalizado
- 29. Cómo interceptar o elevar los mensajes de registro cuando llamo a una tarea Ant desde Gradle
- 30. NullPointerException, mientras que elevar un servidor LDAP incrustado usando la primavera
¿Puede explicar cómo combinar estos con analizadores? por ejemplo, cuando se tiene un analizador como este: 'p = someparser <|> falla" error "' la cosa es cuando someparser falla su mensaje de error no desaparece, sino que se le agrega el "error" de cadena. – niceman