当前位置 : 主页 > 大数据 > 区块链 >

Haskell二进制解析

来源:互联网 收集:自由互联 发布时间:2021-06-22
我一直在尝试在 haskell中实现协议解析器,我对这种语言很陌生,特别是在涉及monad时.我一直在使用binary-0.5.0.2并描述​​了我的协议的头部和所有有效载荷.我要解析的消息类似于以下内容
我一直在尝试在 haskell中实现协议解析器,我对这种语言很陌生,特别是在涉及monad时.我一直在使用binary-0.5.0.2并描述​​了我的协议的头部和所有有效载荷.我要解析的消息类似于以下内容:header(payload A,payload B,..)其中header中的字段指定消息具有哪种类型的有效负载.

我已经成功解析了bytestring中的第一条消息,但是对于如何阅读下一条消息感到不知所措,丢弃了在处理第一条消息时读取的字节.

这可能是相当模糊的,但我宁愿得到一个通用解析器的输入,而不是让我的丑陋代码改变为以这种方式工作.

谢谢您的帮助

只需使用一系列解析操作,它们就会消耗输入.

parseAll = do
    hdr <- parseHeader
    pa <- parsePayloadA
    pb <- parsePayloadB
    ...
网友评论