[發明專利]LPC靜態代碼檢查方法、裝置和系統有效
| 申請號: | 201510836869.4 | 申請日: | 2015-11-25 |
| 公開(公告)號: | CN105404584B | 公開(公告)日: | 2018-12-11 |
| 發明(設計)人: | 汪承佳 | 申請(專利權)人: | 廣州博冠信息科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳新創友知識產權代理有限公司 44223 | 代理人: | 江耀純 |
| 地址: | 510663 廣東省廣州市天*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | lpc 靜態 代碼 檢查 方法 裝置 系統 | ||
本發明公開了一種LPC靜態代碼檢查方法、裝置和系統,所述方法包括:獲取待檢查的LPC文件及公用頭文件;利用預先生成的詞法分析器和語法分析器對待檢查的LPC文件及公用頭文件進行詞法分析和語法分析,并構建所述LPC文件的抽象語法樹;遍歷所述抽象語法樹,從所述LPC文件中提取需要檢查的程序關鍵信息;其中,所述程序關鍵信息為預先設定的LPC信息類;對所述程序關鍵信息進行預處理;利用所述詞法分析器和所述語法分析器對預處理后的程序關鍵信息進行詞法分析和語法分析。采用本發明可實現完全脫離于游戲客戶端的LPC靜態代碼檢查,對LPC代碼的不同問題進行針對性的檢查,采用不同的檢查策略,提高代碼檢查的效率。
技術領域
本發明涉及軟件測試領域,尤其涉及一種LPC靜態代碼檢查方法和裝置。
背景技術
靜態代碼檢查是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流分析等技術對程序代碼進行掃描,驗證代碼是否滿足規范性、安全性、可靠性、可維護性等指標的一種代碼分析技術。靜態代碼檢查對于一個游戲項目來說是必要的,靜態代碼檢查能夠發現編譯器不能發現的問題,也可以自定義一些檢查規范,來檢查代碼編寫中不規范、存在安全隱患的地方。
LPC全稱Lars PensjǒC,是由Lars Pensjǒ在1989年根據C語言開發的編程語言,主要是用來編寫MUD游戲,使用LPC語言開發的MUD游戲被稱為LPMUD。
現有的對LPC代碼進行靜態代碼檢查方法主要為基于游戲客戶端的LPC靜態代碼檢查方法,該方法主要檢查LPC代碼中函數調用問題,檢查時依賴于游戲客戶端,在游戲運行過程中,通過LPC語言編寫分析代碼提取出文件的所有函數調用,然后通過分析頭文件替換函數調用中的宏定義,最后借助游戲引擎提供的函數查詢接口,完成函數調用問題的檢查。
發明內容
上述現有技術主要存在以下缺點:
首先,該方法必須依賴于游戲客戶端才能運行,如果需要檢查其他分支的代碼就必須關服并且重新編譯,使用起來非常不方便。此外,該方法檢查的問題比較單一,只能檢查LPC語言中的函數調用問題。
本發明實施例的目的在于提供了一種LPC靜態代碼檢查方法、裝置和系統,實現完全脫離于游戲客戶端的LPC靜態代碼檢查,對LPC代碼的不同問題進行針對性的檢查,提高代碼檢查的效率。
為了實現上述目的,本發明實施例提供了一種LPC靜態代碼檢查方法,包括:
獲取待檢查的LPC文件及公用頭文件;
利用預先生成的詞法分析器和語法分析器對待檢查的LPC文件及公用頭文件進行詞法分析和語法分析,并構建所述LPC文件的抽象語法樹;
遍歷所述抽象語法樹,從所述LPC文件中提取需要檢查的程序關鍵信息;其中,所述程序關鍵信息為預先設定的LPC信息類;
對所述程序關鍵信息進行預處理;
利用所述詞法分析器和所述語法分析器對預處理后的程序關鍵信息進行詞法分析和語法分析。
優選地,在所述利用預先生成的詞法分析器和語法分析器對待檢查的LPC文件及公用頭文件進行詞法分析和語法分析之前,還包括:
根據預先編寫的LPC語法描述文件利用語言識別工具ANTLR生成所述詞法分析器和所述語法分析器。
優選地,所述遍歷所述抽象語法樹,從所述LPC文件中提取需要檢查的程序關鍵信息,具體為:
在對所述LPC文件進行語法分析并構建抽象語法樹的過程中,遍歷所述抽象語法樹,從所述LPC文件中提取需要檢查的程序關鍵信息。
優選地,所述程序關鍵信息包括函數定義、函數聲明、宏定義函數和引擎函數中的一種或多種組合。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州博冠信息科技有限公司,未經廣州博冠信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510836869.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于異山梨糖醇的聚碳酸酯的穩定化
- 下一篇:用于頭發造型的配件





