CN115080011B - 基于抽象语法树的代码生成方法及系统 - Google Patents
基于抽象语法树的代码生成方法及系统 Download PDFInfo
- Publication number
- CN115080011B CN115080011B CN202210726494.6A CN202210726494A CN115080011B CN 115080011 B CN115080011 B CN 115080011B CN 202210726494 A CN202210726494 A CN 202210726494A CN 115080011 B CN115080011 B CN 115080011B
- Authority
- CN
- China
- Prior art keywords
- file
- abstract syntax
- syntax tree
- information
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000035772 mutation Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于抽象语法树的代码生成方法及系统,其中方法包括,操作系统将所述配置文件读入到系统的内存中用以进行调用;配置文件包含:基础文件地址信息与目标生成内容的配置信息;获取到的基础文件中的文本内容解析为元数据;基于元数据生成抽象语法树;同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码;本发明实施方式可以节省处理时间,提高代码生成效率。
Description
技术领域
本发明代码生成技术领域,尤其涉及一种基于抽象语法树的代码生成方法及系统。
背景技术
代码生成作为提高研发效率的手段,被大量使用在各个领域,通过自动化的能力让可用的有效代码自动生成出来,减少人力干预。其中最为常见的是各类框架的脚手架工具,通过CLI基于模版生成代码,以用于迅速初始化单个项目。例如create-react-app、vue-cli等能分别基于react框架、vue框架一键生成可执行的工程文件。
在相关工具被正式release前,需要研发人员首先实现可用的代码文件,并将其作为模版的形式添加到仓库中,在CLI调用相关命令时,读取提前准备好的模版文件,然后将其输出到指定目录,生成新的代码文件。根据需求的不同,CLI工具支持传递不同参数,在生成文件时,自动选择不同模版组合,产出不同类型的代码文件。
但是在进一步的研究中发现现有技术的上述处理方式仍然存在一些缺陷,提前准备的模版文件一般数量庞大,加大了相关工具自身的体积。在实际生成中,由于依赖于提前准备的模版文件排列组合,对于实际可产出的代码文件组合有限。若要扩展其能力生成不同内容,需要调整模版文件,流程繁琐且效率低下。
发明内容
本发明的目的在于基于抽象语法树的代码生成方法及系统,用以解决背景技术中指出的问题。
为了达到上述目的,在本发明的第一个方面,提供了一种基于抽象语法树的代码生成方法,流程为:
步骤S10,启动系统预处理操作:具体方法为在终端中输入安装好的该工具名称、配置文件的路径后执行;操作系统将所述配置文件读入到系统的内存中用以进行调用;
其中,所述配置文件包含两部分:基础文件地址信息与目标生成内容的配置信息;
步骤S20,开始获取基础文件并调用所述基础文件地址信息:根据基础文件地址信息对配置文件的指定的文件路径进行识别判断,根据配置文件中指定的文件路径不同,划分为本地文件与远程文件两种;其中,文件路径为本地路径的配置文件划分分类为本地文件,文件路径为远程路径的配置文件则划分分类为远程文件;
步骤S30,获取到的基础文件中的文本内容解析为元数据;
步骤S40,基于元数据生成抽象语法树;
步骤S50,同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码;
步骤S60,将生成的目标代码输出到指定文件中保存,完成生成。
优先的,作为一种可实施方式;在步骤S20执行过程中,开始获取基础文件,包括:
针对对于本地文件,直接利用操作系统读入到系统内存中即可获取基础文件;
针对对于远程文件,则首先获取源端地址,然后建立与远端地址的通信连接,其次获取远程文件的数据流到本地内存中即可获取基础文件。
优先的,作为一种可实施方式;所述文本内容满足GraphQL schema language语法。
优先的,作为一种可实施方式;在步骤S40执行过程中,所述基于元数据生成抽象语法树,包括如下操作步骤:
所述抽象语法树的生成的根节点为Document,表示整个树的开始;
其中Document设置有若干个子节点,定义了所有数据对象(或元数据)的类型;所有数据对象均描述了自己的名称信息(或称name信息),同时向下延伸出若干个子节点描述所包含的field信息(或称域信息,字段信息等);所述Document的若干个子节点包括Field节点、Query节点、Mutation节点;
所述Field节点上描述四个信息部分包括:名称信息、基本类型信息、是否可以为list、是否可以为空;所述Query节点与所述Mutation节点上,除了以上四个部分外,各自均向下继续延伸出若干个参数节点,所述参数节点用于描述其所接受的参数信息;所有参数节点的类型与所述Field节点的类型一致;所述Query节点用于定义所有查询规则,所述Mutation节点用于定义所有更新规则;
在上述抽象语法树的构建过程中,基于元数据从Document根节点开始,以深度优先的方式递归地生成所有数据对象的子节点。
优先的,作为一种可实施方式;所述基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容,包括如下操作步骤:
其中,所述目标生成内容的配置信息为数组的形式描述,数组的每一个元素对应预期生成的一份代码组件;
每一份所述代码组件定义所属类型:表单元素、表格元素;前者表单元素对应Document节点下的Mutation子节点,后者表格元素对应Query子节点;且每一份所述代码组件定义自身所包含的所有域;对应到表单元素即是所有表单项,对应到表格元素即是所有表格列;每个域由两部分组成,自身的域名称与关联对应到所述抽象语法树上的Field子节点名称;
在提取目标生成内容实现阶段(即从所述抽象语法树中提取目标生成内容时),通过所述代码组件的域名称与所有数据对象的子节点的名称信息进行匹配,从而为配置文件中单一描述的一个名称关联上所述所有数据对象中对应部分数据对象的若干个的Field信息;
其中,所述目标生成内容为对应部分数据对象的若干个的Field信息。
优先的,作为一种可实施方式;在步骤S60之后还包括对每个代码组件的所有域的数据类型信息进行明确确认操作。
相应地,本发明提供了一种基于抽象语法树的代码生成系统,其具体执行基于抽象语法树的代码生成方法方法的步骤;所述基于抽象语法树的代码生成系统包括本地/远程文件读取模块10、抽象语法树生成模块20、代码生成模块30和文件输出模块40;其中;
所述本地/远程文件读取模块10,用于根据基础文件地址信息对配置文件的指定的文件路径进行识别判断,根据配置文件中指定的文件路径不同,划分为本地文件与远程文件两种;其中,文件路径为本地路径的配置文件划分分类为本地文件,文件路径为远程路径的配置文件则划分分类为远程文件;
所述抽象语法树生成模块20,用于将获取到的基础文件中的文本内容解析为元数据;基于元数据生成抽象语法树;
所述代码生成模块30,同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码;
所述文件输出模块40,将生成的目标代码输出到指定文件中保存,完成生成。
本发明的有益技术效果至少在于以下几点:
综上所述,本发明实施例提供的基于抽象语法树的代码生成方法,其实现了本地或远程指定文件的两种方式读取,解决了基于工具自带的模版文件生成时,模版数量有限且占用本地空间的问题。同时,其通过将基础文件的内容解析为抽象语法树(获取到的基础文件中的文本内容解析为元数据,并且基于元数据生成抽象语法树),提供更加细致的元数据组合,提高了实际产出内容的精度。此外,在模版文件数量不再受限,且解析粒度足够精确的情况下,本装置的代码生成可以提供更加丰富的内容产出。
附图说明
利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1为本发明基于抽象语法树的代码生成方法流程图。
图2为本发明基于抽象语法树的代码生成系统的一种系统架构原理图。
标号:本地/远程文件读取模块10;抽象语法树生成模块20;代码生成模块30;文件输出模块40。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参照图1,本发明提供了一种基于抽象语法树的代码生成方法,包括如下操作步骤:
步骤S10,启动系统预处理操作:具体方法为在终端中输入安装好的该工具名称、配置文件的路径后执行;操作系统将所述配置文件读入到系统的内存中用以进行调用(即后续过程执行时进行调用配置文件);
其中,所述配置文件包含两部分:基础文件地址信息与目标生成内容的配置信息;
步骤S20,开始获取基础文件并调用所述基础文件地址信息:根据基础文件地址信息对配置文件的指定的文件路径进行识别判断,根据配置文件中指定的文件路径不同,划分为本地文件与远程文件两种;其中,文件路径为本地路径的配置文件划分分类为本地文件,文件路径为远程路径的配置文件则划分分类为远程文件;
步骤S30,获取到的基础文件中的文本内容解析为元数据(或者称为由基础数据转化提取的元数据),即获取到基础文件中具体的文本内容;
步骤S40,基于元数据生成抽象语法树;
步骤S50,同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码;
步骤S60,将生成的目标代码输出到指定文件中保存,完成生成。
本发明实施方式提出了一种基于抽象语法树的代码生成方法,该方法包括:获取基础文件;解析所述基础文件以生成抽象语法树;从所述抽象语法树中抽取树节点,解析树节点内容并将所述树节点内容并按照层层递归处理所有配置项,以便最终完成所有代码的生成,最终获得目标代码。本发明实施方式可以节省处理时间,提高代码生成效率。
在步骤S20执行过程中,开始获取基础文件,包括:
针对对于本地文件,直接利用操作系统读入到系统内存中即可获取基础文件;
针对对于远程文件,则首先获取源端地址,然后建立与远端地址的通信连接,其次获取远程文件的数据流到本地内存中即可获取基础文件。
在本实施例的具体方案中,所述文本内容满足GraphQL schema language语法。
在本实施例的具体方案中,在步骤S40执行过程中,所述基于元数据生成抽象语法树,包括如下操作步骤:
所述抽象语法树的生成的根节点为Document(或称Document根节点),表示整个树的开始;
其中Document设置有若干个子节点,定义了所有数据对象(或元数据)的类型;所有数据对象均描述了自己的名称信息(或称name信息),同时向下延伸出若干个子节点描述所包含的field信息;所述Document的若干个子节点包括Field节点、Query节点、Mutation节点;
所述Field节点上描述四个信息部分包括:名称信息、基本类型信息、是否可以为list、是否可以为空;所述Query节点与所述Mutation节点上,除了以上四个部分外,各自均向下继续延伸出若干个参数节点,所述参数节点用于描述其所接受的参数信息;所有参数节点的类型与所述Field节点的类型一致;所述Query节点用于定义所有查询规则,所述Mutation节点用于定义所有更新规则;
在上述抽象语法树的构建过程中,基于元数据从Document根节点开始,以深度优先的方式递归地生成所有数据对象的子节点。
在上述抽象语法树的构建过程中,在上述抽象语法树的构建过程中,基于元数据从Document根节点开始,以深度优先的方式递归地生成所有数据对象的子节点(深度优先方式即深度优先搜索,从Document根节点开始进行遍历,是树的先根遍历的推广直到遍历结束;该深度优先遍历方式是:首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访问过的顶点时,则回到上一个顶点,继续试探访问别的顶点,直到所有的顶点都被访问。沿着某条路径遍历直到末端,然后回溯,再沿着另一条进行同样的遍历,直到所有的顶点都被访问过为止。);在此过程中,所有Field节点的基本类型必须匹配到Document根节点下的某一子节点名称,否则上述抽象语法树构建失败。
在本实施例的具体方案中,在步骤S50执行过程中,所述基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容,包括如下操作步骤:
其中,所述目标生成内容的配置信息为数组的形式描述,数组的每一个元素对应预期生成的一份代码组件;
每一份所述代码组件定义所属类型:表单元素、表格元素;前者表单元素对应Document节点下的Mutation子节点,后者表格元素对应Query子节点;且每一份所述代码组件定义自身所包含的所有域;对应到表单元素即是所有表单项,对应到表格元素即是所有表格列;每个域由两部分组成,自身的域名称与关联对应到所述抽象语法树上的Field子节点名称;
在提取目标生成内容实现阶段(即从所述抽象语法树中提取目标生成内容时),通过所述代码组件的域名称与所有数据对象的子节点的名称信息进行匹配,从而为配置文件中单一描述的一个名称关联上所述所有数据对象中对应部分数据对象的若干个的Field信息;
其中,所述目标生成内容为对应部分数据对象的若干个的Field信息。
通过上述执行过程可知,经过层层解析,最终可以解析到目标生成内容的最基础的4部分数据:名称信息、基本类型信息、是否可以为list、是否可以为空。
其中,名称信息,对于表单是表单项的Label,对于表格是列名。
其中,基本类型信息分为字符串、数字、布尔值三种类型,对于表单项分别对应文本输入框、数字选择器以及勾选框三类,对于表格列则没有区别,在展示上三种类型都被处理为文本信息。
其中,是否可以为list,对于表单项则表示该项可以被输入区域的数量,对于表格列则会将所有list数据拼接为一条文本展示。
其中,是否可以为空,对于表单项表示该输入区域是否允许留空不输入信息,对于表格列则表示该列是否需要预处理占位符。
基于以上规则,层层递归处理所有配置项便完成所有代码的生成。因为元数据与本系统分离,因为可以基于基础数量的不同而完成不同内容的生成,只需要在配置文件中描述预期得到的内容即可。
综上所述,本发明实施例提供的基于抽象语法树的代码生成方法,其实现了本地或远程指定文件的两种方式读取,解决了基于工具自带的模版文件生成时,模版数量有限且占用本地空间的问题。同时,其通过将基础文件的内容解析为抽象语法树(获取到的基础文件中的文本内容解析为元数据,并且基于元数据生成抽象语法树),提供更加细致的元数据组合,提高了实际产出内容的精度。此外,在模版文件数量不再受限,且解析粒度足够精确的情况下,本装置的代码生成可以提供更加丰富的内容产出。
实施例二
参见图2,本发明实施例提供了一种基于抽象语法树的代码生成系统,其具体执行实施例一中的基于抽象语法树的代码生成方法的步骤;上述基于抽象语法树的代码生成系统其主要含有如下架构模块包括:本地/远程文件读取模块10、抽象语法树生成模块20、代码生成模块30和文件输出模块40;
所述本地/远程文件读取模块10,用于根据基础文件地址信息对配置文件的指定的文件路径进行识别判断,根据配置文件中指定的文件路径不同,划分为本地文件与远程文件两种;其中,文件路径为本地路径的配置文件划分分类为本地文件,文件路径为远程路径的配置文件则划分分类为远程文件;在上述执行过程中,其不限制文件实际的地址,扩大的生成能力的边界,灵活配置的素材文件提供了更多的生成内容可能性。同时,将元数据与本系统分离,减小了本装置的体积。
所述抽象语法树生成模块20,用于将获取到的基础文件中的文本内容解析为元数据;基于元数据生成抽象语法树;在上述过程中,基础文件中的文本内容为实际的代码生成准备基础的元数据。上述过程中元数据的获取,避免了生成代码时反复查询所需数据造成的运行低效问题。同时,将基础文件中的文本内容转化为具有具体含义的元数据,提供了更加丰富的组合可能。
所述代码生成模块30,同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码(解析到的元数据按照预设逻辑规则从抽象语法树取值重新组合生成目标代码);
所述文件输出模块40,将生成的目标代码输出到指定文件中保存,完成生成(用于将内存中的目标代码输出为用户实际可用的具体文件)。
尽管已经示出和描述了本发明的实施例,本领域技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变形,本发明的范围由权利要求及其等同物限定。
Claims (5)
1.一种基于抽象语法树的代码生成方法,其特征在于,包括如下操作步骤:
步骤S10,启动系统预处理操作:具体方法为在终端中输入安装好的工具名称、配置文件的路径后执行;操作系统将所述配置文件读入到系统的内存中用以进行调用;
其中,所述配置文件包含两部分:基础文件地址信息与目标生成内容的配置信息;
步骤S20,开始获取基础文件并调用所述基础文件地址信息:根据基础文件地址信息对配置文件的指定的文件路径进行识别判断,根据配置文件中指定的文件路径不同,划分为本地文件与远程文件两种;其中,文件路径为本地路径的基础文件划分分类为本地文件,文件路径为远程路径的基础文件则划分分类为远程文件;
步骤S30,获取到的基础文件中的文本内容解析为元数据;
步骤S40,基于元数据生成抽象语法树;
步骤S50,同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码;
步骤S60,将生成的目标代码输出到指定文件中保存,完成生成;
在步骤S40执行过程中,所述基于元数据生成抽象语法树,包括如下操作步骤:
所述抽象语法树生成的根节点为Document,表示整个树的开始;
其中Document设置有若干个子节点,定义了所有数据对象的类型;所有数据对象均描述了自己的名称信息,同时向下延伸出若干个子节点描述所包含的field信息;所述Document的若干个子节点包括Field节点、Query节点、Mutation节点;
所述Field节点上描述四个信息部分包括:名称信息、基本类型信息、是否可以为list、是否可以为空;所述Query节点与所述Mutation节点上,除了以上四个部分外,各自均向下继续延伸出若干个参数节点,所述参数节点用于描述其所接收的参数信息;所有参数节点的类型与所述Field节点的类型一致;所述Query节点用于定义所有查询规则,所述Mutation节点用于定义所有更新规则;
在上述抽象语法树的构建过程中,基于元数据从Document 根节点开始,以深度优先的方式递归地生成所有数据对象的子节点;
所述基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容,包括如下操作步骤:
其中,所述目标生成内容的配置信息为数组的形式描述,数组的每一个元素对应预期生成的一份代码组件;
每一份所述代码组件定义所属类型:表单元素、表格元素;前者表单元素对应Document节点下的Mutation子节点,后者表格元素对应Query子节点;且每一份所述代码组件定义自身所包含的所有域;对应到表单元素即是所有表单项,对应到表格元素即是所有表格列;每个域由两部分组成,自身的域名称与关联对应到所述抽象语法树上的Field子节点名称;
在提取目标生成内容实现阶段,通过所述代码组件的域名称与所有数据对象的子节点的名称信息进行匹配,从而为配置文件中单一描述的一个名称关联上所述所有数据对象中对应部分数据对象的若干个的Field信息;
其中,所述目标生成内容为对应部分数据对象的若干个的Field信息。
2.根据权利要求1所述基于抽象语法树的代码生成方法,其特征在于,在步骤S20执行过程中,开始获取基础文件,包括:
针对本地文件,直接利用操作系统读入到系统内存中即可获取基础文件;
针对远程文件,则首先获取源端地址,然后建立与远端地址的通信连接,其次获取远程文件的数据流到本地内存中即可获取基础文件。
3.根据权利要求2所述基于抽象语法树的代码生成方法,其特征在于,所述文本内容满足GraphQL schema language语法。
4.根据权利要求1所述基于抽象语法树的代码生成方法,其特征在于,在步骤S60之后还包括对每个代码组件的所有域的数据类型信息进行确认操作。
5.一种基于抽象语法树的代码生成系统,其特征在于,其具体执行如权利要求1至4任一项所述方法的步骤;所述基于抽象语法树的代码生成系统包括本地/远程文件读取模块、抽象语法树生成模块、代码生成模块和文件输出模块;其中;
所述本地/远程文件读取模块,用于根据基础文件地址信息对配置文件的指定的文件路径进行识别判断,根据配置文件中指定的文件路径不同,划分为本地文件与远程文件两种;其中,文件路径为本地路径的基础文件划分分类为本地文件,文件路径为远程路径的基础文件则划分分类为远程文件;
所述抽象语法树生成模块,用于将获取到的基础文件中的文本内容解析为元数据;基于元数据生成抽象语法树;
所述代码生成模块,同时调用所述目标生成内容的配置信息,基于所述目标生成内容的配置信息从所述抽象语法树中提取目标生成内容;基于所述目标生成内容生成目标代码;
所述文件输出模块,将生成的目标代码输出到指定文件中保存,完成生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210726494.6A CN115080011B (zh) | 2022-06-23 | 2022-06-23 | 基于抽象语法树的代码生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210726494.6A CN115080011B (zh) | 2022-06-23 | 2022-06-23 | 基于抽象语法树的代码生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115080011A CN115080011A (zh) | 2022-09-20 |
CN115080011B true CN115080011B (zh) | 2023-03-21 |
Family
ID=83254851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210726494.6A Active CN115080011B (zh) | 2022-06-23 | 2022-06-23 | 基于抽象语法树的代码生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080011B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483376B (zh) * | 2023-05-05 | 2023-10-03 | 广州正是网络科技有限公司 | C#代码自动生成方法、系统及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385178A (zh) * | 2021-12-14 | 2022-04-22 | 厦门大学 | 基于抽象语法树结构信息增强的代码生成方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459862B2 (en) * | 2013-01-29 | 2016-10-04 | ArtinSoft Corporation | Automated porting of application to mobile infrastructures |
CN106970820B (zh) * | 2017-04-26 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 代码存储方法及代码存储装置 |
CN113778848A (zh) * | 2021-01-29 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 测试代码生成方法、装置、计算机系统及介质 |
CN114461223A (zh) * | 2022-02-16 | 2022-05-10 | 深圳壹账通智能科技有限公司 | 一种代码生成方法、装置及终端设备 |
-
2022
- 2022-06-23 CN CN202210726494.6A patent/CN115080011B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385178A (zh) * | 2021-12-14 | 2022-04-22 | 厦门大学 | 基于抽象语法树结构信息增强的代码生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115080011A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918666B (zh) | 一种区块链上的数据同步方法和系统 | |
CN106970819B (zh) | 一种基于prdl规则描述语言的c程序代码规范检查装置 | |
CN113051285B (zh) | Sql语句的转换方法、系统、设备及存储介质 | |
CN114625732B (zh) | 基于结构化查询语言sql的查询方法和系统 | |
CN103631601A (zh) | 一种代码生成方法和装置 | |
CN111078702A (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
JP4247135B2 (ja) | 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法 | |
CN108664546B (zh) | Xml数据结构转换方法和装置 | |
CN115080011B (zh) | 基于抽象语法树的代码生成方法及系统 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN115202626A (zh) | 一种支持多技术栈组件的低代码前端开发方法 | |
CN116795859A (zh) | 数据分析方法、装置、计算机设备和存储介质 | |
CN112506488A (zh) | 一种基于sql创建语句生成编程语言类的方法 | |
CN115544062A (zh) | 基于Apache Calcite数据血缘和影响分析的方法及系统 | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN113704575B (zh) | 解析XML与Java文件的SQL方法、装置、设备及存储介质 | |
CN117608656A (zh) | 一种基于ast和llm的混合式前端框架迁移方法 | |
CN117216092A (zh) | 一种优化tdsql脚本的方法、装置、设备及可读存储介质 | |
US20090132473A1 (en) | Apparatus, method, and computer program product for processing databases | |
CN113221528B (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
CN112905232B (zh) | 一种基于语法分析树的程序代码平行语料挖掘方法及系统 | |
CN115292347A (zh) | 一种基于规则的主动式sql算法性能检查装置及方法 | |
CN115630086B (zh) | 一种将Access应用转化为Web应用程序的方法 | |
CN116756184B (zh) | 数据库实例处理方法、装置、设备、存储介质及程序产品 | |
US20100218088A1 (en) | Structured document converting device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086 Patentee after: Beijing Zhiling Haina Technology Co.,Ltd. Country or region after: China Address before: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086 Patentee before: Beijing zhilinghaina Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |