Struct the macro preprocess code, make it easy to read.