Part II: Macro preprocessor