我遇到的情況,我有各種各樣的C++文件與一個特定的宏:拿起某些字符串型圖案的正則表達式
__EXTERNALIZE(Name, File)
這個宏是空的,它什麼都不做。但是我想編寫一個外部工具來掃描這個宏的一個或多個輸入文件,並在發現該文件後做一些事情。
爲了澄清,這裏是一個位僞-c中的:
typedef struct {
char* varname;
char* filename;
} MacroInfo_s;
FILE* fh = fopen("./source.cpp",'r');
while(read_untill_macro(fh) && !feof(fh)) {
MacroInfo_s m;
fill_macro_info(&m, fh);
// Do something with m.varname and m.filename
}
C++ 11不廣泛可用的。例如,VS 2010根本沒有提供它,這是我想在Windows端定位的最低端。在我的OS X 10.10上,一切都很好。這也是爲什麼我主要不想使用正則表達式,因爲我需要一個額外的庫。而這只是爲了對一些文件中的一個宏作出反應似乎有點矯枉過正。
什麼是一個很好的方法使這可能工作?
我不會用C++這一點,但一個腳本語言 – P0W
我會用'grep'。你能澄清你爲什麼要爲此寫一個工具嗎?看起來您的主要目的是識別包含此宏的源文件並可能將其刪除。 – paddy