0
我正在研究涉及閱讀源代碼文件,尋找特定標記的項目。 (在我的例子中,我正在尋找確定一個Objective-C類是否實現一個協議)。問題是,雖然我只是掃描關鍵字的行,但它可能會顯示在註釋或字符串中。正確檢查源代碼文件(使用Python)
處理這個問題的正確方法是什麼?我是否需要標記整個文件並將其解壓?有更容易的方法嗎?
我正在研究涉及閱讀源代碼文件,尋找特定標記的項目。 (在我的例子中,我正在尋找確定一個Objective-C類是否實現一個協議)。問題是,雖然我只是掃描關鍵字的行,但它可能會顯示在註釋或字符串中。正確檢查源代碼文件(使用Python)
處理這個問題的正確方法是什麼?我是否需要標記整個文件並將其解壓?有更容易的方法嗎?
您的問題是,當您逐行掃描文件時,您可能會匹配關鍵字,但它可以是評論的一部分? 例如
/*
keyword
*/
?
在這種情況下,如果遇到註釋,您可以將變量設置爲True,如果發現註釋結束,則將其設置回False。如果在變量爲False的情況下找到關鍵字,則知道該關鍵字出現在代碼中。用類似的方法,你可以檢查//是否出現在同一行。
'//' in currentLine
我想到了這一點,但你如何處理字符串或包含所需關鍵字的變量? – Moshe
'//'不在currentLine和'myKeyword'中currentLine和noComment ,其中 noComment = True如果不在裏面/ * */ 然後您知道'myKeyword'嵌入在註釋之外,您可以採取適當的操作。 – PhillipD
你如何處理字符串?我收到評論,但字符串? – Moshe