Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正确检查源代码文件(使用Python)_Python_Objective C_Lexical Analysis - Fatal编程技术网

正确检查源代码文件(使用Python)

正确检查源代码文件(使用Python),python,objective-c,lexical-analysis,Python,Objective C,Lexical Analysis,我正在做一个项目,它涉及到读取源代码文件,寻找某些标记。 (在我的例子中,我想确定Objective-C类是否实现了一个协议。)问题是,虽然我可以扫描行中的关键字,但它可能会显示在注释或字符串中 正确的处理方法是什么?我是否需要标记整个文件并对其执行lex操作?有没有更简单的方法?您的问题是,当您逐行扫描文件时,您可能会匹配关键字,但它可能是注释的一部分? 比如说 /* keyword */ ? 在这种情况下,如果遇到注释,可以将变量设置为True,如果找到注释的结尾,可以将变量设置回Fa

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


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

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

/*
  keyword
*/
?

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

'//' in currentLine

我想到了这一点,但如何处理字符串或包含所需关键字的变量?“//”不在currentLine中,而“myKeyword”在currentLine和noComment中,其中noComment=True如果不在/**/中,则您知道“myKeyword”嵌入在注释之外,您可以采取适当的操作。您如何处理字符串?我得到评论,但是字符串?