Exécution Bison sur ce fichier:Comment résoudre avertissement Bison "... n'a pas de type déclaré"
%{
#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;}
;
%%
Leads aux avertissements du genre de:
warning: $$ of 'exp' has no declared type.
Qu'est-ce que cela signifie et comment puis-je le résoudre?
+1: pour apparaître en premier lorsque googler 'erreur bison n'a pas déclaré type' – INS
Juste un petite clarté. J'ai '% union {int intValue; int floatValue; } 'mais cela ne me permet pas d'utiliser' $$. intValue' ou '$ 1.intValue'. Il dit 'error: demande de membre 'floatValue' dans quelque chose qui n'est pas une structure ou une union'. Pourquoi ça? – Shashwat