[发明专利]一种抽象语法树重构方法及装置在审
申请号: | 202110343587.6 | 申请日: | 2021-03-30 |
公开(公告)号: | CN112860264A | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 徐克宝;杨丹;何旭敏;杨鹏宇 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 任默闻;王涛 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 抽象 语法 树重构 方法 装置 | ||
1.一种抽象语法树重构方法,其特征在于,包括:
根据一预设的抽象语法树,将该抽象语法树上的所有节点划分为第一节点和第二节点;所述第一节点为导入类节点,所述第二节点为非导入类节点;
根据第二节点与第一节点的引用关系,确定冗余的第一节点;
在所述抽象语法树中,将所有非冗余的第一节点置于所述第二节点之后,生成更新的抽象语法树。
2.根据权利要求1所述的抽象语法树重构方法,其特征在于,还包括:生成所述抽象语法树。
3.根据权利要求1所述的抽象语法树重构方法,其特征在于,根据一预设的抽象语法树,将该抽象语法树上的所有节点划分为第一节点和第二节点,包括:
遍历所述抽象语法树,将该抽象语法树上的每个节点各自标记为第一节点和第二节点中的一个。
4.根据权利要求1所述的抽象语法树重构方法,其特征在于,还包括:
将所有第一节点归入导入类集合,将所有第二节点归入非导入集合;
剔除所述导入类集合中冗余的第一节点;
所述将所有非冗余的第一节点置于所述第二节点之后,包括:
将剔除冗余之后的所述导入类集合置于所述非导入类集合的尾部。
5.根据权利要求1所述的抽象语法树重构方法,其特征在于,所述根据第二节点与第一节点的引用关系,确定冗余的第一节点,包括:
若一个第一节点未被所述第二节点引用,则将该第一节点确定为冗余的第一节点。
6.根据权利要求1所述的抽象语法树重构方法,其特征在于,还包括:根据所述更新的抽象语法树,生成清理后的源代码,具体步骤包括:
遍历更新的所述抽象语法树,得到所有节点;
根据所有节点生成源代码。
7.根据权利要求6所述的抽象语法树重构方法,其特征在于,所述抽象语法树包括类根节点、包名节点、外部类类节点以及类主体节点;所述根据所有节点生成源代码,包括:按照类别将类根节点、包名节点、外部类类节点以及类主体节点输出至字符流,生成所述源代码。
8.根据权利要求1所述的抽象语法树重构方法,其特征在于,还包括:将清理后的源代码覆盖至指定目录下。
9.一种抽象语法树重构装置,其特征在于,包括:
节点划分模块,根据一预设的抽象语法树,将该抽象语法树上的所有节点划分为第一节点和第二节点;所述第一节点为导入类节点,所述第二节点为非导入类节点;
冗余节点确定模块,根据第二节点与第一节点的引用关系,确定冗余的第一节点;
抽象语法树更新模块,在所述抽象语法树中,将所有非冗余的第一节点置于所述第二节点之后,生成更新的抽象语法树。
10.根据权利要求9所述的抽象语法树重构装置,其特征在于,还包括:抽象语法树生成模块,生成所述抽象语法树。
11.根据权利要求9所述的抽象语法树重构装置,其特征在于,根据一预设的抽象语法树,将该抽象语法树上的所有节点划分为第一节点和第二节点,包括:
遍历所述抽象语法树,将该抽象语法树上的每个节点各自标记为第一节点和第二节点中的一个。
12.根据权利要求9所述的抽象语法树重构装置,其特征在于,还包括:
集合生成模块,将所有第一节点归入导入类集合,将所有第二节点归入非导入集合;
冗余类剔除模块,剔除所述导入类集合中冗余的第一节点;
抽象语法树重构模块,所述将所有非冗余的第一节点置于所述第二节点之后,包括:
将剔除冗余之后的所述导入类集合置于所述非导入类集合的尾部。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110343587.6/1.html,转载请声明来源钻瓜专利网。