2011-09-08 13 views
5

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?

+1

Non è un "compilatore", è un "compilatore". –

risposta

7

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); } 

http://www.gnu.org/s/bison/manual/bison.html#Token-Decl

+0

@VGCE quindi cosa farebbe l'op per correggere l'avviso? Cosa dovrebbe andare in azione? – Har

0

Usa definizione l'unione di digitare i tuoi dati gettoni da lex.

Problemi correlati