我正在使用flex/bison开发一个编译器。我在我的构建输出中有这个警告。
warning: type clash ('s' '') on default action
有什么需要帮忙的吗?
发布于 2011-12-14 23:49:53
它似乎与源代码中的%token和%type声明有关。如果没有源码行以及相关的标记和类型声明,就很难对您有所帮助。
如果指定val类型expr并定义tptr类型的ID标记
%{
#include "parser.h"
%}
%type <val> expr
%token <tptr> ID如果您编写时没有任何动作,bison将发出警告
expr : ID;
warning: type clash ('tptr' 'val') on default action请注意,在本例中,我当前使用的bison级别打印的消息略有不同。
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
发布于 2012-07-05 22:50:29
使用联合定义从lex中键入给定的令牌。
https://stackoverflow.com/questions/7346293
复制相似问题