一种基于模板引擎的代码生成方法、装置及电子设备与流程

文档序号:18463471发布日期:2019-08-17 02:14阅读:182来源:国知局
一种基于模板引擎的代码生成方法、装置及电子设备与流程

本公开的实施例涉及通信技术领域,尤其涉及一种基于模板引擎的代码生成方法、装置及电子设备。



背景技术:

目前,通信技术领域中存在许多模板引擎,多数模板引擎能够提供一种从源代码文件生成目标代码文件(其为计算机可执行的代码文件)的能力,现有技术中,目标代码文件一般需要由操作人员利用模板引擎进行手动编写,这样,现有技术中,目标代码文件的生成效率非常低,尤其是在待生成的目标代码文件的数量非常庞大的情况下,生成所需的目标代码文件需要花费非常长的时间。



技术实现要素:

第一方面,本公开的实施例提供一种基于模板引擎的代码生成方法,应用于电子设备,所述电子设备存储有与所述模板引擎关联的多个源代码文件,多个源代码文件与多个数据源对应;

所述方法包括:

接收代码生成请求;其中,所述代码生成请求与第一数据源关联;

根据预设依赖关系,确定所述第一数据源依赖的第二数据源;其中,所述预设依赖关系中记录有所述多个数据源之间的依赖关系;

根据所述第一数据源对应的第一源代码文件,以及所述第二数据源对应的第二源代码文件,生成所述第一源代码文件对应的第一目标代码文件。

在一些实施例中,所述根据所述第一数据源对应的第一源代码文件,以及所述第二数据源对应的第二源代码文件,生成所述第一源代码文件对应的第一目标代码文件,包括:

根据所述第二数据源对应的第二源代码文件,获得所述第二源代码文件对应的中间代码文件;

对所获得的中间代码文件进行解析,获得第一解析结果;

根据所述第一源代码文件和所述第一解析结果进行构建,得到第一构建代码;

根据所述第一构建代码,获得所述第一源代码文件对应的第一目标代码文件。

在一些实施例中,所述根据所述第一构建代码,获得所述第一源代码文件对应的第一目标代码文件,包括:

获得所述第一源代码文件对应的第一处理指令信息;

根据所述第一处理指令信息,对所述第一构建代码进行处理,以获得所述第一源代码文件对应的第一目标代码文件。

在一些实施例中,所述第一处理指令信息中包括以下至少一项:

用于指示进行压缩的信息;

用于指示注入钩子代码的信息;

调试信息。

在一些实施例中,所述根据所述第二数据源对应的第二源代码文件,获得所述第二源代码文件对应的中间代码文件,包括:

根据所述预设依赖关系,确定所述第二数据源是否有依赖的第三数据源;

若否,将所述第二源代码文件作为所述第二源代码文件对应的中间代码文件;

若是,获得第三源代码文件对应的中间代码文件;对所获得的中间代码文件进行解析,获得第二解析结果;根据所述第二源代码文件和所述第二解析结果进行构建,得到第二构建代码;根据所述第二构建代码,获得所述第二源代码文件对应的中间代码文件;其中,所述第三源代码文件与所述第三数据源对应。

在一些实施例中,所述对所获得的中间代码文件进行解析,获得第一解析结果,包括:

确定所获得的中间代码文件的文件属性;

调用所述文件属性对应的解析器,对所获得的中间代码文件进行解析,以获得第一解析结果。

在一些实施例中,每个数据源中记录其对应的源代码文件的文件存储位置;

所述根据所述第一数据源对应的第一源代码文件,以及所述第二数据源对应的第二源代码文件,生成所述第一源代码文件对应的第一目标代码文件,包括:

根据所述第一数据源中记录的文件存储位置,获得所述第一数据源对应的第一源代码文件,并根据所述第二数据源中记录的文件存储位置,获得所述第二数据源对应的第二源代码文件;

根据所述第一源代码文件和所述第二源代码文件,生成所述第一源代码文件对应的第一目标代码文件。

