小编ArI*_*Ick的帖子

yacc - 字段类型不完整

当我的标记属于我定义的类型时,yacc似乎不喜欢.

在块中我的grammar(.y)文件的顶部%{ ... %},我包含一个定义以下结构的头文件:

typedef struct _spim_register {
    spim_register_type type; /* This is a simple enumeration, already defined */
    int number;              
} spim_register;
Run Code Online (Sandbox Code Playgroud)

在我的规则列表之前,我有:

%token AREG
...
%union {
struct _spim_register reg;
}
...
%type <reg> register AREG
Run Code Online (Sandbox Code Playgroud)

我明白了

错误:字段'reg'的类型不完整

%union尝试编译由bison生成的代码时,在子句中的行.在我的%union陈述中,尝试通过写入声明reg spim_register reg;给出错误:

unknown type name ‘spim_register’
Run Code Online (Sandbox Code Playgroud)

看起来有一些特别之处%union { ... },因为我能够在规则的操作中使用头文件中的数据结构.

c yacc bison

8
推荐指数
2
解决办法
4069
查看次数

标签 统计

bison ×1

c ×1

yacc ×1