1 m4_divert(-1)                                                -*- C 
-*- 
   3 # Yacc compatible skeleton for Bison 
   5 # Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 
   6 # Free Software Foundation, Inc. 
   8 # This program is free software; you can redistribute it and/or modify 
   9 # it under the terms of the GNU General Public License as published by 
  10 # the Free Software Foundation; either version 2 of the License, or 
  11 # (at your option) any later version. 
  13 # This program is distributed in the hope that it will be useful, 
  14 # but WITHOUT ANY WARRANTY; without even the implied warranty of 
  15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  16 # GNU General Public License for more details. 
  18 # You should have received a copy of the GNU General Public License 
  19 # along with this program; if not, write to the Free Software 
  20 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
  23 m4_include(b4_pkgdatadir
/[c
.m4
]) 
  25 ## ---------------- ## 
  27 ## ---------------- ## 
  30 m4_define_default([b4_stack_depth_max
], [10000]) 
  31 m4_define_default([b4_stack_depth_init
],  [200]) 
  34 ## ------------------------ ## 
  35 ## Pure/impure interfaces.  ## 
  36 ## ------------------------ ## 
  39 # b4_yacc_pure_if(IF-TRUE, IF-FALSE) 
  40 # ---------------------------------- 
  41 # Expand IF-TRUE, if %pure-parser and %parse-param, IF-FALSE otherwise. 
  42 m4_define([b4_yacc_pure_if
], 
  43 [b4_pure_if([m4_ifset([b4_parse_param
], 
  50 # Arguments passed to yyerror: user args plus yylloc. 
  51 m4_define([b4_yyerror_args
], 
  52 [b4_yacc_pure_if([b4_locations_if([&yylloc
, ])])dnl
 
  53 m4_ifset([b4_parse_param
], [b4_c_args(b4_parse_param
), ])]) 
  58 # Accumulate in b4_lex_param all the yylex arguments. 
  59 # b4_lex_param arrives quoted twice, but we want to keep only one level. 
  60 m4_define([b4_lex_param
], 
  61 m4_dquote(b4_pure_if([[[[YYSTYPE 
*]], [[&yylval
]]][]dnl
 
  62 b4_locations_if([, [[YYLTYPE 
*], [&yylloc
]]])m4_ifdef([b4_lex_param
], [, ])])dnl
 
  63 m4_ifdef([b4_lex_param
], b4_lex_param
))) 
  71 # b4_int_type(MIN, MAX) 
  72 # --------------------- 
  73 # Return the smallest int type able to handle numbers ranging from 
  74 # MIN to MAX (included).  Overwrite the version from c.m4, which 
  75 # uses only C89 types, so that the user can override the shorter 
  76 # types, and so that pre-C89 compilers are handled correctly. 
  77 m4_define([b4_int_type
], 
  78 [m4_if(b4_ints_in($@
,      [0],   [255]), [1], [yytype_uint8
], 
  79        b4_ints_in($@
,   [-128],   [127]), [1], [yytype_int8
], 
  81        b4_ints_in($@
,      [0], [65535]), [1], [yytype_uint16
], 
  82        b4_ints_in($@
, [-32768], [32767]), [1], [yytype_int16
], 
  84        m4_eval([0 <= $
1]),                [1], [unsigned int], 
  89 ## ----------------- ## 
  90 ## Semantic Values.  ## 
  91 ## ----------------- ## 
  94 # b4_lhs_value([TYPE]) 
  95 # -------------------- 
  96 # Expansion of $<TYPE>$. 
  97 m4_define([b4_lhs_value
], 
  98 [(yyval
[]m4_ifval([$
1], [.$
1]))]) 
 101 # b4_rhs_value(RULE-LENGTH, NUM, [TYPE]) 
 102 # -------------------------------------- 
 103 # Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH 
 105 m4_define([b4_rhs_value
], 
 106 [(yyvsp@
{($
2) - ($
1)@
}m4_ifval([$
3], [.$
3]))]) 
 117 m4_define([b4_lhs_location
], 
 121 # b4_rhs_location(RULE-LENGTH, NUM) 
 122 # --------------------------------- 
 123 # Expansion of @NUM, where the current rule has RULE-LENGTH symbols 
 125 m4_define([b4_rhs_location
], 
 126 [(yylsp@
{($
2) - ($
1)@
})]) 
 130 ## --------------------------------------------------------- ## 
 131 ## Defining symbol actions, e.g., printers and destructors.  ## 
 132 ## --------------------------------------------------------- ## 
 134 # We do want M4 expansion after # for CPP macros. 
 137 @output @output_parser_name@
 
 138 b4_copyright([Skeleton implementation 
for Bison
's Yacc-like parsers in C],dnl ' 
 139   [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006])[ 
 141 /* C LALR(1) parser skeleton written by Richard Stallman, by 
 142    simplifying the original so-called "semantic" parser.  */ 
 144 /* All symbols defined below should begin with yy or YY, to avoid 
 145    infringing on user name space.  This should be done even for local 
 146    variables, as they might otherwise be expanded by user macros. 
 147    There are some unavoidable exceptions within include files to 
 148    define necessary library symbols; they are noted "INFRINGES ON 
 149    USER NAME SPACE" below.  */ 
 152 m4_if(b4_prefix
, [yy
], [], 
 153 [/* Substitute the variable and function names.  */ 
 154 #define yyparse b4_prefix[]parse 
 155 #define yylex   b4_prefix[]lex 
 156 #define yyerror b4_prefix[]error 
 157 #define yylval  b4_prefix[]lval 
 158 #define yychar  b4_prefix[]char 
 159 #define yydebug b4_prefix[]debug 
 160 #define yynerrs b4_prefix[]nerrs 
 161 b4_locations_if([#define yylloc b4_prefix[]lloc])])[ 
 163 /* Copy the first part of user declarations.  */ 
 164 ]b4_user_pre_prologue
[ 
 166 /* Enabling traces.  */ 
 168 # define YYDEBUG ]b4_debug_flag[ 
 171 /* Enabling verbose error messages.  */ 
 172 #ifdef YYERROR_VERBOSE 
 173 # undef YYERROR_VERBOSE 
 174 # define YYERROR_VERBOSE 1 
 176 # define YYERROR_VERBOSE ]b4_error_verbose_flag[ 
 179 /* Enabling the token table.  */ 
 180 #ifndef YYTOKEN_TABLE 
 181 # define YYTOKEN_TABLE ]b4_token_table[ 
 184 ]m4_ifdef([b4_requires
], 
 185 [[/* Copy the %requires blocks.  */ 
 186 ]b4_user_requires
])[]dnl
 
 188 b4_token_enums_defines(b4_tokens
)[ 
 190 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 
 191 ]m4_ifdef([b4_stype
], 
 192 [[typedef union ]b4_union_name
[ 
 195 # define YYSTYPE_IS_TRIVIAL 1]], 
 196 [m4_if(b4_tag_seen_flag
, 0, 
 197 [[typedef int YYSTYPE
; 
 198 # define YYSTYPE_IS_TRIVIAL 1]])])[ 
 199 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
 200 # define YYSTYPE_IS_DECLARED 1 
 203 ]b4_locations_if([#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED 
 204 typedef struct YYLTYPE
 
 211 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ 
 212 # define YYLTYPE_IS_DECLARED 1 
 213 # define YYLTYPE_IS_TRIVIAL 1 
 216 m4_ifdef([b4_provides
], 
 217 [[/* Copy the %provides blocks.  */ 
 218 ]b4_user_provides
])[]dnl
 
 220 [/* Copy the second part of user declarations.  */ 
 221 ]b4_user_post_prologue
[ 
 228 typedef YYTYPE_UINT8 yytype_uint8
; 
 230 typedef unsigned char yytype_uint8
; 
 234 typedef YYTYPE_INT8 yytype_int8
; 
 236 typedef signed char yytype_int8
; 
 238 typedef short int yytype_int8
; 
 242 typedef YYTYPE_UINT16 yytype_uint16
; 
 244 typedef unsigned short int yytype_uint16
; 
 248 typedef YYTYPE_INT16 yytype_int16
; 
 250 typedef short int yytype_int16
; 
 254 # ifdef __SIZE_TYPE__ 
 255 #  define YYSIZE_T __SIZE_TYPE__ 
 256 # elif defined size_t 
 257 #  define YYSIZE_T size_t 
 258 # elif ! defined YYSIZE_T && ]b4_c_modern[ 
 259 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 
 260 #  define YYSIZE_T size_t 
 262 #  define YYSIZE_T unsigned int 
 266 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 
 271 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 
 272 #   define YY_(msgid) dgettext ("bison-runtime", msgid) 
 276 #  define YY_(msgid) msgid 
 280 /* Suppress unused-variable warnings by "using" E.  */ 
 281 #if ! defined lint || defined __GNUC__ 
 282 # define YYUSE(e) ((void) (e)) 
 284 # define YYUSE(e) /* empty */ 
 287 /* Identity function, used to suppress warnings about constant conditions.  */ 
 291 ]b4_c_function_def([YYID
], [static int], [[int yyi
], [yyi
]])[ 
 297 #if ! defined yyoverflow || YYERROR_VERBOSE 
 299 /* The parser invokes alloca or malloc; define the necessary symbols.  */ 
 301 # ifdef YYSTACK_USE_ALLOCA 
 302 #  if YYSTACK_USE_ALLOCA 
 304 #    define YYSTACK_ALLOC __builtin_alloca 
 305 #   elif defined __BUILTIN_VA_ARG_INCR 
 306 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 
 308 #    define YYSTACK_ALLOC __alloca 
 309 #   elif defined _MSC_VER 
 310 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 
 311 #    define alloca _alloca 
 313 #    define YYSTACK_ALLOC alloca 
 314 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && ]b4_c_modern[ 
 315 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
 324 # ifdef YYSTACK_ALLOC 
 325    /* Pacify GCC's `empty if-body' warning.  */ 
 326 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 
 327 #  ifndef YYSTACK_ALLOC_MAXIMUM 
 328     /* The OS might guarantee only one guard page at the bottom of the stack, 
 329        and a page size can be as small as 4096 bytes.  So we cannot safely 
 330        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number 
 331        to allow for a few compiler-allocated temporary stack slots.  */ 
 332 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 
 335 #  define YYSTACK_ALLOC YYMALLOC 
 336 #  define YYSTACK_FREE YYFREE 
 337 #  ifndef YYSTACK_ALLOC_MAXIMUM 
 338 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 
 340 #  if (defined __cplusplus && ! defined _STDLIB_H \ 
 341        && ! ((defined YYMALLOC || defined malloc) \ 
 342              && (defined YYFREE || defined free))) 
 343 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
 349 #   define YYMALLOC malloc 
 350 #   if ! defined malloc && ! defined _STDLIB_H && ]b4_c_modern[ 
 351 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */ 
 356 #   if ! defined free && ! defined _STDLIB_H && ]b4_c_modern[ 
 357 void free (void *); /* INFRINGES ON USER NAME SPACE */ 
 361 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 
 364 #if (! defined yyoverflow \ 
 365      && (! defined __cplusplus \ 
 366          || (]b4_locations_if([[defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ 
 367              && ]])[defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
 369 /* A type that is properly aligned for any stack member.  */ 
 374   ]b4_locations_if([  YYLTYPE yyls
; 
 378 /* The size of the maximum gap between one aligned stack and the next.  */ 
 379 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 
 381 /* The size of an array large to enough to hold all stacks, each with 
 384 [# define YYSTACK_BYTES(N) \ 
 385      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ 
 386       + 2 * YYSTACK_GAP_MAXIMUM)], 
 387 [# define YYSTACK_BYTES(N) \ 
 388      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 
 389       + YYSTACK_GAP_MAXIMUM)])[ 
 391 /* Copy COUNT objects from FROM to TO.  The source and destination do 
 394 #  if defined __GNUC__ && 1 < __GNUC__ 
 395 #   define YYCOPY(To, From, Count) \ 
 396       __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 
 398 #   define YYCOPY(To, From, Count)              \ 
 402           for (yyi = 0; yyi < (Count); yyi++)   \ 
 403             (To)[yyi] = (From)[yyi];            \ 
 409 /* Relocate STACK from its old location to the new one.  The 
 410    local variables YYSIZE and YYSTACKSIZE give the old and new number of 
 411    elements in the stack, and YYPTR gives the new location of the 
 412    stack.  Advance YYPTR to a properly aligned location for the next 
 414 # define YYSTACK_RELOCATE(Stack)                                        \ 
 417         YYSIZE_T yynewbytes;                                            \ 
 418         YYCOPY (&yyptr->Stack, Stack, yysize);                          \ 
 419         Stack = &yyptr->Stack;                                          \ 
 420         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 
 421         yyptr += yynewbytes / sizeof (*yyptr);                          \ 
 427 /* YYFINAL -- State number of the termination state.  */ 
 428 #define YYFINAL  ]b4_final_state_number[ 
 429 /* YYLAST -- Last index in YYTABLE.  */ 
 430 #define YYLAST   ]b4_last[ 
 432 /* YYNTOKENS -- Number of terminals.  */ 
 433 #define YYNTOKENS  ]b4_tokens_number[ 
 434 /* YYNNTS -- Number of nonterminals.  */ 
 435 #define YYNNTS  ]b4_nterms_number[ 
 436 /* YYNRULES -- Number of rules.  */ 
 437 #define YYNRULES  ]b4_rules_number[ 
 438 /* YYNRULES -- Number of states.  */ 
 439 #define YYNSTATES  ]b4_states_number[ 
 441 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
 442 #define YYUNDEFTOK  ]b4_undef_token_number[ 
 443 #define YYMAXUTOK   ]b4_user_token_number_max[ 
 445 #define YYTRANSLATE(YYX)                                                \ 
 446   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
 448 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */ 
 449 static const ]b4_int_type_for([b4_translate
])[ yytranslate
[] = 
 455 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 
 457 static const ]b4_int_type_for([b4_prhs
])[ yyprhs
[] = 
 462 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */ 
 463 static const ]b4_int_type_for([b4_rhs
])[ yyrhs
[] = 
 468 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ 
 469 static const ]b4_int_type_for([b4_rline
])[ yyrline
[] = 
 475 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 
 476 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 
 477    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */ 
 478 static const char *const yytname
[] = 
 485 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 
 487 static const ]b4_int_type_for([b4_toknum
])[ yytoknum
[] = 
 493 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
 494 static const ]b4_int_type_for([b4_r1
])[ yyr1
[] = 
 499 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ 
 500 static const ]b4_int_type_for([b4_r2
])[ yyr2
[] = 
 505 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 
 506    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero 
 507    means the default is an error.  */ 
 508 static const ]b4_int_type_for([b4_defact
])[ yydefact
[] = 
 513 /* YYDEFGOTO[NTERM-NUM].  */ 
 514 static const ]b4_int_type_for([b4_defgoto
])[ yydefgoto
[] = 
 519 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
 521 #define YYPACT_NINF ]b4_pact_ninf[ 
 522 static const ]b4_int_type_for([b4_pact
])[ yypact
[] = 
 527 /* YYPGOTO[NTERM-NUM].  */ 
 528 static const ]b4_int_type_for([b4_pgoto
])[ yypgoto
[] = 
 533 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If 
 534    positive, shift that token.  If negative, reduce the rule which 
 535    number is the opposite.  If zero, do what YYDEFACT says. 
 536    If YYTABLE_NINF, syntax error.  */ 
 537 #define YYTABLE_NINF ]b4_table_ninf[ 
 538 static const ]b4_int_type_for([b4_table
])[ yytable
[] = 
 543 static const ]b4_int_type_for([b4_check
])[ yycheck
[] = 
 548 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
 549    symbol of state STATE-NUM.  */ 
 550 static const ]b4_int_type_for([b4_stos
])[ yystos
[] = 
 555 #define yyerrok         (yyerrstatus = 0) 
 556 #define yyclearin       (yychar = YYEMPTY) 
 560 #define YYACCEPT        goto yyacceptlab 
 561 #define YYABORT         goto yyabortlab 
 562 #define YYERROR         goto yyerrorlab 
 565 /* Like YYERROR except do call yyerror.  This remains here temporarily 
 566    to ease the transition to the new meaning of YYERROR, for GCC. 
 567    Once GCC version 2 has supplanted version 1, this can go.  */ 
 569 #define YYFAIL          goto yyerrlab 
 571 #define YYRECOVERING()  (!!yyerrstatus) 
 573 #define YYBACKUP(Token, Value)                                  \ 
 575   if (yychar == YYEMPTY && yylen == 1)                          \ 
 579       yytoken = YYTRANSLATE (yychar);                           \ 
 585       yyerror (]b4_yyerror_args[YY_("syntax error: cannot back up")); \ 
 592 #define YYERRCODE       256 
 595 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 
 596    If N is 0, then set CURRENT to the empty location which ends 
 597    the previous symbol: RHS[0] (always defined).  */ 
 599 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 
 600 #ifndef YYLLOC_DEFAULT 
 601 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \ 
 605           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \ 
 606           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \ 
 607           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \ 
 608           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \ 
 612           (Current).first_line   = (Current).last_line   =              \ 
 613             YYRHSLOC (Rhs, 0).last_line;                                \ 
 614           (Current).first_column = (Current).last_column =              \ 
 615             YYRHSLOC (Rhs, 0).last_column;                              \ 
 621 /* YY_LOCATION_PRINT -- Print the location on the stream. 
 622    This macro was not mandated originally: define only if we know 
 623    we won't break user code: when these are the locations we know.  */ 
 625 #ifndef YY_LOCATION_PRINT 
 626 # if YYLTYPE_IS_TRIVIAL 
 627 #  define YY_LOCATION_PRINT(File, Loc)                  \ 
 628      fprintf (File, "%d.%d-%d.%d",                      \ 
 629               (Loc).first_line, (Loc).first_column,     \ 
 630               (Loc).last_line,  (Loc).last_column) 
 632 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
 637 /* YYLEX -- calling `yylex' with the right arguments.  */ 
 640 # define YYLEX yylex (]b4_pure_if([&yylval[]b4_locations_if([, &yylloc]), ])[YYLEX_PARAM) 
 642 # define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[ 
 645 /* Enable debugging if requested.  */ 
 649 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 
 650 #  define YYFPRINTF fprintf 
 653 # define YYDPRINTF(Args)                        \ 
 659 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \ 
 663       YYFPRINTF (stderr, "%s ", Title);                                   \ 
 664       yy_symbol_print (stderr,                                            \ 
 665                   Type, Value]b4_locations_if([, Location])[]b4_user_args[); \ 
 666       YYFPRINTF (stderr, "\n");                                           \ 
 670 ]b4_yy_symbol_print_generate([b4_c_function_def
])[ 
 672 /*------------------------------------------------------------------. 
 673 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 
 675 `------------------------------------------------------------------*/ 
 677 ]b4_c_function_def([yy_stack_print
], [static void], 
 678                    [[yytype_int16 
*yybottom
], [yybottom
]], 
 679                    [[yytype_int16 
*yytop
],    [yytop
]])[ 
 681   YYFPRINTF (stderr
, "Stack now"); 
 682   for (; yybottom 
<= yytop
; yybottom
++) 
 684       int yybot 
= *yybottom
; 
 685       YYFPRINTF (stderr
, " %d", yybot
); 
 687   YYFPRINTF (stderr
, "\n"); 
 690 # define YY_STACK_PRINT(Bottom, Top)                            \ 
 693     yy_stack_print ((Bottom), (Top));                           \ 
 697 /*------------------------------------------------. 
 698 | Report that the YYRULE is going to be reduced.  | 
 699 `------------------------------------------------*/ 
 701 ]b4_c_function_def([yy_reduce_print
], [static void], 
 702                    [[YYSTYPE 
*yyvsp
], [yyvsp
]], 
 703     b4_locations_if([[[YYLTYPE 
*yylsp
], [yylsp
]], 
 704                    ])[[int yyrule
], [yyrule
]]m4_ifset([b4_parse_param
], [, 
 707   int yynrhs 
= yyr2
[yyrule
]; 
 709   unsigned long int yylno 
= yyrline
[yyrule
]; 
 710   YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n", 
 712   /* The symbols being reduced.  */ 
 713   for (yyi 
= 0; yyi 
< yynrhs
; yyi
++) 
 715       fprintf (stderr
, "   $%d = ", yyi 
+ 1); 
 716       yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
], 
 717                        &]b4_rhs_value(yynrhs
, yyi 
+ 1)[ 
 718                        ]b4_locations_if([, &]b4_rhs_location(yynrhs
, yyi 
+ 1))[]dnl
 
 720       fprintf (stderr
, "\n"); 
 724 # define YY_REDUCE_PRINT(Rule)          \ 
 727     yy_reduce_print (yyvsp, ]b4_locations_if([yylsp, ])[Rule]b4_user_args[); \ 
 730 /* Nonzero means print parse trace.  It is left uninitialized so that 
 731    multiple parsers can coexist.  */ 
 734 # define YYDPRINTF(Args) 
 735 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 
 736 # define YY_STACK_PRINT(Bottom, Top) 
 737 # define YY_REDUCE_PRINT(Rule) 
 738 #endif /* !YYDEBUG */ 
 741 /* YYINITDEPTH -- initial size of the parser's stacks.  */ 
 743 # define YYINITDEPTH ]b4_stack_depth_init[ 
 746 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 
 747    if the built-in stack extension method is used). 
 749    Do not make this value too large; the results are undefined if 
 750    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 
 751    evaluated with infinite-precision integer arithmetic.  */ 
 754 # define YYMAXDEPTH ]b4_stack_depth_max[ 
 762 #  if defined __GLIBC__ && defined _STRING_H 
 763 #   define yystrlen strlen 
 765 /* Return the length of YYSTR.  */ 
 766 ]b4_c_function_def([yystrlen
], [static YYSIZE_T
], 
 767    [[const char *yystr
], [yystr
]])[ 
 770   for (yylen 
= 0; yystr
[yylen
]; yylen
++) 
 778 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 
 779 #   define yystpcpy stpcpy 
 781 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 
 783 ]b4_c_function_def([yystpcpy
], [static char *], 
 784    [[char *yydest
], [yydest
]], [[const char *yysrc
], [yysrc
]])[ 
 787   const char *yys 
= yysrc
; 
 789   while ((*yyd
++ = *yys
++) != '\0') 
 798 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 
 799    quotes and backslashes, so that it's suitable for yyerror.  The 
 800    heuristic is that double-quoting is unnecessary unless the string 
 801    contains an apostrophe, a comma, or backslash (other than 
 802    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is 
 803    null, do not copy; instead, return the length of what the result 
 806 yytnamerr (char *yyres
, const char *yystr
) 
 811       char const *yyp 
= yystr
; 
 818             goto do_not_strip_quotes
; 
 822               goto do_not_strip_quotes
; 
 835     do_not_strip_quotes
: ; 
 839     return yystrlen (yystr
); 
 841   return yystpcpy (yyres
, yystr
) - yyres
; 
 845 /* Copy into YYRESULT an error message about the unexpected token 
 846    YYCHAR while in state YYSTATE.  Return the number of bytes copied, 
 847    including the terminating null byte.  If YYRESULT is null, do not 
 848    copy anything; just return the number of bytes that would be 
 849    copied.  As a special case, return 0 if an ordinary "syntax error" 
 850    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during 
 853 yysyntax_error (char *yyresult
, int yystate
, int yychar
) 
 855   int yyn 
= yypact
[yystate
]; 
 857   if (! (YYPACT_NINF 
< yyn 
&& yyn 
<= YYLAST
)) 
 861       int yytype 
= YYTRANSLATE (yychar
); 
 862       YYSIZE_T yysize0 
= yytnamerr (0, yytname
[yytype
]); 
 863       YYSIZE_T yysize 
= yysize0
; 
 865       int yysize_overflow 
= 0; 
 866       enum { YYERROR_VERBOSE_ARGS_MAXIMUM 
= 5 }; 
 867       char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
]; 
 871       /* This is so xgettext sees the translatable formats that are 
 872          constructed on the fly.  */ 
 873       YY_("syntax error, unexpected %s"); 
 874       YY_("syntax error, unexpected %s, expecting %s"); 
 875       YY_("syntax error, unexpected %s, expecting %s or %s"); 
 876       YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 
 877       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 
 881       static char const yyunexpected
[] = "syntax error, unexpected %s"; 
 882       static char const yyexpecting
[] = ", expecting %s"; 
 883       static char const yyor
[] = " or %s"; 
 884       char yyformat
[sizeof yyunexpected
 
 885                     + sizeof yyexpecting 
- 1 
 886                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM 
- 2) 
 887                        * (sizeof yyor 
- 1))]; 
 888       char const *yyprefix 
= yyexpecting
; 
 890       /* Start YYX at -YYN if negative to avoid negative indexes in 
 892       int yyxbegin 
= yyn 
< 0 ? -yyn 
: 0; 
 894       /* Stay within bounds of both yycheck and yytname.  */ 
 895       int yychecklim 
= YYLAST 
- yyn 
+ 1; 
 896       int yyxend 
= yychecklim 
< YYNTOKENS 
? yychecklim 
: YYNTOKENS
; 
 899       yyarg
[0] = yytname
[yytype
]; 
 900       yyfmt 
= yystpcpy (yyformat
, yyunexpected
); 
 902       for (yyx 
= yyxbegin
; yyx 
< yyxend
; ++yyx
) 
 903         if (yycheck
[yyx 
+ yyn
] == yyx 
&& yyx 
!= YYTERROR
) 
 905             if (yycount 
== YYERROR_VERBOSE_ARGS_MAXIMUM
) 
 909                 yyformat
[sizeof yyunexpected 
- 1] = '\0'; 
 912             yyarg
[yycount
++] = yytname
[yyx
]; 
 913             yysize1 
= yysize 
+ yytnamerr (0, yytname
[yyx
]); 
 914             yysize_overflow 
|= (yysize1 
< yysize
); 
 916             yyfmt 
= yystpcpy (yyfmt
, yyprefix
); 
 921       yysize1 
= yysize 
+ yystrlen (yyf
); 
 922       yysize_overflow 
|= (yysize1 
< yysize
); 
 926         return YYSIZE_MAXIMUM
; 
 930           /* Avoid sprintf, as that infringes on the user's name space. 
 931              Don't have undefined behavior even if the translation 
 932              produced a string with the wrong number of "%s"s.  */ 
 933           char *yyp 
= yyresult
; 
 935           while ((*yyp 
= *yyf
) != '\0') 
 937               if (*yyp 
== '%' && yyf
[1] == 's' && yyi 
< yycount
) 
 939                   yyp 
+= yytnamerr (yyp
, yyarg
[yyi
++]); 
 952 #endif /* YYERROR_VERBOSE */ 
 955 ]b4_yydestruct_generate([b4_c_function_def
])[ 
 958 /* Prevent warnings from -Wmissing-prototypes.  */ 
 961 ]b4_c_function_decl([yyparse
], [int], 
 962    [[void *YYPARSE_PARAM
], [YYPARSE_PARAM
]])[ 
 963 #else /* ! YYPARSE_PARAM */ 
 964 ]b4_c_function_decl([yyparse
], [int], b4_parse_param
)[ 
 965 #endif /* ! YYPARSE_PARAM */ 
 968 ]m4_divert_push([KILL
])# ======================== M4 code. 
 969 # b4_declare_parser_variables 
 970 # --------------------------- 
 971 # Declare the variables that are global, or local to YYPARSE if 
 973 m4_define([b4_declare_parser_variables
], 
 974 [/* The lookahead symbol.  */ 
 977 /* The semantic value of the lookahead symbol.  */ 
 980 /* Number of syntax errors so far.  */ 
 981 int yynerrs
;b4_locations_if([ 
 982 /* Location data for the lookahead symbol.  */ 
 985 m4_divert_pop([KILL
])dnl
# ====================== End of M4 code. 
 988            [b4_declare_parser_variables
]) 
 996 b4_c_function_def([yyparse
], [int], [[void *YYPARSE_PARAM
], [YYPARSE_PARAM
]]) 
 997 #else /* ! YYPARSE_PARAM */ 
 998 b4_c_function_def([yyparse
], [int], b4_parse_param
) 
1001   ]b4_pure_if([b4_declare_parser_variables
])[ 
1005   /* Number of tokens to shift before error messages enabled.  */ 
1007   /* Lookahead token as an internal (translated) token number.  */ 
1010   /* Buffer for error messages, and its allocated size.  */ 
1012   char *yymsg 
= yymsgbuf
; 
1013   YYSIZE_T yymsg_alloc 
= sizeof yymsgbuf
; 
1016   /* Three stacks and their tools: 
1017      `yyss': related to states, 
1018      `yyvs': related to semantic values, 
1019      `yyls': related to locations. 
1021      Refer to the stacks thru separate pointers, to allow yyoverflow 
1022      to reallocate them elsewhere.  */ 
1024   /* The state stack.  */ 
1025   yytype_int16 yyssa
[YYINITDEPTH
]; 
1026   yytype_int16 
*yyss 
= yyssa
; 
1027   yytype_int16 
*yyssp
; 
1029   /* The semantic value stack.  */ 
1030   YYSTYPE yyvsa
[YYINITDEPTH
]; 
1031   YYSTYPE 
*yyvs 
= yyvsa
; 
1035 [[  /* The location stack.  */ 
1036   YYLTYPE yylsa
[YYINITDEPTH
]; 
1037   YYLTYPE 
*yyls 
= yylsa
; 
1039   /* The locations where the error started and ended.  */ 
1040   YYLTYPE yyerror_range
[2];]])[ 
1042 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N)]b4_locations_if([, yylsp -= (N)])[) 
1044   YYSIZE_T yystacksize 
= YYINITDEPTH
; 
1046   /* The variables used to return semantic value and location from the 
1049 ]b4_locations_if([  YYLTYPE yyloc
;])[ 
1051   /* The number of symbols on the RHS of the reduced rule. 
1052      Keep to zero when no symbol should be popped.  */ 
1055   YYDPRINTF ((stderr
, "Starting parse\n")); 
1060   yychar 
= YYEMPTY
;             /* Cause a token to be read.  */ 
1062   /* Initialize stack pointers. 
1063      Waste one element of value and location stack 
1064      so that they stay on the same level as the state stack. 
1065      The wasted elements are never initialized.  */ 
1069 ]b4_locations_if([[  yylsp 
= yyls
; 
1070 #if YYLTYPE_IS_TRIVIAL 
1071   /* Initialize the default location before parsing starts.  */ 
1072   yylloc
.first_line   
= yylloc
.last_line   
= ]b4_location_initial_line
[; 
1073   yylloc
.first_column 
= yylloc
.last_column 
= ]b4_location_initial_column
[; 
1076 m4_ifdef([b4_initial_action
], [ 
1077 m4_pushdef([b4_at_dollar
],     [m4_define([b4_at_dollar_used
])yylloc
])dnl
 
1078 m4_pushdef([b4_dollar_dollar
], [m4_define([b4_dollar_dollar_used
])yylval
])dnl
 
1079   /* User initialization code.  */ 
1080   b4_user_initial_action
 
1081 m4_popdef([b4_dollar_dollar
])dnl
 
1082 m4_popdef([b4_at_dollar
])])dnl
 
1083 m4_ifdef([b4_dollar_dollar_used
],[[  yyvsp
[0] = yylval
; 
1085 m4_ifdef([b4_at_dollar_used
], [[  yylsp
[0] = yylloc
; 
1089 /*------------------------------------------------------------. 
1090 | yynewstate -- Push a new state, which is found in yystate.  | 
1091 `------------------------------------------------------------*/ 
1093   /* In all cases, when you get here, the value and location stacks 
1094      have just been pushed.  So pushing a state here evens the stacks.  */ 
1100   if (yyss 
+ yystacksize 
- 1 <= yyssp
) 
1102       /* Get the current used size of the three stacks, in elements.  */ 
1103       YYSIZE_T yysize 
= yyssp 
- yyss 
+ 1; 
1107         /* Give user a chance to reallocate the stack.  Use copies of 
1108            these so that the &'s don't force the real ones into 
1110         YYSTYPE 
*yyvs1 
= yyvs
; 
1111         yytype_int16 
*yyss1 
= yyss
; 
1112 ]b4_locations_if([      YYLTYPE 
*yyls1 
= yyls
;])[ 
1114         /* Each stack pointer address is followed by the size of the 
1115            data in use in that stack, in bytes.  This used to be a 
1116            conditional around just the two extra args, but that might 
1117            be undefined if yyoverflow is a macro.  */ 
1118         yyoverflow (YY_("memory exhausted"), 
1119                     &yyss1
, yysize 
* sizeof (*yyssp
), 
1120                     &yyvs1
, yysize 
* sizeof (*yyvsp
), 
1121 ]b4_locations_if([                  &yyls1
, yysize 
* sizeof (*yylsp
),])[ 
1123 ]b4_locations_if([      yyls 
= yyls1
;])[ 
1127 #else /* no yyoverflow */ 
1128 # ifndef YYSTACK_RELOCATE 
1129       goto yyexhaustedlab
; 
1131       /* Extend the stack our own way.  */ 
1132       if (YYMAXDEPTH 
<= yystacksize
) 
1133         goto yyexhaustedlab
; 
1135       if (YYMAXDEPTH 
< yystacksize
) 
1136         yystacksize 
= YYMAXDEPTH
; 
1139         yytype_int16 
*yyss1 
= yyss
; 
1140         union yyalloc 
*yyptr 
= 
1141           (union yyalloc 
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
)); 
1143           goto yyexhaustedlab
; 
1144         YYSTACK_RELOCATE (yyss
); 
1145         YYSTACK_RELOCATE (yyvs
); 
1146 ]b4_locations_if([      YYSTACK_RELOCATE (yyls
);])[ 
1147 #  undef YYSTACK_RELOCATE 
1149           YYSTACK_FREE (yyss1
); 
1152 #endif /* no yyoverflow */ 
1154       yyssp 
= yyss 
+ yysize 
- 1; 
1155       yyvsp 
= yyvs 
+ yysize 
- 1; 
1156 ]b4_locations_if([      yylsp 
= yyls 
+ yysize 
- 1;])[ 
1158       YYDPRINTF ((stderr
, "Stack size increased to %lu\n", 
1159                   (unsigned long int) yystacksize
)); 
1161       if (yyss 
+ yystacksize 
- 1 <= yyssp
) 
1165   YYDPRINTF ((stderr
, "Entering state %d\n", yystate
)); 
1167   if (yystate 
== YYFINAL
) 
1177   /* Do appropriate processing given the current state.  Read a 
1178      lookahead token if we need one and don't already have one.  */ 
1180   /* First try to decide what to do without reference to lookahead token.  */ 
1181   yyn 
= yypact
[yystate
]; 
1182   if (yyn 
== YYPACT_NINF
) 
1185   /* Not known => get a lookahead token if don't already have one.  */ 
1187   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */ 
1188   if (yychar 
== YYEMPTY
) 
1190       YYDPRINTF ((stderr
, "Reading a token: ")); 
1194   if (yychar 
<= YYEOF
) 
1196       yychar 
= yytoken 
= YYEOF
; 
1197       YYDPRINTF ((stderr
, "Now at end of input.\n")); 
1201       yytoken 
= YYTRANSLATE (yychar
); 
1202       YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
); 
1205   /* If the proper action on seeing token YYTOKEN is to reduce or to 
1206      detect an error, take that action.  */ 
1208   if (yyn 
< 0 || YYLAST 
< yyn 
|| yycheck
[yyn
] != yytoken
) 
1213       if (yyn 
== 0 || yyn 
== YYTABLE_NINF
) 
1219   /* Count tokens shifted since error; after three, turn off error 
1224   /* Shift the lookahead token.  */ 
1225   YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
); 
1227   /* Discard the shifted token.  */ 
1232 ]b4_locations_if([  *++yylsp 
= yylloc
;])[ 
1236 /*-----------------------------------------------------------. 
1237 | yydefault -- do the default action for the current state.  | 
1238 `-----------------------------------------------------------*/ 
1240   yyn 
= yydefact
[yystate
]; 
1246 /*-----------------------------. 
1247 | yyreduce -- Do a reduction.  | 
1248 `-----------------------------*/ 
1250   /* yyn is the number of a rule to reduce with.  */ 
1253   /* If YYLEN is nonzero, implement the default value of the action: 
1256      Otherwise, the following line sets YYVAL to garbage. 
1257      This behavior is undocumented and Bison 
1258      users should not rely upon it.  Assigning to YYVAL 
1259      unconditionally makes the parser a bit smaller, and it avoids a 
1260      GCC warning that YYVAL may be used uninitialized.  */ 
1261   yyval 
= yyvsp
[1-yylen
]; 
1264 [[  /* Default location.  */ 
1265   YYLLOC_DEFAULT (yyloc
, (yylsp 
- yylen
), yylen
);]])[ 
1266   YY_REDUCE_PRINT (yyn
); 
1272   YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
); 
1276   YY_STACK_PRINT (yyss
, yyssp
); 
1279 ]b4_locations_if([  *++yylsp 
= yyloc
;])[ 
1281   /* Now `shift' the result of the reduction.  Determine what state 
1282      that goes to, based on the state we popped back to and the rule 
1283      number reduced by.  */ 
1287   yystate 
= yypgoto
[yyn 
- YYNTOKENS
] + *yyssp
; 
1288   if (0 <= yystate 
&& yystate 
<= YYLAST 
&& yycheck
[yystate
] == *yyssp
) 
1289     yystate 
= yytable
[yystate
]; 
1291     yystate 
= yydefgoto
[yyn 
- YYNTOKENS
]; 
1296 /*------------------------------------. 
1297 | yyerrlab -- here on detecting error | 
1298 `------------------------------------*/ 
1300   /* If not already recovering from an error, report this error.  */ 
1304 #if ! YYERROR_VERBOSE 
1305       yyerror (]b4_yyerror_args
[YY_("syntax error")); 
1308         YYSIZE_T yysize 
= yysyntax_error (0, yystate
, yychar
); 
1309         if (yymsg_alloc 
< yysize 
&& yymsg_alloc 
< YYSTACK_ALLOC_MAXIMUM
) 
1311             YYSIZE_T yyalloc 
= 2 * yysize
; 
1312             if (! (yysize 
<= yyalloc 
&& yyalloc 
<= YYSTACK_ALLOC_MAXIMUM
)) 
1313               yyalloc 
= YYSTACK_ALLOC_MAXIMUM
; 
1314             if (yymsg 
!= yymsgbuf
) 
1315               YYSTACK_FREE (yymsg
); 
1316             yymsg 
= (char *) YYSTACK_ALLOC (yyalloc
); 
1318               yymsg_alloc 
= yyalloc
; 
1322                 yymsg_alloc 
= sizeof yymsgbuf
; 
1326         if (0 < yysize 
&& yysize 
<= yymsg_alloc
) 
1328             (void) yysyntax_error (yymsg
, yystate
, yychar
); 
1329             yyerror (]b4_yyerror_args
[yymsg
); 
1333             yyerror (]b4_yyerror_args
[YY_("syntax error")); 
1335               goto yyexhaustedlab
; 
1341 ]b4_locations_if([[  yyerror_range
[0] = yylloc
;]])[ 
1343   if (yyerrstatus 
== 3) 
1345       /* If just tried and failed to reuse lookahead token after an 
1346          error, discard it.  */ 
1348       if (yychar 
<= YYEOF
) 
1350           /* Return failure if at end of input.  */ 
1351           if (yychar 
== YYEOF
) 
1356           yydestruct ("Error: discarding", 
1357                       yytoken
, &yylval
]b4_locations_if([, &yylloc
])[]b4_user_args
[); 
1362   /* Else will try to reuse lookahead token after shifting the error 
1367 /*---------------------------------------------------. 
1368 | yyerrorlab -- error raised explicitly by YYERROR.  | 
1369 `---------------------------------------------------*/ 
1372   /* Pacify compilers like GCC when the user code never invokes 
1373      YYERROR and the label yyerrorlab therefore never appears in user 
1375   if (/*CONSTCOND*/ 0) 
1378 ]b4_locations_if([[  yyerror_range
[0] = yylsp
[1-yylen
]; 
1379 ]])[  /* Do not reclaim the symbols of the rule which action triggered 
1383   YY_STACK_PRINT (yyss
, yyssp
); 
1388 /*-------------------------------------------------------------. 
1389 | yyerrlab1 -- common code for both syntax error and YYERROR.  | 
1390 `-------------------------------------------------------------*/ 
1392   yyerrstatus 
= 3;      /* Each real token shifted decrements this.  */ 
1396       yyn 
= yypact
[yystate
]; 
1397       if (yyn 
!= YYPACT_NINF
) 
1400           if (0 <= yyn 
&& yyn 
<= YYLAST 
&& yycheck
[yyn
] == YYTERROR
) 
1408       /* Pop the current state because it cannot handle the error token.  */ 
1412 ]b4_locations_if([[      yyerror_range
[0] = *yylsp
;]])[ 
1413       yydestruct ("Error: popping", 
1414                   yystos
[yystate
], yyvsp
]b4_locations_if([, yylsp
])[]b4_user_args
[); 
1417       YY_STACK_PRINT (yyss
, yyssp
); 
1422   yyerror_range
[1] = yylloc
; 
1423   /* Using YYLLOC is tempting, but would change the location of 
1424      the lookahead.  YYLOC is available though.  */ 
1425   YYLLOC_DEFAULT (yyloc
, (yyerror_range 
- 1), 2); 
1426   *++yylsp 
= yyloc
;]])[ 
1428   /* Shift the error token.  */ 
1429   YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
); 
1435 /*-------------------------------------. 
1436 | yyacceptlab -- YYACCEPT comes here.  | 
1437 `-------------------------------------*/ 
1442 /*-----------------------------------. 
1443 | yyabortlab -- YYABORT comes here.  | 
1444 `-----------------------------------*/ 
1450 /*-------------------------------------------------. 
1451 | yyexhaustedlab -- memory exhaustion comes here.  | 
1452 `-------------------------------------------------*/ 
1454   yyerror (]b4_yyerror_args
[YY_("memory exhausted")); 
1460   if (yychar 
!= YYEMPTY
) 
1461      yydestruct ("Cleanup: discarding lookahead", 
1462                  yytoken
, &yylval
]b4_locations_if([, &yylloc
])[]b4_user_args
[); 
1463   /* Do not reclaim the symbols of the rule which action triggered 
1464      this YYABORT or YYACCEPT.  */ 
1466   YY_STACK_PRINT (yyss
, yyssp
); 
1467   while (yyssp 
!= yyss
) 
1469       yydestruct ("Cleanup: popping", 
1470                   yystos
[*yyssp
], yyvsp
]b4_locations_if([, yylsp
])[]b4_user_args
[); 
1475     YYSTACK_FREE (yyss
); 
1478   if (yymsg 
!= yymsgbuf
) 
1479     YYSTACK_FREE (yymsg
); 
1481   /* Make sure YYID is used.  */ 
1482   return YYID (yyresult
); 
1488 [@output @output_header_name@
 
1489 b4_copyright([Skeleton interface 
for Bison
's Yacc-like parsers in C],dnl ' 
1490   [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006]) 
1492 m4_ifdef([b4_requires
], 
1493 [[/* Copy the %requires blocks.  */ 
1494 ]b4_user_requires
])[]dnl
 
1496 b4_token_enums_defines(b4_tokens
) 
1498 [#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 
1499 ]m4_ifdef([b4_stype
], 
1500 [[typedef union ]b4_union_name
[ 
1503 # define YYSTYPE_IS_TRIVIAL 1]], 
1504 [m4_if(b4_tag_seen_flag
, 0, 
1505 [[typedef int YYSTYPE
; 
1506 # define YYSTYPE_IS_TRIVIAL 1]])])[ 
1507 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
1508 # define YYSTYPE_IS_DECLARED 1 
1512 [extern YYSTYPE b4_prefix
[]lval
;]) 
1515 [#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED 
1516 typedef struct YYLTYPE
 
1523 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ 
1524 # define YYLTYPE_IS_DECLARED 1 
1525 # define YYLTYPE_IS_TRIVIAL 1 
1529            [extern YYLTYPE b4_prefix
[]lloc
;]) 
1530 )dnl b4_locations_if
 
1532 m4_ifdef([b4_provides
], 
1533 [[/* Copy the %provides blocks.  */ 
1534 ]b4_user_provides
])[]dnl