Существует ли пакет двоичного анализа, который имеет более высокий уровень, чем attoparsec?

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

Например, чтобы прочитать в Int32 Я должен сделать это:

return
    . (fromIntegral :: Word32 -> Int32)
    . runGet getWord32le
    . BS.fromStrict
    =<< A.take 4

Я думаю, что это слишком сложно для одного Int32! Тем не менее, мне очень нравится структура, предоставляемая parsecв стиле, так что я могу определить синтаксис в стиле, похожем на саму грамматику.

Существует ли решение для анализа двоичных файлов более высокого уровня? В идеале это пакет, который основан на attoparsec и имеет вспомогательные функции для чтения в различных типах значений, таких как Char, Int, Float, так далее.

1 ответ

Вы смотрели на бинарный пакет?

Другие вопросы по тегам