%module enum_macro %inline %{ #if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) /* comma at end of enumerator list [-Werror=pedantic] */ #pragma GCC diagnostic ignored "-Wpedantic" #endif enum Greeks1 { #define GREEK1 -1 alpha1=1, beta1, theta1 }; enum Greeks2 { alpha2 = 2, #define GREEK2 -2 beta2, theta2 }; enum Greeks3 { alpha3, beta3, #define GREEK3 -3 theta3 }; enum Greeks4 { alpha4 = 4, beta4 = 5, theta4 = 6 #define GREEK4 -4 }; enum Greeks5 { #define GREEK5 -5 alpha5, beta5, }; enum Greeks6 { alpha6, #define GREEK6 -6 beta6, }; enum Greeks7 { alpha7, beta7, #define GREEK7 -7 }; enum Greeks8 { #define GREEK8 -8 theta8 }; enum Greeks9 { theta9 #define GREEK9 -9 }; enum Greeks10 { #define GREEK10 -10 theta10, }; enum Greeks11 { theta11, #define GREEK11 -11 }; typedef enum { theta12 = 0 #define GREEK12 -12 } Greeks12; %} enum Greeks13 { #define GREEK13 -13 }; /* Multiple macros */ %inline %{ enum Greeks14 { #define GREEK14a -14 #define GREEK14b -140 theta14, }; enum Greeks15 { alpha15 = 150, beta15 = 151, #define GREEK15a -150 #define GREEK15b -151 theta15 = 152, delta15 = 153 }; enum Greeks16 { alpha16 = 160, beta16 = 161, #define GREEK16a -160 #define GREEK16b -161 #define GREEK16c -162 theta16 = 162, delta16 = 163 }; enum Greeks17 { alpha17 = 170, beta17 = 171, theta17 = 172, delta17 = 173 #define GREEK17a -170 #define GREEK17b -171 #define GREEK17c -172 }; %}