rozwijam kompilator za pomocą flex/bison. Mam to ostrzeżenie w wynikach kompilacji.ostrzeżenie kompilacja Bison
warning: type clash ('s' '') on default action
Każda pomoc proszę?
rozwijam kompilator za pomocą flex/bison. Mam to ostrzeżenie w wynikach kompilacji.ostrzeżenie kompilacja Bison
warning: type clash ('s' '') on default action
Każda pomoc proszę?
Wygląda na to, że jest on powiązany z deklaracją% tokena i% w źródle. bez linii źródłowej i związanego z nią tokena i deklaracji typu trudno ci pomóc.
Jeśli określisz expr typu val i definiujący token identyfikacyjny typu tptr
%{
#include "parser.h"
%}
%type <val> expr
%token <tptr> ID
Jeśli piszesz bez żubra akcji wyemituje ostrzeżenie
expr : ID;
warning: type clash ('tptr' 'val') on default action
Należy zauważyć, że poziom bizon Obecnie używam w tym przypadku drukowania nieco innego komunikatu.
foo.by:10.12:warning: type clash on default action : <tptr> != <val>
Aby rozwiązać to ostrzeżenie potrzeba wyraźnego działania:
expr : ID { $$ = some_conversion_code($1); }
@VGCE, więc co zrobią operatorzy, aby poprawić ostrzeżenie? Co powinno znaleźć się w akcji? – Har
Użyj definicji Unii do swĂłj podane znaki z lex.
To nie jest "kompilator", to "kompilator". –