一种语言元素分析方法、装置、电子设备和存储介质制造方法及图纸

技术编号:33327307 阅读:67 留言:0更新日期:2022-05-08 09:06
本公开实施例公开了一种语言元素分析方法、装置、电子设备和存储介质。本公开通过获取预设编程语言的源代码文件,在该源代码文件包括的多行源代码的每行源代码中添加行号,该行号可作为辅助信息可以更好的区分每行源代码。另外在此基础上识别多行源代码中的预设段落,并将预设段落替换为第一预设标识,降低了预设段落对语言元素分析的影响。进一步,识别多行源代码中的预设符号,并对预设符号相关联的部分源代码进行单行化处理,使得同一个语言元素可以分布在同一行中,避免同一个语言元素分布在多行中而影响对语言元素的分析。进一步,在单行化处理后的多行源代码的基础上识别语言元素,实现了一种能够较为准确的从源代码中提取语言元素的方法。取语言元素的方法。取语言元素的方法。

【技术实现步骤摘要】
一种语言元素分析方法、装置、电子设备和存储介质


[0001]本公开涉及计算机
,尤其涉及一种语言元素分析方法、装置、电子设备和存储介质。

技术介绍

[0002]现有技术中的计算机程序可以是通过具体的编程语言编写的源代码。从源代码到执行需要经历预处理、编译、链接、运行等阶段。
[0003]编程语言包括多种元素,例如,类、变量、枚举、函数等基本元素。编程语言的元素可以简称为语言元素或语素。
[0004]现有技术中的语言元素可以有多种应用,但是从源代码中提取语言元素却比较难实现。

技术实现思路

[0005]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种语言元素分析方法、装置、电子设备和存储介质,以实现一种能够较为准确的从源代码中提取语言元素的方法。
[0006]本公开实施例提供了一种语言元素分析方法,包括:
[0007]获取预设编程语言的源代码文件,所述源代码文件包括多行源代码;
[0008]在所述多行源代码的每行源代码中添加行号;
[0009]识别添加有所述行号的所述多行源代码中的预设段落,并将所述多行源代码中的预设段落替换为第一预设标识;
[0010]在将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别所述多行源代码中的预设符号,并对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理;
[0011]确定所述单行化处理后的所述多行源代码中的语言元素。
[0012]本公开实施例还提供了一种语言元素分析方法,包括:
[0013]获取预设编程语言的源代码文件,所述源代码文件包括多行源代码;
[0014]在所述多行源代码的每行源代码中添加行号;
[0015]识别添加有所述行号的所述多行源代码中的预设段落,并将所述多行源代码中的预设段落替换为第一预设标识;
[0016]在将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别所述多行源代码中的预设符号,并对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理;
[0017]确定所述单行化处理后的所述多行源代码中的注解、以及与所述注解相关的语言元素;
[0018]在用户界面中显示与所述语言元素对应的界面元素。
[0019]本公开实施例还提供了一种语言元素分析装置,包括:
[0020]获取模块,用于获取预设编程语言的源代码文件,所述源代码文件包括多行源代码;
[0021]行号添加模块,用于在所述多行源代码的每行源代码中添加行号;
[0022]识别模块,用于识别添加有所述行号的所述多行源代码中的预设段落;
[0023]替换模块,用于将所述多行源代码中的预设段落替换为第一预设标识;
[0024]所述识别模块还用于:在所述替换模块将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别所述多行源代码中的预设符号;
[0025]处理模块,用于对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理;
[0026]确定模块,用于确定所述单行化处理后的所述多行源代码中的语言元素。
[0027]本公开实施例还提供了一种语言元素分析装置,包括:
[0028]获取模块,用于获取预设编程语言的源代码文件,所述源代码文件包括多行源代码;
[0029]行号添加模块,用于在所述多行源代码的每行源代码中添加行号;
[0030]识别模块,用于识别添加有所述行号的所述多行源代码中的预设段落;
[0031]替换模块,用于将所述多行源代码中的预设段落替换为第一预设标识;
[0032]所述识别模块还用于:在所述替换模块将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别所述多行源代码中的预设符号;
[0033]处理模块,用于对所述多行源代码中与所述预设符号相关联的部分源代码进行单行化处理;
[0034]确定模块,用于确定所述单行化处理后的所述多行源代码中的注解、以及与所述注解相关的语言元素;
[0035]显示模块,用于在用户界面中显示与所述语言元素对应的界面元素。
[0036]本公开实施例还提供了一种电子设备,所述电子设备包括:
[0037]一个或多个处理器;
[0038]存储装置,用于存储一个或多个程序;
[0039]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的语言元素分析方法。
[0040]本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的语言元素分析方法。
[0041]本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的语言元素分析方法,通过获取预设编程语言的源代码文件,在该源代码文件包括的多行源代码的每行源代码中添加行号,该行号可作为辅助信息可以更好的区分每行源代码。另外在此基础上识别多行源代码中的预设段落,并将预设段落替换为第一预设标识,由于预设段落可能较为冗长,而第一预设标识较为简短,因此,通过将预设段落替换为第一预设标识,可以降低预设段落对语言元素分析的影响。进一步,在将所述多行源代码中的预设段落替换为所述第一预设标识的基础上,识别多行源代码中的预设符号,并对预设符号相关联的部分源代码进行单行化处理,使得同一个语言元素可以分布在同一行中,避免同一个语
言元素分布在多行中而影响对语言元素的分析。进一步,在单行化处理后的多行源代码的基础上识别语言元素,从而实现了一种能够较为准确的从源代码中提取语言元素的方法。
附图说明
[0042]结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0043]图1为本公开实施例中的一种语言元素分析方法的流程图;
[0044]图2为本公开实施例中的另一种语言元素分析方法的流程图;
[0045]图3为本公开实施例中的一种应用场景的示意图;
[0046]图4为本公开实施例中的一种用户界面的示意图;
[0047]图5为本公开实施例中的另一种语言元素分析方法的流程图;
[0048]图6为本公开实施例中的另一种语言元素分析方法的流程图;
[0049]图7为本公开实施例中的一种语言元素分析装置的结构示意图;
[0050]图8为本公开实施例中的另一种语言元素分析装置的结构示意图;
[0051]图9为本公开实施例中的一种电子设备的结构示意图。
具体实施方式
[0052]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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所述的方法,其特征在于,根据所述语言元素生成用户界面中的界面元素,包括:根据与注解相关联的变量...

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

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

1