System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及代碼宏定義添加和自動生成的,特別是一種對宏定義內容的引用自動生成對應的宏判斷的方法及系統。
技術介紹
1、宏定義是高級語言編譯器提供的常用語法,其目的是利用某一標識符標識某個文本字符串。在編寫程序時,如果程序中反復地使用某個數據或某段程序片段,就可以考慮將這個數據或程序片段定義為宏,然后每個出現該數據或程序片段的地方用宏名替代。
2、選擇宏定義來做的好處是程序簡潔,可讀性好,而且當需要修改這些相同的程序片段時,只要修改宏定義中的字符串即可,不需要修改多處。
3、在游戲開發中經常需要根據不同的平臺或者不同插件版本定義不同的宏,并根據條件把不同的函數或者參數放在對應的宏定義中,因為定義在指定宏定義中的函數或者參數只有在相同的宏中調用,這樣在宏的區域中定義好函數或者參數之后需要在不同的調用的地方設置為相同的宏,這樣在編譯或者運行的時候才不會報錯,這樣需要手寫大量的宏判斷并且容易出錯。
技術實現思路
1、為克服上述問題,本專利技術的目的是提供一種對宏定義內容的引用自動生成對應的宏判斷的方法,能自動識別和添加宏定義條件判斷,節省了人力投入并減少了錯誤概率。
2、本專利技術采用以下方案實現:一種對宏定義內容的引用自動生成對應的宏判斷的方法,所述方法包括如下步驟:步驟s1、讀取游戲工程所有的代碼腳本;
3、步驟s2、遍歷讀取的所有的代碼腳本,根據宏定義的格式讀取所有的宏定義內的內容;
4、步驟s3、逐行遍歷所述宏定義內的內
5、步驟s4、遍歷游戲工程中所有代碼腳本對非宏定義中的代碼內容逐行判斷是否出現步驟3中宏定義的形參和函數名;否,不進行處理,是,則進入步驟s5;
6、步驟s5、判斷步驟4中出現宏定義的屬性名和函數名是否對宏定義內參數和函數調用;否,則不進行處理,結束流程,是,則進入步驟s6;
7、步驟s6、是對宏定義內參數和函數調用,則對宏定義內類屬性和類函數調用的代碼行加對應的宏判斷。
8、進一步的,所述步驟s3進一步具體為:逐行遍歷所述宏定義內的內容,根據類屬性定義的正則表達式讀取宏定義內定義的所有類屬性名,根據類函數定義的正則表達式讀取宏定義內定義的所有類的函數名及該函數對應的0個或者多個形參類型。
9、進一步的,所述步驟s5進一步具體為:外部腳本對宏定義內的參數或者函數調用以實例或者靜態調用,根據實例名字在腳本中其它出現位置的類名或者靜態類名,判斷該參數或者函數調用是否是宏定義內的函數或者參數,根據判斷進行對應處理。
10、進一步的,所述步驟s6進一步具體為:宏定義內的類屬性和類函數,是用來標識這類屬性和函數是設定宏條件下有效或者可調用,則是對宏定義內參數和函數調用時,要在調用所述宏定義內的類屬性和類函數的地方追加宏判斷,來防止不是設定宏定義條件下調用宏定義內的參數和函數,以免編譯和運行報錯。
11、本專利技術提供了一種對宏定義內容的引用自動生成對應的宏判斷的系統,所述系統包括:腳本讀取模塊、獲取宏定義內容模塊、獲取宏定義內容信息模塊、判斷模塊、調用處理模塊、增加宏判斷模塊;
12、所述腳本讀取模塊,讀取游戲工程所有的代碼腳本;
13、所述獲取宏定義內容模塊,遍歷讀取的所有的代碼腳本,根據宏定義的格式讀取所有的宏定義內的內容;
14、所述獲取宏定義內容信息模塊,逐行遍歷所述宏定義內的內容,根據參數和函數正則表達式,讀取宏定義內定義的所有屬性名、函數名和函數輸入對應的形參;
15、所述判斷模塊,遍歷游戲工程中所有代碼腳本對非宏定義中的代碼內容逐行判斷是否出現所述獲取宏定義內容信息模塊中宏定義的形參和函數名;否,不進行處理,是,則執行調用處理模塊;
16、所述調用處理模塊,判斷出現宏定義的屬性名和函數名是否對宏定義內參數和函數調用;否,則不進行處理,結束流程,是,則執行所述增加宏判斷模塊;
17、所述增加宏判斷模塊,是對宏定義內參數和函數調用,則對宏定義內類屬性和類函數調用的代碼行加對應的宏判斷。
18、進一步的,所述獲取宏定義內容信息模塊進一步具體為:逐行遍歷所述宏定義內的內容,根據類屬性定義的正則表達式讀取宏定義內定義的所有類屬性名,根據類函數定義的正則表達式讀取宏定義內定義的所有類的函數名及該函數對應的0個或者多個形參類型。
19、進一步的,所述調用處理模塊進一步具體為:外部腳本對宏定義內的參數或者函數調用以實例或者靜態調用,根據實例名字在腳本中其它出現位置的類名或者靜態類名,判斷該參數或者函數調用是否是宏定義內的函數或者參數,根據判斷進行對應處理。
20、進一步的,所述增加宏判斷模塊進一步具體為:宏定義內的類屬性和類函數,是用來標識這類屬性和函數是設定宏條件下有效或者可調用,則是對宏定義內參數和函數調用時,要在調用所述宏定義內的類屬性和類函數的地方追加宏判斷,來防止不是設定宏定義條件下調用宏定義內的參數和函數,以免編譯和運行報錯。
21、本專利技術的有益效果在于:本專利技術是對已有宏定義內的屬性和函數調用出自動化添加對應宏定義判斷,是對已有宏定義增加作用范圍,防止外部代碼調用不在宏定義條件內代碼引起報錯;本專利技術就是對宏定義內定義的屬性和函數在調用出匹配增加對應的宏判斷,使得定義和調用宏判斷類型一致,避免引起報錯。
本文檔來自技高網...【技術保護點】
1.一種對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述方法包括如下步驟:步驟S1、讀取游戲工程所有的代碼腳本;
2.根據權利要求1所述的對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述步驟S3進一步具體為:逐行遍歷所述宏定義內的內容,根據類屬性定義的正則表達式讀取宏定義內定義的所有類屬性名,根據類函數定義的正則表達式讀取宏定義內定義的所有類的函數名及該函數對應的0個或者多個形參類型。
3.根據權利要求1所述的對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述步驟S5進一步具體為:外部腳本對宏定義內的參數或者函數調用以實例或者靜態調用,根據實例名字在腳本中其它出現位置的類名或者靜態類名,判斷該參數或者函數調用是否是宏定義內的函數或者參數,根據判斷進行對應處理。
4.根據權利要求1所述的對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述步驟S6進一步具體為:宏定義內的類屬性和類函數,是用來標識這類屬性和函數是設定宏條件下有效或者可調用,則是對宏定義內參數和函數調用時,要在調用所述宏定義內的類屬性
5.一種對宏定義內容的引用自動生成對應的宏判斷的系統,其特征在于:所述系統包括:腳本讀取模塊、獲取宏定義內容模塊、獲取宏定義內容信息模塊、判斷模塊、調用處理模塊、增加宏判斷模塊;
6.根據權利要求5所述的對宏定義內容的引用自動生成對應的宏判斷的系統,其特征在于:所述獲取宏定義內容信息模塊進一步具體為:逐行遍歷所述宏定義內的內容,根據類屬性定義的正則表達式讀取宏定義內定義的所有類屬性名,根據類函數定義的正則表達式讀取宏定義內定義的所有類的函數名及該函數對應的0個或者多個形參類型。
7.根據權利要求5所述的對宏定義內容的引用自動生成對應的宏判斷的系統,其特征在于:所述調用處理模塊進一步具體為:外部腳本對宏定義內的參數或者函數調用以實例或者靜態調用,根據實例名字在腳本中其它出現位置的類名或者靜態類名,判斷該參數或者函數調用是否是宏定義內的函數或者參數,根據判斷進行對應處理。
8.根據權利要求5所述的對宏定義內容的引用自動生成對應的宏判斷的系統,其特征在于:所述增加宏判斷模塊進一步具體為:宏定義內的類屬性和類函數,是用來標識這類屬性和函數是設定宏條件下有效或者可調用,則是對宏定義內參數和函數調用時,要在調用所述宏定義內的類屬性和類函數的地方追加宏判斷,來防止不是設定宏定義條件下調用宏定義內的參數和函數,以免編譯和運行報錯。
...【技術特征摘要】
1.一種對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述方法包括如下步驟:步驟s1、讀取游戲工程所有的代碼腳本;
2.根據權利要求1所述的對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述步驟s3進一步具體為:逐行遍歷所述宏定義內的內容,根據類屬性定義的正則表達式讀取宏定義內定義的所有類屬性名,根據類函數定義的正則表達式讀取宏定義內定義的所有類的函數名及該函數對應的0個或者多個形參類型。
3.根據權利要求1所述的對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述步驟s5進一步具體為:外部腳本對宏定義內的參數或者函數調用以實例或者靜態調用,根據實例名字在腳本中其它出現位置的類名或者靜態類名,判斷該參數或者函數調用是否是宏定義內的函數或者參數,根據判斷進行對應處理。
4.根據權利要求1所述的對宏定義內容的引用自動生成對應的宏判斷的方法,其特征在于:所述步驟s6進一步具體為:宏定義內的類屬性和類函數,是用來標識這類屬性和函數是設定宏條件下有效或者可調用,則是對宏定義內參數和函數調用時,要在調用所述宏定義內的類屬性和類函數的地方追加宏判斷,來防止不是設定宏定義條件下調用宏定義內的參數和函數,以免編譯和運行報錯。
5.一種對宏定義內容的引用自動生...
【專利技術屬性】
技術研發人員:劉德建,鄭福淦,李佳,
申請(專利權)人:福建天晴數碼有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。