sto sviluppando un compilatore utilizzando flex/bison. Ho questo avviso nel mio output di build.avviso compilazione Bison
warning: type clash ('s' '') on default action
alcun aiuto per favore?
sto sviluppando un compilatore utilizzando flex/bison. Ho questo avviso nel mio output di build.avviso compilazione Bison
warning: type clash ('s' '') on default action
alcun aiuto per favore?
Sembra essere correlato al token% e alla dichiarazione del tipo% nella fonte. senza la riga di origine e il relativo token e la dichiarazione del tipo è difficile aiutarti.
Se si specifica un espr di tipo val e definitore un token ID di tipo tptr
%{
#include "parser.h"
%}
%type <val> expr
%token <tptr> ID
Se si scrive senza alcun bisonti azione emetterà un avviso
expr : ID;
warning: type clash ('tptr' 'val') on default action
Nota che il livello di bisonti Attualmente sto usando un messaggio leggermente diverso in questo caso.
foo.by:10.12:warning: type clash on default action : <tptr> != <val>
Per fissare l'avviso è necessario un'azione esplicita:
expr : ID { $$ = some_conversion_code($1); }
@VGCE quindi cosa farebbe l'op per correggere l'avviso? Cosa dovrebbe andare in azione? – Har
Usa definizione l'unione di digitare i tuoi dati gettoni da lex.
Non è un "compilatore", è un "compilatore". –