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