如何在 yacc 中声明"struct"变量
How to declare a "struct" variable in yacc
这是我在yacc中的代码:
%{
#include <stdio.h>
#include <stdbool.h>
%}
%code requires{
struct Node {
char* nodeValue;
struct Node* leftOperand;
struct Node* rightOperand;
char* nodeType;
};
}
%union {
char *string;
Node *node; <--- error here
}
1.我不知道为什么它显示错误:unknown type name ‘Node’
甚至我在上面声明了Node
。如果我把结构放在它前面,那就好了。而且我必须在每个Node
之前放置结构.
2.如果我在struct
中将char
更改为string
,它也会显示unknown type name ‘string’
。似乎我不能使用除字符、int 以外的任何类型的数据。
编辑:如果我编写 2 个返回 Node
类型的函数,这意味着我必须在它们之前放置结构,并且它显示conflicting types
错误。
更新:我实际上用 C 编译了我的代码,这就是它显示这些错误的原因。谢谢你们在下面的回复。
对于 C,它需要
struct Node *node;
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 你能重载对象变量名本身返回的内容吗
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 读取struct类型的循环中的变量
- 如何在 yacc 中声明"struct"变量
- 如何在类中使用变量类型 Struct
- 在变量定义中struct是什么意思?c++
- 在c++中使用struct关键字声明变量
- 带有位域成员变量的Struct
- 使用struct变量时的c++错误