程序代码转换方法及相关设备技术

技术编号:28127004 阅读:14 留言:0更新日期:2021-04-19 11:42
本发明专利技术涉及开发辅助领域,提供一种程序代码转换方法及相关设备。该方法能够根据代码转换请求获取源代码文件,将源代码文件转换为源语法树,并获取源代码文件中的转换标识,根据转换标识从源语法树中获取转换数据结构,根据所述代码转换请求确定目标类型,并根据目标类型获取与转换数据结构对应的目标数据结构,根据目标数据结构处理所述源语法树,得到目标语法树,转换目标语法树,得到目标代码文件。本发明专利技术不仅能够支持名称、类型不一致的程序代码的转换,还能够提高代码转换效率。此外,本发明专利技术还涉及区块链技术,所述目标代码文件可存储于区块链中。块链中。块链中。

【技术实现步骤摘要】
程序代码转换方法及相关设备


[0001]本专利技术涉及开发辅助
,尤其涉及一种程序代码转换方法及相关设备。

技术介绍

[0002]在调用业务方法时,处理流程会跨越多层结构,当在多层结构中的内外层的入参类型不同时,例如,外层的入参类型为数据传输对象,内层的入参类型为实体对象,需要对源文件进行转换才能调用。
[0003]为了实现对源文件的调用,通常采用Bean工具对源文件进行代码转换,然而Bean工具中不支持对名称、类型不一致的程序代码进行转换,而selma工具需要针对每个对象编写对应的接口,造成源文件代码转换效率低下。

技术实现思路