第二方面,本公开的实施例提供一种基于模板引擎的代码生成装置,应用于电子设备,所述电子设备存储有与所述模板引擎关联的多个源代码文件,多个源代码文件与多个数据源对应;

所述装置包括:

接收模块,用于接收代码生成请求;其中,所述代码生成请求与第一数据源关联;

确定模块,用于根据预设依赖关系,确定所述第一数据源依赖的第二数据源;其中,所述预设依赖关系中记录有所述多个数据源之间的依赖关系;

生成模块,用于根据所述第一数据源对应的第一源代码文件,以及所述第二数据源对应的第二源代码文件,生成所述第一源代码文件对应的第一目标代码文件。

在一些实施例中,所述生成模块,包括:

第一获得子模块,用于根据所述第二数据源对应的第二源代码文件,获得所述第二源代码文件对应的中间代码文件;

解析子模块,用于对所获得的中间代码文件进行解析,获得第一解析结果;

构建子模块,用于根据所述第一源代码文件和所述第一解析结果进行构建,得到第一构建代码;

第二获得子模块,用于根据所述第一构建代码,获得所述第一源代码文件对应的第一目标代码文件。

在一些实施例中,所述第二获得子模块,包括:

第一获得单元,用于获得所述第一源代码文件对应的第一处理指令信息;

第二获得单元,用于根据所述第一处理指令信息,对所述第一构建代码进行处理,以获得所述第一源代码文件对应的第一目标代码文件。

在一些实施例中,所述第一处理指令信息中包括以下至少一项:

用于指示进行压缩的信息;

用于指示注入钩子代码的信息;

调试信息。

在一些实施例中,所述第一获得子模块,包括:

所述第一获得子模块,包括:

第一确定单元,用于根据所述预设依赖关系,确定所述第二数据源是否有依赖的第三数据源;若否,触发第二确定单元;若是,触发处理单元;

所述第二确定单元,用于将所述第二源代码文件作为所述第二源代码文件对应的中间代码文件;

所述处理单元,用于获得第三源代码文件对应的中间代码文件;对所获得的中间代码文件进行解析,获得第二解析结果;根据所述第二源代码文件和所述第二解析结果进行构建,得到第二构建代码;根据所述第二构建代码,获得所述第二源代码文件对应的中间代码文件;其中,所述第三源代码文件与所述第三数据源对应。

在一些实施例中,所述解析子模块,包括:

第三确定单元,用于确定所获得的中间代码文件的文件属性;

解析单元,用于调用所述文件属性对应的解析器,对所获得的中间代码文件进行解析,以获得第一解析结果。

在一些实施例中,每个数据源中记录其对应的源代码文件的文件存储位置;

所述生成模块,包括:

第三获得子模块,用于根据所述第一数据源中记录的文件存储位置,获得所述第一数据源对应的第一源代码文件,并根据所述第二数据源中记录的文件存储位置,获得所述第二数据源对应的第二源代码文件;

生成子模块,用于根据所述第一源代码文件和所述第二源代码文件,生成所述第一源代码文件对应的第一目标代码文件。

第三方面,本公开的实施例提供一种电子设备,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的基于模板引擎的代码生成方法的步骤。

第四方面,本公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于模板引擎的代码生成方法的步骤。

附图说明

图1是本公开的实施例提供的基于模板引擎的代码生成方法的流程图;

图2是本公开的实施例中生成目标代码文件的原理图;

图3是一种具体的依赖关系图;

图4是另一种具体的依赖关系图;

图5是本公开的实施例提供的基于模板引擎的代码生成装置的结构框图;

图6是本公开的实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本公开保护的范围。

下面首先对本公开的实施例提供的基于模板引擎的代码生成方法进行说明。

需要说明的是,本公开的实施例提供的基于模板引擎的代码生成方法应用于电子设备,电子设备存储有与模板引擎关联的多个源代码文件,多个源代码文件与多个数据源对应。

需要指出的是,本公开的实施例涉及的“多个”均是指至少两个;电子设备可以为服务器,源代码文件也可以称之为模板文件。

