我该如何使用Haskell解析ASN.1输入?
是否有一个生成代数数据类型声明和解析器代码的生成器,可以根据给定的ASN.1描述文件生成代码?
(例如像生成C代码的asn1c ...)
ASN.1是什么:
ASN.1类似于Google Protocol Buffers,但它早期开发并实际上是一种标准。基本上,ASN.1定义了用于序列化分层结构数据的几种方法以及描述结构的语法。这样的语法可以用于自动生成解析器和用于构建语法树的数据结构。
例如,以下辅助函数将把一个BER二进制文件解码为ASN1列表:
import Data.ASN1.Encoding
import Data.ASN1.BinaryEncoding
import Data.ASN1.Types
import qualified Data.ByteString as B
decodeASN1File file = decodeASN1' BER `fmap` B.readFile file
http://hackage.haskell.org/package/language-asn1-0.2.1
这听起来可能与编程有关。我对ASN.1并不是很了解...