[发明专利]代码转换方法及装置有效
申请号: | 201911396096.7 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111209004B | 公开(公告)日: | 2023-09-01 |
发明(设计)人: | 刘恒 | 申请(专利权)人: | 北京水滴科技集团有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京中强智尚知识产权代理有限公司 11448 | 代理人: | 黄耀威 |
地址: | 100102 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 | ||
本发明实施例公开了一种代码转换方法及装置,其中,该方法包括:获取源代码文件;根据所述源代码文件的语法结构信息将所述源代码文件编译成抽象语法树AST,其中,所述语法结构信息至少包括:所述源代码文件的语法,所述源代码文件的格式,所述源代码文件的标签;将所述AST发送至目标平台,其中,所述目标平台用于将所述AST转换为所述目标平台的目标代码。通过本发明实施例,解决了相关技术中不同平台的代码不兼容的技术问题,从而降低了不同平台代码开发、维护成本。
技术领域
本发明涉及计算机领域,具体而言,涉及一种代码转换方法及装置。
背景技术
目前,不同操作系统或者平台下的可执行文件格式可能不同,导致通用的业务代码无法在不同操作系统或者平台上运行,增加了代码开发成本和维护成本。
相关技术中,通过设计一种开源的小程序框架,将一套代码转化成不同小程序端和客户端的框架;执行对应的打包命令之后,执行多端的代码编译;在编译过程中,首先将代码解析成抽象语法树,然后对抽象语法树进行遍历和替换,最后生成新的抽象语法树来适配各种平台,然而该方法只能针对特定的平台,没有通用性。还有的通过嵌入代码转换工具,将特定的高版本语法转换成低版本平台支持的语法,该方法不仅增加了平台的耦合性和负荷,也没有通用性。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
为了解决相关技术中不同平台的代码不兼容的技术问题,本发明提供了一种代码转换方法及装置。
根据本发明的一个实施例,提供了一种代码转换方法,包括:获取源代码文件;根据所述源代码文件的语法结构信息将所述源代码文件编译成抽象语法树AST,其中,所述语法结构信息至少包括:所述源代码文件的语法,所述源代码文件的格式,所述源代码文件的标签;将所述AST发送至多个目标平台,其中,所述目标平台用于将所述AST转换为所述目标平台的目标代码。
可选的,根据所述源代码文件的语法结构信息将所述源代码文件编译成抽象语法树AST包括:识别所述源代码文件的语法结构信息;根据所述语法结构信息构建所述AST。
可选的,识别所述源代码文件的语法结构信息包括:根据预设环境变量在所述源代码文件的config配置文件夹中选择目标配置文件夹,其中,所述config配置文件夹至少包括:开发环境配置文件夹,产品环境配置文件夹,测试环境配置文件夹;读取所述目标配置文件夹中的依赖文件中的字符串;根据所述字符串的字符特征识别所述源代码文件的语法结构信息。
可选的,根据所述语法结构信息构建所述AST包括:在启动编译所述源代码文件的编译命令时,确定起始文件,其中,所述编译命令携带有所述目标平台的平台名称;从所述起始文件开始构建所述AST。
可选的,确定起始文件包括:执行所述源代码文件中目标配置文件夹的配置文件,以查找所述配置文件中的索引文件;将所述索引文件作为所述起始文件。
可选的,从所述起始文件开始构建所述AST包括:将所述起始文件作为依赖进行编译,以查找所述源代码文件中除所述起始文件之外的依赖文件;将所述依赖文件中语法结构信息的字符串转换为Token序列,其中,所述Token序列中的每个字符串对应一个树节点;将所述Token序列转换成所述AST,其中,所述AST中的每个树节点对应所述目标代码中的一个字符串。
根据本发明的另一个实施例,提供了一种代码转换方法,包括:接收源平台发送的抽象语法树AST,其中,所述AST是由所述源平台基于源代码文件的语法结构信息编译而成,所述语法结构信息至少包括:所述源代码文件的语法,所述源代码文件的格式,所述源代码文件的标签;将所述AST转换为目标平台的目标代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京水滴科技集团有限公司,未经北京水滴科技集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911396096.7/2.html,转载请声明来源钻瓜专利网。