stmt : expr {printf("%d\n",$1);} ; expr : expr '+' expr {$$ = $1 + $3;} | expr '-' expr {$$ = $1 - $3;} | INTEGER {$$ = $1;} ;
Когда STIMT-нетерминал выполняется Bison.Когда он видит, какой персонаж?
Предполагая, что это все правила из вашего ввода бизонов, нетерминальный символ stmt исполняется, как только достигается EOF (то есть: никаких дальнейших вводов и последний expr был уменьшен).
stmt
EOF
expr
Однако в вашей грамматике есть конфликты.