Включайте структуру в %union определение с Bison/Yacc

стог сена может содержать материалы, один тип материала является средством поиска иглы, что-то, что ответственно за поиск средства поиска материала, может принять груду материалов как источник того, где найти вещь, средство поиска может также принять описание материала вещи, которую это должно найти

так, предпочтительно, для гибкого решения, как которое Вы сделали бы что-то: интерфейс IStuff

Стог сена = IList< IStuff> Игла: средство поиска IStuff

.Find (IStuff stuffToLookFor, IList< IStuff> stuffsToLookIn)

В этом случае, Ваше решение не будет связано только с иглой и стогом сена, но это применимо для любого типа, которые реализуют интерфейс

поэтому, если Вы хотите найти Рыбу в Океане, Вы можете.

var заканчивается = Средство поиска. Найдите (рыба, океан)

18
задан Kyle Brandt 16 September 2009 в 01:01
поделиться

1 ответ

It comes down to the lame y.tab.h output you get.

You need to fix this by ensuring that "struct node" is defined before you include y.tab.h anywhere.

To do this create a file node.h with the struct definition.

Then include node.h before y.tab.h in your parser.l file, parser.y file as well as any c files you have which include y.tab.h. This is a little annoying.

Alternatively you could change "struct node args" to "struct node* args" since you would not need to know the full type until you go to use it somewhere. Not sure if this would fit with your code.

Either one should work.

15
ответ дан 30 November 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: