CN111061469A - Web前端源代码生成方法、装置、存储介质及处理器 - Google Patents
Web前端源代码生成方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN111061469A CN111061469A CN201911075618.3A CN201911075618A CN111061469A CN 111061469 A CN111061469 A CN 111061469A CN 201911075618 A CN201911075618 A CN 201911075618A CN 111061469 A CN111061469 A CN 111061469A
- Authority
- CN
- China
- Prior art keywords
- code
- web front
- syntax tree
- abstract syntax
- end source
- 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.)
- Granted
Links
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
- G06F8/33—Intelligent editors
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
本申请公开了一种WEB前端源代码生成方法、装置、存储介质和处理器,具体包括:接收针对已有的WEB前端源代码的代码编辑请求;根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,所述代码特征数据库是保存所述WEB前端源代码特征值的数据库;利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。应用本申请实施例方案,在需要对大量的重复性且有共同代码规则的源代码片段编辑时,无需手工编辑,仅对数据库进行编辑操作即可,大大节约人力成本,提高了前端开发工作的效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及WEB前端源代码生成方法、装置、存储介质及处理器。
背景技术
随着互联网技术的发展,越来越多的商家采用线上服务方式。为了向用户提供良好的服务,通常会利用WEB技术进行客户端产品的开发,并结合服务器端的后台技术实现整体服务。这里所述的WEB技术有很多,比如超文本标记语言(HTML,Hyper Text MarkupLanguage)、超级样式表(CSS,Cascading Style Shee)、脚本(JS,JavaScript)等等。所述完成的客户端也称为浏览器端,或者称WEB前端。
在WEB前端开发过程中,通常会产生大量的规则相似的代码片段。对于这些代码片段,目前的前端开发工作只能逐一编写,工作效率及其低下。
发明内容
针对上述现有技术,本发明实施例公开一种WEB前端源代码生成方法,可以避免重复的人工编辑源代码、工作效率低下的缺陷。
为此,本申请实施例提供一种WEB前端源代码生成方法具体包括:
接收针对已有的WEB前端源代码的代码编辑请求;
根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,所述代码特征数据库是保存所述WEB前端源代码特征值的数据库;
利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
进一步地,
所述接收针对已有的WEB前端源代码的代码编辑请求的步骤之前,该方法还包括:
将所述已有的WEB前端源代码转换为抽象语法树语句;
根据所述设置的代码规则从抽象语法树语句中确定抽象语法树片段,所述抽象语法树片段符合所述代码规则;
从确定的所述抽象语法树片段中提取代码特征值,并将提取的代码特征值保存于所述代码特征数据库,所述代码特征值是用于将代码规则实例化的参数,且一个抽象语法树片段对应一组代码特征值。
进一步地,
所述代码编辑请求为携带有代码特征值的增加代码片段请求;
所述根据代码编辑请求对关联的代码特征数据库进行编辑操作的步骤包括:在所述代码特征数据库中增加一组代码特征值,增加的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述增加的一组代码特征值为所述特征编辑结果。
进一步地,
所述利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码的步骤包括:
利用设置的代码规则和所述增加的一组代码特征值生成抽象语法树片段,作为新增抽象语法树片段;
将所述已有的WEB前端源代码转换为抽象语法树语句,作为待增抽象语法树语句;
将所述新增抽象语法树片段添加到所述待增抽象语法树语句中,并转换为新的WEB前端源代码。
进一步地,
所述代码编辑请求为携带有代码特征值的删除代码片段请求;
所述根据代码编辑请求对关联的代码特征数据库进行编辑操作的步骤包括:在所述代码特征数据库中删除一组代码特征值,删除的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述删除的一组代码特征值为所述特征编辑结果。
进一步地,
所述利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码的步骤包括:
将所述已有的WEB前端源代码转换为抽象语法树语句,作为待删除抽象语法树语句;
利用设置的代码规则和所述删除的一组代码特征值生成抽象语法树片段,作为待删除抽象语法树片段;
在所述待删除抽象语法树语句中删除所述待删除抽象语法树片段后,再转换为新的WEB前端源代码。
进一步地,
所述代码编辑请求为修改代码片段请求,且携带有修改前代码特征值和修改后代码特征值;
所述根据代码编辑请求对关联的代码特征数据库进行编辑操作的步骤包括:根据所述修改前代码特征值在所述代码特征数据库中确定一组代码特征值;将所述确定的一组代码特征值修改为所述修改后代码特征值,将所述修改前代码特征值和修改后代码特征值作为所述特征编辑结果。
进一步地,
所述利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码的步骤包括:
利用设置的代码规则和所述修改后代码特征值生成抽象语法树片段,作为修改后抽象语法树片段;
将所述已有的WEB前端源代码转换为抽象语法树语句,作为待修改抽象语法树语句,所述待修改抽象语法树语句中包括修改前抽象语法树片段;
将所述修改后抽象语法树片段替换所述修改前抽象语法树片段,再转换为新的WEB前端源代码。
本申请还提供一种WEB前端源代码生成装置,可以避免重复的人工编辑源代码、工作效率低下的缺陷。
本申请提供的一种WEB前端源代码生成装置,具体包括:
收发单元,用于接收针对已有的WEB前端源代码的代码编辑请求;
数据库操作单元,用于根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,所述代码特征数据库是保存所述WEB前端源代码特征值的数据库;
同步单元,利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
进一步地,该装置还包括:
转换单元,用于将所述已有的WEB前端源代码转换为抽象语法树语句;
匹配单元,用于根据所述设置的代码规则从抽象语法树语句中确定抽象语法树片段,所述抽象语法树片段符合所述代码规则;
特征提取单元,用于从确定的所述抽象语法树片段中提取代码特征值,并将提取的代码特征值保存于所述代码特征数据库,所述代码特征值是用于将代码规则实例化的参数,且一个抽象语法树片段对应一组代码特征值。
进一步地,
所述数据库操作单元包括:
增加代码特征单元,用于在所述代码特征数据库中增加一组代码特征值,增加的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述增加的一组代码特征值为所述特征编辑结果;所述代码编辑请求为携带有代码特征值的增加代码片段请求;
删除代码特征单元,用于在所述代码特征数据库中删除一组代码特征值,删除的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述删除的一组代码特征值为所述特征编辑结果;所述代码编辑请求为携带有代码特征值的删除代码片段请求;
修改代码特征单元,用于根据所述修改前代码特征值在所述代码特征数据库中确定一组代码特征值;将所述确定的一组代码特征值修改为所述修改后代码特征值,将所述修改前代码特征值和修改后代码特征值作为所述特征编辑结果;所述代码编辑请求为修改代码片段请求,且携带有修改前代码特征值和修改后代码特征值。
进一步地,所述同步单元包括:
增加代码同步单元,利用设置的代码规则和所述增加的一组代码特征值生成抽象语法树片段,作为新增抽象语法树片段;将所述已有的WEB前端源代码转换为抽象语法树语句,作为待增抽象语法树语句;将所述新增抽象语法树片段添加到所述待增抽象语法树语句中,并转换为新的WEB前端源代码;
删除代码同步单元,用于将所述已有的WEB前端源代码转换为抽象语法树语句,作为待删除抽象语法树语句;利用设置的代码规则和所述删除的一组代码特征值生成抽象语法树片段,作为待删除抽象语法树片段;在所述待删除抽象语法树语句中删除所述待删除抽象语法树片段后,再转换为新的WEB前端源代码;
修改代码同步单元,利用设置的代码规则和所述修改后代码特征值生成抽象语法树片段,作为修改后抽象语法树片段;将所述已有的WEB前端源代码转换为抽象语法树语句,作为待修改抽象语法树语句,所述待修改抽象语法树语句中包括修改前抽象语法树片段;将所述修改后抽象语法树片段替换所述修改前抽象语法树片段,再转换为新的WEB前端源代码。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时可实现上述WEB前端源代码生成方法中的步骤。
本发明实施例还提供一种处理器,用于运行程序,其中,所述程序被运行时用于执行上述任一所述的WEB前端源代码生成方法。
综上所述,本申请实施例方案提供一种WEB前端源代码生成方法、装置、存储介质和处理器,在接收到针对已有的WEB前端源代码的代码编辑请时,根据代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,再利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,就可以生成新的WEB前端源代码。因此,WEB前端开发过程中,如果需要对大量的重复性且有共同代码规则的源代码片段编辑时,则无需手工编辑,仅对数据库进行编辑操作即可,从而可以大大节约人力成本,提高WEB前端开发工作的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例的应用场景示意图。
图2是本申请实现WEB前端源代码生成方法的实施例200的流程示意图。
图3是本申请实现WEB前端源代码生成方法的实施例300的流程示意图。
图4是本申请实施例中WEB前端源代码格式示意图。
图5是本申请实施例中代码特征可视化的示例图。
图6是本申请实施例中增加代码特征值后的可视化示例图。
图7是本申请实施例中增加代码片段后的WEB前端源代码格式示意图。
图8是本申请实施例中删除代码特征值后的可视化示例图。
图9是本申请实施例中删除代码片段后的WEB前端源代码格式示意图。
图10是本申请实施例中修改代码特征值后的可视化示例图。
图11是本申请实施例中修改代码片段后的WEB前端源代码格式示意图。
图12是本申请的WEB前端源代码生成装置1200的内部结构示意图。
图13是本申请的WEB前端源代码生成装置1300的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
本申请实施例为已有的WEB前端源代码设置了代码特征数据库,将已有的WEB前端源代码和所述代码特征数据库进行关联,且将所述WEB前端源代码的代码特征值保存在代码特征数据库中。当需要生成新的WEB前端源代码时,可以仅对代码特征数据库进行编辑操作,再同步给已有的WEB前端源代码即可,无需在WEB前端源代码中逐一编写源代码片段,大大提高工作效率。
下面用一个方法实施例进行详细描述本申请方案。图1是本申请实施例的应用场景示意图。如图1所示,该场景包括WEB前端源代码请求端101、WEB前端源代码应答端102、代码特征数据库103。实际应用中,WEB前端源代码请求端101可以是从事WEB前端源代码开发工作主侧,WEB前端源代码应答端102可以是作为WEB前端开发的辅助侧。也就是说,WEB前端源代码请求端101向WEB前端源代码应答端102发送代码编辑请求;WEB前端源代码应答端102对代码特征数据库103进行编辑操作,将编辑结果同步给WEB前端源代码请求端101,以自动生成新的WEB前端源代码,无需WEB前端源代码请求端101逐一编辑源代码,提高其工作效率。
图2是本申请实现WEB前端源代码生成方法的实施例200的流程示意图。如图2所示,该方法包括:
步骤S1:接收针对已有的WEB前端源代码的代码编辑请求。
本步骤所述代码编辑请求是由WEB前端源代码请求端101向WEB前端源代码应答端102发送。其中,WEB前端源代码是利用WEB技术进行前端开发时产生的源代码,可以是一个文件中的源代码,也可以是多个文件中的源代码。
步骤S2:根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果;所述代码特征数据库是保存所述WEB前端源代码特征值的数据库。
本步骤是由WEB前端源代码应答端102对代码特征数据库103进行编辑操作。实际应用中,在WEB前端开发过程中,总是会产生大量的规则相似的源代码片段,可以将其分解为代码规则和代码特征值表示。比如:某些源代码片段通常有函数名以及函数参数,凡是满足有函数名和函数参数的条件的源代码片段就可以认为满足一定的代码规则。那么,本申请实施例将这些代码中满足共性的信息作为代码规则,将区别于其他源代码片段的信息作为代码特征值。在上述示例中,可以将函数转换成的抽象语法树来表示代码规则,将函数名和函数参数作为代码特征值保存于代码特征数据库中。
步骤S3:利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
如上所述,源代码片段可以分解为代码规则和代码特征值,那么根据代码规则和代码特征值也可以重新合成源代码片段。也就是说,如果对代码特征数据库进行编辑操作,比如增加、删除或修改其中的代码特征值,同步到已有的WEB前端源代码即可。应用本申请实施例方案,无需WEB前端源代码请求端101逐一编辑WEB前端源代码,只需要WEB前端源代码应答端102对代码特征数据库103进行编辑操作,将编辑结果反馈给WEB前端源代码请求端101,WEB前端源代码请求端101就可以自动生成新的WEB前端源代码,从而提高工作效率。
为了更好地描述本申请实施例方案,下面用另一个实施例进行详细描述。本申请实施例的应用场景仍然以图1为例,WEB前端源代码请求端101可以采用Express框架技术,WEB前端源代码应答端102可以采用Vue框架技术,还可以采用UI框架实现可视化操作,代码特征数据库103可以采用JSON数据库。
图3是本申请实现WEB前端源代码方法的实施例300的流程示意图。如图3所示,该方法包括:
步骤H1:将已有的WEB前端源代码转换为抽象语法树语句。
抽象语法树(AST,Abstract Syntax Tree)是源代码语法结构的一种抽象表示,通常以树的形式表现编程语言的语法结构,其树上的每个节点都表示源代码中的一种结构。实际应用中,利用抽象语法树转换工具(如:RECAST)就可以将已有的WEB前端源代码转换为抽象语法树语句。
步骤H2:根据所述设置的代码规则从抽象语法树语句中确定抽象语法树片段,所述抽象语法树片段符合所述设置的代码规则。
如上所述,本申请实施例将源代码中满足某种共性的信息作为代码规则,在实际应用中,同样可以利用抽象语法树来描述所设置的代码规则。由于步骤H1已经将已有的WEB前端源代码转换为抽象语法树语句来表示,遍历所有的抽象语法树语句,就可以从中确定哪些抽象语法树片段与代码规则是匹配的,满足该代码规则的条件。
比如:某WEB前端源代码如图4所示,其中包括第x1部分、第x2部分……第xn部分等。按照其规律,满足共性的信息的代码规则设置为:
上述代码规则表示包括规则类型“api”、参数1“name”、以及参数2,参数2为一种对象类型,该对象中还包括参数21“method”和参数22“uri”。
那么,根据上述代码规则从图4所示的WEB前端源代码所转换的抽象语法树语句中遍历,可以匹配到第x1部分、第x2部分和第xn部分,将这几部分作为确定的抽象语法树片段,显然匹配到的这几部分是符合设置的代码规则的。
步骤H3:从确定的所述抽象语法树片段中提取代码特征值,并将提取的代码特征值保存于所述代码特征数据库,所述代码特征值是用于将代码规则实例化的参数,且一个抽象语法树片段对应一组代码特征值。
实际应用中,在每一个抽象语法树片段中都存在区别于其他源代码片段的信息,可以将这些区别信息作为代码特征值。仍然以图4为例,可以看到每一个抽象语法树片段中的参数值可以区别其他源代码片段,因此可以将这些抽象语法树片段中的参数值作为提取出的代码特征值。
比如:从第x1部分提取参数1“name”、参数21“method”和参数22“uri”的值,其参数值分别为“lessee Detail”、“get”、“info/getoutHouseDetail”,将这些参数值作为第x1部分的代码特征值。
同样,从第x2部分提取参数1“name”、参数21“method”和参数22“uri”的值,其参数值分别为“getInHouseDetail”、“get”、“info/getInHouseDetail”,将这些参数值作为第x2部分的代码特征值。
从第xn部分提取参数1“name”、参数21“method”和参数22“uri”的值,其参数值分别为“contractList”、“get”、“info/rentor/contract”,将这些参数值作为第xn部分的代码特征值。
将提取的代码特征值保存在代码特征数据库,如表一所示:
表一
其中,“ID”表示序号,“name”、“method”和“uri”表示特征值。实际应用中,代码特征数据库还可以进一步包括其他信息,比如“Lco”表示这些代码特征值所对应源代码片段在前端源代码中的位置,“path”表示前端源代码的存储路径。
至此,通过上述步骤H1~H3已经建立了代码特征数据库103。实际应用中,可以将代码特征数据库103与已有的WEB前端源代码进行关联,后续对代码特征数据库103的编辑操作可以同步给已有的WEB前端源代码。
步骤H4:接收针对已有的WEB前端源代码的代码编辑请求。
实际应用中,如果WEB前端源代码请求端101在前端开发过程中,需要对符合某代码规则的重复性的源代码片段进行编辑,无需人工逐一编辑,而是向WEB前端源代码应答端102发起代码编辑请求。WEB前端源代码应答端102接收该代码编辑请求,对代码特征数据库103进行编辑操作。
实际应用中,代码特征数据库103的数据可以可视化的形式展示,比如采用WEB浏览器加载页面进行展示。图5是一种可视化的示例。如图5所示,展示页面中包括上述代码特征值,其中每一行表示一组代码特征值,共三组代码特征值。另外,展示页面还包括“增加”、“删除”和“修改”控件按钮,可以点击控件按钮来对代码特征值进行编辑。具体方法下面进一步详细描述。
通常,前端开发过程可能涉及对某些源代码片段增加、删除或修改等编辑工作。如果代码编辑请求为携带有代码特征值的增加代码片段请求,则继续执行下述步骤H5~H8;如果代码编辑请求为携带有代码特征值的删除代码片段请求,则继续执行下述步骤H9~H12;如果代码编辑请求为修改代码片段请求,则继续执行下述步骤H13~H16。具体地:
增加代码片段的方法为:
步骤H5:在所述代码特征数据库中增加一组代码特征值,增加的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述增加的一组代码特征值为所述特征编辑结果。
实际应用中,如果WEB前端源代码请求端101需要在已有的WEB前端源代码中增加一段源代码片段,而且增加的源代码片段符合代码特征数据库103中代码特征值所对应的代码规则。此时,WEB前端源代码请求端101可以直接向WEB前端源代码应答端102发送增加代码片段请求,且该请求中携带有需要增加的代码特征值。
仍然以图5可视化展示为例,在实际应用中点击“增加”按钮,WEB前端源代码应答端102输入需要增加的代码特征值,使得增加的代码特征值保存在代码特征数据库103中。比如:增加代码片段请求中携带的代码特征值包括“toDissolution”、“post”、“terminate/apply”。WEB前端源代码应答端102将需要增加的代码输入代码特征数据库103之后,展示页面将更新为图6所示,其中第4行即为增加的代码特征值。
步骤H6:利用设置的代码规则和所述增加的一组代码特征值生成抽象语法树片段,作为新增抽象语法树片段。
步骤H7:将所述已有的WEB前端源代码转换为抽象语法树语句,作为待增抽象语法树语句。
步骤H8:将所述新增抽象语法树片段添加到所述待增抽象语法树语句中,并转换为新的WEB前端源代码。
上述步骤H6~H8是一种将增加代码特征值的结果同步给WEB前端源代码的实现方式。这里,假设需要在第xn部分之后增加源代码片段作为第xn+1部分,那么生成新的WEB前端源代码可如图7所示。也就是说,第xn+1部分的源代码片段并不需要WEB前端源代码请求端101的开发人员逐一编辑,而是利用本步骤自动生成的。
删除代码片段的方法为:
步骤H9:在所述代码特征数据库中删除一组代码特征值,删除的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述删除的一组代码特征值为所述特征编辑结果。
实际应用中,如果WEB前端源代码请求端101需要在已有的WEB前端源代码中删除一段源代码片段,而且删除的源代码片段符合代码特征数据库103中代码特征值所对应的代码规则。此时,WEB前端源代码请求端101可以直接向WEB前端源代码应答端102发送删除代码片段请求,且该请求中携带有需要删除的代码特征值。
仍然以图5可视化展示为例,假设需要删除第二行代码特征值,则在第二行代码特征值一栏中点击“删除”按钮,使得保存在代码特征数据库103中的代码特征值删除。比如:删除代码片段请求中携带的代码特征值包括“getInHouseDetail”、“get”、“info/getInHouseDetail”。WEB前端源代码应答端102删除代码特征数据库103中的该代码特征值之后,展示页面将更新为图8所示,原有第二行代码特征值已经被删除。
步骤H10:将所述已有的WEB前端源代码转换为抽象语法树语句,作为待删除抽象语法树语句。
步骤H11:利用设置的代码规则和所述删除的一组代码特征值生成抽象语法树片段,作为待删除抽象语法树片段。
步骤H12:在所述待删除抽象语法树语句中删除所述待删除抽象语法树片段后,再转换为新的WEB前端源代码。
上述步骤H10~步骤H12是一种将删除代码特征值的结果同步给WEB前端源代码的实现方式。此时,可以从已有的WEB前端源代码中删除第x2部分,生成新的WEB前端源代码可如图9所示。也就是说,第x2部分的源代码片段并不需要WEB前端源代码请求端101的开发人员手动删除,而是利用本步骤自动删除。
修改代码片段的方法为:
步骤H13:根据所述修改前代码特征值在所述代码特征数据库中确定一组代码特征值;将所述确定的一组代码特征值修改为所述修改后代码特征值,将所述修改前代码特征值和修改后代码特征值作为所述特征编辑结果。
实际应用中,如果WEB前端源代码请求端101需要在已有的WEB前端源代码中修改一段源代码片段,而且修改的源代码片段符合代码特征数据库103中代码特征值所对应的代码规则。此时,WEB前端源代码请求端101可以直接向WEB前端源代码应答端102发送修改代码片段请求,且该请求中携带有修改前代码特征值和修改后代码特征值。
仍然以图5可视化展示为例,在实际应用中点击第三组代码特征值一栏的“修改”按钮,WEB前端源代码应答端102输入需要修改的代码特征值,使得修改的代码特征值保存在代码特征数据库103中。比如:修改代码片段请求中携带的修改前代码特征值为“contractList”、“get”和“info/rentor/contract”,修改后代码特征值为“contract”、“get”和“info/rentor/contractList”。WEB前端源代码应答端102将需要修改的代码输入代码特征数据库103之后,展示页面将更新为图10所示,其中第3行即为修改的代码特征值。
步骤H14:利用设置的代码规则和所述修改后代码特征值生成抽象语法树片段,作为修改后抽象语法树片段。
步骤H15:将所述已有的WEB前端源代码转换为抽象语法树语句,作为待修改抽象语法树语句,所述待修改抽象语法树语句中包括修改前抽象语法树片段。
步骤H16:将所述修改后抽象语法树片段替换所述修改前抽象语法树片段,再转换为新的WEB前端源代码。
上述步骤H13~步骤H16是一种将修改代码特征值的结果同步给WEB前端源代码的实现方式。此时,可以修改第xn部分,生成新的WEB前端源代码可如图11所示。也就是说,第xn部分的源代码片段并不需要WEB前端源代码请求端101的开发人员逐一修改,而是利用本步骤自动生成的。
作为一种示例,上述仅仅以一部分源代码片段说明增加、删除和修改的方案,实际应用中,还可以进行批量的编辑,同时对若干个源代码片段进行增加、删除和修改。由于本申请实施例方案无需开发人员手工对WEB前端源代码进行编辑,仅对代码特征数据库进行编辑操作,再将编辑结果同步给WEB前端源代码,就可以达到自动生成WEB前端源代码的目的,从而大大提高工作效率。
本申请还提供一种WEB前端源代码生成装置1200,如图12所示,该装置包括收发单元T1、数据库操作单元T2和同步单元T3。其中:
收发单元T1,用于接收针对已有的WEB前端源代码的代码编辑请求。
数据库操作单元T2,用于根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,所述代码特征数据库是保存所述WEB前端源代码特征值的数据库。
同步单元T3,利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
也就是说,收发单元T1接收到针对已有的WEB前端源代码的代码编辑请求时,数据库操作单元T2根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,再由同步单元T3利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
具体地,本申请提供的另一种WEB前端源代码生成装置1300可以更为详细描述其方案。如图13所示,该装置除了包括收发单元T1、数据库操作单元T2和同步单元T3之外,还包括转换单元T4、匹配单元T5和特征提取单元T6。
其中:
转换单元T4,用于将所述已有的WEB前端源代码转换为抽象语法树语句。
匹配单元T5,用于根据所述设置的代码规则从抽象语法树语句中确定抽象语法树片段,所述抽象语法树片段符合所述代码规则。
特征提取单元T6,用于从确定的所述抽象语法树片段中提取代码特征值,并将提取的代码特征值保存于所述代码特征数据库,所述代码特征值是用于将代码规则实例化的参数,且一个抽象语法树片段对应一组代码特征值。
所述数据库操作单元T2具体包括增加代码特征单元T21、删除代码特征单元T22和修改代码特征单元T23。其中:
增加代码特征单元T21,用于在所述代码特征数据库中增加一组代码特征值,增加的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述增加的一组代码特征值为所述特征编辑结果;所述代码编辑请求为携带有代码特征值的增加代码片段请求;
删除代码特征单元T22,用于在所述代码特征数据库中删除一组代码特征值,删除的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述删除的一组代码特征值为所述特征编辑结果;所述代码编辑请求为携带有代码特征值的删除代码片段请求;
修改代码特征单元T23,用于根据所述修改前代码特征值在所述代码特征数据库中确定一组代码特征值;将所述确定的一组代码特征值修改为所述修改后代码特征值,将所述修改前代码特征值和修改后代码特征值作为所述特征编辑结果;所述代码编辑请求为修改代码片段请求,且携带有修改前代码特征值和修改后代码特征值。
相应的,所述同步单元T3具体包括增加代码同步单元T31、删除代码同步单元T32和修改代码同步单元T33。其中:
增加代码同步单元T31,利用设置的代码规则和所述增加的一组代码特征值生成抽象语法树片段,作为新增抽象语法树片段;将所述已有的WEB前端源代码转换为抽象语法树语句,作为待增抽象语法树语句;将所述新增抽象语法树片段添加到所述待增抽象语法树语句中,并转换为新的WEB前端源代码;
删除代码同步单元T32,用于将所述已有的WEB前端源代码转换为抽象语法树语句,作为待删除抽象语法树语句;利用设置的代码规则和所述删除的一组代码特征值生成抽象语法树片段,作为待删除抽象语法树片段;在所述待删除抽象语法树语句中删除所述待删除抽象语法树片段后,再转换为新的WEB前端源代码;
修改代码同步单元T33,利用设置的代码规则和所述修改后代码特征值生成抽象语法树片段,作为修改后抽象语法树片段;将所述已有的WEB前端源代码转换为抽象语法树语句,作为待修改抽象语法树语句,所述待修改抽象语法树语句中包括修改前抽象语法树片段;将所述修改后抽象语法树片段替换所述修改前抽象语法树片段,再转换为新的WEB前端源代码。
也就是说,转换单元T4将已有的WEB前端源代码转换为抽象语法树语句;匹配单元T5根据所述设置的代码规则从抽象语法树语句中确定抽象语法树片段;特征提取单元T6从确定的所述抽象语法树片段中提取代码特征值,并将提取的代码特征值保存于所述代码特征数据库。至此,已经建立好了代码特征数据库103。
当收发单元T1接收到代码编辑请求时,且所述代码编辑请求为携带有代码特征值的增加代码片段请求,增加代码特征单元T21先在代码特征数据库103中增加一组代码特征值,增加的一组代码特征值为所述代码编辑请求中携带的代码特征值;增加代码同步单元T31利用设置的代码规则和所述增加的一组代码特征值生成抽象语法树片段,作为新增抽象语法树片段;将已有的WEB前端源代码转换为抽象语法树语句,作为待增抽象语法树语句;将所述新增抽象语法树片段添加到所述待增抽象语法树语句中,并转换为新的WEB前端源代码。至此,完成自动生成WEB前端源代码。
当收发单元T1接收到代码编辑请求时,且所述代码编辑请求为携带有代码特征值的删除代码片段请求,删除代码特征单元T22先在所述代码特征数据库103中删除一组代码特征值,删除的一组代码特征值为所述代码编辑请求中携带的代码特征值;删除代码同步单元T32将所述已有的WEB前端源代码转换为抽象语法树语句,作为待删除抽象语法树语句;利用设置的代码规则和所述删除的一组代码特征值生成抽象语法树片段,作为待删除抽象语法树片段;在所述待删除抽象语法树语句中删除所述待删除抽象语法树片段后,再转换为新的WEB前端源代码。至此,完成自动生成WEB前端源代码。
当收发单元T1接收到代码编辑请求时,且所述代码编辑请求为修改代码片段请求,且携带有修改前代码特征值和修改后代码特征值,修改代码特征单元T23先根据所述修改前代码特征值在所述代码特征数据库中确定一组代码特征值;将所述确定的一组代码特征值修改为所述修改后代码特征值,将所述修改前代码特征值和修改后代码特征值作为所述特征编辑结果;修改代码同步单元T33再利用设置的代码规则和所述修改后代码特征值生成抽象语法树片段,作为修改后抽象语法树片段;将所述已有的WEB前端源代码转换为抽象语法树语句,作为待修改抽象语法树语句,所述待修改抽象语法树语句中包括修改前抽象语法树片段;将所述修改后抽象语法树片段替换所述修改前抽象语法树片段,再转换为新的WEB前端源代码。至此,完成自动生成WEB前端源代码。
本申请实施例还提供一种计算机可读介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上所述WEB前端源代码自动生成方法中的步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/***中所包含的,也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,实现根据参考图1200或1300所描述的装置实现WEB前端源代码自动生成的方法。
根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
本申请实施例还提供一种处理器,用于运行程序,其中,所述程序被运行时用于执行上述任一所述的WEB前端源代码生成方法。实际应用中,该处理器可以是上述实施例中描述的设备/装置/***中包含的,也可以是单独存在的,而未装配入该设备/装置/***中。处理器可以是通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。
从本申请上述各实施例方案可知,在WEB前端源代码开发过程中,如果需要对大量的重复性的且具有相同代码规则的源代码片段进行编辑,开发人员无需手工逐一进行编辑,而是对代码特征数据库进行编辑操作,然后将代码特征数据库的编辑结果同步给WEB前端源代码,就可以自动生成新的源代码,从而大大节约人工成本,提高了前端开发工作的效率。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本申请。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种WEB前端源代码生成方法,其特征在于,该方法包括:
接收针对已有的WEB前端源代码的代码编辑请求;
根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,所述代码特征数据库是保存所述WEB前端源代码特征值的数据库;
利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
2.根据权利要求1所述的方法,其特征在于,所述接收针对已有的WEB前端源代码的代码编辑请求的步骤之前,该方法还包括:
将所述已有的WEB前端源代码转换为抽象语法树语句;
根据所述设置的代码规则从抽象语法树语句中确定抽象语法树片段,所述抽象语法树片段符合所述代码规则;
从确定的所述抽象语法树片段中提取代码特征值,并将提取的代码特征值保存于所述代码特征数据库,所述代码特征值是用于将代码规则实例化的参数,且一个抽象语法树片段对应一组代码特征值。
3.根据权利要求2所述的方法,其特征在于,所述代码编辑请求为携带有代码特征值的增加代码片段请求;
所述根据代码编辑请求对关联的代码特征数据库进行编辑操作的步骤包括:在所述代码特征数据库中增加一组代码特征值,增加的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述增加的一组代码特征值为所述特征编辑结果。
4.根据权利要求3所述的方法,其特征在于,所述利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码的步骤包括:
利用设置的代码规则和所述增加的一组代码特征值生成抽象语法树片段,作为新增抽象语法树片段;
将所述已有的WEB前端源代码转换为抽象语法树语句,作为待增抽象语法树语句;
将所述新增抽象语法树片段添加到所述待增抽象语法树语句中,并转换为新的WEB前端源代码。
5.根据权利要求2所述的方法,其特征在于,所述代码编辑请求为携带有代码特征值的删除代码片段请求;
所述根据代码编辑请求对关联的代码特征数据库进行编辑操作的步骤包括:在所述代码特征数据库中删除一组代码特征值,删除的一组代码特征值为所述代码编辑请求中携带的代码特征值,所述删除的一组代码特征值为所述特征编辑结果。
6.根据权利要求5所述的方法,其特征在于,所述利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码的步骤包括:
将所述已有的WEB前端源代码转换为抽象语法树语句,作为待删除抽象语法树语句;
利用设置的代码规则和所述删除的一组代码特征值生成抽象语法树片段,作为待删除抽象语法树片段;
在所述待删除抽象语法树语句中删除所述待删除抽象语法树片段后,再转换为新的WEB前端源代码。
7.根据权利要求2所述的方法,其特征在于,所述代码编辑请求为修改代码片段请求,且携带有修改前代码特征值和修改后代码特征值;
所述根据代码编辑请求对关联的代码特征数据库进行编辑操作的步骤包括:根据所述修改前代码特征值在所述代码特征数据库中确定一组代码特征值;将所述确定的一组代码特征值修改为所述修改后代码特征值,将所述修改前代码特征值和修改后代码特征值作为所述特征编辑结果。
8.一种WEB前端源代码生成装置,其特征在于,该装置包括:
收发单元,用于接收针对已有的WEB前端源代码的代码编辑请求;
数据库操作单元,用于根据所述代码编辑请求对关联的代码特征数据库进行编辑操作,获得特征编辑结果,所述代码特征数据库是保存所述WEB前端源代码特征值的数据库;
同步单元,利用设置的代码规则将所述特征编辑结果同步给已有的WEB前端源代码,生成新的WEB前端源代码。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时可实现权利要求1~7任一项所述的WEB前端源代码生成方法中的步骤。
10.一种处理器,其特征在于,用于运行程序,其中,所述程序被运行时用于执行:如权利要求1-7中任意一项所述的WEB前端源代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911075618.3A CN111061469B (zh) | 2019-11-06 | 2019-11-06 | Web前端源代码生成方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911075618.3A CN111061469B (zh) | 2019-11-06 | 2019-11-06 | Web前端源代码生成方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061469A true CN111061469A (zh) | 2020-04-24 |
CN111061469B CN111061469B (zh) | 2023-09-15 |
Family
ID=70297694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911075618.3A Active CN111061469B (zh) | 2019-11-06 | 2019-11-06 | Web前端源代码生成方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061469B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651346A (zh) * | 2020-04-27 | 2020-09-11 | 平安医疗健康管理股份有限公司 | 前端组件的测试方法、装置、存储介质及计算机设备 |
CN112287021A (zh) * | 2020-07-13 | 2021-01-29 | 上海柯林布瑞信息技术有限公司 | 数据实时同步参数的生成、同步方法及装置、存储介质、终端 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004246924A (ja) * | 2004-04-26 | 2004-09-02 | Nec Corp | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 |
US20050114833A1 (en) * | 2003-11-24 | 2005-05-26 | International Business Machines Corporation | Method and apparatus for efficiently developing encoded instructions by tracking multiple unverified instances of repetitive code segments |
US20060122822A1 (en) * | 2004-12-03 | 2006-06-08 | Alexander Simon | Language grammar driven recognizer of similar code fragments and methods |
CN104461580A (zh) * | 2014-12-30 | 2015-03-25 | 北京经开投资开发股份有限公司 | 一种Web用户界面实现方法 |
US9378242B1 (en) * | 2015-06-10 | 2016-06-28 | International Business Machines Corporation | Source code search engine |
CN106095522A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现分布式编译的方法和分布式编译*** |
CN106201489A (zh) * | 2016-06-30 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种页面编辑方法和装置 |
CN106777352A (zh) * | 2017-01-18 | 2017-05-31 | 深圳市雨云科技有限公司 | 数据访问方法及*** |
CN108334776A (zh) * | 2017-01-19 | 2018-07-27 | ***通信有限公司研究院 | 一种变形恶意代码的检测方法及装置 |
CN109375922A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 一种接口文档的自动生成方法及终端设备 |
CN109885299A (zh) * | 2019-01-23 | 2019-06-14 | 平安科技(深圳)有限公司 | 模型开发中的模板处理方法、装置、计算机设备和存储介质 |
CN109918077A (zh) * | 2019-01-22 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 代码管理方法、装置、计算机设备和存储介质 |
US20190243625A1 (en) * | 2018-02-06 | 2019-08-08 | Microsoft Technology Licensing, Llc | Vectorizing conditional min-max sequence reduction loops |
US10423396B1 (en) * | 2018-05-04 | 2019-09-24 | Salesforce.Com, Inc. | Transforming non-apex code to apex code |
-
2019
- 2019-11-06 CN CN201911075618.3A patent/CN111061469B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114833A1 (en) * | 2003-11-24 | 2005-05-26 | International Business Machines Corporation | Method and apparatus for efficiently developing encoded instructions by tracking multiple unverified instances of repetitive code segments |
JP2004246924A (ja) * | 2004-04-26 | 2004-09-02 | Nec Corp | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 |
US20060122822A1 (en) * | 2004-12-03 | 2006-06-08 | Alexander Simon | Language grammar driven recognizer of similar code fragments and methods |
CN104461580A (zh) * | 2014-12-30 | 2015-03-25 | 北京经开投资开发股份有限公司 | 一种Web用户界面实现方法 |
US9378242B1 (en) * | 2015-06-10 | 2016-06-28 | International Business Machines Corporation | Source code search engine |
CN106095522A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现分布式编译的方法和分布式编译*** |
CN106201489A (zh) * | 2016-06-30 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种页面编辑方法和装置 |
CN106777352A (zh) * | 2017-01-18 | 2017-05-31 | 深圳市雨云科技有限公司 | 数据访问方法及*** |
CN108334776A (zh) * | 2017-01-19 | 2018-07-27 | ***通信有限公司研究院 | 一种变形恶意代码的检测方法及装置 |
US20190243625A1 (en) * | 2018-02-06 | 2019-08-08 | Microsoft Technology Licensing, Llc | Vectorizing conditional min-max sequence reduction loops |
US10423396B1 (en) * | 2018-05-04 | 2019-09-24 | Salesforce.Com, Inc. | Transforming non-apex code to apex code |
CN109375922A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 一种接口文档的自动生成方法及终端设备 |
CN109918077A (zh) * | 2019-01-22 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 代码管理方法、装置、计算机设备和存储介质 |
CN109885299A (zh) * | 2019-01-23 | 2019-06-14 | 平安科技(深圳)有限公司 | 模型开发中的模板处理方法、装置、计算机设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651346A (zh) * | 2020-04-27 | 2020-09-11 | 平安医疗健康管理股份有限公司 | 前端组件的测试方法、装置、存储介质及计算机设备 |
CN111651346B (zh) * | 2020-04-27 | 2022-11-18 | 深圳平安医疗健康科技服务有限公司 | 前端组件的测试方法、装置、存储介质及计算机设备 |
CN112287021A (zh) * | 2020-07-13 | 2021-01-29 | 上海柯林布瑞信息技术有限公司 | 数据实时同步参数的生成、同步方法及装置、存储介质、终端 |
CN112287021B (zh) * | 2020-07-13 | 2024-04-05 | 上海柯林布瑞信息技术有限公司 | 数据实时同步参数的生成、同步方法及装置、存储介质、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111061469B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933752B (zh) | 一种导出电子文档的方法和装置 | |
CN110399169B (zh) | Bios选项的修改方法、装置、设备及可读存储介质 | |
CN105824787B (zh) | 一种html模板动态配置的控制方法及*** | |
CN107402746B (zh) | 一种自动生成代码文件的方法及装置 | |
JP2018502344A (ja) | 言語モデルの訓練方法及び装置、機器 | |
CN105094836B (zh) | 一种生成说明文档的方法和装置 | |
CN111061469B (zh) | Web前端源代码生成方法、装置、存储介质及处理器 | |
CN105373386A (zh) | 命令行程序的处理方法和装置 | |
CN107807844B (zh) | 交通测试场景的生成方法、装置及计算机可读存储介质 | |
CN116227505A (zh) | 一种国际化文件翻译方法、装置、设备及介质 | |
CN114489950A (zh) | 一种组件适配方法、装置、电子设备及存储介质 | |
CN114610301A (zh) | 前端代码生成方法、装置、电子设备及存储介质 | |
JP6723976B2 (ja) | テスト実行装置及びプログラム | |
CN109947711A (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
CN115469849B (zh) | 一种业务处理***、方法、电子设备和存储介质 | |
CN110162301B (zh) | 一种表单渲染方法、装置和存储介质 | |
CN108549693B (zh) | 基于爬虫技术的cms页面生成方法 | |
CN115292641A (zh) | 页面生成方法、装置、服务器及存储介质 | |
JP2008033913A (ja) | Plcのプログラム開発支援装置 | |
JP6097231B2 (ja) | プログラム生成装置および方法 | |
CN109508185B (zh) | 一种代码复查方法和装置 | |
WO2020088087A1 (zh) | 用于应用程序接口api测试的方法和设备 | |
CN110704055B (zh) | 接口前置的优化方法、装置、电子设备及存储介质 | |
CN111143186A (zh) | 用于应用程序接口api测试的方法和设备 | |
US20190019054A1 (en) | Contact Information Identification System |
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 |