I would like to be able to parse a file without the program launching an exception and stop the program at the first error. I use this:
let parse input = match run pprog input with
| Success(result, _, _) -> result
| Failure(msg, _, _) -> failwith msg
let program = parse myFile
The program
variable is of the type AST.program
(no need to show the implementation), thanks to the matching pattern of the parse
function. If I do only this:
let program = run pprog myFile
program
is of the type ParserResult<AST.Program, unit>
, which is therefore unanalyzable.
I was wondering if there was a way not to crash the program with the exceptions launched?