Hi Cleto,

On Wed, 25 Mar 2009, Cleto Martin Angelina wrote:

> Recently, i'm having troubles compiling my parser, which worked in bison
> 2.3. The output message is:
> 
> Parser.y:42: error: ISO C++ forbids declaration of ‘Invocation’ with no type
> Parser.y:42: error: expected ‘;’ before ‘*’ token
> Parser.y:43: error: ISO C++ forbids declaration of ‘Parameter’ with no type
> Parser.y:43: error: expected ‘;’ before ‘*’ token
> Parser.y:44: error: ISO C++ forbids declaration of ‘vector’ with no type
> Parser.y:44: error: invalid use of ‘::’
> Parser.y:44: error: expected ‘;’ before ‘<’ token
> 
> And header's .y file is:
> 
> %{
> #include <stdio.h>
> #include <stdlib.h>
> #include "Driver.h"
> %}

Without seeing the rest of your code, I can't be sure, but try changing 
the above to the following:

  %code require {
    #include <stdio.h>
    #include <stdlib.h>
    #include "Driver.h"
  }

If you don't need the std library includes in your .hh file, you might 
move them into a "%code {...}" or a "%code top {...}".  See the section 
"3.1.2 Prologue Alternatives" in the Bison 2.4 manual for a complete 
discussion.

> I've read about that in this mailing list, but i'm really lost. I don't know
> which features have changed in 2.4 version that are affecting my project.
> Can anyone guide me?.

For a list of changes over recent Bison releases, see NEWS in your Bison 
distribution.  In particular, see the entry "Handling of traditional Yacc 
prologue blocks" under the 2.3a heading.
_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to