[发明专利]组件配置表的生成方法、装置、电子设备及存储介质在审
| 申请号: | 202110009515.8 | 申请日: | 2021-01-05 |
| 公开(公告)号: | CN112667223A | 公开(公告)日: | 2021-04-16 |
| 发明(设计)人: | 吴朝彬 | 申请(专利权)人: | 北京城市网邻信息技术有限公司 |
| 主分类号: | G06F8/33 | 分类号: | G06F8/33;G06F8/30;G06F8/41;G06F8/71 |
| 代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 吕俊秀 |
| 地址: | 100015 北京市朝阳区酒仙桥*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 组件 配置 生成 方法 装置 电子设备 存储 介质 | ||
1.一种组件配置表的生成方法,其特征在于,包括:
获取目标项目中的各个源码文件,并生成每个所述源码文件的抽象语法树;
针对任一所述源码文件的抽象语法树,基于白名单对所述抽象语法树中的节点进行过滤,得到目标节点;其中,所述白名单中包括至少一种类型标识;
获取每个所述目标节点的构造函数,并基于所述构造函数生成所述目标项目的组件配置表;其中,所述组件配置表中包含每个目标节点对应的键值对,所述键值表征所述目标节点的身份标识与实例化函数之间的对应关系,所述实例化函数在执行时通过调用所述目标节点的构造函数生成与所述目标节点对应的组件。
2.根据权利要求1所述的方法,其特征在于,所述针对任一所述源码文件的抽象语法树,基于白名单对所述抽象语法树中的节点进行过滤,得到目标节点的步骤,包括:
针对任一所述源码文件的抽象语法树,基于白名单中包含的类型标识,获取所述抽象语法树中所述类型标识下的节点,作为所述源码文件的第一节点,所述类型标识包括对象类型的类型标识、枚举类型的类型标识中的至少一种;
过滤掉所述第一节点中的无效节点,得到所述源码文件的目标节点;
其中,所述无效节点包括私有节点、抽象节点、隐式生成的节点、为测试使用的节点中的至少一种。
3.根据权利要求1或2所述的方法,其特征在于,所述目标项目包括Flutter框架、基于Flutter框架创建的flutter工程中的至少一种。
4.根据权利要求3所述的方法,其特征在于,在所述目标项目为Flutter框架的情况下,所述获取每个所述目标节点的构造函数,并基于所述构造函数生成所述目标项目的组件配置表的步骤,包括:
针对所述Flutter框架中的任一源码文件,获取所述源码文件下各个目标节点的构造函数,并基于所述构造函数生成所述源码文件的组件配置表;
根据每个所述源码文件隶属的数据包,对所述源码文件的组件配置表进行合并处理,将隶属于同一数据包的源码文件的组件配置表合并为一个组件配置表,得到所述Flutter框架的组件配置表。
5.根据权利要求4所述的方法,其特征在于,所述获取所述源码文件下各个目标节点的构造函数,并基于所述构造函数生成所述源码文件的组件配置表的步骤,包括:
获取所述目标节点的构造函数,并基于所述源码文件中包含的每个目标节点的所述构造函数生成所述源码文件的初始组件配置表;
获取与所述初始组件配置表适配的源码转换器,对所述初始组件配置表中的实例化函数进行编辑操作,获取所述源码文件最终的组件配置表;
其中,所述编辑操作包括添加引用的成员声明、添加导包引用、参数类型转换中的至少一种。
6.根据权利要求3所述的方法,其特征在于,在目标项目为基于Flutter框架创建的flutter工程的情况下,所述获取每个所述目标节点的构造函数,并基于所述构造函数生成所述目标项目的组件配置表的步骤,包括:
获取每个所述目标节点的构造函数,并基于所述构造函数生成所述目标项目的初始组件配置表;
获取与所述初始组件配置表适配的源码转换器,对所述初始组件配置表中的实例化函数进行编辑操作,获取所述目标项目最终的组件配置表;
其中,所述编辑操作包括添加引用的成员声明、添加导包引用、参数类型转换中的至少一种。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标项目下的每个组件配置表生成所述目标项目的配置清单,用于运行时检索并引用所述目标项目下的每个组件配置表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京城市网邻信息技术有限公司,未经北京城市网邻信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110009515.8/1.html,转载请声明来源钻瓜专利网。





