Существует ли пакет двоичного анализа, который имеет более высокий уровень, чем attoparsec?
Я пытаюсь проанализировать двоичный файл, который имеет определенную структуру. В настоящее время я изучаю пакет attoparsec, но чувствую, что уровень этого приложения слишком низкий.
Например, чтобы прочитать в Int32
Я должен сделать это:
return
. (fromIntegral :: Word32 -> Int32)
. runGet getWord32le
. BS.fromStrict
=<< A.take 4
Я думаю, что это слишком сложно для одного Int32
! Тем не менее, мне очень нравится структура, предоставляемая parsec
в стиле, так что я могу определить синтаксис в стиле, похожем на саму грамматику.
Существует ли решение для анализа двоичных файлов более высокого уровня? В идеале это пакет, который основан на attoparsec и имеет вспомогательные функции для чтения в различных типах значений, таких как Char
, Int
, Float
, так далее.