У меня есть сценарий, где у меня есть различные файлы C++ с определенным макросом:Подобрав определенную строку шаблона без регулярных выражений
__EXTERNALIZE(Name, File)
Этот макрос пуст, он не делает ничего. Но я хочу написать внешний инструмент, который сканирует один или несколько входных файлов для этого макроса и что-то делать, когда он найдет это.
Чтобы уточнить, вот немного псевдо-с:
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 все в порядке. Вот почему я в основном не хочу использовать Regexp, так как мне нужна дополнительная библиотека. И это просто реагировать на один макрос в нескольких файлах кажется немного излишним.
Что было бы хорошим aproach, чтобы сделать это возможным?
Я бы не использовать C++ для этого, но язык сценариев – P0W
Я хотел бы использовать 'grep'. Можете ли вы объяснить, почему вы хотите написать инструмент для этого? Похоже, ваша основная цель - идентифицировать исходные файлы, содержащие этот макрос, и потенциально удалить его. – paddy