本發明專利技術提出了一種條件編譯預處理方法,所述方法包括:獲取待處理的原程序文本,對所述原程序文本進行分析,根據預設的正則表達式匹配出對應的關鍵字并輸出相應的標記,根據所述標記和預設的條件編譯語法規則匹配出相應的事件,根據當前狀態和所述事件確定相應的處理動作,根據確定的所述處理動作對所述原程序文本進行對應的處理,輸出處理后的目標程序文本。該方法使得使用解釋型語言開發時仍然可以使用條件編譯特性,不僅有利于減少了維護成本,而且有利于減少了資源消耗。此外,還提出了一種條件編譯預處理裝置。
【技術實現步驟摘要】
條件編譯預處理方法和裝置
本專利技術涉及計算機處理領域,特別是涉及一種條件編譯預處理方法和裝置。
技術介紹
傳統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
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。