Учитывая следующий исходный код C
#ifdef FOO
int bar = 1;
#endif
#if FOO == 0
int x = 0;
#elif FOO == 1
int x = 1;
#elif FOO == 2
int x = 2;
#endif
Я могу предварительно обработать исходный код (например, с помощью unifdef / coan ), как если бы FOO
был либо неопределенным, либо определенным вообще, либоопределяется как конкретное значение (coan -DFOO=1 ...
переписывает код как int bar = 1; int x = 1;
).
Однако для некоторых переменных, для которых я хочу выполнить предварительную обработку (например, _MSC_VER
), я не знаю точное значение,но я знаю, какие значения я хочу отфильтровать.В идеале я мог бы запустить coan -DFOO!=0
или coan -DFOO>0
, чтобы отбросить части, которые не совпадают, но сохранить #if
s, которые еще не могут быть оценены.
Существует ли какой-либо препроцессор, способный обрабатывать более сложные ограничения, подобные этому?