抽象语法树的解析方法及计算机程序产品技术

技术编号:33343951 阅读:25 留言:0更新日期:2022-05-08 09:34
本公开实施例公开了一种抽象语法树的解析方法及计算机程序产品,所述方法包括:获取待解析的脚本以及所述脚本的编译类型;基于所述编译类型选择目标编译组件;基于所述目标编译组件对所述脚本进行解析,输出所述脚本对应的抽象语法树;其中,不同编译类型对应的所述目标编译组件输出的所述抽象语法树的结构类型相同。该技术方案能够将各种语言编写的脚本归一化成同种类型的抽象语法树,能够提高脚本的适配效率以及准确率。的适配效率以及准确率。的适配效率以及准确率。

【技术实现步骤摘要】
抽象语法树的解析方法及计算机程序产品


[0001]本公开涉及计算机
,具体涉及一种抽象语法树的解析方法及计算机程序产品。

技术介绍

[0002]在脚本检测领域,对样本文件直接进行规则匹配,容易导致匹配结果不够精准,所以通常会将样本文件转换成抽象语法树,然后在抽象语法树的基础上进行规则匹配或其他手段的检测操作等。
[0003]然而,本公开专利技术人发现,已有技术中通常利用已有的编译器将脚本语言转换成抽象语法树,虽然这种方式的准确性较高,但是同时也存在一些问题:
[0004]例如,脚本文件的脚本编写语言种类众多,不同种类的脚本编写语言需要使用不同的原生编译器;同一种脚本编写语言之间存在不同版本的语法不兼容问题;原生编译器生成抽象语法树与检测方式生成抽象语法树的目的不完全一致,原生编译器往往会做更多的检查,包括检查库符号是否存在等,而这些检查会造成额外的资源消耗,从而影响造成性能下降;不同原生编译器生成的抽象语法树的结构,含义往往不同,需要对不同脚本编写语言做定制化适配;一些脚本编写语言本身不支持抽象语法树的生成等。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种抽象语法树的解析方法,其中,包括:获取待解析的脚本以及所述脚本的编译类型;基于所述编译类型选择目标编译组件;基于所述目标编译组件对所述脚本进行解析,输出所述脚本对应的抽象语法树;其中,不同编译类型对应的所述目标编译组件输出的所述抽象语法树的结构类型相同。2.根据权利要求1所述的方法,其中,不同编译类型对应的目标编译组件不同。3.根据权利要求1或2所述的方法,其中,所述目标编译组件包括词法解析器以及语法解析器;基于所述目标编译组件对所述脚本进行解析,输出所述脚本对应的抽象语法树,包括:利用所述词法解析器将所述脚本解析成单词序列;利用所述语法解析器将所述单词序列解析成所述抽象语法树。4.根据权利要求1或2所述的方法,其中,所述方法还包括:获取针对不同编译类型编写的词法解析规则和/或语法解析规则;利用生成器工具基于所述词法解析规则和/或所述语法解析规则生成所述编译组件。5.根据权利要求4所述的方法,其中,所述词法解析规则和所述语法解析规则中,针对不同编译类型,基于脚本的语义以及语法结构对不同编译类型中的语法表达方式进行归类,以及基于归类结果针对不同类型的语法表达方式进行不同的解析处理。6.根据权利要求5所述的方法,其中,所述语法表达方式的类型包括以下至少之一:不同编译类型对应的语义相同以及语法结构也相同的语法表达方式;不同编译类型对应的语义相同而语法结构不同的语法表达方式;相同编译类型对应的语义相同而版本不同,进而语法结构也不同的语法表达方式;其中一种编译类型中存在而其他编译类型中不存在的语法表达方式。7.根据权利要求6所述的方法,其中,针对不同编译类型中相同语义以及语法结构也相同的语法表达方式,按照语法...

【专利技术属性】
技术研发人员:杨健雄
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1