【技术实现步骤摘要】
一种代码变更方法以及装置本申请要求在2019年8月26日提交中华人民共和国知识产权局、申请号为201910792544.9、专利技术名称为“一种代码变更方法以及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及计算机
,尤其涉及一种代码变更方法以及装置。
技术介绍
在软件开发与维护过程中,有许多场景需要对软件代码进行变更,比如库升级后的软件代码更新或者对软件代码的格式进行变更。每个场景中对软件代码的变更也存在多种不同的变更类型。例如,在库升级的场景中,某个库函数的形式参数发生变化,此时需要对软件代码中该库函数的所有引用点的实际参数作更改,或者某个库函数的名称发生变化,此时需要将软件代码中该库函数的名称更改为变化后的库函数名称等等。又例如,对软件代码的格式进行更改的场景中,可能需要修改软件代码的缩进方式、对齐方式等。目前对软件代码的变更方式,仅是支持单一变更,即在对软件代码变更时,只能进行一种变更类型的变更。目前还没有一种能够对软件代码同时进行多种变更类型的变更方式。r>
技术实现思路
...
【技术保护点】
1.一种代码变更方法,其特征在于,该方法包括:/n获取用户输入的软件代码以及变更配置信息,所述变更配置信息包括所述软件代码中待变更的代码元素、所述待变更的代码元素的变更方式以及所述待变更的代码元素对应的变更后的代码元素;/n根据所述变更配置信息确定多个变更器以及所述多个变更器的调用顺序;/n按照所述多个变更器的调用顺序依次调用所述多个变更器,对所述软件代码进行变更;/n其中,每一个变更器用于对所述软件代码中的一种待变更的代码元素进行变更,所述多个变更器中第一个被调用的变更器的输入为所述软件代码,被所述第一个被调用的变更器变更后的软件代码被输入所述多个变更器中的另一个变更器。/n
【技术特征摘要】
20190826 CN 20191079254491.一种代码变更方法,其特征在于,该方法包括:
获取用户输入的软件代码以及变更配置信息,所述变更配置信息包括所述软件代码中待变更的代码元素、所述待变更的代码元素的变更方式以及所述待变更的代码元素对应的变更后的代码元素;
根据所述变更配置信息确定多个变更器以及所述多个变更器的调用顺序;
按照所述多个变更器的调用顺序依次调用所述多个变更器,对所述软件代码进行变更;
其中,每一个变更器用于对所述软件代码中的一种待变更的代码元素进行变更,所述多个变更器中第一个被调用的变更器的输入为所述软件代码,被所述第一个被调用的变更器变更后的软件代码被输入所述多个变更器中的另一个变更器。
2.如权利要求1所述的方法,其特征在于,所述根据所述软件代码的变更配置信息确定所述多个变更器的调用顺序,还包括:
若所述多个变更器中存在冲突的变更器,确定待变更的软件代码的变更模式为串行变更模式或部分串行部分并行变更模式。
3.如权利要求1或2所述的方法,其特征在于,所述多个变更器中的至少一个变更器包括直接变更内容和延迟变更内容;则,所述按照所述多个变更器的调用顺序依次调用所述多个变更器,对所述软件代码进行变更,包括:
调用所述至少一个变更器时,将所述直接变更内容应用在输入到所述至少一个变更器的软件代码中;
将所述延迟变更内容在所述多个变更器中最后一个变更器调用结束后应用。
4.如权利要求3所述的方法,其特征在于,在所述依次调用所述多个变更器之前,所述方法还包括:
基于所述多个变更器的调用顺序确定每个变更器的属性,每个变更器的属性用于描述每个变更器对所述软件代码中的目标行的变更的处理。
5.如权利要求3所述的方法,其特征在于,所述变更配置信息还包括每个变更器的属性,每个变更器的属性用于描述每个变更器对所述软件代码中的目标行的变更的处理。
6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:
根据所述至少一个变更器的属性,确定所述至少一个变更器的直接变更内容。
7.如权利要求6所述的方法,其特征在于,所述根据所述至少一个变更器的属性,确定所述至少一个变更器的直接变更内容,包括:
根据所述至少一个变更器的第一属性确定所述至少一个变更器的直接变更内容,所述至少一个变更器的第一属性用于描述对所述软件代码的第一目标行的变更保留或删除,所述第一目标行为所述至少一个变更器和所述至少一个变更器之前被调用的变更器对所述软件代码均执行了变更的。
8.如权利要求6或7所述的方法,其特征在于,根据所述至少一个变更器的属性,确定所述至少一个变更器的直接变更内容包括:
根据所述至少一个变更器的第二属性确定所述至少一个变更器的直接变更内容,所述至少一个变更器的第二属性用于描述对所述软件代码的第二目标行的变更保留或删除,所述第二目标行为所述至少一个变更器对所述软件代码执行了变更且和所述至少一个变更器之前调用的变更器对所述软件代码未执行变更的。
9.如权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
保存所述第一个被调用的变更器对所述软件代码的分析结果,所述分析结果中包括所述软件代码中各代码元素的位置;
所述多个变更器中的另一个变更器读取存储的所述分析结果,对所述软件代码进行变更。
10.如权利要求1至9任一所述的方法,其特征在于,所述方法还包括:
输出所述多个变更器对所述软件代码进行变更后生成的变更后的软件代码,并显示所述多个变更器对所述软件代码进行变更的变更位置以及变更的内容。
11.一种变更装置,其特征在于,该装置包括:
导入模块,用于获取用户输入的软件代码以及变更配置信息,所述变更配置信息包括所述软件代码中待变更的代码元素、所述待变更的代码元素的变更方式以及所述待变更的代码元素对应的变更后的代码元素;
配置模块,...
【专利技术属性】
技术研发人员:梁广泰,吴添勇,程啸,王泽宇,魏昭,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。