【技术实现步骤摘要】
一种编程语句转换方法、电子设备、存储介质
[0001]本专利技术涉及代码处理
,尤其是涉及一种编程语句转换方法、电子设备、存储介质。
技术介绍
[0002]相关技术中,goto跳转语句广泛存在于多种编程语言的编程语句体系,例如:过程结构化查询语言(Procedural Structured Query Language,PL/SQL)、C语言、C++、Golang等编程语言。goto跳转语句之所以应用如此广泛,是因为goto跳转语句具备跳转自由的特性,能够在语法结构内任意跳动,类似于汇编语言中的jump语句。然而,goto跳转语句跳转自由的特性也给代码编译器的优化和执行带来了危害,goto跳转语句的应用场景下,很容易打断中央处理器(Central Processing Unit,CPU)的预取指令流,从而降低代码的运行效率。
技术实现思路
[0003]本专利技术旨在至少解决现有技术中存在的技术问题之一。为此,本专利技术提出一种编程语句转换方法、电子设备、存储介质,能够对代码中的goto跳转语句进行转换, ...
【技术保护点】
【技术特征摘要】
1.一种编程语句转换方法,其特征在于,所述方法包括;根据原始代码构建目标语法树,所述目标语法树反映所述原始代码的语句结构;获取所述目标语法树中goto跳转语句所处位置的第一位置信息;根据所述第一位置信息,确定与所述goto跳转语句对应的目的跳转标签;获取所述目标语法树中标签定义语句所处位置的第二位置信息,所述标签定义语句用于定义所述目的跳转标签;根据所述第一位置信息与所述第二位置信息,从所述goto跳转语句的各级祖先节点位置中获取与所述标签定义语句同级别的起点位置信息;以第一位置信息作为终点位置信息,并根据所述起点位置信息与所述终点位置信息,从所述原始代码中划分得到待转换代码;将所述goto跳转语句替换为目的跳转语句,并根据所述目的跳转语句与所述待转换代码得到转换后的结果代码。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一位置信息与所述第二位置信息,从所述goto跳转语句的各级祖先节点位置中获取与所述标签定义语句同级别的起点位置信息,包括:根据所述第一位置信息,获取所述goto跳转语句在所述目标语法树中的第一类节点位置;根据所述第一类节点位置,确定所述goto跳转语句的所述各级祖先节点位置;根据所述第二位置信息,获取所述标签定义语句在所述目标语法树中的第二类节点位置;根据所述各级祖先节点位置与所述第二类节点位置,获取与所述标签定义语句同级别的所述起点位置信息。3.根据权利要求2所述的方法,其特征在于,所述根据所述各级祖先节点位置与所述第二类节点位置,获取与所述标签定义语句同级别的起点位置信息,还包括:当所述原始代码中包括两个以上所述goto跳转语句,确定各个所述goto跳转语句的所述各级祖先节点位置在所述目标语法树中的层级位置排布;基于所述层级位置排布,获取各个所述goto跳转语句在所述目标语法树中的共同祖先节点位置,并获取所述共同祖先节点位置中与所述标签定义语句同级别的所述起点位置信息。4.根据权利要求3所述的方法,其特征在于,所述起点位置信息包括跳转始节点位置,所述终点位置信息包括两个以上跳转终节点位置,所述以第一位置信息作为终点位置信息,并根据所述起点位置信息与所述终点位置信息,从所述原始代码中划分得到待转换代码,包括:将与所述标签定义语句同级别的所述共同祖先节点位置确定为所述跳转始节点位置;...
【专利技术属性】
技术研发人员:钟加武,
申请(专利权)人:中国平安人寿保险股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。