Так что я все еще пытаюсь получить удобство с помощью Parsec, но я медленно работаю в своем наборе инструментов.Haskell: Разбор файлов с Parsec и IO
Когда у меня есть файл, мне нужно разобрать, я считаю себя чтение файла в виде строки, а затем передать содержимое в Парсек:
problem <- readFile input
case runParser myParser() input problem of
Left err -> hPutStrLn stderr $ "Error: " ++ show err
Right cs -> -- continue processing...
Это кажется довольно общий шаблон, хотя - это есть ли какая-то существующая функция, которую я могу использовать, которая принимает ParsecT String u IO a
и FilePath
и анализирует содержимое? Я ничего не могу найти в hoogle, но это может быть просто неудачей воображения.
В 'Text.Parsec.String' или' Text.Parsec.ByteString' есть 'parseFromFile', но они работают только с чистыми парсерами (например,' ParsecT String() Identity a'). – hammar