diff --git a/data/c.m4 b/data/c.m4 index 78b12325..8c6c4979 100644 --- a/data/c.m4 +++ b/data/c.m4 @@ -537,8 +537,8 @@ b4_locations_if([, yylocationp])[]b4_user_args[); # b4_declare_yylstype # ------------------ -# Declaration that might either go into the header (if --defines) -# or open coded in the parser body. Declare YYSTYPE and YYLTYPE. +# Declarations that might either go into the header (if --defines) or +# in the parser body. Declare YYSTYPE/YYLTYPE, and yylval/yylloc. m4_define([b4_declare_yylstype], [[#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED ]m4_ifdef([b4_stype], @@ -566,6 +566,9 @@ typedef struct YYLTYPE # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif]]) + +b4_pure_if([], [[extern YYSTYPE ]b4_prefix[lval; +]b4_locations_if([[extern YYLTYPE ]b4_prefix[lloc;]])])[]dnl ]) # b4_declare_yydebug diff --git a/data/glr.c b/data/glr.c index 9bbf9a72..100a5f2e 100644 --- a/data/glr.c +++ b/data/glr.c @@ -2635,8 +2635,6 @@ b4_copyright([Skeleton interface for Bison GLR parsers in C], ]b4_cpp_guard_open([b4_spec_defines_file])[ ]b4_shared_declarations[ -]b4_pure_if([], [[extern YYSTYPE ]b4_prefix[lval; -]b4_locations_if([[extern YYLTYPE ]b4_prefix[lloc;]])])[ ]b4_cpp_guard_close([b4_spec_defines_file])[ ]])]) m4_divert_pop(0) diff --git a/data/yacc.c b/data/yacc.c index 30c5f672..bd1a4b79 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -2067,8 +2067,6 @@ b4_copyright([Bison interface for Yacc-like parsers in C], ]b4_cpp_guard_open([b4_spec_defines_file])[ ]b4_shared_declarations[ -]b4_pure_if([], [[extern YYSTYPE ]b4_prefix[lval; -]b4_locations_if([[extern YYLTYPE ]b4_prefix[lloc;]])])[ ]b4_cpp_guard_close([b4_spec_defines_file])[ ]])dnl b4_defines_if m4_divert_pop(0)