Boost logo

Boost Users :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-03-16 09:26:07


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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net