之前有人向我建议使用attoparsec来解析复杂的二进制文件格式。虽然我可以找到attoparsec解析HTTP的例子,但这基本上是基于文本的,我找不到一个实际解析二进制文件的例子,例如TCP数据包、图像文件或mp3。能否有人发布一些代码或指向一些使用attoparsec进行此操作的代码?
目前很少或没有 attoparsec 用于解析二进制格式的示例,因为 parsec 风格的组合器解析主要是针对文本格式,而不是二进制格式(尽管这没有什么好的理由)。
对于直接的二进制解析,请参阅 Data.Binary,例如:
以及《Real World Haskell》中的示例。
目前 attoparsec 的主要示例是 RFC2616 解析器(HTTP)。