[发明专利]代码转换方法及装置在审
申请号: | 202011330852.9 | 申请日: | 2020-11-24 |
公开(公告)号: | CN112328257A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 黄贵敏;李英灯;祁有盛;潘丹铃 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/51 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 任默闻;孙乳笋 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 | ||
1.一种代码转换方法,其特征在于,包括:
获取目标EGL源代码文本并将目标EGL源代码文本转换为EGL的抽象语法树;
将所述EGL的抽象语法树进行遍历处理得到JAVA的抽象语法树;
基于所述JAVA的抽象语法树生成JAVA源代码文本。
2.根据权利要求1所述的代码转换方法,其特征在于,所述将目标EGL源代码文本转换为EGL的抽象语法树,包括:
将目标EGL源代码文本划分为由代码块构成的代码块集合;其中,每个代码块包含多行代码构成的代码行子集;
遍历所述代码块集合将所述代码块集合中的代码块转化成由节点构成的第一语法树节点集合;
遍历所述代码块将所述代码块中的代码行子集转化成由节点构成的第二语法树节点集合;
其中,第一语法树节点集合和第二语法树节点集合构成了EGL的抽象语法树。
3.根据权利要求1所述的代码转换方法,其特征在于,所述将所述EGL的抽象语法树进行遍历处理得到JAVA的抽象语法树,包括:
将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点;
根据所述JAVA语法树节点构成JAVA的抽象语法树。
4.根据权利要求3所述的代码转换方法,其特征在于,在所述将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点之前,还包括:
对所述EGL的抽象语法树进行预处理;
相对应的,所述将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点,包括:
将预处理后的EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点。
5.根据权利要求3所述的代码转换方法,其特征在于,所述将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点,包括:
将所述EGL的抽象语法树上的Record节点以及Record节点下级的DataItem节点逐级转换成语义等价的第一目标JAVA语法树节点;
将所述EGL的抽象语法树上的非程序入口的TopLevelFunction类型公共函数节点逐级转换成语义等价的第二目标JAVA语法树节点;
将所述EGL的抽象语法树上的程序入口的Program类型主体程序节点逐级转换成语义等价的第三目标JAVA语法树节点;
其中,第一目标JAVA语法树节点、第二目标JAVA语法树节点和第三目标JAVA语法树节点构成JAVA语法树节点。
6.一种代码转换装置,其特征在于,包括:
获取单元,用于获取目标EGL源代码文本并将目标EGL源代码文本转换为EGL的抽象语法树;
转换单元,用于将所述EGL的抽象语法树进行遍历处理得到JAVA的抽象语法树;
生成单元,用于基于所述JAVA的抽象语法树生成JAVA源代码文本。
7.根据权利要求6所述的代码转换装置,其特征在于,所述获取单元包括:
划分子单元,用于将目标EGL源代码文本划分为由代码块构成的代码块集合;其中,每个代码块包含多行代码构成的代码行子集;
第一遍历子单元,用于遍历所述代码块集合将所述代码块集合中的代码块转化成由节点构成的第一语法树节点集合;
第二遍历子单元,用于遍历所述代码块将所述代码块中的代码行子集转化成由节点构成的第二语法树节点集合;
其中,第一语法树节点集合和第二语法树节点集合构成了EGL的抽象语法树。
8.根据权利要求6所述的代码转换装置,其特征在于,所述转换单元包括:
节点子单元,用于将所述EGL的抽象语法树上的各个类型的节点逐级转换成语义等价的JAVA语法树节点;
转换子单元,用于根据所述JAVA语法树节点构成JAVA的抽象语法树。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011330852.9/1.html,转载请声明来源钻瓜专利网。