I wonder if at some point it would be better to adopt an already existing macro language like M4 instead of reinventing everything and adding a ton of features into the CPP.
m4 is filled with quirks of its own. I tried using it once for generating code in a language without macros, only to get bogged down in the opaque quoting rules. It's worse than the \expandafter soup you get in TeX macros.
Also, you'd have a hard time finding a pair of quote characters that don't conflict with C/C++ source code, since string literals can contain just about anything. Any general-purpose preprocessor should at least conform to the lexical rules of the target language.
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3307.htm
Also, you'd have a hard time finding a pair of quote characters that don't conflict with C/C++ source code, since string literals can contain just about anything. Any general-purpose preprocessor should at least conform to the lexical rules of the target language.