条件编译预处理方法和装置制造方法及图纸

技术编号:15638934 阅读:421 留言:0更新日期:2017-06-15 20:20
本发明专利技术提出了一种条件编译预处理方法,所述方法包括:获取待处理的原程序文本,对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记,根据所述标记和预设的条件编译语法规则匹配出相应的事件,根据当前状态和所述事件确定相应的处理动作,根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本。该方法使得使用解释型语言开发时仍然可以使用条件编译特性,不仅有利于减少了维护成本,而且有利于减少了资源消耗。此外,还提出了一种条件编译预处理装置。

【技术实现步骤摘要】
条件编译预处理方法和装置
本专利技术涉及计算机处理领域,特别是涉及一种条件编译预处理方法和装置。
技术介绍
传统POS应用开发普遍采用C语言进行开发,C语言使一种编译型高级语言,开发人员可以充分利用条件编译的特性,在同一个工程中支持多种软/硬配置,但是当应用在跨平台时必须分别生成各自平台下的版本,而且开发难度较大。解释型语言(比如,WMLScript)可以做到跨平台,而且相对C语言来说,开发难度较低,但是解释型语言不具有条件编译的特性。在典型的POS软件项目中,往往同一个项目需要支持多种配置,且这些机型应用逻辑差异并不大,有了条件编译就可以实现同一个工程支持不同配置,但是如果选择解释型语言作为开发语言,由于不具有条件编译功能,那么当一套应用要适用多种配置时,要么复制代码,各自建立工程,要么通过变量控制程序流程。而复制代码的做法会造成维护成本高,通过变量控制的做法会增加资源的消耗。因此,亟待需要提出一种使得解释型语言也能够实现条件编译的方法。
技术实现思路
基于此,有必要针对上述问题,提出一种轻量的使得解释型语言也能实现条件编译的条件编译预处理方法和装置。一种条件编译预处理方法,所述方法包括:获取待处理的原程序文本;对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记;根据所述标记和预设的条件编译语法规则匹配出相应的事件;根据当前状态和所述事件确定相应的处理动作;根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本。在其中一个实施例中,所述根据当前状态和所述事件确定相应的处理动作的步骤包括:根据当前状态和所述事件确定下一步状态;根据所述下一步状态确定相应的处理动作。在其中一个实施例中,所述根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本的步骤包括:将确定的所述处理动作添加到动作列表;根据所述动作列表对所述原程序文本执行对应的处理动作,输出处理后的目标程序文本。在其中一个实施例中,所述根据所述标记和预设的条件编译语法规则匹配出相应的事件的步骤还包括:根据所述标记和预设的条件编译语法规则进行匹配,当匹配到包含宏名称的条件语句时,向宏定义管理器查询与所述宏名称对应的定义及相应的值以进行条件判断,根据所述条件判断的结果匹配出相应的事件。在其中一个实施例中,所述对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记的步骤包括:对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字,记录所述关键字所在的行号,输出相应的标记和对应的行号;所述根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本的步骤包括:根据所述处理动作的类型和对应的行号执行对应的处理动作,输出处理后的目标程序文本。一种条件编译预处理装置,所述装置包括:获取模块,用于获取待处理的原程序文本;输出模块,用于对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记;匹配模块,用于根据所述标记和预设的条件编译语法规则匹配出相应的事件;确定模块,用于根据当前状态和所述事件确定相应的处理动作;处理模块,用于根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本。在其中一个实施例中,所述确定模块还用于根据当前状态和所述事件确定下一步状态,根据所述下一步状态确定相应的处理动作。在其中一个实施例中,所述处理模块还用于将确定的所述处理动作添加到动作列表,根据所述动作列表对所述原程序文本执行对应的处理动作,输出处理后的目标程序文本。在其中一个实施例中,所述匹配模块还用于根据所述标记和预设的条件编译语法规则进行匹配,当匹配到包含宏名称的条件语句时,向宏定义管理器查询与所述宏名称对应的定义及相应的值以进行条件判断,根据所述条件判断的结果匹配出相应的事件。在其中一个实施例中,所述输出模块还用于对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字,记录所述关键字所在的行号,输出相应的标记和对应的行号;所述处理模块还用于根据所述处理动作的类型和对应的行号执行对应的处理动作,输出处理后的目标程序文本。上述条件编译预处理方法和装置,通过对原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记,然后根据标记和预设的条件编译语法规则匹配出相应的事件,根据当前状态和事件确定相应的处理动作,然后根据确定的处理动作对原程序文本进行对应的处理,输出处理后的目标程序文本。该方法通过模拟条件编译的过程对原程序文本进行条件编译预处理,使得使用解释型语言开发时仍然可以使用条件编译特性,当需要适用多种配置时,通过使用该条件编译预处理方法不仅减少了维护成本,而且减少了资源消耗。附图说明图1为一个实施例中终端的内部结构框图;图2为一个实施例中条件编译预处理方法流程图;图3为一个实施例中根据当前状态和事件确定相应的处理动作的方法流程图;图4为一个实施例中根据确定的处理动作对原程序文本进行对应的处理,输出处理后的目标程序文本的方法流程图;图5为一个实施例中实现条件编译预处理的示意图;图6为一个实施例中条件编译预处理装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,终端102的内部结构如图1所示,包括通过系统总线连接的处理器、内存储器、非易失性存储介质、网络接口、显示屏和输入装置。其中,终端102的非易失性存储介质存储有操作系统,还包括一种条件编译预处理装置,该条件编译预处理装置用于实现一种条件编译预处理方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存储器为非易失性存储介质中的条件编译预处理装置的运行提供环境,该内存储器中存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种条件编译预处理方法。网络接口用于连接到网络进行通信。终端102的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是POS机、平板电脑、笔记本电脑、台式计算机等。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的移动终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如图2所示,在一个实施例中,提出了一种条件编译预处理方法,该方法包括:步骤202,获取待处理的原程序文本。在本实施例中,为了使得解释型语言(比如,WMLScript)也能够实现条件编译的特性,通过模拟C语言进行条件编译的功能,提出一种适用于解释型语言进行条件编译的预处理方法。其中,条件编译的本质可以简单的理解为:分析原程序文本,根据“指定条件”保留或删除某段代码,并输出处理后的程序文本,即根据指定条件从原程序文本中挑选出符合要求的目标程序文本。为了对原程序文本进行筛选,终端首先需要获取待处理的原程序文本,原本文档来自技高网...
条件编译预处理方法和装置

