一种程序配置信息的获取方法和装置制造方法

文档序号:6521444阅读:110来源:国知局
一种程序配置信息的获取方法和装置制造方法
【专利摘要】本发明实施例公开了程序配置信息的获取方法和装置,应用于计算机【技术领域】。在本发明实施例的程序配置信息的获取方法中,可以将应用程序的源代码中的配置文件进行解析,并根据解析到的宏定义和宏条件表达式分别设置配置信息树的节点信息和分支节点信息,从而将得到的配置信息树统一输出,该配置信息树就可以表示应用程序的源代码文件中包括的各个配置项之间的关系。这样在查找各个功能对应配置项时,可以通过各个节点和分支节点上的信息来进行查找,和现有技术中各个配置项的内容在源代码文件中各自独立储存相比,本实施例的方法可以简化对于配置项的查找的过程。
【专利说明】一种程序配置信息的获取方法和装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及程序配置信息的获取方法和装置。
【背景技术】
[0002]在一个应用程序对应源代码目录中可以包括源文件和配置文件,在配置文件中包括该应用程序的多个配置项的内容,这里一个配置项可以表示该应用程序所能实现的一项功能。在对应用程序中各个功能进行更新和升级时,需要先在源代码文件中找到各个功能对应配置项的内容,然后再进行更新和升级的操作,但是现有技术中,一个应用程序各个配置项的内容在源代码文件中都是各自独立存放的,且格式不定,使得在查找各个功能对应配置项的内容时,比较繁琐且困难。

【发明内容】

[0003]本发明实施例提供程序配置信息的获取方法和装置,简化对于配置项的查找的过程。
[0004]本发明实施例提供一种程序配置信息的获取方法,包括:
[0005]确定应用程序的源代码目录中待操作的配置文件;
[0006]对所述配置文件进行解析,当解析到所述配置文件中的宏定义时,将所述宏定义储存到配置信息树中当前节点的内容信息中;
[0007]当解析到所述配置文件中的宏条件表达式时,根据所述宏条件表达式设置所述配置信息树中相关节点的分支节点。
[0008]将所述配置文件对应的配置信息树输出。
[0009]本发明实施例提供一种程序配置信息的获取装置,包括:
[0010]配置确定单元,用于确定应用程序的源代码目录中待操作的配置文件;
[0011]解析单元,用于对所述配置文件进行解析;
[0012]节点处理单元,用于当所述解析单元解析到所述配置文件中的宏定义时,将所述宏定义储存到配置信息树中当前节点的内容信息中;
[0013]分支节点处理单元,用于当所述解析单元解析到所述配置文件中的宏条件表达式时,根据所述宏条件表达式设置所述配置信息树中相关节点的分支节点;
[0014]输出单元,将所述配置文件对应的配置信息树输出。
[0015]在本发明实施例的程序配置信息的获取方法中,可以将应用程序的源代码中的配置文件进行解析,并根据解析到的宏定义和宏条件表达式分别设置配置信息树的节点的信息和分支节点的信息,从而将得到的配置信息树统一输出,该配置信息树就可以表示应用程序的源代码文件中包括的各个配置项之间的关系。这样在查找各个功能对应配置项时,可以通过各个节点和分支节点上的信息来进行查找,和现有技术中各个配置项的内容在源代码文件中各自独立储存相比,本实施例的方法可以简化对于配置项的查找的过程。【专利附图】

