Include struct in the %union def with Bison/Yacc

后端 未结 3 1508
暖寄归人
暖寄归人 2020-12-05 11:10

I am trying to include a struct as part of the union with Bison, but I get an error on the \'struct node args\' in %union:

parser.y:17: error: field ‘args’         


        
3条回答
  •  悲&欢浪女
    2020-12-05 11:47

    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.

提交回复
热议问题