预编译中模拟宏控的实现方法及装置制造方法及图纸

技术编号:10176673 阅读:150 留言:0更新日期:2014-07-02 16:36
本发明专利技术揭示了一种预编译中模拟宏控的实现方法及装置。该方法可包括:从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控后,将嵌套深度减一;判断所述嵌套深度是否大于零;当大于零时,返回上一步骤;否则,提取的待处理文件处理完毕。本发明专利技术的解释执行型语言中编译器在编译生成字节码之前,对代码本身进行类似于C语言等编译执行型语言中编译器的预编译处理,找到代码的合理宏控制分支,删除掉不必要的代码,达到精简代码,提高效率的目的。

【技术实现步骤摘要】
预编译中模拟宏控的实现方法及装置
本专利技术涉及到模拟宏控制的实现技术,特别是涉及到一种预编译中模拟宏控的实现方法及装置。
技术介绍
计算机语言分高级语言和低级语言,在最底层执行时,计算机只识别二进制的指令序列。高级语言一般有两种执行方式:编译执行和解释执行,Java语言采用的执行方式是解释执行,执行时需先编译成字节码,然后通过解释器解释执行;其相对于编译执行,执行效率比较低。另外Java由于设计时就不兼容其他类似于C等语言采用的预编译处理,对于多个项目共用代码的情况,代码兼容往往采取定义静态变量的方式,解释执行时需判断具体针对哪种情况运行,降低了执行效率,而且还提高了代码的维护难度。
技术实现思路
本专利技术的主要目的为提供一种预编译中模拟宏控的实现方法,可提升代码执行效率以及降低代码的维护难度。本专利技术提出一种预编译中模拟宏控的实现方法,包括:从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控后,将嵌套深度减一;判断所述嵌套深度是否大于零;当大于零时,返回上一步骤;否则,提取的待处理文件处理完毕。优选地,所述对提取的待处理文件处理完毕的步骤之后还包括:判断所述待处理文件列表中是否还有待处理文件未进行处理;当有未进行处理时,提取待处理文件完成处理步骤;否则,结束。优选地,所述读取宏控制开关配置文件的步骤之前还包括:备份提取的待处理文件。优选地,所述方法之前还包括:读取已配置的待处理文件列表。本专利技术还提出一种预编译中模拟宏控的实现装置,包括:分析获取模块,用于从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;宏控处理模块,用于读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控后,将嵌套深度减一;嵌套判断模块,用于判断所述嵌套深度是否大于零;在大于零时,通过宏控处理模块继续进行宏控处理;在等于零时,终止对提取的待处理文件处理。优选地,所述实现装置还包括:文件判断模块,用于判断所述待处理文件列表中是否还有待处理文件未进行处理;在有未进行处理时,提取待处理文件完成处理步骤;在没有时,终止处理。优选地,所述实现装置还包括:文件备份模块,用于备份提取的待处理文件。优选地,所述实现装置还包括:列表读取模块,用于读取已配置的待处理文件列表。本专利技术的模拟宏控的实现可符合C语言程序员宏控习惯,控制清晰;通过逐行处理找到代码的合理宏控制分支,删除掉不必要的代码,避免编译时代码冗余;还可去掉不必要的条件判断语句,提高执行效率;针对某些XML等文件因为配置上的少许差异不得不采用拷贝后修改,编译时覆盖的方式处理等问题,使用此种方式即可避免,从而避免文件拷贝冗余。附图说明图1是本专利技术预编译中模拟宏控的实现方法一实施例的步骤流程示意图;图2是本专利技术预编译中模拟宏控的实现方法另一实施例的步骤流程示意图;图3是本专利技术预编译中模拟宏控的实现方法另一实施例的另一步骤流程示意图;图4是本专利技术预编译中模拟宏控的实现方法又一实施例的步骤流程示意图;图5是本专利技术预编译中模拟宏控的实现方法一实施例的结构示意图;图6是本专利技术预编译中模拟宏控的实现方法另一实施例的结构示意图;图7是本专利技术预编译中模拟宏控的实现方法另一实施例的另一结构示意图;图8是本专利技术预编译中模拟宏控的实现方法又一实施例的结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,本专利技术提出一种预编译中模拟宏控的实现方法一实施例。该方法可包括:步骤S11、从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度后,将嵌套深度减一;步骤S12、读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控;步骤S13、判断所述嵌套深度是否大于零;当大于零时,返回上一步骤;否则,提取的待处理文件处理完毕。本实施例中解释执行型语言中编译器在编译生成字节码之前,对代码本身进行类似于C语言等编译执行型语言中编译器的预编译处理,找到代码的合理宏控制分支,删除掉不必要的代码,达到精简代码,提高效率的目的。参照图2,在本专利技术另一实施例中,上述步骤S11之前还可包括:步骤S10、读取已配置的待处理文件列表。首先,需读取已配置的包含若干待处理文件的待处理文件列表。并从该待处理文件列表中每次提取单个待处理文件进行初步词法分析,获取该单个待处理文件最大的嵌套深度(Max_Level)。参照图3,上述步骤S12之前还可包括:步骤S120、备份提取的待处理文件。在获取Max_Level后,即可备份该提取的单个待处理文件,以备后续再使用。在备份后,再读取宏控制开关配置文件,并逐行处理上述单个待处理文件最顶层的宏控(Top_Level)。在每次处理完最顶层的宏控后,可将最大的嵌套深度减一,即处理后的Max_Level=处理前的Max_Level-1,然后可判断上述处理后的Max_Level是否大于零;如果大于零,则可说明上述单个待处理文件的宏控未处理完成,需继续返回上述步骤S12,处理上述单个待处理文件的最顶层的宏控;否则,即可确定该单个待处理文件已经处理完毕,可结束对该单个待处理文件的处理。参照图4,在确定上述单个待处理文件处理完毕之后上述实现方法还可包括:步骤S14、判断所述待处理文件列表中是否还有待处理文件未进行处理;当有未进行处理时,返回步骤S11;否则,结束。在处理完上述单个待处理文件后,可继续判断上述待处理文件列表中是否还有未进行处理的待处理文件,即可再次提取单个待处理文件,重复上述步骤S11至S13,处理完成该再次提取的单个待处理文件。然后,再判断该待处理文件列表中是否还有未进行处理的待处理文件,如此循环,直至待处理文件列表中所有未进行处理的待处理文件处理完成。上述预编译中模拟宏控的实现方法,可应用于Java及XML(ExtensibleMarkupLanguage,可扩展标记语言)等文件,其模拟宏控的实现可符合C语言程序员宏控习惯,控制清晰;通过逐行处理找到代码的合理宏控制分支,删除掉不必要的代码,避免编译时代码冗余;还可去掉不必要的条件判断语句,提高执行效率;针对某些XML等文件因为配置上的少许差异不得不采用拷贝后修改,编译时覆盖的方式处理,使用此种方式即可避免,从而避免文件拷贝冗余。参照图5,本专利技术一种预编译中模拟宏控的实现装置20一实施例。该实现装置20可包括:分析获取模块21、宏控处理模块22以及嵌套判断模块23;该分析获取模块21,用于从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;该宏控处理模块22,用于读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控后,将嵌套深度减一;该嵌套判断模块23,用于判断所述嵌套深度是否大于零;在大于零时,通过宏控处理模块22继续进行宏控处理;在等于零时,终止对提取的待处理文件处理。本实施例中解释执行型语言中编译器在编译生成字节码之前,对代码本身进行类似于C语言等编译执行型语言中编译器的预编译处理,找到代码的合理宏控制分支,删除掉不必要的代码,达到精简代码,提高效率的目的。参本文档来自技高网...
预编译中模拟宏控的实现方法及装置

