2013-10-02 51 views
0

我正在研究涉及閱讀源代碼文件,尋找特定標記的項目。 (在我的例子中,我正在尋找確定一個Objective-C類是否實現一個協議)。問題是,雖然我只是掃描關鍵字的行,但它可能會顯示在註釋或字符串中。正確檢查源代碼文件(使用Python)

處理這個問題的正確方法是什麼?我是否需要標記整個文件並將其解壓?有更容易的方法嗎?

回答

0

您的問題是,當您逐行掃描文件時,您可能會匹配關鍵字,但它可以是評論的一部分? 例如

/* 
    keyword 
*/ 

在這種情況下,如果遇到註釋,您可以將變量設置爲True,如果發現註釋結束,則將其設置回False。如果在變量爲False的情況下找到關鍵字,則知道該關鍵字出現在代碼中。用類似的方法,你可以檢查//是否出現在同一行。

'//' in currentLine 
+0

我想到了這一點,但你如何處理字符串或包含所需關鍵字的變量? – Moshe

+0

'//'不在currentLine和'myKeyword'中currentLine和noComment ,其中 noComment = True如果不在裏面/ * */ 然後您知道'myKeyword'嵌入在註釋之外,您可以採取適當的操作。 – PhillipD

+0

你如何處理字符串?我收到評論,但字符串? – Moshe