kaitai struct 中实现了哪些解析器技术?它是不是实现回溯?

Posted

技术标签:

【中文标题】kaitai struct 中实现了哪些解析器技术?它是不是实现回溯?【英文标题】:What are the parser techniques implemented in kaitai struct? Does it implement backtracking?kaitai struct 中实现了哪些解析器技术?它是否实现回溯? 【发布时间】:2019-03-07 17:16:40 【问题描述】:

我必须处理一个字节缓冲区。此缓冲区可以有多种语法(A、B、C、.. 等)。

例如:AxxxxBxxxxACxxx

x 是脏字节,我想跳过它们。 (它们不匹配任何语法)

我想知道是否可以使用 kaitai-struct 来解析那些跳过脏字节的语法。

【问题讨论】:

【参考方案1】:

不,这不可能,而且一般不是 Kaitai Struct 的目标。

二进制解析的整个概念通常与经典解析理论大不相同,因为二进制格式被设计为机器可读,因此通常是明确的。二进制解析器通常非常简单,不使用“状态”、“回溯”、“递归下降”、语法作为内部状态机的表示等。

【讨论】:

以上是关于kaitai struct 中实现了哪些解析器技术?它是不是实现回溯?的主要内容,如果未能解决你的问题,请参考以下文章

在stm32上使用kaitai struct

Python:使用 Kaitai Struct 读取 ID3v1 标签

更好地理解 Kaitai Struct 的 32 位转换器

spring框架中实现了哪些servlet

在 Go 中实现 struct-to-csv 编写器

请求参数的自定义 Spring 注释 - 从未调用自定义解析器