【技术保护点】
一种条件编译预处理方法,所述方法包括:获取待处理的原程序文本;对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记;根据所述标记和预设的条件编译语法规则匹配出相应的事件;根据当前状态和所述事件确定相应的处理动作;根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本。

【技术特征摘要】
1.一种条件编译预处理方法,所述方法包括:获取待处理的原程序文本;对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记;根据所述标记和预设的条件编译语法规则匹配出相应的事件;根据当前状态和所述事件确定相应的处理动作;根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本。2.根据权利要求1所述的方法,其特征在于,所述根据当前状态和所述事件确定相应的处理动作的步骤包括:根据当前状态和所述事件确定下一步状态;根据所述下一步状态确定相应的处理动作。3.根据权利要求1所述的方法,其特征在于,所述根据确定的所述处理动作对所述原程序文本进行对应的处理,输出处理后的目标程序文本的步骤包括:将确定的所述处理动作添加到动作列表;根据所述动作列表对所述原程序文本执行对应的处理动作,输出处理后的目标程序文本。4.根据权利要求1所述的方法,其特征在于,所述根据所述标记和预设的条件编译语法规则匹配出相应的事件的步骤还包括:根据所述标记和预设的条件编译语法规则进行匹配,当匹配到包含宏名称的条件语句时,向宏定义管理器查询与所述宏名称对应的定义及相应的值以进行条件判断,根据所述条件判断的结果匹配出相应的事件。5.根据权利要求1所述的方法,其特征在于,所述对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字并输出相应的标记的步骤包括:对所述原程序文本进行分析,根据预设的正则表达式匹配出对应的关键字,记录所述关键字所在的行号,输出相应的标记和对应的行号;所述根据确定的所述处理动作对所述原程序文本进行对应的处理...

【专利技术属性】
技术研发人员:涂钦魁
申请(专利权)人:百富计算机技术深圳有限公司
类型:发明
国别省市:广东,44

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

1