Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Haskell解析ASN.1?_Haskell_Asn.1 - Fatal编程技术网

如何用Haskell解析ASN.1?

如何用Haskell解析ASN.1?,haskell,asn.1,Haskell,Asn.1,如何使用Haskell解析ASN.1输入 是否有一个生成器能够为给定的ASN.1描述文件生成代数数据类型声明和解析器代码 (例如,用于生成C代码…) 快速总结ASN.1的内容: ASN.1类似于Google协议缓冲区,但它是以更早的方式开发的,并且是一个实际的标准。基本上,ASN.1定义了几种用于序列化层次结构数据的方法,以及用于定义描述该结构的语法的语法。这种语法可以用来自动生成解析器和数据结构,以构建语法树。快速搜索Hackage 这听起来可能是相关的。我对ASN.1了解不多…您可以使用包

如何使用Haskell解析ASN.1输入

是否有一个生成器能够为给定的ASN.1描述文件生成代数数据类型声明和解析器代码

(例如,用于生成C代码…)

快速总结ASN.1的内容:


ASN.1类似于Google协议缓冲区,但它是以更早的方式开发的,并且是一个实际的标准。基本上,ASN.1定义了几种用于序列化层次结构数据的方法,以及用于定义描述该结构的语法的语法。这种语法可以用来自动生成解析器和数据结构,以构建语法树。

快速搜索Hackage


这听起来可能是相关的。我对ASN.1了解不多…

您可以使用包对二进制ASN.1进行解码,您可以使用模式匹配手动解析,也可以使用包进行解析

例如,以下帮助函数将BER二进制文件解码为以下文件的列表:

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