警告野牛编译

发布于 2024-12-04 02:35:32 字数 104 浏览 1 评论 0原文

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

警告:在默认操作中输入冲突 ('s' '')

有什么帮助吗?

am developping a compiler using flex/bison.
I have this warning in my build output.

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

any help please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

玩套路吗 2024-12-11 02:35:32

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

It seems to be related to your %token and %type declaration in your source.
without the source line and the related token and type declaration it is difficult to help you.

If you specify an expr of type val and definer an ID token of type tptr

%{
#include "parser.h"
%}
%type <val> expr
%token <tptr> ID

If you write without any action bison will emit a warning

expr : ID;

warning: type clash ('tptr' 'val') on default action

Note that the bison level I am currently using print a slighty different message in this case.

foo.by:10.12:warning: type clash on default action : <tptr> != <val>

To fix this warning you need an explicit action:

expr : ID { $ = some_conversion_code($1); }

http://www.gnu.org/s/bison/manual/bison.html#Token-Decl

咿呀咿呀哟 2024-12-11 02:35:32

使用联合定义从 lex 中键入给定的标记。

Use the union definition to type your given tokens from lex.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文