一般而言,模板引擎可以提供多种语法,例如循环语法、判断语法、模块化语法,引用语法等,与模板引擎关联的多个源代码文件可以是指:使用模板引擎提供的语法的多个源代码文件,并且,不同源代码文件使用的语法不同。

另外,多个源代码文件与多个数据源之间可以为一一对应的关系。对于任一数据源而言,其可以通过对所对应的源代码文件进行抽象得到,其可以定义所对应的源代码文件的文件后缀、文件格式、文件存储位置(其也可以称为资源路径)。这样,数据源能够屏蔽不同类型、不同语法的源代码文件之间的细节,以形成能够对源代码文件进行表征的基本模型。

参见图1,图中示出了本公开的实施例提供的基于模板引擎的代码生成方法的流程图。如图1所示,该方法包括如下步骤:

步骤101,接收代码生成请求;其中,代码生成请求与第一数据源关联。

这里,第一数据源可以为多个数据源中的任意数据源,第一数据源中的“第一”并不构成对第一数据源的任何限定。

具体地,电子设备的界面上可以显示有与多个数据源一一对应的多个选项,操作人员可以执行对第一数据源对应的选项的触控操作或者鼠标点击操作,以发起与第一数据源关联的代码生成请求。

步骤102,根据预设依赖关系,确定第一数据源依赖的第二数据源;其中,预设依赖关系中记录有多个数据源之间的依赖关系。

一般而言,多个源代码文件之间存在依赖关系(也可以称为调用关系),由于预设依赖关系中记录有多个数据源之间的依赖关系,且多个源代码文件与多个数据源对应,那么,可以认为预设依赖关系能够表征多个源代码文件之间的依赖关系。

具体实施时,可以预先获得基于模板引擎编写的大量文件,例如获得图2中的文件集合中的多个文件,然后进行文件扫描,以得到记录有多个数据源之间的依赖关系的预设依赖关系,例如得到图2中的数据源依赖关系图。由图2可知,数据源之间可以相互依赖,相互引用,以构成一张有向无环图,每个数据源是有向无环图中的一个节点,通过遍历有向无环图,可以得出所有数据源之间的依赖关系。

这里,第一数据源依赖的第二数据源的数量可以为一个、两个、三个或者三个以上,在此不再一一列举。

步骤103,根据第一数据源对应的第一源代码文件,以及第二数据源对应的第二源代码文件,生成第一源代码文件对应的第一目标代码文件。

需要说明的是,步骤103的具体实现形式多样,为了布局清楚,后续进行举例介绍。

对于生成的第一目标代码文件而言,其可以直接被编译成javascript(其为一种直译式脚本语言)类组件,其既可以在服务端渲染执行,也可以在浏览器端渲染执行,以显著提高代码的复用性。

本公开的实施例中,在接收到与第一数据源关联的代码生成请求,且根据预设依赖关系,确定出第一数据源依赖的第二数据源之后,电子设备可以根据第一数据源对应的第一源代码文件,以及第二数据源对应的第二源代码文件,生成第一源代码文件对应的第一目标代码文件。可见,基于预设依赖关系,操作人员只需根据代码生成需要,发起与相应数据源关联的代码生成请求,电子设备即可自动根据相应源代码文件,进行目标代码文件的生成,从而得到操作人员所需的代码文件,因此,与现有技术中操作人员需要利用模板引擎手动编写代码的情况相比,本公开的实施例能够有效地提高代码文件的生成效率,生成操作人员所需的代码文件的时间能够大大缩短。

在一些实施例中,每个数据源中记录其对应的源代码文件的文件存储位置;

根据第一数据源对应的第一源代码文件,以及第二数据源对应的第二源代码文件,生成第一源代码文件对应的第一目标代码文件,包括:

根据第一数据源中记录的文件存储位置,获得第一数据源对应的第一源代码文件,并根据第二数据源中记录的文件存储位置,获得第二数据源对应的第二源代码文件;

