正在使用flex / bison开发编译器。 我的构建输出中有这个警告。
warning: type clash ('s' '') on default action
有什么帮助吗?
答案 0 :(得分:8)
它似乎与源中的%token和%type声明有关。 没有源代码行和相关的令牌和类型声明,很难帮助你。
如果指定类型为val的expr并定义类型为tptr
的ID标记%{
#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); }
答案 1 :(得分:0)
使用联合定义从lex中键入给定的标记。