【发布时间】:2016-03-21 11:44:12
【问题描述】:
我对 Haskell 很陌生,我的第一个项目是解析捕获的 WLAN 数据包。解析此类数据包的常见模式是标头字段将定义剩余字节的结构。作为一个通用示例,数据包可以这样格式化:
header + [payload A | payload B | ..]
标头中的标志字段(可以是位图)指定数据包中包含哪些有效负载。有关此格式的具体示例,请查看radiotap。
A similar thread 建议只使用一系列parse 操作,如下所示:
parseAll = do
hdr <- parseHeader
pa <- parsePayloadA
pb <- parsePayloadB
但它似乎不适用于我的情况,因为有效载荷 A 和 B 的存在是由标头定义的。换言之,数据解析的控制流需要遵循先验的解析结果。我想了解,如果有一种通用的方法来解析这种模式的二进制数据?
【问题讨论】: