limenuke
limenuke

Reputation: 53

SWIG error: Syntax Error in input(1)

I'm getting the Syntax Error in input(1) error for this line of code, in C when I do:

swig -python myfile.i in console.

It concerns the following code, specifically the last line of these typedefs.

typedef unsigned short WORD;    
typedef unsigned int DWORD;
typedef unsigned long long QWORD;
typedef unsigned char BYTE;     
typedef unsigned int bool; //<= THIS LINE OF CODE TRIGGERS THE ERROR.

As far as I know, bool is not defined in C so I would think swig would let this go with no issue. I compiled as c in VS 2010 and it was just fine.

Mark

Upvotes: 1

Views: 6366

Answers (1)

mu is too short
mu is too short

Reputation: 434945

C does have a bool type (actually a macro) but it is a C99 feature and you have to include stdbool.h to get bool; you only have _Bool if you don't include stdbool.h.

VS2010 doesn't support C99, it only supports C89 (AFAIK) so the typedef will work fine with that.

I'd guess that something somewhere is pulling in stdbool.h and that is messing up your typedef as it will look like this:

typedef unsigned int _Bool;

when the compiler sees it and the compiler won't like that at all.

Upvotes: 4

Related Questions