Cómo resolver la advertencia de Bison "... no tiene tipo declarado"
Ejecutando Bison en este archivo:
<code>%{ #include <iostream> int yylex(); void yyerror(const char*); %} %union { char name[100]; int val; } %token NUM ID %right '=' %left '+' '-' %left '*' %% exp : NUM {$$.val = $1.val;} | ID {$$.val = vars[$1.name];} | exp '+' exp {$$.val = $1.val + $3.val;} | ID '=' exp {$$.val = vars[$1.name] = $3.val;} ; %% </code>
Conduce a advertencias del tipo de:
advertencia: $ de 'exp' no tiene un tipo declarado.
¿Qué significa y cómo lo resuelvo?