[发明专利]代码生成方法、装置及存储介质在审
| 申请号: | 202111134619.8 | 申请日: | 2021-09-27 |
| 公开(公告)号: | CN115878120A | 公开(公告)日: | 2023-03-31 |
| 发明(设计)人: | 温水石;邵俊 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强;贾允 |
| 地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 代码 生成 方法 装置 存储 介质 | ||
1.一种代码生成方法,其特征在于,所述方法包括:
对目标伪代码进行解析,得到解析语句;所述目标伪代码为用于修复目标应用的修复代码;
基于所述解析语句,确定目标待转换语句和非转换语句;
基于预设映射信息,确定所述目标待转换语句对应的目标节点;所述目标节点为目标语法结构的节点;所述预设映射信息表征待转换语句与节点的映射关系;
基于所述目标节点与预设节点,构建语法树;所述目标节点表征所述目标待转换语句,所述预设节点表征所述非转换语句;所述目标节点用于存储所述目标待转换语句的属性信息;
基于所述语法树,生成可执行代码。
2.根据权利要求1所述的方法,其特征在于,所述对目标伪代码进行解析,得到解析语句,包括:
基于代码解析器对所述目标伪代码进行解析,得到解析语句;
所述代码解析器的生成方法包括:
基于词法分析工具,对预设词法序列进行解析,生成词法分析代码;
基于语法分析工具,对所述待转换语句进行解析,生成语法分析代码;所述待转换语句基于所述预设词法序列生成;
基于编译器对所述词法分析代码以及所述语法分析代码进行编译,生成所述代码解析器。
3.根据权利要求2所述的方法,其特征在于,所述基于语法分析工具,对所述待转换语句进行解析,生成语法分析代码,包括:
确定所述待转换语句的目标语法结构;
基于所述语法分析工具,将所述待转换语句按照所述目标语法结构进行解析,生成所述语法分析代码。
4.根据权利要求1所述的方法,其特征在于,所述基于所述语法树,生成可执行代码之前,所述方法还包括:
构建所述语法树中各节点的方法调用函数,所述方法调用函数用于确定所述语法树中各节点的调用方法;
基于所述语法树中各节点表征的语句以及所述方法调用函数,生成可执行代码。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述可执行代码包括至少两个可执行语句,所述基于所述语法树,生成可执行代码之后,所述方法还包括:
确定所述可执行代码中当前可执行语句以及对应的当前调用方法;
获取所述可执行代码中的方法调用函数;
基于所述方法调用函数,判断第一语言对象中是否存在所述当前调用方法;
若存在,调用所述当前调用方法执行所述可执行代码。
6.根据权利要求5所述的方法,其特征在于,若所述第一语言对象中不存在所述当前调用方法,所述方法还包括:
基于所述方法调用函数,判断第二语言对象中是否存在所述当前调用方法;
若存在,调用所述当前调用方法执行所述可执行代码。
7.根据权利要求6所述的方法,其特征在于,所述当前调用方法包括形参调用方法和实参调用方法,所述调用所述当前调用方法执行所述可执行代码,包括:
基于所述形参调用方法,确定所述当前可执行语句的形参;
基于所述实参调用方法,确定所述当前可执行语句的实参;
基于所述当前可执行语句的形参以及实参,执行所述可执行代码。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
基于面向对象的点调用语法,构建所述目标伪代码;所述面向对象的点调用语法的结构包括类名、方法和形参。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111134619.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于线性调频兰姆波的裂纹评价方法
- 下一篇:一种用于测试内存信号的测试板





