我正在开发一个涉及阅读源代码文件,寻找某些令牌的项目。 (在我的情况下,我想确定一个Objective-C类是否实现了一个协议。)问题在于,虽然我可以只扫描关键字的行,但它可能会显示在注释或字符串中。
处理此问题的正确方法是什么?我是否需要将整个文件标记化并使其变为现实?有更简单的方法吗?
答案 0 :(得分:0)
您的问题是,当您逐行扫描文件时,您可能会匹配该关键字,但它可能是评论的一部分? 例如
/*
keyword
*/
在这种情况下,如果遇到注释,可以将变量设置为True,如果找到注释的结尾,则将其设置为False。如果在变量为False时找到关键字,则表示关键字出现在代码中。以类似的方式,您可以检查//是否出现在同一行中。
'//' in currentLine