gpt4 book ai didi

c - 使用 Bison/Yacc 在 %union def 中包含结构

转载 作者:太空狗 更新时间:2023-10-29 16:29:15 26 4
gpt4 key购买 nike

我试图将一个结构作为与 Bison union 的一部分,但我在 %union 中的“struct node args”上收到错误:

parser.y:17: error: field ‘args’ has incomplete type

代码:

struct node {
char * val;
struct node * next;
};

%}

%union {
char * string;
struct node args;
}

%token <string> CD WORD PWD EXIT

%type <args> arg_list

有人知道我做错了什么吗?

最佳答案

更好的是,使用带有“requires”选项的 %code 指令,即:

%code requires {
struct node {
char * val;
struct node * next;
};
}

%union {
char * string;
struct node args;
}

这将包括 tab.h 文件中“requires” block 中的代码以及解析器源文件。

来自文档:http://www.gnu.org/software/bison/manual/html_node/Decl-Summary.html#Decl-Summary

  • requires
    • Purpose: This is the best place to write dependency code required for YYSTYPE and YYLTYPE. In other words, it's the best place to define types referenced in %union directives, and it's the best place to override Bison's default YYSTYPE and YYLTYPE definitions.

关于c - 使用 Bison/Yacc 在 %union def 中包含结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com