Faça bison reduzir para iniciar o símbolo somente se EOF for encontrado

Eu estou usando o Bison com Flex. Eu tenho a seguinte regra no meu arquivo de entrada Yacc:

program     : PROGRAM m2 declarations m0 block {cout << "Success\n"} ;

O problema é que, se eu tenho um programa que está parcialmente correto, mas depois há algum "lixo" antes do EOF, ele irá reduzir de acordo com a regra anterior, reportar "sucesso" e só então reportar um erro.

Eu quero incluir EOF no final da regra acima, mas, em seguida, Flex teria que retornar EOF quando lia<<EOF>>e como Bison saberia quando encerrar o programa? Agora, eu tenho isso no Flex:

<<EOF>>    {return 0;}

questionAnswers(1)

yourAnswerToTheQuestion