一种代码解析方法、装置、设备及介质制造方法及图纸

技术编号:33065809 阅读:43 留言:0更新日期:2022-04-15 09:56
为了解决代码解析准确度低,难以满足业务需求的问题,本申请提供了一种代码解析方法,包括:获取第一代码,该第一代码包括第一编程语言的变量和基于第二编程语言的代码,然后对第一代码中与第一编程语言的变量关联的第一表达式进行替换,得到符合第二编程语言的语法规则的第二代码,该第二代码包括第二表达式,接着对第二代码进行语法解析,得到第二代码的语法结构。该方法保留了原有编程语言的语法信息,因而具有较高的解析准确度,能够满足业务需求。需求。需求。

【技术实现步骤摘要】
一种代码解析方法、装置、设备及介质


[0001]本申请涉及应用开发
,尤其涉及一种代码解析方法、装置、设备以及计算机可读存储介质。

技术介绍

[0002]随着新的编程语言的产生,越来越多的开发人员采用两种或者两种以上的编程语言进行应用开发,以充分发挥不同编程语言的优势,提高开发效率。这种编程方式也称为混合语言编程。开发人员在进行混合编程时,可以基于不同编程语言编写代码,得到一个代码文件。
[0003]在许多场景中,例如进行相似度检测或代码编译时,开发人员需要对代码文件进行语法解析。编译器在对包括不同编程语言编写的代码的同一代码文件进行解析时,无法满足代码文件中所有代码的解析诉求。
[0004]为此,业界提出了一些解析方法。例如,开发人员可以将代码文件中的不同编程语言均转为中间语言,然后利用编译器对中间语言的代码进行解析。这种方法丢失了原有编程语言的语法信息,解析准确度较低,难以满足业务需求。业界亟需提供一种准确度较高的代码解析方法。

技术实现思路

[0005]本申请提供了一种代码解析方法,该方法通过对第一代本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种代码解析方法,其特征在于,所述方法包括:获取第一代码,所述第一代码包括第一编程语言的变量和基于第二编程语言的代码;对所述第一代码中与所述第一编程语言的变量关联的第一表达式进行替换,得到符合所述第二编程语言的语法规则的第二代码,所述第二代码包括第二表达式;对所述第二代码进行语法解析,得到所述第二代码的语法结构。2.根据权利要求1所述的方法,其特征在于,对所述第二代码进行语法解析后,所述方法还包括:根据所述第二代码中所述第二表达式与所述第一代码中所述第一表达式的映射关系,将所述第二代码的语法结构中的所述第二表达式替换为所述第一表达式,得到所述第一代码的语法结构。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述第一代码的语法结构生成语法树。4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一代码中包括所述第一表达式的特征信息,所述特征信息用于描述所述第一表达式与所述第二编程语言的关联关系;所述对所述第一代码中与所述第一编程语言的变量关联的第一表达式进行替换,包括:根据所述特征信息将所述第一代码中与所述第一编程语言的变量关联的第一表达式替换为符合所述第二编程语言的语法规则的第二表达式。5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一编程语言为高级程序语言,所述第二编程语言为低级程序语言。6.根据权利要求5所述的方法,其特征在于,所述对所述第一代码中与所述第一编程语言的变量关联的第一表达式进行替换,包括:根据与所述第一编程语言的变量关联的第一表达式的特征信息,将所述第一表达式替换为符合所述第二编程语言的语法规则的内存操作数、寄存器操作数或立即数。7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:通过图形用户界面向用户呈现代码文件中的代码;所述获取第一代码,包括:接收所述用户通过所述图形用户界面选择的第一代码。8.一种代码解析装置,其特征在于,所述装置包括:通信模块,用于获取第一代码,所述第一代...

【专利技术属性】
技术研发人员:徐珊珊乐永年鲍鹏吕志宏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1