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 <
#define SUPERMACRO(X,Y) #define X Y then SUPERMACRO(A,B) expands to #define A B
Macros can't expand into preprocessing directives. From C99 6.10.3.4/3 "Rescanning and further replacement":
The resulting completely macro-replaced preprocessing token sequence is not processed as a preprocessing directive even if it resembles one,