编解码器生成装置及方法制造方法及图纸

技术编号:9835965 阅读:87 留言:0更新日期:2014-04-02 01:02
本发明专利技术实施例提供一种编解码器生成装置及方法。该方法包括:将数据格式类描述文件的字符序列解析为多个单词符号;根据语法规则对所述多个单词符号进行语法分析,生成语法树;遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树;其中,各所述子编解码器单元包括组合类型的编解码器单元或简单类型的编解码器单元,所述组合类型的编解码器单元位于所述编解码器对象树的分支节点或根节点,所述简单类型的编解码器单元位于所述编解码器对象树的叶子节点,所述编解码器对象树的根节点的编解码接口为所述编解码器的编解码入口。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例提供一种。该方法包括:将数据格式类描述文件的字符序列解析为多个单词符号;根据语法规则对所述多个单词符号进行语法分析,生成语法树;遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树;其中,各所述子编解码器单元包括组合类型的编解码器单元或简单类型的编解码器单元,所述组合类型的编解码器单元位于所述编解码器对象树的分支节点或根节点,所述简单类型的编解码器单元位于所述编解码器对象树的叶子节点,所述编解码器对象树的根节点的编解码接口为所述编解码器的编解码入口。【专利说明】
本专利技术实施例涉及通信技术,尤其涉及一种。
技术介绍
抽象语法标记(Abstract Syntax Notation One,简称ASN.1)是一种国际标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。在任何需要以数字方式发送信息的地方,都可以基于ASN.1发送各种形式的信息(声频、视频、数据等等)。现有技术中,ASN.1编解码器主要以插件的形式实现。具体地,先编写ASN.1文件,再用对应的代码自动生成工具将该ASN.1文件转化为C或C++或java源文件,最后将源文件编译成动态链接库或jar包,该动态链接库或jar包以插件的形式存在,并供应用程序调用。然而,在制作插件的过程中,需要将ASN.1文件转化为C或C++或java源文件,再进行编译,这种以插件形式存在的编解码器的制作过程比较复杂和繁琐。
技术实现思路
本专利技术实施例提供一种,以简化编解码器的制作过程。第一方面,本专利技术实施例提供一种编解码器生成装置,包括:词法分析模块,用于将数据格式类描述文件的字符序列解析为多个单词符号;语法分析模块,用于根据语法规则对所述多个单词符号进行语法分析,生成语法树;语法树遍历模块,用于遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树;其中,各所述子编解码器单元包括组合类型的编解码器单元或简单类型的编解码器单元,所述组合类型的编解码器单元位于所述编解码器对象树的分支节点或根节点,所述简单类型的编解码器单元位于所述编解码器对象树的叶子节点,所述编解码器对象树的根节点的编解码接口为所述编解码器的编解码入口。结合第一方面,在第一方面的第一种可能的实现方式中,所述语法分析模块具体用于:根据语法规则对所述多个单词符号进行语法分析,生成语法树,并确定所述语法树各节点的属性信息以及所述语法树的嵌套结构;所述语法树遍历模块具体用于:遍历所述语法树的各节点,根据各节点的属性信息,创建与所述各节点对应的子编解码器,并根据所述语法树的嵌套结构,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树,并将所述编解码器对象树存储在内存中。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述装置还包括:编解码库,用于向各所述子编解码器单元提供无状态编解码工具函数,以使各所述子编解码器单元对所述无状态编解码工具函数进行调用。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述装置还包括:保存模块,用于在语法树遍历模块将各所述子编解码器单元串成与所述语法树对应的编解码器对象树之后,将所述编解码器对象树存储在内存中,并建立所述编解码器对象树的根节点的内存地址与所述数据格式类描述文件的标识的关联关系,并将所述关联关系保存在编解码器池中,以使应用程序根据所述数据格式类描述文件的标识确定所述编解码器对象树的根节点的内存地址。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述装置还包括:文件遍历模块,用于在所述数据格式类描述文件为多个时,遍历各所述数据格式类描述文件,生成与所述数据格式类描述文件对应的编解码器对象树,并将各所述编解码器对象树保存在内存中,建立各所述编解码器对象树的根节点的内存地址与各所述数据格式类描述文件的标识的关联关系,并将所述关联关系保存在编解码器池中。结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述数据格式类描述文件为抽象语法标记描述文件。第二方面,本专利技术实施例提供一种编解码器生成方法,包括:将数据格式类描述文件的字符序列解析为多个单词符号;根据语法规则对所述多个单词符号进行语法分析,生成语法树;遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树;其中,各所述子编解码器单元包括组合类型的编解码器单元或简单类型的编解码器单元,所述组合类型的编解码器单元位于所述编解码器对象树的分支节点或根节点,所述简单类型的编解码器单元位于所述编解码器对象树的叶子节点,所述编解码器对象树的根节点的编解码接口为所述编解码器的编解码入口。结合第二方面,在第二方面的第一种可能的实现方式中,所述根据语法规则对所述多个单词符号进行语法分析,生成语法树,包括:根据语法规则对所述多个单词符号进行语法分析,生成语法树,并确定所述语法树各节点的属性信息以及所述语法树的嵌套结构;所述遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树包括:遍历所述语法树的各节点,根据各节点的属性信息,创建与所述各节点对应的子编解码器,并根据所述语法树的嵌套结构,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树,并将所述编解码器对象树存储在内存中。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述在语法树遍历模块将各所述子编解码器单元串成与所述语法树对应的编解码器对象树之后,还包括:将所述编解码器对象树存储在内存中,并建立所述编解码器对象树的根节点的内存地址与所述数据格式类描述文件的标识的关联关系,并将所述关联关系保存在编解码器池中,以使应用程序根据所述数据格式类描述文件的标识确定所述编解码器对象树的根节点的内存地址。结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,在所述数据格式类描述文件为多个时,所述方法还包括:遍历各所述数据格式类描述文件,生成与所述数据格式类描述文件对应的编解码器对象树,并将各所述编解码器对象树保存在内存中,建立各所述编解码器对象树的根节点的内存地址与各所述数据格式类描述文件的标识的关联关系,并将所述关联关系保存在编解码器池中。结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述数据格式类描述文件为抽象语法标记描述文件。本专利技术实施例提供的,该装置包括词法分析模块,用于将数据格式类描述文件的字符序列解析为多个单词符号;语法分析模块,用于根据语法规贝U,将所述多个单词符号串成语法树;语法树遍历模块,用于遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树;其中,各所述子编解码器单元包括组合类型的编解码器单元或简单类型的编解码器单元,所述组合类型的编解码器单元位于所述编解码器对象树的分支节点或根节点,所述简单类型的编解本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201310698083.html" title="编解码器生成装置及方法原文来自X技术">编解码器生成装置及方法</a>

【技术保护点】
一种编解码器生成装置,其特征在于,包括:词法分析模块,用于将数据格式类描述文件的字符序列解析为多个单词符号;语法分析模块,用于根据语法规则对所述多个单词符号进行语法分析,生成语法树;语法树遍历模块,用于遍历所述语法树的各节点,创建与所述各节点对应的子编解码器单元,将各所述子编解码器单元串成与所述语法树对应的编解码器对象树;其中,各所述子编解码器单元包括组合类型的编解码器单元或简单类型的编解码器单元,所述组合类型的编解码器单元位于所述编解码器对象树的分支节点或根节点,所述简单类型的编解码器单元位于所述编解码器对象树的叶子节点,所述编解码器对象树的根节点的编解码接口为所述编解码器的编解码入口。

【技术特征摘要】

【专利技术属性】
技术研发人员:李同军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1