本申请涉及计算机,尤其涉及代码文件转换方法、装置、设备、介质及产品。
背景技术:
1、目前,交易风险系统依赖于数据库存储海量历史数据,并通过pl/sql(procedurallanguage/structured query language,过程化/结构化查询语言)表达业务逻辑以及查询历史数据的特征和变量,最终形成应对交易风险的实时业务决策流程。
2、但是交易风险系统是基于java语言开发的,如果直接使用java语言进行开发生成业务决策流程,所需的开发周期长,无法及时应对交易风险;此外,java开发门槛较高,需要业务人员投入大量时间学习。
技术实现思路
1、本申请的主要目的在于提供一种代码文件转换方法、装置、设备、介质及产品,旨在解决直接使用java语言开发复杂且时间周期长的技术问题。
2、为实现上述目的,本申请提出一种代码文件转换方法,所述的方法包括:
3、获取过程化/结构化查询语言pl/sql脚本文件;
4、识别所述pl/sql脚本文件生成语法解析树;所述语法解析树包括多个逻辑语法块,每一所述逻辑语法块与所述pl/sql基本文件中的一函数代码段对应;
5、递归分层遍历所述语法解析树中的语法逻辑块,基于预设语法库文件,匹配得到所述逻辑语法块对应的转译代码,生成java代码片段;预设语法库文件包括pl/sql函数代码段与java代码之间的映射关系;
6、将所述java代码片段嵌入预设运行模板,生成java文件。
7、在一实施例中,所述递归分层遍历所述语法解析树中的逻辑语法块,基于预设语法库文件,匹配得到所述逻辑语法块对应的转译代码,生成java代码片段的步骤之前,还包括:
8、基于pl/sql语言中所有的变量名,构造令牌文件;
9、基于pl/sql语言中所有的函数,构造逻辑语法块文件;
10、基于专用领域语言dsl语义解析器转译所述令牌文件与所述逻辑语法块文件,生成预设语法库文件。
11、在一实施例中,所述基于领域特定语言dsl语义解析器转译所述令牌文件与所述逻辑语法块文件,生成预设语法库文件的步骤包括:
12、组合所述令牌文件以及所述逻辑语法块文件,生成pl/sql语法树;所述令牌文件构造为所述pl/sql语法树的声明部分支,所述逻辑语法块文件为所述pl/sql语法树的逻辑部分支;
13、针对所述pl/sql语法树中的任一树节点,基于专用领域语言dsl语义解析器转译得到对应的代码段;
14、基于所有所述代码段,生成所述预设语法库文件。
15、在一实施例中,所述递归分层遍历所述语法解析树中的逻辑语法块,基于预设语法库文件,匹配得到所述逻辑语法块对应的转译代码,生成java代码片段的步骤包括:
16、递归分层遍历所述语法解析树中的逻辑语法块,确定出当前待转译节点;
17、基于所述当前待转译节点,遍历所述预设语法库文件,得到对应的java代码片段。
18、在一实施例中,所述基于所述当前待转译节点,遍历所述预设语法库文件,得到对应的java代码片段的步骤包括:
19、针对所述当前转译节点的预设进入文本,调用对应的预设进入转译接口,生成起始代码片段;
20、针对所述当前转译节点的预设退出文本,调用对应的所述预设转出转译接口,生成结束代码片段;
21、针对所述当前转译节点中除所述预设进入文本与所述预设退出文本之外的文本内容,遍历所述预设语法库文件,得到中间代码片段;
22、组合所述起始代码片段、所述中间代码片段以及所述结束代码片段,得到所述java代码片段。
23、在一实施例中,所述将所述java代码片段嵌入预设运行模板,生成java文件的步骤之后,还包括:
24、通过命令行输入的方式运行java文件;或,
25、通过热部署的方式运行java文件。
26、此外,为实现上述目的,本申请还提出一种代码文件转换装置,所述代码文件转换装置包括:
27、文件获取模块,用于获取过程化/结构化查询语言pl/sql脚本文件;
28、文件识别模块,用于识别所述pl/sql脚本文件生成语法解析树;语法解析树包括多个逻辑语法块,每一逻辑语法块与pl/sql基本文件中的一函数代码段对应;
29、代码生成模块,用于递归分层遍历所述语法解析树中的逻辑语法块,基于预设语法库文件,匹配得到所述逻辑语法块对应的转译代码,生成java代码片段;预设语法库文件包括pl/sql函数代码段与java代码之间的映射关系;
30、文件生成模块,用于将所述java代码片段嵌入预设运行模板,生成java文件。
31、此外,为实现上述目的,本申请还提出一种代码文件转换设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的代码文件转换方法的步骤。
32、此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的代码文件转换方法的步骤。
33、此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的代码文件转换方法的步骤。
34、本申请提出的一个或多个技术方案,至少具有以下技术效果:
35、通过识别pl/sql脚本文件生成语法解析树后,递归分层遍历语所述法解析树中的语法逻辑块,并基于预设语法库文件,匹配得到逻辑语法块对应的转译代码,生成java代码片段,最后将java代码片段嵌入预设运行模板,生成java文件。本申请通过预先基于pl/sql的语法块和转译得到的java代码之间的映射关系构建预设语法库文件,如此在实时转译时可以迅速匹配得到所需的java代码片段,进而生成java文件,实现了基于pl/sql脚本文件的低代码模式以满足实时灵活的决策要求的效果,克服了java开发技术复杂时间周期长的难点。
1.一种代码文件转换方法,其特征在于,所述代码文件转换方法包括:
2.如权利要求1所述的代码文件转换方法,其特征在于,所述递归分层遍历所述语法解析树中的逻辑语法块,基于预设语法库文件,匹配得到所述逻辑语法块对应的转译代码,生成java代码片段的步骤之前,还包括:
3.如权利要求2所述的代码文件转换方法,其特征在于,所述基于领域特定语言dsl语义解析器转译所述令牌文件与所述逻辑语法块文件,生成预设语法库文件的步骤包括:
4.如权利要求1所述的代码文件转换方法,其特征在于,所述递归分层遍历所述语法解析树中的逻辑语法块,基于预设语法库文件,匹配得到所述逻辑语法块对应的转译代码,生成java代码片段的步骤包括:
5.如权利要求4所述的代码文件转换方法,其特征在于,所述基于所述当前待转译节点,遍历所述预设语法库文件,得到对应的java代码片段的步骤包括:
6.如权利要求1所述的代码文件转换方法,其特征在于,所述将所述java代码片段嵌入预设运行模板,生成java文件的步骤之后,还包括:
7.一种代码文件转换装置,其特征在于,所述代码文件转换装置包括:
8.一种代码文件转换设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至6中任一项所述的代码文件转换方法的步骤。
9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的代码文件转换方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的代码文件转换方法的步骤。