根据第一源代码文件和第二源代码文件,生成第一源代码文件对应的第一目标代码文件。

本公开的实施例中,由于每个数据源均记录有相应的文件存储位置,基于数据源,电子设备能够非常便捷地获取到相应的源代码文件,以便于据此生成相应的目标代码文件。

需要指出的是,每个数据源中也可以不记录相应的文件存储位置,这时,电子设备可以在其他存储区域记录数据源与相应源代码文件的文件存储位置之间的对应关系,这也是可行的。

在一些实施例中,根据第一数据源对应的第一源代码文件,以及第二数据源对应的第二源代码文件,生成第一源代码文件对应的第一目标代码文件,包括:

根据第二数据源对应的第二源代码文件,获得第二源代码文件对应的中间代码文件;

对所获得的中间代码文件进行解析,获得第一解析结果;

根据第一源代码文件和第一解析结果进行构建,得到第一构建代码;

根据第一构建代码,获得第一源代码文件对应的第一目标代码文件。

需要说明的是,根据第一构建代码,获得第一源代码文件对应的第一目标代码文件的具体实现形式多样,下面进行举例介绍。

在一种实现形式中,根据第一构建代码,获得第一源代码文件对应的第一目标代码文件,包括:

获得第一源代码文件对应的第一处理指令信息;

根据第一处理指令信息,对第一构建代码进行处理,以获得第一源代码文件对应的第一目标代码文件。

具体地,每个数据源中可以记录其对应的源代码文件的处理指令信息,这样,电子设备可以从第一数据源中获得处理指令信息,并将获得的处理指令信息作为第一处理指令信息;或者,可以预先存储有源代码文件与处理指令信息之间的对应关系,电子设备可以根据预先存储的该对应关系,获得第一源代码文件对应的第一处理指令信息。

这里,第一处理指令信息中可以包括以下至少一项:

用于指示进行压缩的信息;

用于指示注入钩子代码的信息;

调试信息。

假设第一处理指令信息中仅包括用于指示进行压缩的信息,在得到第一构建代码之后,电子设备可以对第一构建代码进行压缩,经压缩后的第一构建代码可以作为第一源代码对应的第一目标代码文件。假设第一处理指令信息中仅包括用于指示注入钩子代码的信息,在得到第一构建代码之后,电子设备可以向第一构建代码中注入钩子代码,注入钩子代码后的第一构建代码可以作为第一源代码对应的第一目标代码文件。

这种实现形式中,基于第一处理指令信息对第一构建代码进行处理,能够灵活地控制最终得到的第一目标代码文件,以使第一目标代码文件能够较好地满足实际需求。

在另一种实现形式中,根据第一构建代码,获得第一源代码文件对应的第一目标代码文件,包括:

将第一构建代码作为第一源代码文件对应的第一目标代码文件。

这种实现形式中,可以直接将第一构建代码作为第一目标代码文件,这样能够非常便捷地得到用户所需的目标代码文件。

本公开的实施例中,可以先获得第二源代码文件对应的中间代码文件,然后获得对中间代码文件进行解析得到的第一解析结果,接下来,根据第一源代码文件和第一解析结果进行构建,即可得到第一构建代码,第一构建代码能够体现第一源代码文件与第二源代码文件之间的依赖关系。之后,根据第一构建代码,即可获得用户所需的第一目标代码文件。可见,由第一源代码文件和第二源代码文件生成第一目标代码文件的过程无需操作人员进行手动编写,这样能够较好保证代码文件的生成效率。

在一些实施例中,对所获得的中间代码文件进行解析,获得第一解析结果,包括:

确定所获得的中间代码文件的文件属性;

调用文件属性对应的解析器,对所获得的中间代码文件进行解析,以获得第一解析结果。

