[发明专利]一种代码解析的方法、装置、电子设备及存储介质在审
| 申请号: | 202110175002.4 | 申请日: | 2021-02-09 |
| 公开(公告)号: | CN112860262A | 公开(公告)日: | 2021-05-28 |
| 发明(设计)人: | 李秀红;陈仁泽;李懋林;颜深根 | 申请(专利权)人: | 上海商汤智能科技有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N20/00 |
| 代理公司: | 北京中知恒瑞知识产权代理事务所(普通合伙) 11889 | 代理人: | 吴迪 |
| 地址: | 200233 上海市徐*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 解析 方法 装置 电子设备 存储 介质 | ||
1.一种代码解析的方法,其特征在于,所述方法包括:
获取前端中待解析的源代码;
检测所述源代码中是否存在非纯函数元素,并在确定存在非纯函数元素的情况下,获取所述非纯函数元素在所述源代码中的位置信息;
基于所述位置信息将所述源代码划分为非纯函数语段和纯函数语段;
利用前端对划分后的所述非纯函数语段进行处理,以及利用终端对划分后的所述纯函数语段进行处理。
2.根据权利要求1所述的方法,其特征在于,所述检测所述源代码中是否存在非纯函数元素,包括:
将获取的所述源代码对应的字符序列进行词法分析,得到至少一个单词;
对所述至少一个单词进行语法分析,得到不同单词之间的语法关系;
针对所述至少一个单词中的每个单词,基于与该单词存在语法关系的关联单词,确定该单词是否为非纯函数元素。
3.根据权利要求2所述的方法,其特征在于,所述基于与该单词存在语法关系的关联单词,确定该单词是否为非纯函数元素,包括:
针对所述至少一个单词中的每个单词,在确定与该单词存在语法关系的关联单词指示该单词为非局部变量、局部静态变量、可修改的引用参数、以及输入输出流中的任一种的情况下,确定该单词为非纯函数元素。
4.根据权利要求1-3任一所述的方法,其特征在于,检测所述源代码中是否存在非纯函数元素,包括:
对获取的前端中待解析的源代码包括的语句进行拆分处理,得到拆分处理后的源代码;
检测所述拆分处理后的源代码中是否存在非纯函数元素。
5.根据权利要求4所述的方法,其特征在于,所述对获取的前端中待解析的源代码包括的语句进行拆分处理,得到拆分处理后的源代码,包括:
针对所述前端中待解析的源代码中的函数调用语句,从所述函数调用语句中拆分出函数体,将拆分出的函数体作为所述拆分处理后的源代码;和/或,
针对所述前端中待解析的源代码中的目标表达式语句,对该目标表达式语句进行拆分,将得到的拆分后的多个子目标表达式语句作为所述拆分处理后的源代码。
6.根据权利要求1-5任一所述的方法,其特征在于,所述基于所述位置信息将所述源代码划分为非纯函数语段和纯函数语段,包括:
将所述位置信息所指示位置处的语段,确定为所述非纯函数元素对应的非纯函数语段;以及,
基于所述非纯函数语段,以及所述源代码,确定所述源代码中的纯函数语段。
7.根据权利要求6所述的方法,其特征在于,在确定存在多个所述非纯函数元素的情况下,所述基于所述非纯函数语段,以及所述源代码,确定所述源代码中的纯函数语段,包括:
针对确定的所述源代码中的非纯函数语段,将位于不同的非纯函数语段之间、第一个非纯函数语段之前、以及最后一个非纯函数语段之后的语段,作为所述源代码中的纯函数语段。
8.根据权利要求1-7任一所述的方法,其特征在于,所述纯函数语段至少为一个;所述利用前端对划分后的所述非纯函数语段进行处理,以及利用终端对划分后的所述纯函数语段进行处理,包括:
依次将至少一个所述纯函数语段进行封装,得到每个纯函数语段对应的封装语句;
构造包含至少一个所述封装语句和所述非纯函数语段的复合函数;
在调用所述复合函数的过程中,利用前端对所述复合函数中的所述非纯函数语段进行处理,以及利用终端调用所述复合函数中包含的每个所述封装语句,并对该封装语句指示的纯函数语段进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海商汤智能科技有限公司,未经上海商汤智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110175002.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种药盘及智能药盒
- 下一篇:一种金属陶瓷复合甩锤的制造方法





