Обработка исключений с помощью FParsec - PullRequest
0 голосов
/ 10 ноября 2018

Я хотел бы иметь возможность проанализировать файл без исключения программы, запускающей программу, и остановить программу при первой ошибке. Я использую это:

let parse input = match run pprog input with
                  | Success(result, _, _) -> result
                  | Failure(msg, _, _) -> failwith msg

let program = parse myFile

Переменная program имеет тип AST.program (не нужно показывать реализацию) благодаря шаблону соответствия функции parse. Если я сделаю только это:

let program = run pprog myFile

program относится к типу ParserResult<AST.Program, unit>, поэтому его нельзя анализировать.

Мне было интересно, есть ли способ не завершить работу программы с запущенными исключениями?

...