%union { int ival; const char *sval; } %token NUM %nterm exp %token STR %nterm useless %left '+' '-' %left '*' %% exp: exp '+' exp | exp '-' exp | exp '*' exp | exp '/' exp | NUM ; useless: STR;