Как объявить & quot; структуру & quot; переменная в 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 выше. Если я поставлю struct перед этим, это нормально. И я должен поставить структуру перед каждым Node,

2.Если я изменю char в string в struct это показывает unknown type name ‘string’ тоже. кажется, я не могу использовать любой тип данных, кроме char, int.

редактировать: если я напишу 2 функции, возвращающие Node типа, это означает, что я должен поставить структуру перед ними, и это показывает, conflicting types ошибка.

Обновить: Я на самом деле скомпилировал свой код с C, поэтому он показал эти ошибки. Спасибо вам, ребята, за эти ответы ниже.

2

Решение

Для C это должно быть

struct Node *node;
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]