Can you do something like this with a macro in C?
#define SUPERMACRO(X,Y) #define X Y then SUPERMACRO(A,B) expands to #define A B I have a feeling not because the preprocessor only does one pass.
Official gcc only. No third-party tools please.
No. The order of operations is such that all preprocessor directives are recognized before any macro expansion is done; thus, if a macro expands into something that looks like a preprocessor directive, it won't be recognized as such, but will rather be interpreted as (erroneous) C source text.
Sorry, you cannot. You can call other macros in macros but not define new ones.