如何执行简单的 while 循环并使用 nom 解析二进制数据块?
How to perform a simple while loop and parse blocks of binary data with nom?
考虑组织为数据段的二进制文件,其中前 4 个字节是段类型,接下来的 4 个字节是段长度,其余字节是原始数据。我可以像这样解析第一段:
named!(my_parser<&[u8], SomethingParsed>, do_parse!(
segment_type: take!(4) >>
segment_length: be_u32 >>
segment_data: take!(segment_length) >>
(SomethingParsed {segments: ?})
))
如何重复该步骤直到到达文件末尾?
考虑组织为数据段的二进制文件,其中前 4 个字节是段类型,接下来的 4 个字节是段长度,其余字节是原始数据。我可以像这样解析第一段:
named!(my_parser<&[u8], SomethingParsed>, do_parse!(
segment_type: take!(4) >>
segment_length: be_u32 >>
segment_data: take!(segment_length) >>
(SomethingParsed {segments: ?})
))
如何重复该步骤直到到达文件末尾?