【技术保护点】
一种预编译中模拟宏控的实现方法,其特征在于,包括:从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控后,将嵌套深度减一;判断所述嵌套深度是否大于零;当大于零时,返回上一步骤;否则,提取的待处理文件处理完毕。

【技术特征摘要】
1.一种预编译中模拟宏控的实现方法,其特征在于,包括:从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;读取宏控制开关配置文件,并逐行处理所述提取的待处理文件的最顶层宏控后,将嵌套深度减一;其中,通过逐行处理找到代码的合理宏控制分支,删除掉不必要的代码,并去掉不必要的条件判断语句;判断所述嵌套深度是否大于零;当大于零时,返回上一步骤;否则,提取的待处理文件处理完毕。2.根据权利要求1所述的预编译中模拟宏控的实现方法,其特征在于,所述读取宏控制开关配置文件的步骤之前还包括:备份提取的待处理文件。3.根据权利要求1所述的预编译中模拟宏控的实现方法,其特征在于,所述方法之前还包括:读取已配置的待处理文件列表。4.一种预编译中模拟宏控的实现装置,其特征在于,包括:分析获取模块,用于从待处理文件列表中提取待处理文件进行初步分析,并获取宏最大的嵌套深度;宏控处理模块,用于读...

【专利技术属性】
技术研发人员:刘宏良
申请(专利权)人:上海鼎为电子科技集团有限公司
类型:发明
国别省市:上海;31

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

1