В моем файле yacc есть такие вещи:
var_declaration : type_specifier ID ';'
| type_specifier ID '[' NUM ']' ';' ;
type_specifier : INT | VOID ;
ID, NUM, INT и VOID - это токены, возвращаемые из flex, поэтому у yacc нет проблем с их распознаванием. Проблема в том, что в вышеприведенном есть такие вещи, как '[' и ';'. Когда они распознаются flex, что должно быть возвращено в yacc?