Steve Juranich wrote:
union YYSTYPE { int i; void* ptr; }; # 33 "graphviz_lex.ll" 2 # 41 "graphviz_lex.ll" # 1 "graphviz_graph_parser.hpp" 1 # 34 "graphviz_graph_parser.hpp" enum yytokentype { GRAPH_T = 258, NODE_T = 259, EDGE_T = 260, DIGRAPH_T = 261, EDGEOP_T = 262, SUBGRAPH_T = 263, ID_T = 264 }; # 56 "graphviz_graph_parser.hpp" typedef int yystype; </snip>
Aha, for some reason, some magic which tells bison not to typedef int does not work.
So, it looks like yystype is an 'int'. Unfortunately, I'm kind of beyond the reach of my knowledge and experience, so I'll have to depend on others to tell me what to do next.
Could you look at two things: 1. Does yystype.h defines YYSTYPE_IS_DECLARED? 2. Does graphviz_graph_parser.hpp checks for any defines before typedefing? For me it has the following: #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ Maybe your version of bison uses some different macroses. - Volodya