这里,中间代码文件的文件属性可以包括中间代码文件使用的语言。具体地,在中间代码文件使用的语言为层叠样式表单(cascadingstylesheets,css)的情况下,可以调用css解析器对中间代码文件进行解析;在中间代码文件使用的语言为超级文本标记语言(hypertextmarkuplanguage,html)的情况下,可以调用html解析器对中间代码文件进行解析;在中间代码文件使用的语言为javascript的情况下,可以调用javascript解析器对中间代码文件进行解析。

可见,本公开的实施例中,可以根据文件属性,调用相应的解析器对中间代码文件进行解析,以保证解析结果的可靠性。

在一些实施例中,根据第二数据源对应的第二源代码文件,获得第二源代码文件对应的中间代码文件,包括:

根据预设依赖关系,确定第二数据源是否有依赖的第三数据源;

若否,将第二源代码文件作为第二源代码文件对应的中间代码文件;

若是,获得第三源代码文件对应的中间代码文件;对所获得的中间代码文件进行解析,获得第二解析结果;根据第二源代码文件和第二解析结果进行构建,得到第二构建代码;根据第二构建代码,获得第二源代码文件对应的中间代码文件;其中,第三源代码文件与第三数据源对应。

这里,在第二数据源有依赖的第三数据源的情况下,第三数据源的数量可以为一个、两个、三个或者三个以上,在此不再一一列举。

这里,可以确定第三源代码文件对应的中间代码文件的文件属性,调用该文件属性对应的解析器,对第三源代码文件对应的中间代码文件进行解析。另外,第三源代码文件对应的中间代码文件的获得过程参照第二源代码文件对应的中间代码文件的获得过程即可,在此不再赘述。

为了便于理解,下面以一个具体的例子对本公开的实施例的具体实施过程进行详细说明。

假设模板引擎与y1至y6这六个源代码文件关联,y1对应的数据源可以为y1,y2对应的数据源可以为y2,y3对应的数据源可以为y3,y4对应的数据源可以为y4,y5对应的数据源可以为y5,y6对应的数据源可以为y6。

电子设备接收到了与y1关联的代码生成请求(此时y1相当于上文中的第一数据源),基于预设依赖关系,如图3所示,电子设备可以确定出y1依赖于y2和y3(此时y2和y3均相当于上文中的第二数据源),y2依赖于y4和y5(此时y4和y5相当于上文中的第三数据源),y3依赖于y6(此时y6也相当于上文中的第三数据源),y4、y5和y6不依赖于其他数据源。接下来,电子设备可以先生成y2对应的中间代码文件,以及y3对应的中间代码文件,然后根据y2对应的中间代码文件,以及y3对应的中间代码文件,生成y1对应的目标代码文件。

由于y4、y5和y6不依赖于其他数据源,y4可以作为y4对应的中间代码文件,y5可以作为y5对应的中间代码文件,y6可以作为y6对应的中间代码文件。

具体地,为了生成y2对应的中间代码文件,电子设备可以先分别对y4和y5进行解析,以获得y4的解析结果和y5的解析结果。接下来,电子设备可以根据y2、y4的解析结果,以及y5的解析结果进行构建,以得到构建代码,并将得到的构建代码作为y2对应的中间代码文件。

类似地,为了生成y3对应的中间代码文件,电子设备可以先对y6进行解析,以获得y6的解析结果。接下来,电子设备可以根据y3,以及y6的解析结果进行构建,以得到构建代码,并将得到的构建代码作为y3对应的中间代码文件。

在得到y2对应的中间代码文件和y3对应的中间代码文件之后,可以分别对这两个中间代码文件进行解析,以获得两个解析结果。接下来,电子设备可以根据y1和所得到的两个解析结果进行构建,以得到构建代码,并将得到的构建代码作为y1对应的目标代码文件。

需要指出的是,在图3的基础上,如图4所示,如果y4还依赖于其他数据源(例如y7和y8),则需要根据其他数据源,生成y4对应的中间代码文件,具体生成过程参照基于y6生成y3对应的中间代码文件的过程即可,在此不再赘述。

可见,本公开的实施例中,基于预设依赖关系,可以按照数据源之间的依赖层级,一层层地生成中间代码文件,直至得到操作人员所需的目标代码文件为止。

