【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本申请要求2013年11月22日提交的美国申请第14/087,158号的优先权,其要求2013年7月12日提交的美国临时申请第61/845,722号的优先权。
技术介绍
本说明书涉及解析器(parser)生成。一些系统用户解析器,用于分析输入并且确定该输入的不同部分之间的关系以便解释该输入。一些解析器由程序员手动写入。一些解析器由解析器生成器自动生成。例如,一些解析器生成器(也称为编译程序的编译程序(compiler-compiler),诸如yacc或Bison)接受具有生产规则(或者简称为“生产”)的语法(grammer)作为输入,其描述根据该语法被认为是有效的语法元素(syntacticelement)、以及它们之间的关系。解析器生成器提供用于解析输入的输出信息,该输入符合被提供给解析器生成器的语法。各种解析器可以被用于处理各种不同种类的数据。例如,应用-协议解析器将数据包流转化为这些数据包流中流量的高级表示。
技术实现思路
在一个方案中,一般地,一种生成数据解析器的方法,所述数据解析器用于解析数据对象的输入流,所述方法包括:接收表示限定以层级组织的多个对象的分层数据格式的信息,所述对象包括表示数据对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或多个容器对象;以及处理所接收到的信息以形成所述数据解析器。所述处理包括:至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据 ...
【技术保护点】
一种生成数据解析器的方法,所述数据解析器用于解析数据对象的输入流,所述方法包括:接收表示限定以层级组织的多个对象的分层数据格式的信息,所述对象包括表示数据对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或多个容器对象;以及处理所接收到的信息以形成所述数据解析器,所述处理包括:至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据对象之间的容许转换;将一个或多个数据操作与每个所确定的容许转换相关联;以及存储规范,该规范用于将处理器配置为执行所述数据解析器以:(1)识别所述输入流中的第一数据对象与第二数据对象之间的转换,以及(2)至少部分基于与一个或多个之前所识别的转换相关联的背景来对所述第二数据对象内的数据值执行与所识别的转换相关联的数据操作。
【技术特征摘要】
【国外来华专利技术】2013.07.12 US 61/845,722;2013.11.22 US 14/087,1581.一种生成数据解析器的方法,所述数据解析器用于解析数据对象的输入流,所述方
法包括:
接收表示限定以层级组织的多个对象的分层数据格式的信息,所述对象包括表示数据
对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或多个容器对
象;以及
处理所接收到的信息以形成所述数据解析器,所述处理包括:
至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据对象之
间的容许转换;
将一个或多个数据操作与每个所确定的容许转换相关联;以及
存储规范,该规范用于将处理器配置为执行所述数据解析器以:(1)识别所述输入流中
的第一数据对象与第二数据对象之间的转换,以及(2)至少部分基于与一个或多个之前所
识别的转换相关联的背景来对所述第二数据对象内的数据值执行与所识别的转换相关联
的数据操作。
2.根据权利要求1所述的方法,其中表示所述分层数据格式的所述信息包括表示所述
分层数据格式的树,该树包括由多个边缘互连的多个节点,多个节点中的每个表示由所述
分层数据格式限定的多个对象中的一个。
3.根据权利要求2所述的方法,其中与一个或多个之前所识别的转换相关联的所述背
景对应于表示所述分层数据格式的所述树中的位置。
4.根据任一项前述权利要求所述的方法,其中所述模式对象中的至少一个包括由该模
式对象表示的对应数据对象所包含的标签。
5.根据任一项前述权利要求所述的方法,其中所述容器对象包括至少一个容器对象表
示下述至少一个:在所述输入流内所包含的数据对象的序列、在所述输入流内所包含的数
据对象的集合、或者在多个可能数据对象中对所述输入流内所包含的一个数据对象的选
择。
6.根据任一项前述权利要求所述的方法,其中至少一些容器对象被规定为表示所述输
入流内数据对象的一系列多个容器。
7.根据任一项前述权利要求所述的方法,其中所述多个对象中的至少一些对象在所述
分层数据格式中被指定为可选的。
8.根据任一项前述权利要求所述的方法,其中确定所述输入流中所述分层数据格式的
所述对象之间的容许转换包括:
生成所述分层数据格式的编译树表示,所述编译树表示包括由多个边缘互连的多个节
点,所述多个节点中的至少一些表示由所述分层数据格式限定的所述多个对象中的一个并
且所述多个节点中的至少一些表示编译特定对象。
9.根据权利要求8所述的方法,其中表示编译特定对象的所述节点包括矢量容器节点、
根节点、空标签节点、以及仅扇出节点中的一个或多个。
10.根据权利要求8或9所述的方法,其中确定所述输入流中所述分层数据格式的所述
对象之间的容许转换包括处理所述编译树表示以确定所述编译树表示的所述节点之间的
所有容许转换。
11.根据权利要求10所述的方法,其中处理所述编译树表示以确定所述编译树表示的
所述节点之间的所有容许转换包括对于所述编译树表示的每个节点,确定到该节点具有转
换的所有节点以及确定该节点到其具有至少一个转换的所有节点。
12.根据权利要求10或11所述的方法,其中处理所述编译树表示以确定所述编译树表
示的所述节点之间的所有容许转换包括合并所述节点之间的重复转换以及消除所述节点
之间的不完备转换。
13.根据权利要求10、11或12所述的方法,还包括为所识别的每个容许转换生成精细边
缘,所述精细边缘包括与所述转换相关联的源节点、与所述转换相关联的目的节点、与所述
转换相关联的容器节点、以及与所述转换相关联的循环行为。
14.根据权利要求13所述的方法,其中...
【专利技术属性】
技术研发人员:M·E·塞内斯基,A·舒尔曼,
申请(专利权)人:起元科技有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。