So lösen Sie die Bison-Warnung „… hat keinen deklarierten Typ“

Bison für diese Datei ausführen:

<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>

Führt zu Warnungen vor der Art von:

Warnung: $ von 'exp' hat keinen deklarierten Typ.

Was bedeutet es und wie löse ich es?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage