它似乎与源中的%token和%type声明有关.没有源代码行和相关的令牌和类型声明,很难帮助你.
如果指定类型为val的expr并定义类型为tptr的ID标记
%{
#include "parser.h"
%}
%type <val> expr
%token <tptr> ID
Run Code Online (Sandbox Code Playgroud)
如果你在没有任何动作的情况下写下野牛会发出警告
expr : ID;
warning: type clash ('tptr' 'val') on default action
Run Code Online (Sandbox Code Playgroud)
请注意,我正在使用的野牛级别在这种情况下会打印略微不同的消息.
foo.by:10.12:warning: type clash on default action : <tptr> != <val>
Run Code Online (Sandbox Code Playgroud)
要修复此警告,您需要一个明确的操作:
expr : ID { $$ = some_conversion_code($1); }
Run Code Online (Sandbox Code Playgroud)
http://www.gnu.org/s/bison/manual/bison.html#Token-Decl