May be your structures were defined in namespace? Or this may be some kind
of include guards fail.
General way to solve this: examine generated by bison code. If it would be
seem ok, you can produce preprocessed code from it by running your compiler
with special options ( -E for gcc). There you must the the real way
definitions included.


2008/12/6 Benny Hardage <[EMAIL PROTECTED]>

> Hello,
>
> I'm receiving the following errors when I compile:
>
> In file included from compiler.l:17:
> parser.y:27: error: ISO C++ forbids declaration of 'list' with no type
> parser.y:27: error: invalid use of '::'
> parser.y:27: error: expected ';' before '<' token
> parser.y:28: error: ISO C++ forbids declaration of 'Variable' with no type
> parser.y:28: error: expected ';' before '*' token
> parser.y:29: error: ISO C++ forbids declaration of 'UnaryOperation' with no
> type
> parser.y:29: error: expected ';' before '*' token
> parser.y:30: error: ISO C++ forbids declaration of 'BinaryOperation'
> with no type
> parser.y:30: error: expected ';' before '*' token
> parser.y:31: error: ISO C++ forbids declaration of 'Expression' with no
> type
> parser.y:31: error: expected ';' before '*' token
> parser.y:32: error: ISO C++ forbids declaration of 'DataLiteral' with no
> type
> parser.y:32: error: expected ';' before '*' token
>
> I've seen a fairly old thread that attempted to address this issue,
> saying that my include files might not be in the right order, but the
> top of my file looks like the following:
>
> %error-verbose
>
> %{
>
> int yylex();
>
> #include <iostream>
> #include "expressions.hpp"
> #include "statements.hpp"
>
> extern bool outputTokens;
> extern bool outputParser;
>
> void yyerror( char* msg )
> {
>        std::cerr << msg << std::endl;
> }
>
> %}
>
> %union
> {
>        int intVal;
>        bool boolVal;
>        char* strVal;
>        std::list<const Variable::Qualifier*>* qList;
>        Variable* var;
>        UnaryOperation* uop;
>        BinaryOperation* binop;
>        Expression* expr;
>        DataLiteral* datalit;
> }
>
> expressions.hpp contains the datatypes in question.
>
> I was wondering if someone might let me know what I was doing wrong.
>
> Thanks,
> B.J.
>
>
> _______________________________________________
> help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison
>
_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to