我正在用 Bison 编写解析器,并且收到以下警告。
fol.y:42 parser name defined to default :"parse"
fol.y:61: warning: type clash ('' 'pred') on default action
我一直在使用谷歌搜索摆脱它们的方法,但几乎空手而归(更不用说如何修复它们了),因为我发现的每篇文章都有编译错误和警告他们自己没有得到解决。有人可以告诉我它们的含义以及如何解决它们吗?相关代码如下。第 61 行是最后一个分号。我删掉了其余的语法,因为它非常冗长。
%union {
char* var;
char* name;
char* pred;
}
%token <var> VARIABLE
%token <name> NAME
%token <pred> PRED
%%
fol:
declines clauses {cout << "Done parsing with file" << endl;}
;
declines:
declines decline
|decline
;
decline:
PRED decs
;