[0004]鉴于以上内容,有必要提供一种程序代码转换方法及相关设备,不仅能够支持名称、类型不一致的程序代码的转换,还能够提高代码转换效率。
[0005]一方面,本专利技术提出一种程序代码转换方法,所述程序代码转换方法包括:
[0006]当接收到代码转换请求时,根据所述代码转换请求获取源代码文件;
[0007]将所述源代码文件转换为源语法树,并获取所述源代码文件中的转换标识;
[0008]根据所述转换标识从所述源语法树中获取转换数据结构;
[0009]根据所述代码转换请求确定目标类型,并根据所述目标类型获取与所述转换数据结构对应的目标数据结构;
[0010]根据所述目标数据结构处理所述源语法树,得到目标语法树;
[0011]转换所述目标语法树,得到目标代码文件。
[0012]根据本专利技术优选实施例,所述根据所述代码转换请求获取源代码文件包括:
[0013]解析所述代码转换请求的报文,得到所述报文携带的报文信息;
[0014]获取第一预设标签,所述第一预设标签用于指示位置;
[0015]从所述报文信息中获取与所述第一预设标签对应的信息作为存储位置;
[0016]确定所述代码转换请求的触发终端;
[0017]从所述触发终端上获取所述存储位置中存储的信息作为所述源代码文件。
[0018]根据本专利技术优选实施例,所述根据所述代码转换请求确定目标类型包括:
[0019]从所述报文信息中剔除所述存储位置,得到数据信息;
[0020]获取第二预设标签,所述第二预设标签用于指示类型;
[0021]从所述数据信息中获取与所述第二预设标签对应的信息作为所述目标类型。
[0022]根据本专利技术优选实施例,所述将所述源代码文件转换为源语法树包括:
[0023]调用预设函数读取所述源代码文件,得到多个字符;
[0024]将所述多个字符与预设字符进行比较,得到多个标记序列;
[0025]对所述多个标记序列进行语法分析,得到多个代码结构;
[0026]确定所述多个标记序列在所述源代码文件中的序列位置;
[0027]依照所述序列位置拼接所述多个代码结构,得到所述源语法树。
[0028]根据本专利技术优选实施例,所述根据所述目标类型获取与所述转换数据结构对应的目标数据结构包括:
[0029]确定所述源代码文件所属的源类型;
[0030]根据所述源类型及所述目标类型确定映射表;
[0031]获取所述转换数据结构中的转换字段,并从所述映射表中获取与所述转换字段对应的目标字段;
[0032]利用所述目标字段替换所述转换数据结构中的转换字段,得到所述目标数据结构。
[0033]根据本专利技术优选实施例,所述根据所述目标数据结构处理所述源语法树,得到目标语法树包括:
[0034]确定所述转换数据结构在所述源语法树中的结构位置;
[0035]将所述目标数据结构写入所述结构位置,得到所述目标语法树。
[0036]根据本专利技术优选实施例,所述转换所述目标语法树,得到目标代码文件包括:
[0037]将所述目标语法树拆分为多个节点;
[0038]并行反编译所述多个节点,得到与所述多个节点对应的节点代码;
[0039]确定所述多个节点在所述目标语法树中的节点位置;
[0040]依据所述节点位置拼接所述节点代码,得到所述目标代码文件。
[0041]另一方面,本专利技术还提出一种程序代码转换装置,所述程序代码转换装置包括:
[0042]获取单元,用于当接收到代码转换请求时,根据所述代码转换请求获取源代码文件;
[0043]转换单元,用于将所述源代码文件转换为源语法树,并获取所述源代码文件中的转换标识;
[0044]所述获取单元,还用于根据所述转换标识从所述源语法树中获取转换数据结构;
[0045]所述获取单元,还用于根据所述代码转换请求确定目标类型,并根据所述目标类型获取与所述转换数据结构对应的目标数据结构;
[0046]处理单元,用于根据所述目标数据结构处理所述源语法树,得到目标语法树;
[0047]所述转换单元,还用于转换所述目标语法树,得到目标代码文件。
[0048]另一方面,本专利技术还提出一种电子设备,所述电子设备包括:
[0049]存储器,存储计算机可读指令;及
[0050]处理器,执行所述存储器中存储的计算机可读指令以实现所述程序代码转换方法。
[0051]另一方面,本专利技术还提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现所述程序代码转换方法。
[0052]由以上技术方案可以看出,本专利技术能够当接收到代码转换请求时,根据所述代码转换请求获取源代码文件,通过所述代码转换请求能够准确获取到需要进行代码转换的代码文件,将所述源代码文件转换为源语法树,并获取所述源代码文件中的转换标识,根据所
述转换标识从所述源语法树中获取转换数据结构,通过从所述源语法树上获取所述转换数据结构,由于所述源语法树上的每个节点代码一个语法结构,因此,通过所述转换标识能够快速从所述源语法树上获取到所述转换数据结构,根据所述代码转换请求确定目标类型,并根据所述目标类型获取与所述转换数据结构对应的目标数据结构,根据所述目标数据结构处理所述源语法树,得到目标语法树,通过所述目标数据结构对所述源语法树上的所述转换数据结构进行替换,由于无需重新构建所述目标语法树,因此,能够快速生成所述目标语法树,转换所述目标语法树,得到目标代码文件,本专利技术通过确定出转换数据结构,进而将所述转换数据结构转换为目标数据结构,从而利用目标数据结构修改源代码文件生成的源语法树,能够得到目标语法树,进而将所述目标语法树进行转换,能够生成与所述目标类型对应的目标代码文件,本专利技术在转换代码时无需编写接口,因此,能够提高代码转换效率,此外,本专利技术利用所述代码转换请求中的所述目标类型,能够建立所述转换数据结果与所述目标数据结果的桥梁,进而能够支持名称、类型不一致的程序代码的转换。
附图说明
[0053]图1是本专利技术程序代码转换方法的较佳实施例的流程图。
[0054]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序代码转换方法,其特征在于,所述程序代码转换方法包括:当接收到代码转换请求时,根据所述代码转换请求获取源代码文件;将所述源代码文件转换为源语法树,并获取所述源代码文件中的转换标识;根据所述转换标识从所述源语法树中获取转换数据结构;根据所述代码转换请求确定目标类型,并根据所述目标类型获取与所述转换数据结构对应的目标数据结构;根据所述目标数据结构处理所述源语法树,得到目标语法树;转换所述目标语法树,得到目标代码文件。2.如权利要求1所述的程序代码转换方法,其特征在于,所述根据所述代码转换请求获取源代码文件包括:解析所述代码转换请求的报文,得到所述报文携带的报文信息;获取第一预设标签,所述第一预设标签用于指示位置;从所述报文信息中获取与所述第一预设标签对应的信息作为存储位置;确定所述代码转换请求的触发终端;从所述触发终端上获取所述存储位置中存储的信息作为所述源代码文件。3.如权利要求2所述的程序代码转换方法,其特征在于,所述根据所述代码转换请求确定目标类型包括:从所述报文信息中剔除所述存储位置,得到数据信息;获取第二预设标签,所述第二预设标签用于指示类型;从所述数据信息中获取与所述第二预设标签对应的信息作为所述目标类型。4.如权利要求1所述的程序代码转换方法,其特征在于,所述将所述源代码文件转换为源语法树包括:调用预设函数读取所述源代码文件,得到多个字符;将所述多个字符与预设字符进行比较,得到多个标记序列;对所述多个标记序列进行语法分析,得到多个代码结构;确定所述多个标记序列在所述源代码文件中的序列位置;依照所述序列位置拼接所述多个代码结构,得到所述源语法树。5.如权利要求1所述的程序代码转换方法,其特征在于,所述根据所述目标类型获取与所述转换数据结构对应的目标数据结构包括:确定所述源代码文件所属的源类型;根据所述源类型及所述目标类型确定映射表;获取...

【专利技术属性】
技术研发人员:梁明
申请(专利权)人:平安普惠企业管理有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1