предупреждение сборник зубров - PullRequest
5 голосов
/ 08 сентября 2011

Я разрабатываю компилятор, используя flex / bison. У меня есть это предупреждение в выводе моей сборки.

warning: type clash ('s' '') on default action

любая помощь, пожалуйста?

Ответы [ 2 ]

8 голосов
/ 14 декабря 2011

Похоже, это связано с вашим токеном% и объявлением типа% в вашем источнике. без исходной строки и соответствующего объявления токена и типа вам трудно помочь.

Если вы укажете expr типа val и определите токен идентификатора типа tptr

%{
#include "parser.h"
%}
%type <val> expr
%token <tptr> ID

Если вы напишите без каких-либо действий, бизон выдаст предупреждение

expr : ID;

warning: type clash ('tptr' 'val') on default action

Обратите внимание, что в настоящее время уровень бизона, которым я сейчас пользуюсь, напечатает немного другое сообщение.

foo.by:10.12:warning: type clash on default action : <tptr> != <val>

Чтобы исправить это предупреждение, вам нужно явное действие:

expr : ID { $$ = some_conversion_code($1); }

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

0 голосов
/ 05 июля 2012

Используйте определение объединения, чтобы набрать ваши лексемы из lex.

...