help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Union Type Object problem


From: Laurence Finston
Subject: Re: Union Type Object problem
Date: Fri, 06 Aug 2004 00:25:04 +0200
User-agent: IMHO/0.98.3+G (Webmail for Roxen)

Sorry, I was careless.  Actually, I don't know whether unions can contain
_pointers_ to objects with constructors, although your error message seems to
indicate they cannot.   You could just use `void*' and cast the pointers to
`Expression*' in the rules.  That's what I do.

Laurence Finston

-------------------
> Unions can't contain objects with constructors. 
> This has come up recently, so if you look in the archives you can find
> references to Stroustrup and the standard, if you're interested.
> 
> Laurence
> 
> -------------------
> > Hi,
> > I have to do a parser in Bison and I need to use in %union{} construct
> > some type Object.
> > I have this example-class Expression:
> > 
> > class Expression {
> > public:
> >    virtual ~Expression () {}
> >    //  It's necessary because we need to clone objects without
> >    // knowing the exact type.
> >    virtual Expression *clone () = 0;
> >    // The value represented by the expression
> >    virtual int value () = 0;
> > };
> > 
> > this is a very simple class, but when I define the Bison Type in
> > union construct in this way:
> > 
> > %union{
> >    Expression *exp;
> >    int num;
> > }
> > 
> > the compiler give me this error:
> > 
> > >> error: syntax error before `*' token
> > 
> > I compile this file Bison like this:
> > bash> bison -d parser.y 
> > bash> flex     parser.lex
> > bash> g++  -DCPLUSPLUS parser.tab.c lex.yy.c -lfl -o parser
> > 
> > Thanks a lot.
> > Enrico
> > 
> > 
> > _______________________________________________
> 
> 
> _______________________________________________
> address@hidden http://lists.gnu.org/mailman/listinfo/help-bison
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]