0

我正在从事一个涉及读取源代码文件、查找某些令牌的项目。(在我的例子中,我想确定一个 Objective-C 类是否实现了一个协议。)问题是,虽然我可以只扫描关键字的行,但它可能会显示在注释或字符串中。

处理这个的正确方法是什么?我需要标记整个文件并对其进行 lex 吗?有没有更简单的方法?

4

1 回答 1

0

您的问题是,当您逐行扫描文件时,您可能会匹配关键字,但它可以是注释的一部分?例如

/*
  keyword
*/

?

在这种情况下,如果您遇到评论,您可以将变量设置为 True,如果您找到评论的结尾,则将其设置回 False。如果您在变量为 False 时找到关键字,则您知道该关键字出现在代码中。以类似的方式,您可以检查 // 是否出现在同一行中。

'//' in currentLine
于 2013-10-02T15:45:11.770 回答