我一直在尝试在 haskell中实现协议解析器,我对这种语言很陌生,特别是在涉及monad时.我一直在使用binary-0.5.0.2并描述了我的协议的头部和所有有效载荷.我要解析的消息类似于以下内容
我已经成功解析了bytestring中的第一条消息,但是对于如何阅读下一条消息感到不知所措,丢弃了在处理第一条消息时读取的字节.
这可能是相当模糊的,但我宁愿得到一个通用解析器的输入,而不是让我的丑陋代码改变为以这种方式工作.
谢谢您的帮助
只需使用一系列解析操作,它们就会消耗输入.parseAll = do hdr <- parseHeader pa <- parsePayloadA pb <- parsePayloadB ...