我熟悉 fparsec 的一些基础知识,但它似乎面向文本文件或流。
是否有任何其他 F# 库可以有效地解析二进制文件?或者可以轻松修改 fparsec 以有效处理二进制流?
最佳答案
您可能对pickler 组合器感兴趣。它们有点像解析器组合器,但更侧重于更简单的二进制格式(pickler 允许您生成二进制数据,而 unpickler 可以解析它们)。有一个quite readable article about the idea (PDF) 由 Andrew Kennedy(度量单位的作者)撰写。
我自己对这些没有太多经验,但我刚刚意识到它可能与您有关。这个想法在 F# 编译器中用于生成一些二进制资源(如存储在资源中的引用)。虽然,我不确定 F# compiler implementation有什么好处(这是 F# 编译器早期的那些东西之一)。
关于parsing - F# 中是否有任何已知的解析器组合库可以解析二进制(非文本)文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800586/