Макрос YY_PROTO предназначен только для поддержки старого стандартного C без поддержки прототипов. Вам будет сложно найти компилятор, который не поддерживает это сегодня. Это означает, что в качестве первого шага отладки вы можете попытаться полностью удалить его, так как хотите использовать прототипы, т.е. измените lex.yy.c на следующее:
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap ( void );
#else
extern int yywrap ( void );
#endif
#endif
Я знаю, что lex.yy.c является сгенерированным файлом, так что это не будет постоянное исправление, но оно должно как минимум подтвердить, что проблема связана с определением YY_PROTO.