任何人都可以指向一个从C源代码中去除字符串的程序吗?例如从C源代码中删除字符串
#include <stdio.h>
static const char *place = "world";
char * multiline_str = "one \
two \
three\n";
int main(int argc, char *argv[])
{
printf("Hello %s\n", place);
printf("The previous line says \"Hello %s\"\n", place);
return 0;
}
成为
#include <stdio.h>
static const char *place = ;
char * multiline_str = ;
int main(int argc, char *argv[])
{
printf(, place);
printf(, place);
return 0;
}
我所寻找的是一个程序非常喜欢stripcmt 只是我想要去除的字符串,而不是评论。
,我在寻找一个已经开发的程序,而不只是一些方便的正则表达式的原因是 因为当你开始考虑所有的情况(字符串中的引号,多行字符串等) 事情通常开始是(很多)比第一次出现更复杂。并且 有哪些RE可以实现的限制,我怀疑这个任务是不可能的。 如果你认为你有一个极其健壮的正则表达式随时提交,但请不要天真sed 's/"[^"]*"//g'
喜欢的建议。
(无需注释内(可能未端)字符串中的特殊的处理,那些将首先被删除)
支持具有嵌入式换行符多行字符串并不重要(不合法C),但必须支持跨越以\结尾的多行的字符串。
这几乎与someotherquestions一样,但我没有发现任何工具的参考。
纯粹是为了利益,为什么你需要这样的工具?换句话说,你将如何处理该工具的输出? – 2009-08-18 15:14:02
它用于令牌搜索。例如“在哪些文件中函数x,y和z叫”。通过预处理,删除评论和字符串我会得到一个准确的结果。目前这些琴弦正在产生噪音。 – hlovdal 2009-08-18 15:41:10
使用理解C的代码分析工具不是更好吗?有很多。 – 2009-08-18 16:17:57