【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本发明实施例提供的一种程序配置信息的获取方法流程图;
[0018]图2是本发明实施例中程序配置信息的获取装置设置的配置信息树的示意图;
[0019]图3是本发明实施例提供的另一种程序配置信息的获取方法流程图;
[0020]图4是本发明实施例提供的一种程序配置信息的获取装置的结构示意图;
[0021]图5是本发明实施例提供的另一种程序配置信息的获取装置的结构示意图;
[0022]图6是本发明实施例提供的另一种程序配置信息的获取装置的结构示意图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]本发明实施例提供一种程序配置信息的获取方法,主要是从应用程序的源代码文件中获取,本实施例的方法是程序配置信息的获取装置所执行的方法,流程图如图1所示,包括:
[0025]步骤101,确定应用程序的源代码目录中待操作的配置文件,这里源代码目录是指储存应用程序的源代码的路径。
[0026]可以理解,一个应用程序的源代码目录中可以包括配置文件和源文件,其中配置文件中包括多个配置项的内容,而一个配置项可以表示该应用程序的一个功能项;源文件是实现应用程序的代码文件。程序配置信息的获取装置在执行本步骤时,可以以源代码目录中的配置根文件为起始点,查找源代码目录中包含指令(即#include)对应文件作为待操作的配置文件。为了简化对配置文件的处理时间,程序配置信息的获取装置可以先将没有用的文件先过滤掉,具体地,程序配置信息的获取装置在执行本步骤时,可以以源代码目录中的配置根文件为起始点,查找源代码目录中包含指令对应配置文件,并将包含指令对应文件中与预置文件相匹配的文件进行过滤,将过滤后的包含指令对应文件作为待操作的配置文件。其中,预置文件可以是没有用的文件,比如备份文件(以bak为后缀),代码版本控制文件(以CVS或svn为后缀)和系统库文件(以stdi0.h为后缀)等,配置根文件是用户指定的上述源代码目录中特定的一个配置文件。
[0027]进一步地,为了不会影响该应用程序的正常运行,程序配置信息的获取装置可以将确定的待操作的配置文件先储存到一个工作路径中,然后针对该工作路径中储存的配置文件进行如下步骤102到104的操作。
[0028]步骤102,对步骤101中确定的待操作的配置文件进行解析,当解析到配置文件中的宏定义时,则执行步骤103 ;当解析到配置文件中的宏条件表达式时,则执行步骤104。
[0029]程序配置信息的获取装置可以从配置根文件开始进行解析,先建立配置信息树的根节点,然后一边执行本步骤的解析,一边根据解析得到的结果创建该应用程序对应的配置信息树,其中每当解析到某一个宏条件表达式时,会进行节点的移动。其中解析到的宏定义是指定义一个宏,其关键字为“#define”,这里宏是一种编译预处理命令;宏条件表达式是指关于宏的条件关系式,主要可以包括但限于如下几种类型:进入一个新分支的第一表达式,其关键字可以为“#if”,“#ifdef ”,和“#ifndef ”等;退出当前分支并进入另一新分支的第二表达式,其关键字可以为“ #elif”和“ #else”等;退出当前分支但不进入另一新分支的第三表达式,其关键字为“#endif”。
[0030]步骤103,将宏定义储存到配置信息树中当前节点的内容信息中。如果该宏定义是在从配置根文件为起始点进行解析时,在解析到宏定义表达式之前就解析到的,则当前节点是配置根文件对应的根节点;如果该宏定义是当解析到某一宏条件表达式之后解析到的,则当前节点是该宏条件表达式对应的节点。
[0031]步骤104,根据宏条件表达式设置配置信息树中相关节点的分支节点。
[0032]具体地,可以根据不同宏条件表达式执行不同的操作,比如对于进入新分支的第一表达式,则程序配置信息的获取装置会在配置信息树的当前节点下建立第一子节点,并将第一表达式储存成第一子节点的标识信息,这里当前节点是指在该第一表达式之前所解析到的某一宏条件表达式对应的节点,或根节点;对于退出当前分支并进入另一新分支的第二表达式,则程序配置信息的获取装置会退出配置信息树的当前节点,回到父节点下建立第二子节点,并将第二表达式储存成第二子节点的标识信息,这里父节点是当前节点的父节点,这里的当前节点是指在该第二表达式之前所解析到的某一宏条件表达式对应的节点,或根节点;对于退出当前分支的第三表达式,则退出配置信息树的当前节点,这里的当前节点是指在该第三表达式之前所解析到的某一宏条件表达式对应的节点,或根节点。上述当前节点是随着根据解析 结果对配置信息树的设置和扩建而动态变化的,并不是指配置信息树中某一个固定的节点。
[0033]在具体实现的过程中,程序配置信息的获取装置在储存上述各个表达式为子节点的标识信息时,可以将表达式除去空格和操作符提取等简单处理后,得到表达式对应的关键字(key)和条件值(id)等信息进行储存。
[0034]例如,对于如下的配置文件的源代码:
[0035]
【权利要求】
1.一种程序配置信息的获取方法,其特征在于,包括: 确定应用程序的源代码目录中待操作的配置文件; 对所述配置文件进行解析,当解析到所述配置文件中的宏定义时,将所述宏定义储存到配置信息树中当前节点的内容信息中; 当解析到所述配置文件中的宏条件表达式时,根据所述宏条件表达式设置所述配置信息树中相关节点的分支节点。 将所述配置文件对应的配置信息树输出。
2.如权利要求1所述的方法,其特征在于,所述确定应用程序的源代码目录中待操作的配置文件,具体包括: 以所述源代码目录中的配置根文件为起始点,查找所述源代码目录中包含指令对应文件作为所述待操作的配置文件;或, 以所述源代码目录中的配置根文件为起始点,查找所述源代码目录中的包含指令对应文件,并将所述包含指令对应文件中与预置文件相匹配的文件进行过滤,将所述过滤后的包含指令对应文件作为所述待操作的配置文件; 所述配置根文件是所述源代码目录中某一配置文件。
3.如权利要求1所述的方法,其特征在于,所述根据所述宏条件表达式设置所述配置信息树中相关节点的分支节点,具体包括: 如果所述宏条件表达式中包括进入新分支的第一表达式,则在所述配置信息树的当前节点下建立第一子节点,并将所述第一表达式储存为所述第一子节点的标识信息; 如果所述宏条件表达式中包括退出当前分支并进入另一新分支的第二表达式,则退出所述配置信息树的当前节点,回到父节点下建立第二子节点,并将所述第二表达式储存为所述第二子节点的标识信息; 如果所述宏条件表达式中包括退出当前分支的第三表达式,则退出所述配置信息树的当前节点。
4.如权利要求1至3任一项所述的方法,其特征在于,所述将所述配置文件对应的配置信息树输出之前,还包括: 当解析到所述配置文件中的宏注释信息时,将所述宏注释信息储存到所述配置信息树中对应节点的同名宏的内容信息中; 当解析到所述配置文件中的删除宏定义时,在所述配置信息树中当前节点的内容信息中增加所述删除宏定义对应宏已被删除的信息。
5.如权利要求1至3任一项所述的方法,其特征在于,所述将所述配置文件对应的配置信息树输出之前,还包括: 当解析到所述配置文件中的文件包含指令,查找所述文件包含指令对应的文件,并暂停解析当前文件,开始解析所述查找到的文件。
6.如权利要求5所述的方法,其特征在于,所述查找所述文件包含指令对应的文件,具体包括: 如果所述文件包含指令对应的文件名是双引号方式的文件名,则在所述确定的待操作的配置文件中和所述文件包含指令所指定的路径中进行首次查找双引号中的文件名; 如果所述首次查找未查找到所述文件包含指令对应的文件,则在所述源代码目录中进行再次查找双引号中的文件; 如果所述文件包含指令对应的文件名是宏名称,则在所述配置信息树的当前节点对应的子节点的内容信息中查找所述宏名称。
7.一种程序配置信息的获取装置,其特征在于,包括: 配置确定单元,用于确定应用程序的源代码目录中待操作的配置文件; 解析单元,用于对所述配置文件进行解析; 节点处理单元,用于当所述解析单元解析到所述配置文件中的宏定义时,将所述宏定义储存到配置信息树中当前节点的内容信息中; 分支节点处理单元,用于当所述解析单元解析到所述配置文件中的宏条件表达式时,根据所述宏条件表达式设置所述配置信息树中相关节点的分支节点; 输出单兀,将所述配置文件对应的配置信息树输出。
8.如权利要求7所述的装置,其特征在于,所述配置确定单元包括查找单元,并将所述查找单元查找到的包含指令对应文件作为所述待操作的配置文件; 或所述配置确定单元包括查找单元和过滤单元,并将所述过滤单元过滤后的包含指令对应文件作为所述待操作的配置文件; 所述查找单元,用于以所述源代码目录中的配置根文件为起始点,查找所述源代码目录中包含指令对应文件,所述配置根文件是所述源代码目录中某一配置文件; 所述过滤单元,用于将所述查找单元查找的包含指令对应文件中与预置文件相匹配的文件进行过滤。
9.如权利要求7所述的装置,所述分支节点处理单元具体包括: 第一处理单元,用于如果所述宏条件表达式中包括进入新分支的第一表达式,则在所述配置信息树的当前节点下建立第一子节点,并将所述第一表达式储存为所述第一子节点的标识信息; 第二处理单元,用于如果所述宏条件表达式中包括退出当前分支并进入另一新分支的第二表达式,则退出所述配置信息树的当前节点,回到父节点下建立第二子节点,并将所述第二表达式储存为所述第二子节点的标识信息; 第三处理单元,用于如果所述宏条件表达式中包括退出当前分支的第三表达式,则退出所述配置信息树的当前节点。
10.如权利要求7至9任一项所述的装置,其特征在于,还包括: 注释处理单元,用于当所述解析单元解析到所述配置文件中的宏注释信息时,将所述宏注释信息储存到所述配置信息树中对应节点的同名宏的内容信息中; 删除处理单元,用于当所述解析单元解析到所述配置文件中的删除宏定义时,在所述配置信息树中当前节点的内容信息中增加所述删除宏定义对应宏已被删除的信息。
11.如权利要求7至9任一项所述的装置,其特征在于,还包括: 文件包含处理单元,用于当解析到所述配置文件中的文件包含指令,查找所述文件包含指令对应的文件,并暂停解析当前文件,开始解析所述查找到的文件。
12.如权利要求11所述的装置,其特征在于,所述文件包含处理单元具体包括: 第一查找单元,用于如果所述文件包含指令对应的文件名是双引号方式的文件名,则在所述确定的待操作的配置文件中和所述文件包含指令所指定的路径中进行首次查找双引号中的文件名;如果所述首次查找未查找到所述文件包含指令对应的文件,则在所述源代码目录中进行再次查找双引号中的文件; 第二查找单元,用于如果所述文件包含指令对应的文件名是宏名称,则在所述配置信息树的当前节点对应的子节点的内容信息中查找所述宏名称; 查找解析单元,用于解析所述第一查找单元或第二查找单元查找到的文件。
【文档编号】G06F17/30GK103646055SQ201310629039
【公开日】2014年3月19日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】肖文鲲, 辛奇俊, 叶大旺, 徐锦亮 申请人:广州视源电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1