需要指出的是,由图2和上述实施例可知,本公开的实施例中的模板引擎可以提供三种能力,分别是单模板文件编译、模板文件关系管理,以及模板生成配置管理,以解决不同语法的模板文件之间的相互引用问题,以及大数据量的模板文件管理维护复杂的问题。另外,本模板引擎可以兼容其他模板引擎,其他模板引擎可以作为本模板引擎的一个数据源,从而实现不同类型模板之间的调用,这样更容易复用已有的资源。

综上,本公开的实施例中,通过采用源代码文件到数据源的抽象,以及生成预设依赖关系,能够非常便捷地实现操作人员所需代码文件的生成,且使得模板引擎更容易扩展,为模板引擎的后续升级和扩展提供了灵活的机制;另外,通过处理指令信息,能够灵活地控制代码文件的生成和优化。

下面对本公开的实施例提供基于模板引擎的代码生成装置进行说明。

参见图5,图中示出了本公开的实施例提供的基于模板引擎的代码生成装置500的结构框图。如图5所示,基于模板引擎的代码生成装置500应用于电子设备,电子设备存储有与模板引擎关联的多个源代码文件,多个源代码文件与多个数据源对应;

基于模板引擎的代码生成装置500包括:

接收模块501,用于接收代码生成请求;其中,代码生成请求与第一数据源关联;

确定模块502,用于根据预设依赖关系,确定第一数据源依赖的第二数据源;其中,预设依赖关系中记录有多个数据源之间的依赖关系;

生成模块503,用于根据第一数据源对应的第一源代码文件,以及第二数据源对应的第二源代码文件,生成第一源代码文件对应的第一目标代码文件。

在一些实施例中,生成模块503,包括:

第一获得子模块,用于根据第二数据源对应的第二源代码文件,获得第二源代码文件对应的中间代码文件;

解析子模块,用于对所获得的中间代码文件进行解析,获得第一解析结果;

构建子模块,用于根据第一源代码文件和第一解析结果进行构建,得到第一构建代码;

第二获得子模块,用于根据第一构建代码,获得第一源代码文件对应的第一目标代码文件。

在一些实施例中,第二获得子模块,包括:

第一获得单元,用于获得第一源代码文件对应的第一处理指令信息;

第二获得单元,用于根据第一处理指令信息,对第一构建代码进行处理,以获得第一源代码文件对应的第一目标代码文件。

在一些实施例中,第一处理指令信息中包括以下至少一项:

用于指示进行压缩的信息;

用于指示注入钩子代码的信息;

调试信息。

在一些实施例中,第一获得子模块,包括:

第一确定单元,用于根据预设依赖关系,确定第二数据源是否有依赖的第三数据源;若否,触发第二确定单元;若是,触发处理单元;

第二确定单元,用于将第二源代码文件作为第二源代码文件对应的中间代码文件;

处理单元,用于获得第三源代码文件对应的中间代码文件;对所获得的中间代码文件进行解析,获得第二解析结果;根据第二源代码文件和第二解析结果进行构建,得到第二构建代码;根据第二构建代码,获得第二源代码文件对应的中间代码文件;其中,第三源代码文件与第三数据源对应。

在一些实施例中,解析子模块,包括:

第三确定单元,用于确定所获得的中间代码文件的文件属性;

解析单元,用于调用文件属性对应的解析器,对所获得的中间代码文件进行解析,以获得第一解析结果。

在一些实施例中,每个数据源中记录其对应的源代码文件的文件存储位置;

生成模块503,包括:

第三获得子模块,用于根据第一数据源中记录的文件存储位置,获得第一数据源对应的第一源代码文件,并根据第二数据源中记录的文件存储位置,获得第二数据源对应的第二源代码文件;

生成子模块,用于根据第一源代码文件和第二源代码文件,生成第一源代码文件对应的第一目标代码文件。

