【技术实现步骤摘要】
一种语言元素分析方法、装置、电子设备和存储介质
[0001]本公开涉及计算机
,尤其涉及一种语言元素分析方法、装置、电子设备和存储介质。
技术介绍
[0002]现有技术中的计算机程序可以是通过具体的编程语言编写的源代码。从源代码到执行需要经历预处理、编译、链接、运行等阶段。
[0003]编程语言包括多种元素,例如,类、变量、枚举、函数等基本元素。编程语言的元素可以简称为语言元素或语素。
[0004]现有技术中的语言元素可以有多种应用,但是从源代码中提取语言元素却比较难实现。
技术实现思路
[0005]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种语言元素分析方法、装置、电子设备和存储介质,以实现一种能够较为准确的从源代码中提取语言元素的方法。
[0006]本公开实施例提供了一种语言元素分析方法,包括:
[0007]获取预设编程语言的源代码文件,所述源代码文件包括多行源代码;
[0008]在所述多行源代码的每行源代码中添加行号;
[0009]识别添加有所述行号的所述多行源代码中的预设段落,并将所述多行源代码中的预设段落替换为第一预设标识;
[0010]在将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别所述多行源代码中的预设符号,并对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理;
[0011]确定所述单行化处理后的所述多行源代码中的语言元素。
[0012]本公开实施例 ...
【技术保护点】
【技术特征摘要】
1.一种语言元素分析方法,其特征在于,所述方法包括:获取预设编程语言的源代码文件,所述源代码文件包括多行源代码;在所述多行源代码的每行源代码中添加行号;识别添加有所述行号的所述多行源代码中的预设段落,并将所述多行源代码中的预设段落替换为第一预设标识;在将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别所述多行源代码中的预设符号,并对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理;确定所述单行化处理后的所述多行源代码中的语言元素。2.根据权利要求1所述的方法,其特征在于,识别所述多行源代码中的预设符号,并对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理,包括:识别所述多行源代码中相互关联的第一预设符号和第二预设符号,并将所述第一预设符号与所述第二预设符号之间的部分源代码、所述第一预设符号和所述第二预设符号调整在同一行。3.根据权利要求1所述的方法,其特征在于,识别所述多行源代码中的预设符号,并对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理,包括:识别所述多行源代码中的关键词、以及与所述关键词距离最近的第三预设符号,并将所述关键词与所述第三预设符号之间的部分源代码、所述关键词和所述第三预设符号调整在同一行。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:识别所述多行源代码中与所述第三预设符号相关联的第四预设符号,并在所述第四预设符号的下一行增加新的一行。5.根据权利要求4所述的方法,其特征在于,所述关键词与所述第三预设符号之间的部分源代码、所述关键词和所述第三预设符号调整在同一行之后得到的所述同一行的内容与所述新的一行的内容相同。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述关键词为目标关键词时,在所述第三预设符号和所述第四预设符号之间的每行源代码中增加第二预设标识。7.根据权利要求1所述的方法,其特征在于,确定所述单行化处理后的所述多行源代码中的语言元素,包括:通过正则表达式确定所述单行化处理后的所述多行源代码中的语言元素。8.根据权利要求1所述的方法,其特征在于,确定所述单行化处理后的所述多行源代码中的语言元素之后,所述方法还包括:将所述单行化处理后的所述多行源代码中的语言元素替换为第三标识;根据所述第三标识确定所述语言元素之间的关联关系。9.根据权利要求1-8任一项所述的方法,其特征在于,所述预设段落包括如下至少一种:长注释、短注释、字符串、原生字符串、字符。10.根据权利要求1-8任一项所述的方法,其特征在于,所述语言元素包括如下至少一
种:注解、类、变量、枚举、枚举项、函数。11.根据权利要求1所述的方法,其特征在于,确定所述单行化处理后的所述多行源代码中的语言元素之后,所述方法还包括:根据所述语言元素生成用户界面中的界面元素。12.根据权利要求11所述的方法,其特征在于,根据所述语言元素生成用户界面中的界面元素,包括:根据与注解相关联的类的成员函数生成所述用户界面中的按钮。13.根据权利要求11所述的方法,其特征在于,根据所述语言元素生成用户界面中的界面元素,包括:根据与注解相关联的变量...
【专利技术属性】
技术研发人员:徐非凡,
申请(专利权)人:北京字节跳动网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。