[發明專利]腳本程序檢查方法和裝置有效
| 申請號: | 201210039605.2 | 申請日: | 2012-02-21 |
| 公開(公告)號: | CN103257919A | 公開(公告)日: | 2013-08-21 |
| 發明(設計)人: | 李偉德 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京中博世達專利商標代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518000 廣東省深*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 腳本 程序 檢查 方法 裝置 | ||
技術領域
本發明涉及軟件檢測技術領域,尤其涉及腳本程序檢查方法和裝置。
背景技術
Lua作為一個內部的軟件開發工具,其提供一種嵌入式的腳本編程語言,它簡潔、高效、可移植并且是輕量級的,被廣泛運用于游戲行業。游戲中的配置或者邏輯都可以用lua腳本語言進行編寫,用lua編寫游戲的邏輯,在需要修改其邏輯時,無需重新編譯整個程序代碼,甚至還可以使正在運行的游戲能夠實現不停機更新。
但是,由于多人協同開發或者開發人員疏忽等原因,在編寫過程中很難避免lua腳本語言中出現錯誤,包括語法錯誤、變量錯誤、函數錯誤等。一個游戲中使用的lua文件至少有幾十個,甚至上千個,因此,為了保證游戲的正常使用,在執行lua腳本語言之前,對lua腳本語言的錯誤檢查是十分必要的。
現有技術中,通過編譯器對lua腳本語言進行語法檢查,能夠檢查出lua腳本語言中的語法錯誤。
在實現上述腳本程序檢查的過程中,發明人發現現有技術中至少存在如下問題:Lua腳本語言的變量和函數的合法性在運行前從不檢查,只有在運行過程中當使用的時候才進行檢查。原因主要有以下兩點:
1.lua的變量默認為全局變量,并且可以分布在不同的文件中,或者同一文件的不同部分中,如果進行強制性檢查,則有違其作為腳本靈活的特點,另一方面,lua中的表變量,其結構可以動態定義或修改,這樣在腳本運行前根本無法判斷。
2.Lua的函數可以是用lua語言編寫的代碼,也可能是用其他語言(例如C語言)編寫的代碼,然后動態注冊到lua運行環境中,這樣也導致lua在運行前無法確定該函數是否存在。
而lua沒有對變量和函數的合法性進行檢查,往往使得游戲中的lua文件隱含一些關于變量和函數的錯誤。
發明內容
本發明的實施例提供一種腳本程序檢查方法和裝置,能夠在腳本程序集被執行之前進行變量的檢測,減小腳本程序在運行時出錯的可能性。
為達到上述目的,本發明的實施例采用如下技術方案:
一種腳本程序檢查方法,包括:
讀取待檢查腳本程序集中的每個待檢查腳本程序,所述待檢查腳本程序集包含至少一個所述待檢查腳本程序;
通過對所述待檢查腳本程序進行語法分析,構造出所述待檢查腳本程序集的全局變量表和局部變量表;
檢測每個所述全局變量和每個局部變量是否存在錯誤。
一種腳本程序檢查裝置,包括:
讀取單元,用于讀取待檢查腳本程序集中的每個待檢查腳本程序,所述待檢查腳本程序集包含至少一個所述待檢查腳本程序;
構造單元,用于通過對所述待檢查腳本程序進行語法分析,構造出所述待檢查腳本程序集的全局變量表和局部變量表;
第一檢測單元,用于檢測每個所述全局變量和每個局部變量是否存在錯誤。
本發明實施例提供的腳本程序檢查方法和裝置,讀取待檢查腳本程序集中的每個待檢查腳本程序,所述待檢查腳本程序集包含至少一個所述待檢查腳本程序;通過對所述待檢查腳本程序進行語法分析,構造出所述待檢查腳本程序集的全局變量表和局部變量表;檢測每個所述全局變量和每個局部變量是否存在錯誤。能夠在腳本程序集被執行之前進行變量的檢測,減小腳本程序在運行時出錯的可能性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種腳本程序檢查方法的流程圖;
圖2為本發明實施例提供的另一種腳本程序檢查方法的流程圖;
圖3為本發明實施例中進行函數拆分過程的示意圖;
圖4為本發明實施例中對函數拆分進行檢查的流程圖;
圖5為本發明實施例提供的一種腳本程序檢查裝置的結構圖;
圖6為本發明實施例提供的另一種腳本程序檢查裝置的結構圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210039605.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:苦苣水培營養液
- 下一篇:屋面穹頂圓弧結構制作方法





