unifdef с ограничениями на основе неравенства - PullRequest
0 голосов
/ 09 июня 2018

Учитывая следующий исходный код 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, которые еще не могут быть оценены.

Существует ли какой-либо препроцессор, способный обрабатывать более сложные ограничения, подобные этому?

...