У меня есть программа на С++, которая обрабатывает входной файл. Я хочу добавить возможность предварительной обработки в свою программу. То есть входной файл выглядит так:
%pre-processing section
#include <some_parent_file>
#define x y
#ifdef 0
some useless text
#endif
%actual file-contents
... lots of text ...
Затем моя программа должна автоматически включать текст из родительского файла, выполнять #define и другую предварительную обработку. Я мог бы использовать сценарий (с g++ -E) перед вызовом моей программы, но я хотел бы иметь возможность сделать это в своей программе, поскольку это обеспечивает большую гибкость.
Также «g++ -E» будет предполагать директиву препроцессора, когда строки в разделе «фактическое содержимое файла» начинаются с хэша (g++ -E не знает, что я хочу разделить свой код на 2 раздела!).
Более того, если бы я мог использовать просто функциональность ifdef в разделе "фактическое содержимое файла", это было бы потрясающе.
Могу ли я внедрить код C++ в свою программу, чтобы использовать только те функции, которые мне нужны от возможностей предварительной обработки компилятора gcc?
#if
,#else
,#elif
и#endif
, а также добавил базовую булевскую поддержку для&&
и||
.#include
было бы тривиально.#define
было бы сложно в зависимости от того, насколько сложным может быть ваш ввод. - person Jim Buck   schedule 01.12.2011