可见,基于预设依赖关系,操作人员只需根据代码生成需要,发起与相应数据源关联的代码生成请求,电子设备即可自动根据相应源代码文件,进行目标代码文件的生成,从而得到操作人员所需的代码文件,因此,与现有技术中操作人员需要利用模板引擎手动编写代码的情况相比,本公开的实施例能够有效地提高代码文件的生成效率,生成操作人员所需的代码文件的时间能够大大缩短。

下面对本公开的实施例提供的电子设备进行说明。

参见图6,图中示出了本公开的实施例提供的电子设备600的结构示意图。如图6所示,电子设备600包括:处理器601、收发机602、存储器603、用户接口604和总线接口。

电子设备600存储有与模板引擎关联的多个源代码文件,多个源代码文件与多个数据源对应;处理器601,用于读取存储器603中的程序,执行下列过程:

接收代码生成请求;其中,代码生成请求与第一数据源关联;

根据预设依赖关系,确定第一数据源依赖的第二数据源;其中,预设依赖关系中记录有多个数据源之间的依赖关系;

根据第一数据源对应的第一源代码文件,以及第二数据源对应的第二源代码文件,生成第一源代码文件对应的第一目标代码文件。

在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器和存储器603代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机602可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口604还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。

处理器601负责管理总线架构和通常的处理,存储器603可以存储处理器601在执行操作时所使用的数据。

在一些实施例中,处理器601,具体用于:

根据第二数据源对应的第二源代码文件,获得第二源代码文件对应的中间代码文件;

对所获得的中间代码文件进行解析,获得第一解析结果;

根据第一源代码文件和第一解析结果进行构建,得到第一构建代码;

根据第一构建代码,获得第一源代码文件对应的第一目标代码文件。

在一些实施例中,处理器601,具体用于:

获得第一源代码文件对应的第一处理指令信息;

根据第一处理指令信息,对第一构建代码进行处理,以获得第一源代码文件对应的第一目标代码文件。

在一些实施例中,第一处理指令信息中包括以下至少一项:

用于指示进行压缩的信息;

用于指示注入钩子代码的信息;

调试信息。

在一些实施例中,处理器601,具体用于:

根据预设依赖关系,确定第二数据源是否有依赖的第三数据源;

若否,将第二源代码文件作为第二源代码文件对应的中间代码文件;

若是,获得第三源代码文件对应的中间代码文件;对所获得的中间代码文件进行解析,获得第二解析结果;根据第二源代码文件和第二解析结果进行构建,得到第二构建代码;根据第二构建代码,获得第二源代码文件对应的中间代码文件;其中,第三源代码文件与第三数据源对应。

在一些实施例中,处理器601,具体用于:

确定所获得的中间代码文件的文件属性;

调用文件属性对应的解析器,对所获得的中间代码文件进行解析,以获得第一解析结果。

在一些实施例中,每个数据源中记录其对应的源代码文件的文件存储位置;

处理器601,具体用于:

根据第一数据源中记录的文件存储位置,获得第一数据源对应的第一源代码文件,并根据第二数据源中记录的文件存储位置,获得第二数据源对应的第二源代码文件;

根据第一源代码文件和第二源代码文件,生成第一源代码文件对应的第一目标代码文件。

可见,基于预设依赖关系,操作人员只需根据代码生成需要,发起与相应数据源关联的代码生成请求,电子设备600即可自动根据相应源代码文件,进行目标代码文件的生成,从而得到操作人员所需的代码文件,因此,与现有技术中操作人员需要利用模板引擎手动编写代码的情况相比,本公开的实施例能够有效地提高代码文件的生成效率,生成操作人员所需的代码文件的时间能够大大缩短。

本公开的实施例还提供一种电子设备,包括处理器601,存储器603,存储在存储器603上并可在所述处理器601上运行的计算机程序,该计算机程序被处理器701执行时实现上述基于模板引擎的代码生成方法实施例中的各个过程且能达到相同的技术效果,为避免重复,这里不再赘述。

本公开的实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器601执行时实现上述基于模板引擎的代码生成方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1