Я знаю, что могу запустить препроцессор, чтобы он выдал результат с параметром -E
в моих конкретных обстоятельствах. Для сгенерированного кода этот вывод препроцессора убийственен. Например, у меня есть приложение 4gl, и Informix преобразует его в C, который, в свою очередь, превращается в ужасный уродливый беспорядок.
Мне нужен редактор, который позволит мне указать, какие значения препроцессора действуют, и показать мне только соответствующий код. У меня есть кое-что очень простое, работающее в Vim, сопоставляющее #ifdef
и #endif
, но код пронизан более сложными конструкциями, такими как #ifndef
, #if
и #else
. Что еще хуже, конструкции логически более сложны, и я не думаю, что мои навыки написания сценариев Vim достаточны для того, чтобы получить от них то, что я хочу. Например:
#if DLEVEL > 5
#define SIGNAL 1
#if STACKUSE == 1
#define STACK 200
#else
#define STACK 100
#endif
#else
#define SIGNAL 0
#if STACKUSE == 1
#define STACK 100
#else
#define STACK 50
#endif
#endif
#if DLEVEL == 0
#define STACK 0
#elif DLEVEL == 1
#define STACK 100
#elif DLEVEL > 5
display( debugptr );
#else
#define STACK 200
#endif
Включает определение оценщика выражений, если я хочу заняться этим. Это должна быть решенная проблема! Если у вас есть предложения по Vim или другие, пожалуйста, дайте мне знать.