%module xxx /* Test preprocessor comments and their effect on line number reporting on later errors */ #define A1 1234 #define A2 1234 /*C comment*/ #define A3 1234 %constant int aaa=; #define B1 1234 #define B2 1234 //C++ comment #define B3 1234 %constant int bbb=; #define C1 1234 #define C2 1234 /*multiline C comment */ #define C3 1234 %constant int ccc=; #define D1 1234 #define /*C Comment*/ D2 1234 #define D3 1234 %constant int ddd=; #define E1 1234 // This case doesn't actually work, but appeared to before we gave an error // for unknown preprocessor directives. // #/*C comment*/define E2 1234 #define E3 1234 %constant int eee=; #define F1 1234 #define F2 1234 \ // C comment #define F3 1234 %constant int fff=; // Test macro ending in /, that is not a C comment terminator #define G1 1234 #define G2 1234 / #define G3 1234 %constant int ggg=; // Bad binary and octal constants %constant int badbin = 0b121; %constant int badoct = 018118055; // Bad octal escape sequences. %constant char * badbinstring = "\400"; %constant char badbinchar = '\777'; // SWIG < 4.3.0 used to allow a bitfield width here, which makes no sense. %constant int colon_not_allowed : 3; %constant short (Funcs::*pmf)(bool) const : 1;