Attached is the .y file.
This is a part of the SXEmacs source, where we had a report of a build failure with bison 2.4 which we tracked down to this behavior.
The relevant files would be under modules/cl.
You can get them from http://downloads.sxemacs.org

As far as defining manually the YYSTYPE I did it by adding on line 30:

typedef int YYSTYPE;

On another .h file [cl-loop.h] I needed to define:

extern int
cl_loop_yylex(YYSTYPE*, Lisp_Object*,
              cl_loop_sentence_t*, Lisp_Object*, Lisp_Object*);

which used to work with just including the generated .h, but not anymore.

Attachment: cl-loop-parser.y
Description: Binary data


On Nov 9, 2008, at 3:08 PM, Joel E. Denny wrote:

On Sun, 9 Nov 2008, Nelson Ferreira wrote:

I have a very very simple parser and in 2.3 I could define some additional functions using YYSTYPE just by including the generated header because it
defined:

#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif


however, now in 2.4 this is what I get there:

#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED

# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif

This strikes me as a bug, specially because you actually define
YYSTYPE_IS_DECLARED to 1 without defining YYSTYPE.

Please show us a complete grammar file that causes this behavior.

I also tried defining YYSTYPE in the .y itself but it had absolutely no
influence in the generated .y.

Please show us exactly what you did here too.

Thanks.

_______________________________________________
[email protected] http://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to