警告野牛汇编

Aym*_*dou 5 yacc lex bison

我正在使用flex/bison开发编译器.我的构建输出中有此警告.

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

有什么帮助吗?

VGE*_*VGE 8

它似乎与源中的%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