1 m4_divert(-1)                                                       -*- C 
-*- 
   4 # Yacc compatible skeleton for Bison 
   5 # Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 
   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., 59 Temple Place, Suite 330, Boston, MA 
  25 ## ---------------- ## 
  27 ## ---------------- ## 
  30 m4_define_default([b4_stack_depth_max
], [10000]) 
  31 m4_define_default([b4_stack_depth_init
],  [200]) 
  34 m4_define_default([b4_location_type
], [yyltype
]) 
  37 ## ------------------------ ## 
  38 ## Pure/impure interfaces.  ## 
  39 ## ------------------------ ## 
  42 # b4_pure_if(IF-TRUE, IF-FALSE) 
  43 # ----------------------------- 
  44 # Expand IF-TRUE, if %pure-parser and %parse-param, IF-FALSE otherwise. 
  45 m4_define([b4_Pure_if
], 
  46 [b4_pure_if([m4_ifset([b4_parse_param
], 
  53 # Arguments passed to yyerror: user args plus yylloc. 
  54 m4_define([b4_yyerror_args
], 
  55 [b4_Pure_if([b4_location_if([&yylloc
, ])])dnl
 
  56 m4_ifset([b4_parse_param
], [b4_c_args(b4_parse_param
), ])]) 
  61 # Accumule in b4_lex_param all the yylex arguments. 
  62 # b4_lex_param arrives quoted twice, but we want to keep only one level. 
  63 m4_define([b4_lex_param
], 
  64 m4_dquote(b4_pure_if([[[[YYSTYPE 
*]], [[&yylval
]]][]dnl
 
  65 b4_location_if([, [[YYLTYPE 
*], [&yylloc
]]])])dnl
 
  66 m4_ifdef([b4_lex_param
], [, ]b4_lex_param
))) 
  74 # b4_int_type(MIN, MAX) 
  75 # --------------------- 
  76 # Return the smallest int type able to handle numbers ranging from 
  77 # MIN to MAX (included).  We overwrite the version from c.m4 which relies 
  78 # on "signed char" which is not portable to old K&R compilers. 
  79 m4_define([b4_int_type
], 
  80 [m4_if(b4_ints_in($@
,      [0],   [255]), [1], [unsigned char], 
  81        b4_ints_in($@
,   [-128],   [127]), [1], [yysigned_char
], 
  83        b4_ints_in($@
,      [0], [65535]), [1], [unsigned short], 
  84        b4_ints_in($@
, [-32768], [32767]), [1], [short], 
  86        m4_eval([0 <= $
1]),                [1], [unsigned int], 
  91 ## ----------------- ## 
  92 ## Semantic Values.  ## 
  93 ## ----------------- ## 
  96 # b4_lhs_value([TYPE]) 
  97 # -------------------- 
  98 # Expansion of $<TYPE>$. 
  99 m4_define([b4_lhs_value
], 
 100 [yyval
[]m4_ifval([$
1], [.$
1])]) 
 103 # b4_rhs_value(RULE-LENGTH, NUM, [TYPE]) 
 104 # -------------------------------------- 
 105 # Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH 
 107 m4_define([b4_rhs_value
], 
 108 [yyvsp@
{m4_eval([$
2 - $
1])@
}m4_ifval([$
3], [.$
3])]) 
 119 m4_define([b4_lhs_location
], 
 123 # b4_rhs_location(RULE-LENGTH, NUM) 
 124 # --------------------------------- 
 125 # Expansion of @NUM, where the current rule has RULE-LENGTH symbols 
 127 m4_define([b4_rhs_location
], 
 128 [yylsp@
{m4_eval([$
2 - $
1])@
}]) 
 132 ## --------------------------------------------------------- ## 
 133 ## Defining symbol actions, e.g., printers and destructors.  ## 
 134 ## --------------------------------------------------------- ## 
 136 # We do want M4 expansion after # for CPP macros. 
 139 @output @output_parser_name@
 
 140 b4_copyright([Skeleton parser 
for Yacc
-like parsing with Bison
], 
 141              [1984, 1989, 1990, 2000, 2001, 2002])[ 
 143 /* As a special exception, when this file is copied by Bison into a 
 144    Bison output file, you may use that output file without restriction. 
 145    This special exception was added by the Free Software Foundation 
 146    in version 1.24 of Bison.  */ 
 148 /* Written by Richard Stallman by simplifying the original so called 
 149    ``semantic'' parser.  */ 
 151 /* All symbols defined below should begin with yy or YY, to avoid 
 152    infringing on user name space.  This should be done even for local 
 153    variables, as they might otherwise be expanded by user macros. 
 154    There are some unavoidable exceptions within include files to 
 155    define necessary library symbols; they are noted "INFRINGES ON 
 156    USER NAME SPACE" below.  */ 
 159 m4_if(b4_prefix
[], [yy
], [], 
 160 [/* If NAME_PREFIX is specified substitute the variables and functions 
 162 #define yyparse b4_prefix[]parse 
 163 #define yylex   b4_prefix[]lex 
 164 #define yyerror b4_prefix[]error 
 165 #define yylval  b4_prefix[]lval 
 166 #define yychar  b4_prefix[]char 
 167 #define yydebug b4_prefix[]debug 
 168 #define yynerrs b4_prefix[]nerrs 
 169 b4_location_if([#define yylloc b4_prefix[]lloc])])[ 
 171 ]b4_token_defines(b4_tokens
)[ 
 173 /* Copy the first part of user declarations.  */ 
 176 /* Enabling traces.  */ 
 178 # define YYDEBUG ]b4_debug[ 
 181 /* Enabling verbose error messages.  */ 
 182 #ifdef YYERROR_VERBOSE 
 183 # undef YYERROR_VERBOSE 
 184 # define YYERROR_VERBOSE 1 
 186 # define YYERROR_VERBOSE ]b4_error_verbose[ 
 190 ]m4_ifdef([b4_stype
], 
 191 [b4_syncline([b4_stype_line
], [b4_filename
]) 
 192 typedef union b4_stype yystype
; 
 193 /* Line __line__ of __file__.  */ 
 194 b4_syncline([@oline@
], [@ofile@
])], 
 195 [typedef int yystype
;])[ 
 196 # define YYSTYPE yystype 
 197 # define YYSTYPE_IS_TRIVIAL 1 
 201 typedef struct yyltype
 
 208 # define YYLTYPE ]b4_location_type[ 
 209 # define YYLTYPE_IS_TRIVIAL 1 
 212 /* Copy the second part of user declarations.  */ 
 215 /* Line __line__ of __file__.  */ 
 216 ]b4_syncline([@oline@
], [@ofile@
])[ 
 218 #if ! defined (yyoverflow) || YYERROR_VERBOSE 
 220 /* The parser invokes alloca or malloc; define the necessary symbols.  */ 
 222 # if YYSTACK_USE_ALLOCA 
 223 #  define YYSTACK_ALLOC alloca 
 225 #  ifndef YYSTACK_USE_ALLOCA 
 226 #   if defined (alloca) || defined (_ALLOCA_H) 
 227 #    define YYSTACK_ALLOC alloca 
 230 #     define YYSTACK_ALLOC __builtin_alloca 
 236 # ifdef YYSTACK_ALLOC 
 237    /* Pacify GCC's `empty if-body' warning. */ 
 238 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 
 240 #  if defined (__STDC__) || defined (__cplusplus) 
 241 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
 242 #   define YYSIZE_T size_t 
 244 #  define YYSTACK_ALLOC malloc 
 245 #  define YYSTACK_FREE free 
 247 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ 
 250 #if (! defined (yyoverflow) \ 
 251      && (! defined (__cplusplus) \ 
 252          || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
 254 /* A type that is properly aligned for any stack member.  */ 
 259   ]b4_location_if([  YYLTYPE yyls
; 
 263 /* The size of the maximum gap between one aligned stack and the next.  */ 
 264 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) 
 266 /* The size of an array large to enough to hold all stacks, each with 
 269 [# define YYSTACK_BYTES(N) \ 
 270      ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))      \ 
 271       + 2 * YYSTACK_GAP_MAX)], 
 272 [# define YYSTACK_BYTES(N) \ 
 273      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \ 
 274       + YYSTACK_GAP_MAX)])[ 
 276 /* Copy COUNT objects from FROM to TO.  The source and destination do 
 280 #   define YYCOPY(To, From, Count) \ 
 281       __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 
 283 #   define YYCOPY(To, From, Count)              \ 
 286           register YYSIZE_T yyi;                \ 
 287           for (yyi = 0; yyi < (Count); yyi++)   \ 
 288             (To)[yyi] = (From)[yyi];            \ 
 294 /* Relocate STACK from its old location to the new one.  The 
 295    local variables YYSIZE and YYSTACKSIZE give the old and new number of 
 296    elements in the stack, and YYPTR gives the new location of the 
 297    stack.  Advance YYPTR to a properly aligned location for the next 
 299 # define YYSTACK_RELOCATE(Stack)                                        \ 
 302         YYSIZE_T yynewbytes;                                            \ 
 303         YYCOPY (&yyptr->Stack, Stack, yysize);                          \ 
 304         Stack = &yyptr->Stack;                                          \ 
 305         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \ 
 306         yyptr += yynewbytes / sizeof (*yyptr);                          \ 
 312 #if defined (__STDC__) || defined (__cplusplus) 
 313    typedef signed char yysigned_char
; 
 315    typedef short yysigned_char
; 
 318 /* YYFINAL -- State number of the termination state. */ 
 319 #define YYFINAL  ]b4_final_state_number[ 
 320 /* YYLAST -- Last index in YYTABLE.  */ 
 321 #define YYLAST   ]b4_last[ 
 323 /* YYNTOKENS -- Number of terminals. */ 
 324 #define YYNTOKENS  ]b4_tokens_number[ 
 325 /* YYNNTS -- Number of nonterminals. */ 
 326 #define YYNNTS  ]b4_nterms_number[ 
 327 /* YYNRULES -- Number of rules. */ 
 328 #define YYNRULES  ]b4_rules_number[ 
 329 /* YYNRULES -- Number of states. */ 
 330 #define YYNSTATES  ]b4_states_number[ 
 332 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
 333 #define YYUNDEFTOK  ]b4_undef_token_number[ 
 334 #define YYMAXUTOK   ]b4_user_token_number_max[ 
 336 #define YYTRANSLATE(YYX)                                                \ 
 337   ((YYX <= 0) ? YYEOF :                                                 \ 
 338    (unsigned)(YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
 340 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */ 
 341 static const ]b4_int_type_for([b4_translate
])[ yytranslate
[] = 
 347 /* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in 
 349 static const b4_int_type_for([b4_prhs
]) yyprhs
[[]] = 
 354 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 
 355 static const b4_int_type_for([b4_rhs
]) yyrhs
[[]] = 
 360 /* YYRLINE[[YYN]] -- source line where rule number YYN was defined.  */ 
 361 static const b4_int_type_for([b4_rline
]) yyrline
[[]] = 
 367 #if YYDEBUG || YYERROR_VERBOSE 
 368 /* YYTNME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM. 
 369    First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 
 370 static const char *const yytname
[[]] = 
 377 /* YYTOKNUM[[YYLEX-NUM]] -- Internal token number corresponding to 
 379 static const b4_int_type_for([b4_toknum
]) yytoknum
[[]] = 
 385 /* YYR1[[YYN]] -- Symbol number of symbol that rule YYN derives.  */ 
 386 static const b4_int_type_for([b4_r1
]) yyr1
[[]] = 
 391 /* YYR2[[YYN]] -- Number of symbols composing right hand side of rule YYN.  */ 
 392 static const b4_int_type_for([b4_r2
]) yyr2
[[]] = 
 397 /* YYDEFACT[[STATE-NAME]] -- Default rule to reduce with in state 
 398    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero 
 399    means the default is an error.  */ 
 400 static const b4_int_type_for([b4_defact
]) yydefact
[[]] = 
 405 /* YYDEFGOTO[[NTERM-NUM]]. */ 
 406 static const b4_int_type_for([b4_defgoto
]) yydefgoto
[[]] = 
 411 /* YYPACT[[STATE-NUM]] -- Index in YYTABLE of the portion describing 
 413 #define YYPACT_NINF b4_pact_ninf 
 414 static const b4_int_type_for([b4_pact
]) yypact
[[]] = 
 419 /* YYPGOTO[[NTERM-NUM]].  */ 
 420 static const b4_int_type_for([b4_pgoto
]) yypgoto
[[]] = 
 425 /* YYTABLE[[YYPACT[STATE-NUM]]].  What to do in state STATE-NUM.  If 
 426    positive, shift that token.  If negative, reduce the rule which 
 427    number is the opposite.  If zero, do what YYDEFACT says. 
 428    If YYTABLE_NINF, parse error.  */ 
 429 #define YYTABLE_NINF b4_table_ninf 
 430 static const b4_int_type_for([b4_table
]) yytable
[[]] = 
 435 static const b4_int_type_for([b4_check
]) yycheck
[[]] = 
 440 /* YYSTOS[[STATE-NUM]] -- The (internal number of the) accessing 
 441    symbol of state STATE-NUM.  */ 
 442 static const b4_int_type_for([b4_stos
]) yystos
[[]] = 
 447 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) 
 448 # define YYSIZE_T __SIZE_TYPE__ 
 450 #if ! defined (YYSIZE_T) && defined (size_t) 
 451 # define YYSIZE_T size_t 
 453 #if ! defined (YYSIZE_T) 
 454 # if defined (__STDC__) || defined (__cplusplus) 
 455 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 
 456 #  define YYSIZE_T size_t 
 459 #if ! defined (YYSIZE_T) 
 460 # define YYSIZE_T unsigned int 
 463 #define yyerrok         (yyerrstatus = 0) 
 464 #define yyclearin       (yytoken = YYEMPTY) 
 468 #define YYACCEPT        goto yyacceptlab 
 469 #define YYABORT         goto yyabortlab 
 470 #define YYERROR         goto yyerrlab1 
 472 /* Like YYERROR except do call yyerror.  This remains here temporarily 
 473    to ease the transition to the new meaning of YYERROR, for GCC. 
 474    Once GCC version 2 has supplanted version 1, this can go.  */ 
 476 #define YYFAIL          goto yyerrlab 
 478 #define YYRECOVERING()  (!!yyerrstatus) 
 480 #define YYBACKUP(Token, Value)                                  \ 
 482   if (yytoken == YYEMPTY && yylen == 1)                         \ 
 486       yytoken = YYTRANSLATE (yychar);                           \ 
 492       yyerror (]b4_yyerror_args["syntax error: cannot back up");\ 
 498 #define YYERRCODE       256 
 500 /* YYLLOC_DEFAULT -- Compute the default location (before the actions 
 503 #ifndef YYLLOC_DEFAULT 
 504 # define YYLLOC_DEFAULT(Current, Rhs, N)         \ 
 505   Current.first_line   = Rhs[1].first_line;      \ 
 506   Current.first_column = Rhs[1].first_column;    \ 
 507   Current.last_line    = Rhs[N].last_line;       \ 
 508   Current.last_column  = Rhs[N].last_column; 
 511 /* YYLEX -- calling `yylex' with the right arguments.  */ 
 514 # define YYLEX yylex (]b4_pure_if([&yylval[]b4_location_if([, &yylloc]), ])[YYLEX_PARAM) 
 516 # define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[ 
 519 /* Enable debugging if requested.  */ 
 523 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 
 524 #  define YYFPRINTF fprintf 
 527 # define YYDPRINTF(Args)                        \ 
 532 # define YYDSYMPRINT(Args)                      \ 
 537 # define YYDSYMPRINTF(Title, Token, Value, Location)            \ 
 541       YYFPRINTF (stderr, "%s ", Title);                         \ 
 542       yysymprint (stderr,                                       \ 
 543                   Token, Value]b4_location_if([, Location])[);  \ 
 544       YYFPRINTF (stderr, "\n");                                 \ 
 548 /* Nonzero means print parse trace.  It is left uninitialized so that 
 549    multiple parsers can coexist.  */ 
 552 # define YYDPRINTF(Args) 
 553 # define YYDSYMPRINT(Args) 
 554 # define YYDSYMPRINTF(Title, Token, Value, Location) 
 555 #endif /* !YYDEBUG */ 
 557 /* YYINITDEPTH -- initial size of the parser's stacks.  */ 
 559 # define YYINITDEPTH ]b4_stack_depth_init[ 
 562 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 
 563    if the built-in stack extension method is used). 
 565    Do not make this value too large; the results are undefined if 
 566    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) 
 567    evaluated with infinite-precision integer arithmetic.  */ 
 574 # define YYMAXDEPTH ]b4_stack_depth_max[ 
 582 #  if defined (__GLIBC__) && defined (_STRING_H) 
 583 #   define yystrlen strlen 
 585 /* Return the length of YYSTR.  */ 
 587 #   if defined (__STDC__) || defined (__cplusplus) 
 588 yystrlen (const char *yystr
) 
 594   register const char *yys 
= yystr
; 
 596   while (*yys
++ != '\0') 
 599   return yys 
- yystr 
- 1; 
 605 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) 
 606 #   define yystpcpy stpcpy 
 608 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 
 611 #   if defined (__STDC__) || defined (__cplusplus) 
 612 yystpcpy (char *yydest
, const char *yysrc
) 
 614 yystpcpy (yydest
, yysrc
) 
 619   register char *yyd 
= yydest
; 
 620   register const char *yys 
= yysrc
; 
 622   while ((*yyd
++ = *yys
++) != '\0') 
 630 #endif /* !YYERROR_VERBOSE */ 
 635 ]b4_yysymprint_generate([b4_c_function_def
])[ 
 636 #endif /* YYDEBUG. */ 
 637 ]b4_yydestruct_generate([b4_c_function_def
]) 
 640 /* Prevent warnings from -Wmissing-prototypes.  */ 
 643 # if defined (__STDC__) || defined (__cplusplus) 
 644 int yyparse (void *YYPARSE_PARAM
); 
 648 #else /* ! YYPARSE_PARAM */ 
 649 b4_c_function_decl([yyparse
], [int], b4_parse_param
) 
 653 m4_divert_push([KILL
])# ======================== M4 code. 
 654 # b4_declare_parser_variables 
 655 # --------------------------- 
 656 # Declare the variables that are global, or local to YYPARSE if 
 658 m4_define([b4_declare_parser_variables
], 
 659 [/* The lookahead symbol.  */ 
 662 /* The semantic value of the lookahead symbol.  */ 
 665 /* Number of parse errors so far.  */ 
 666 int yynerrs
;b4_location_if([ 
 667 /* Location data for the lookahead symbol.  */ 
 670 m4_divert_pop([KILL
])dnl
# ====================== End of M4 code. 
 673            [b4_declare_parser_variables
]) 
 681 # if defined (__STDC__) || defined (__cplusplus) 
 682 int yyparse (void *YYPARSE_PARAM
) 
 684 int yyparse (YYPARSE_PARAM
) 
 687 #else /* ! YYPARSE_PARAM */ 
 688 b4_c_function_def([yyparse
], [int], b4_parse_param
) 
 691   ]b4_pure_if([b4_declare_parser_variables
])[ 
 692   register int yystate
; 
 695   /* Number of tokens to shift before error messages enabled.  */ 
 697   /* Lookahead token as an internal (translated) token number.  */ 
 700   /* Three stacks and their tools: 
 701      `yyss': related to states, 
 702      `yyvs': related to semantic values, 
 703      `yyls': related to locations. 
 705      Refer to the stacks thru separate pointers, to allow yyoverflow 
 706      to reallocate them elsewhere.  */ 
 708   /* The state stack.  */ 
 709   short yyssa
[YYINITDEPTH
]; 
 711   register short *yyssp
; 
 713   /* The semantic value stack.  */ 
 714   YYSTYPE yyvsa
[YYINITDEPTH
]; 
 715   YYSTYPE 
*yyvs 
= yyvsa
; 
 716   register YYSTYPE 
*yyvsp
; 
 719 [[  /* The location stack.  */ 
 720   YYLTYPE yylsa
[YYINITDEPTH
]; 
 721   YYLTYPE 
*yyls 
= yylsa
; 
 724 #define YYPOPSTACK   (yyvsp--, yyssp--]b4_location_if([, yylsp--])[) 
 726   YYSIZE_T yystacksize 
= YYINITDEPTH
; 
 728   /* The variables used to return semantic value and location from the 
 731 ]b4_location_if([  YYLTYPE yyloc
;])[ 
 733   /* When reducing, the number of symbols on the RHS of the reduced 
 737   YYDPRINTF ((stderr
, "Starting parse\n")); 
 742   yychar 
= yytoken 
= YYEMPTY
;           /* Cause a token to be read.  */ 
 744   /* Initialize stack pointers. 
 745      Waste one element of value and location stack 
 746      so that they stay on the same level as the state stack. 
 747      The wasted elements are never initialized.  */ 
 751 ]b4_location_if([  yylsp 
= yyls
;])[ 
 754 /*------------------------------------------------------------. 
 755 | yynewstate -- Push a new state, which is found in yystate.  | 
 756 `------------------------------------------------------------*/ 
 758   /* In all cases, when you get here, the value and location stacks 
 759      have just been pushed. so pushing a state here evens the stacks. 
 766   if (yyss 
+ yystacksize 
- 1 <= yyssp
) 
 768       /* Get the current used size of the three stacks, in elements.  */ 
 769       YYSIZE_T yysize 
= yyssp 
- yyss 
+ 1; 
 773         /* Give user a chance to reallocate the stack. Use copies of 
 774            these so that the &'s don't force the real ones into 
 776         YYSTYPE 
*yyvs1 
= yyvs
; 
 778 ]b4_location_if([       YYLTYPE 
*yyls1 
= yyls
;])[ 
 780         /* Each stack pointer address is followed by the size of the 
 781            data in use in that stack, in bytes.  This used to be a 
 782            conditional around just the two extra args, but that might 
 783            be undefined if yyoverflow is a macro.  */ 
 784         yyoverflow ("parser stack overflow", 
 785                     &yyss1
, yysize 
* sizeof (*yyssp
), 
 786                     &yyvs1
, yysize 
* sizeof (*yyvsp
), 
 787 ]b4_location_if([                   &yyls1
, yysize 
* sizeof (*yylsp
),])[ 
 789 ]b4_location_if([       yyls 
= yyls1
;])[ 
 793 #else /* no yyoverflow */ 
 794 # ifndef YYSTACK_RELOCATE 
 797       /* Extend the stack our own way.  */ 
 798       if (YYMAXDEPTH 
<= yystacksize
) 
 801       if (YYMAXDEPTH 
< yystacksize
) 
 802         yystacksize 
= YYMAXDEPTH
; 
 806         union yyalloc 
*yyptr 
= 
 807           (union yyalloc 
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
)); 
 810         YYSTACK_RELOCATE (yyss
); 
 811         YYSTACK_RELOCATE (yyvs
); 
 812 ]b4_location_if([       YYSTACK_RELOCATE (yyls
);])[ 
 813 #  undef YYSTACK_RELOCATE 
 815           YYSTACK_FREE (yyss1
); 
 818 #endif /* no yyoverflow */ 
 820       yyssp 
= yyss 
+ yysize 
- 1; 
 821       yyvsp 
= yyvs 
+ yysize 
- 1; 
 822 ]b4_location_if([      yylsp 
= yyls 
+ yysize 
- 1;])[ 
 824       YYDPRINTF ((stderr
, "Stack size increased to %lu\n", 
 825                   (unsigned long int) yystacksize
)); 
 827       if (yyss 
+ yystacksize 
- 1 <= yyssp
) 
 831   YYDPRINTF ((stderr
, "Entering state %d\n", yystate
)); 
 840 /* Do appropriate processing given the current state.  */ 
 841 /* Read a lookahead token if we need one and don't already have one.  */ 
 844   /* First try to decide what to do without reference to lookahead token.  */ 
 846   yyn 
= yypact
[yystate
]; 
 847   if (yyn 
== YYPACT_NINF
) 
 850   /* Not known => get a lookahead token if don't already have one.  */ 
 852   /* YYTOKEN is either YYEMPTY or YYEOF or a valid token.  */ 
 853   if (yytoken 
== YYEMPTY
) 
 855       YYDPRINTF ((stderr
, "Reading a token: ")); 
 857       yytoken 
= YYTRANSLATE (yychar
); 
 860   if (yytoken 
== YYEOF
) 
 862       YYDPRINTF ((stderr
, "Now at end of input.\n")); 
 866       /* We have to keep this `#if YYDEBUG', since we use variables 
 867          which are defined only if `YYDEBUG' is set.  */ 
 868       YYDSYMPRINTF ("Next token is", yytoken
, &yylval
, &yylloc
); 
 871   /* If the proper action on seeing token YYTOKEN is to reduce or to 
 872      detect an error, take that action.  */ 
 874   if (yyn 
< 0 || YYLAST 
< yyn 
|| yycheck
[yyn
] != yytoken
) 
 879       if (yyn 
== 0 || yyn 
== YYTABLE_NINF
) 
 888   /* Shift the lookahead token.  */ 
 889   YYDPRINTF ((stderr
, "Shifting token %s, ", yytname
[yytoken
])); 
 891   /* Discard the token being shifted unless it is eof.  */ 
 892   if (yytoken 
!= YYEOF
) 
 896 ]b4_location_if([  *++yylsp 
= yylloc
;])[ 
 898   /* Count tokens shifted since error; after three, turn off error 
 907 /*-----------------------------------------------------------. 
 908 | yydefault -- do the default action for the current state.  | 
 909 `-----------------------------------------------------------*/ 
 911   yyn 
= yydefact
[yystate
]; 
 917 /*-----------------------------. 
 918 | yyreduce -- Do a reduction.  | 
 919 `-----------------------------*/ 
 921   /* yyn is the number of a rule to reduce with.  */ 
 924   /* If YYLEN is nonzero, implement the default value of the action: 
 927      Otherwise, the following line sets YYVAL to garbage. 
 928      This behavior is undocumented and Bison 
 929      users should not rely upon it.  Assigning to YYVAL 
 930      unconditionally makes the parser a bit smaller, and it avoids a 
 931      GCC warning that YYVAL may be used uninitialized.  */ 
 932   yyval 
= yyvsp
[1-yylen
]; 
 935 [  /* Default location. */ 
 936   YYLLOC_DEFAULT (yyloc
, (yylsp 
- yylen
), yylen
);])[ 
 939   /* We have to keep this `#if YYDEBUG', since we use variables which 
 940      are defined only if `YYDEBUG' is set.  */ 
 945       YYFPRINTF (stderr
, "Reducing by rule %d (line %d), ", 
 946                  yyn 
- 1, yyrline
[yyn
]); 
 948       /* Print the symbols being reduced, and their result.  */ 
 949       for (yyi 
= yyprhs
[yyn
]; 0 <= yyrhs
[yyi
]; yyi
++) 
 950         YYFPRINTF (stderr
, "%s ", yytname
[yyrhs
[yyi
]]); 
 951       YYFPRINTF (stderr
, "-> %s\n", yytname
[yyr1
[yyn
]]); 
 959 /* Line __line__ of __file__.  */ 
 960 b4_syncline([@oline@
], [@ofile@
]) 
 964 ]b4_location_if([  yylsp 
-= yylen
;])[ 
 969       short *yyssp1 
= yyss 
- 1; 
 970       YYFPRINTF (stderr
, "state stack now"); 
 971       while (yyssp1 
!= yyssp
) 
 972         YYFPRINTF (stderr
, " %d", *++yyssp1
); 
 973       YYFPRINTF (stderr
, "\n"); 
 978 ]b4_location_if([  *++yylsp 
= yyloc
;])[ 
 980   /* Now `shift' the result of the reduction.  Determine what state 
 981      that goes to, based on the state we popped back to and the rule 
 982      number reduced by.  */ 
 986   yystate 
= yypgoto
[yyn 
- YYNTOKENS
] + *yyssp
; 
 987   if (0 <= yystate 
&& yystate 
<= YYLAST 
&& yycheck
[yystate
] == *yyssp
) 
 988     yystate 
= yytable
[yystate
]; 
 990     yystate 
= yydefgoto
[yyn 
- YYNTOKENS
]; 
 995 /*------------------------------------. 
 996 | yyerrlab -- here on detecting error | 
 997 `------------------------------------*/ 
 999   /* If not already recovering from an error, report this error.  */ 
1004       yyn 
= yypact
[yystate
]; 
1006       if (YYPACT_NINF 
< yyn 
&& yyn 
< YYLAST
) 
1008           YYSIZE_T yysize 
= 0; 
1009           int yytype 
= YYTRANSLATE (yychar
); 
1014           /* Start YYX at -YYN if negative to avoid negative indexes in 
1016           for (yyx 
= yyn 
< 0 ? -yyn 
: 0; 
1017                yyx 
< (int) (sizeof (yytname
) / sizeof (char *)); yyx
++) 
1018             if (yycheck
[yyx 
+ yyn
] == yyx 
&& yyx 
!= YYTERROR
) 
1019               yysize 
+= yystrlen (yytname
[yyx
]) + 15, yycount
++; 
1020           yysize 
+= yystrlen ("parse error, unexpected ") + 1; 
1021           yysize 
+= yystrlen (yytname
[yytype
]); 
1022           yymsg 
= (char *) YYSTACK_ALLOC (yysize
); 
1025               char *yyp 
= yystpcpy (yymsg
, "parse error, unexpected "); 
1026               yyp 
= yystpcpy (yyp
, yytname
[yytype
]); 
1031                   for (yyx 
= yyn 
< 0 ? -yyn 
: 0; 
1032                        yyx 
< (int) (sizeof (yytname
) / sizeof (char *)); 
1034                     if (yycheck
[yyx 
+ yyn
] == yyx 
&& yyx 
!= YYTERROR
) 
1036                         const char *yyq 
= ! yycount 
? ", expecting " : " or "; 
1037                         yyp 
= yystpcpy (yyp
, yyq
); 
1038                         yyp 
= yystpcpy (yyp
, yytname
[yyx
]); 
1042               yyerror (]b4_yyerror_args
[yymsg
); 
1043               YYSTACK_FREE (yymsg
); 
1046             yyerror (]b4_yyerror_args
["parse error; also virtual memory exhausted"); 
1049 #endif /* YYERROR_VERBOSE */ 
1050         yyerror (]b4_yyerror_args
["parse error"); 
1055 /*----------------------------------------------------. 
1056 | yyerrlab1 -- error raised explicitly by an action.  | 
1057 `----------------------------------------------------*/ 
1059   if (yyerrstatus 
== 3) 
1061       /* If just tried and failed to reuse lookahead token after an 
1062          error, discard it.  */ 
1064       /* Return failure if at end of input.  */ 
1065       if (yytoken 
== YYEOF
) 
1067           /* Pop the error token.  */ 
1069           /* Pop the rest of the stack.  */ 
1070           while (yyss 
< yyssp
) 
1072               YYDSYMPRINTF ("Error: popping", yystos
[*yyssp
], yyvsp
, yylsp
); 
1073               yydestruct (yystos
[*yyssp
], yyvsp
]b4_location_if([, yylsp
])[); 
1079       YYDSYMPRINTF ("Error: discarding", yytoken
, &yylval
, &yylloc
); 
1080       yydestruct (yytoken
, &yylval
]b4_location_if([, &yylloc
])[); 
1084   /* Else will try to reuse lookahead token after shifting the error 
1087   yyerrstatus 
= 3;      /* Each real token shifted decrements this.  */ 
1091       yyn 
= yypact
[yystate
]; 
1092       if (yyn 
!= YYPACT_NINF
) 
1095           if (0 <= yyn 
&& yyn 
<= YYLAST 
&& yycheck
[yyn
] == YYTERROR
) 
1103       /* Pop the current state because it cannot handle the error token.  */ 
1107       YYDSYMPRINTF ("Error: popping", yystos
[*yyssp
], yyvsp
, yylsp
); 
1108       yydestruct (yystos
[yystate
], yyvsp
]b4_location_if([, yylsp
])[); 
1111 ]b4_location_if([      yylsp
--;])[ 
1116           short *yyssp1 
= yyss 
- 1; 
1117           YYFPRINTF (stderr
, "Error: state stack now"); 
1118           while (yyssp1 
!= yyssp
) 
1119             YYFPRINTF (stderr
, " %d", *++yyssp1
); 
1120           YYFPRINTF (stderr
, "\n"); 
1128   YYDPRINTF ((stderr
, "Shifting error token, ")); 
1131 ]b4_location_if([  *++yylsp 
= yylloc
;])[ 
1137 /*-------------------------------------. 
1138 | yyacceptlab -- YYACCEPT comes here.  | 
1139 `-------------------------------------*/ 
1144 /*-----------------------------------. 
1145 | yyabortlab -- YYABORT comes here.  | 
1146 `-----------------------------------*/ 
1152 /*----------------------------------------------. 
1153 | yyoverflowlab -- parser overflow comes here.  | 
1154 `----------------------------------------------*/ 
1156   yyerror (]b4_yyerror_args
["parser stack overflow"); 
1164     YYSTACK_FREE (yyss
); 
1171 m4_if(b4_defines_flag
, 0, [], 
1172 [@output @output_header_name@
 
1173 b4_copyright([Skeleton parser 
for Yacc
-like parsing with Bison
], 
1174              [1984, 1989, 1990, 2000, 2001, 2002]) 
1176 /* As a special exception, when this file is copied by Bison into a 
1177    Bison output file, you may use that output file without restriction. 
1178    This special exception was added by the Free Software Foundation 
1179    in version 1.24 of Bison.  */ 
1181 b4_token_defines(b4_tokens
) 
1184 m4_ifdef([b4_stype
], 
1185 [b4_syncline([b4_stype_line
], [b4_filename
]) 
1186 typedef union b4_stype yystype
; 
1187 /* Line __line__ of __file__.  */ 
1188 b4_syncline([@oline@
], [@ofile@
])], 
1189 [typedef int yystype
;]) 
1190 # define YYSTYPE yystype 
1191 # define YYSTYPE_IS_TRIVIAL 1 
1195 [extern YYSTYPE b4_prefix
[]lval
;]) 
1199 typedef struct yyltype
 
1206 # define YYLTYPE yyltype 
1210 [extern YYLTYPE b4_prefix
[]lloc
;])