When I compile my .y file with bison parser.y -d -t and then include the parser.tab.h file in my flex file, gcc says \"error: syntax error before numeric constant.\" It\'s r
Presumably BREAK is already defined somewhere in the flex output file, so after the preprocessor runs you are getting a statement like 99 = 258 or something. Try looking at the output of cpp yy.lex.c
or gcc -E yy.lex.c
. I looked at a flex output file but did not find BREAK anywhere in it, only YY_BREAK.
Is BREAK
defined somewhere else in your code? I get a similar error from the following toy example:
#define BREAK 10
enum yytokentype {
BREAK = 258
};
Build example:
$ cc -c file.c
file.c:4: error: expected identifier before numeric constant