生成统一AST的方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:26375205 阅读:41 留言:0更新日期:2020-11-19 23:43
本公开提供了一种生成统一AST的方法、装置、计算机设备和存储介质,其中,生成统一AST的方法包括:获取待处理IDL文件;解析获取的待处理IDL文件得到所述IDL文件对应的AST;遍历解析得到的AST中包含的属性,根据预先定义的统一AST结构将当前遍历的属性转化为所述统一AST结构中对应的属性,所述统一AST结构中包含需要的属性及其依赖的属性。本公开实施例通过预先定义统一AST结构,且在定义的统一AST结构中过滤了不被需要的冗余信息,基于统一AST结构可以将不同类型的IDL文件转化为统一结构,基于统一AST实现各种自动化功能时,只需要开发和维护一套代码,能有效降低开发和维护成本。

【技术实现步骤摘要】
生成统一AST的方法、装置、计算机设备和存储介质
本专利技术公开涉及计算机
,具体而言,涉及一种生成统一AST的方法、装置、计算机设备和存储介质。
技术介绍
ApacheThrift和Protocolbuffers是目前最流行的RPC(远程过程调用,RemoteProcedureCall)框架,分别用Thrift文件和Proto文件来描述RPC接口。Thrift文件和Proto文件都属于IDL(接口描述语言,Interfacedescriptionlanguage)文件。IDL文件与编程语言无关,可以和各种编程语言建立映射关系。IDL文件不仅可以当成文档来协助沟通,还可以用来生成各种编程语言的接口代码。IDL文件虽然是为RPC接口而设计的,经过扩展之后也可以用来描述HTTP(超文本传输协议,HyperTextTransferProtocol)接口。经过扩展之后的IDL文件可以用来实现各种自动化功能,比如生成接口请求代码,生成接口模拟代码和生成自然语言版的接口文档。实现自动化的过程一般分为2步:首先根据IDL文件生成AST(本文档来自技高网...

【技术保护点】
1.一种生成统一AST的方法,其特征在于,包括:/n获取待处理接口描述语言IDL文件;/n解析获取的待处理IDL文件得到所述IDL文件对应的抽象语法树AST;/n遍历解析得到的AST中包含的属性,根据预先定义的统一AST结构将当前遍历的属性转化为所述统一AST结构中对应的属性,所述统一AST结构中包含需要的属性及其依赖的属性。/n

【技术特征摘要】
1.一种生成统一AST的方法,其特征在于,包括:
获取待处理接口描述语言IDL文件;
解析获取的待处理IDL文件得到所述IDL文件对应的抽象语法树AST;
遍历解析得到的AST中包含的属性,根据预先定义的统一AST结构将当前遍历的属性转化为所述统一AST结构中对应的属性,所述统一AST结构中包含需要的属性及其依赖的属性。


2.根据权利要求1所述的方法,其特征在于,统一AST结构中包括域名空间namespace、引用文件路径includes和语句statements。


3.根据权利要求2所述的方法,其特征在于,所述待处理IDL文件包括Thrift文件;以及
解析获取的待处理IDL文件得到所述IDL文件对应的抽象语法树AST,具体包括:
解析所述Thrift文件得到ThriftAST,其中,所述ThriftAST属性包括域名空间namespace、引用文件路径include和语句;以及
遍历解析得到的AST中包含的属性,根据预先定义的统一AST结构将当前遍历的属性转化为统一AST结构中对应的属性,具体包括:
遍历所述ThriftAST中包含的属性,将所述ThriftAST中的namespace转化为所述统一AST结构中的namespace;
将所述ThriftAST中的include转化为所述统一AST结构中的includes;
将所述ThriftAST语句中定义的类型转化为所述统一AST结构中statements定义的类型。


4.根据权利要求3所述的方法,其特征在于,如果所述ThriftAST中不包含namespace,则所述方法,还包括:
确定所述Thrift文件的绝对路径为所述统一AST结构中的namespace。


5.根据权利要求3所述的方法,其特征在于,所述ThriftAST语句中定义的类型包括共用体类型union;以及
将所述ThriftAST语句中定义的类型转化为所述统一AST结构中statements定义的类型,包括:
将所述ThriftAST语句中定义的union类型转化为所述统一AST结构中statements定义的struct类型。


6.根据权利要求3所述的方法,其特征在于,所述ThriftAST语句中定义的类型包括标识符类型identifier;所述identifier中包括文件名引用值;以及
将所述ThriftAST语句中定义的类型转化为所述统一AST结构中statements定义的类型,包括:
根据所述ThriftAST中的include,确定所述Thrift文件的引用文件;
解析获取的引用文件得到所述引用文件对应的ThriftAST;
根据所述引用文件对应的ThriftAST,确定引用文件的文件名和namespace的映射关系;
根据所述identifier中包括的文件名引用值以及确定出的引用文件的文件名和namespace的映射关系得到域名引用值。


7.根据权利要求2所述的方法,其特征在于,所述待处理IDL文件包括Proto文件;以及
解析获取的待处理IDL文件得到所述IDL文件对应的抽象语法树AS...

【专利技术属性】
技术研发人员:邬亮
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1