Uruchomione Bison na tego pliku:Jak rozwiązać ostrzeżenie Bison "... nie ma zadeklarowanego typu"
%{
#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;}
;
%%
prowadzi do ostrzeżenia rodzaju:
warning: $$ of 'exp' has no declared type.
Co to znaczy i jak mogę to rozwiązać?
+1: pierwszy na pojawiające się podczas googlowania 'bison błąd nie zadeklarował type' – INS
prostu mała klarowność. Mam '% union {int intValue; int floatValue; } 'ale nie pozwala mi używać' $$. intValue' lub '$ 1.intValue'. Mówi "błąd: żądanie dla członka" floatValue "w czymś, co nie jest strukturą lub związkiem'. Dlaczego tak? – Shashwat