[发明专利]数据处理方法和装置有效
申请号: | 201610613852.7 | 申请日: | 2016-07-29 |
公开(公告)号: | CN106227668B | 公开(公告)日: | 2017-11-17 |
发明(设计)人: | 邹越;严明;张蓓;黄斌;袁明凯;魏学峰 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F17/22;G06F17/27;G06F9/44 |
代理公司: | 北京康信知识产权代理有限责任公司11240 | 代理人: | 董文倩,褚敏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 | ||
1.一种数据处理方法,其特征在于,包括:
获取代码文件,其中,所述代码文件为包括字符序列的源程序文本;
对所述代码文件中的字符序列进行词法分析,得到词法单元序列;
解析所述代码文件,得到预设对象,其中,所述预设对象为与所述代码文件相对应的具有类型的对象;
对所述词法单元序列和所述预设对象进行关联以建立全局符号表,其中,所述全局符号表用于记录所述代码文件中的所有所述预设对象的数据信息;以及
根据所述全局符号表对所述代码文件执行静态代码扫描,得到扫描结果,其中,所述扫描结果至少包括对所述词法单元序列的类型的查找结果;
其中,所述预设对象包括多个预设对象,对所述词法单元序列和所述预设对象进行关联以建立全局符号表包括:根据所述多个预设对象建立预设全局对象列表,其中,所述预设全局对象列表用于将所述代码文件中的同一类型的不同关键字部分进行关联;获取所述代码文件中的别名指令并对所述代码文件中使用所述别名指令的代码执行处理,得到处理代码;在所述预设全局对象列表中,根据所述处理代码将所述词法单元序列和与所述词法单元序列对应的预设对象执行类型关联或者函数关联,得到所述全局符号表。
2.根据权利要求1所述的方法,其特征在于,
在对所述词法单元序列和所述预设对象进行关联以建立所述全局符号表之前,所述方法还包括:在不改变所述代码文件的逻辑的情况下,对所述词法单元序列进行简化,得到简化词法单元序列,
对所述词法单元序列和所述预设对象进行关联以建立所述全局符号表包括:对所述简化词法单元序列和所述预设对象进行关联以建立所述全局符号表。
3.根据权利要求2所述的方法,其特征在于,
在对所述词法单元序列进行简化,得到所述简化词法单元序列之后,所述方法还包括:根据所述简化词法单元序列建立树形语法结构,其中,所述树形语法结构为用于存储具有预设语法的数据对象的树形结构,
对所述简化词法单元序列和所述预设对象进行关联以建立所述全局符号表包括:根据所述树形语法结构对所述简化词法单元序列和所述预设对象进行关联以建立所述全局符号表。
4.根据权利要求3所述的方法,其特征在于,根据所述词法单元序列建立所述树形语法结构包括:
获取所述词法单元序列中的单个代码表达式;以及
根据所述单个代码表达式建立所述树形语法结构。
5.根据权利要求1所述的方法,其特征在于,根据所述处理代码将所述词法单元序列和与所述词法单元序列对应的预设对象执行类型关联包括以下至少之一:
根据所述处理代码将用于类型声明的词法单元序列和与所述词法单元序列对应的预设对象执行关联;
根据所述处理代码将与所述代码文件中的变量对应的词法单元序列和所述变量执行关联。
6.根据权利要求1所述的方法,其特征在于,根据所述处理代码将所述词法单元序列和与所述词法单元序列对应的预设对象执行函数关联至少包括:根据所述处理代码将与预设调用方法对应的词法单元序列和所述预设调用方法执行关联。
7.根据权利要求1所述的方法,其特征在于,根据所述处理代码将所述词法单元序列和与所述词法单元序列对应的预设对象执行类型关联或者函数关联包括:
确定所述词法单元序列的类型的类型名并在所述预设全局对象列表中查找所述类型名;
判断查找到的所述类型名是否符合预设条件;以及
如果判断出查找到的所述类型名符合所述预设条件,根据所述处理代码将所述词法单元序列和所述预设对象执行类型关联或者函数关联。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610613852.7/1.html,转载请声明来源钻瓜专利网。