[发明专利]代码检查方法、装置、计算机设备及计算机可读存储介质有效
申请号: | 202010948751.1 | 申请日: | 2020-09-10 |
公开(公告)号: | CN112052008B | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 尹飞 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F11/36 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 徐立 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 检查 方法 装置 计算机 设备 可读 存储 介质 | ||
1.一种代码检查方法,其特征在于,所述方法包括:
响应于对目标工程包的打开指令,调用代码编辑器中的代码检查脚本;
通过所述代码检查脚本创建至少两个子协程,所述子协程用于执行代码检查任务;
基于所述至少两个子协程的负载情况信息,将所述目标工程包中的至少两个代码文件,分配给所述至少两个子协程;
在任一子协程对任一代码文件进行代码检查的过程中,通过所述任一子协程对所述任一代码文件进行词法分析、语法分析及语义分析,得到各个阶段的检查结果,将所述各个阶段的检查结果,确定为所述目标工程包对应的初始代码检查结果;
在所述代码编辑器的代码编辑界面中,显示所述初始代码检查结果;
响应于对所述目标工程包中的目标代码文件的检查指令,调用所述代码检查脚本;
通过所述代码检查脚本,从所述目标工程包中获取参考代码文件,所述参考代码文件为与所述目标代码文件之间存在调用关系的代码文件;
通过所述代码检查脚本,基于所述参考代码文件中源代码的语法结构,对所述目标代码文件中源代码的语法结构进行检查,得到代码检查结果;
在所述代码编辑界面中,显示所述代码检查结果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述代码检查脚本,基于所述参考代码文件中源代码的语法结构,对所述目标代码文件中源代码的语法结构进行检查,得到代码检查结果,包括:
获取所述目标代码文件对应的抽象语法树,所述抽象语法树用于指示代码文件的源代码的语法结构;
获取所述参考代码文件对应的抽象语法树;
通过所述代码检查脚本,基于所述参考代码文件对应的抽象语法树,对所述目标代码文件对应的抽象语法树进行检查,得到所述代码检查结果。
3.根据权利要求2所述的方法,其特征在于,所述获取所述目标代码文件对应的抽象语法树,包括:
对所述目标代码文件的源代码进行词法分析,得到所述目标代码文件对应的单词序列;
对所述目标代码文件对应的单词序列进行语法分析,得到所述目标代码文件对应的抽象语法树。
4.根据权利要求2所述的方法,其特征在于,所述获取所述参考代码文件对应的抽象语法树,包括:
基于所述参考代码文件的文件标识,从目标存储空间中获取所述参考代码文件对应的抽象语法树,所述目标存储空间用于存储所述目标工程包中各个代码文件对应的抽象语法树。
5.根据权利要求4所述的方法,其特征在于,所述获取所述目标代码文件对应的抽象语法树之后,所述方法还包括:
将所述目标存储空间中已存储的所述目标代码文件的抽象语法树,替换为本次获取到的所述目标代码文件对应的抽象语法树。
6.根据权利要求2所述的方法,其特征在于,所述通过所述代码检查脚本,基于所述参考代码文件对应的抽象语法树,对所述目标代码文件对应的抽象语法树进行检查,得到所述代码检查结果,包括:
通过所述代码检查脚本,遍历所述目标代码文件以及所述参考代码文件对应的抽象语法树,生成符号列表,所述符号列表用于指示所述目标代码文件以及所述参考代码文件所包括的变量;
基于所述符号列表以及所述参考代码文件对应的抽象语法树,对所述目标代码文件对应的抽象语法树进行检查,得到所述代码检查结果。
7.根据权利要求1所述的方法,其特征在于,所述代码检查结果包括所述目标代码文件中的词法错误信息、所述目标代码文件中的语法错误信息以及所述目标代码文件中的语义错误信息。
8.根据权利要求1所述的方法,其特征在于,所述在所述代码编辑界面中,显示所述代码检查结果,包括下述至少一项:
基于所述代码检查结果,在所述代码编辑界面对所述目标代码文件中的错误源代码进行突出显示;
基于所述代码检查结果,在所述代码编辑界面显示所述目标代码文件对应的错误数目;
基于所述代码检查结果,在所述代码编辑界面显示所述目标代码文件对应的错误代码目录,所述错误代码目录中的一条数据用于表示一处源代码的错误信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010948751.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于区块链的隐私数据保护方法
- 下一篇:一种无人车辆车队调度系统及方法