[发明专利]一种AltaRica模型中类的平展化方法有效
申请号: | 202010766061.4 | 申请日: | 2020-08-03 |
公开(公告)号: | CN111984233B | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | 胡军;祁健 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41;G06F8/52 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 陈月菊 |
地址: | 211016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 altarica 模型 平展 方法 | ||
1.一种AltaRica 3.0模型中类的平展化方法,其特征在于,所述平展化方法包括以下步骤:
S1,编写AltaRica 3.0的ANTLR语法文件,基于ANTLR 4工具生成词法分析器和语法分析器,获取抽象语法树;
S2,设计存放类信息的数据结构,包括保存关键信息的数据结构ClassInfo和保存完整信息的数据结构ClassCompleteInfo;
S3,遍历抽象语法树,将语法树中所有类的关键结点信息保存到MapString,ClassInfo中;
S4,对MapString, ClassInfo中的所有ClassInfo进行平展化操作;
S5,将MapString, ClassInfo中所有ClassInfo的信息完整化,将完整信息保存到MapString, ClassCompleteInfo中;
步骤S2中,所述数据结构ClassInfo用于保存语法树中的关键结点信息,所述数据结构ClassCompleteInfo在数据结构ClassInfo的基础上补充包括符号信息在内的其他信息,并对其中部分结点信息进行组合,以封装成完整的语句。
2.根据权利要求1所述的AltaRica 3.0模型中类的平展化方法,其特征在于,步骤S1中,所述编写AltaRica 3.0的ANTLR语法文件的过程还包括:
采用具体实例对编写的ANTLR语法文件进行优化和调整。
3.根据权利要求1所述的AltaRica 3.0模型中类的平展化方法,其特征在于,步骤S3中,所述遍历抽象语法树,将语法树中所有类的关键结点信息保存到MapString,ClassInfo中的过程包括以下步骤:
S31,将所有类名存放到ArrayList中;
S32,对所有类的语法分析树进行预遍历,当遍历到声明元素时,判断该声明元素的类型是否存在于ArrayList中,若存在,则该声明元素为对象,否则,则该声明元素为普通变量;
S33,遍历语法分析树,获取每个类中的所有关键结点信息,并保存到数据结构MapString,ClassInfo中,其中String存放类名,ClassInfo存放该类名对应的类的所有信息。
4.根据权利要求1所述的AltaRica 3.0模型中类的平展化方法,其特征在于,步骤S4中,所述对MapString, ClassInfo中的所有ClassInfo进行平展化操作的过程包括以下步骤:
根据类所包含的每个组成元素的类型对类进行平展化操作,平展化后的信息仍保存至数据结构MapString, ClassInfo中:
(1)对于扩展类,将每个类的所有父类信息拷贝到子类中;
(2)对于类中嵌套的其他类实例,将类实例对应的类的副本中所有已命名对象前添加上带有点后缀的实例名,然后将该副本信息拷贝到该类中;
(3)声明元素中的原子元素,以及转换和断言直接拷贝到类中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010766061.4/1.html,转载请声明来源钻瓜专利网。