Я знаю, что могу выбросить препроцессор, чтобы выплевывать вывод с опцией -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 или другие, пожалуйста, дайте мне знать.