]> git.saurik.com Git - bison.git/blame - data/bison.simple
* tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
[bison.git] / data / bison.simple
CommitLineData
007a50a4 1m4_divert(-1) -*- C -*-
a8289c62 2
680e8701
AD
3# b4_sint_type(MAX)
4# -----------------
5# Return the smallest signed int type able to handle the number MAX.
6m4_define([b4_sint_type],
7[m4_if(m4_eval([$1 <= 127]), [1], [signed char],
8 m4_eval([$1 <= 32767]), [1], [signed short],
fcc61800 9 [signed int])])
680e8701
AD
10
11
12# b4_uint_type(MAX)
13# -----------------
14# Return the smallest unsigned int type able to handle the number MAX.
15m4_define([b4_uint_type],
16[m4_if(m4_eval([$1 <= 255]), [1], [unsigned char],
17 m4_eval([$1 <= 65535]), [1], [unsigned short],
fcc61800 18 [unsigned int])])
680e8701
AD
19
20
82b6cb3f
AD
21# b4_lhs_value([TYPE])
22# --------------------
23# Expansion of $<TYPE>$.
24m4_define([b4_lhs_value],
25[yyval[]m4_ifval([$1], [.$1])])
26
27
28# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])
29# --------------------------------------
30# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
31# symbols on RHS.
32m4_define([b4_rhs_value],
33[yyvsp@<:@m4_eval([$2 - $1])@:>@m4_ifval([$3], [.$3])])
34
35
36# b4_lhs_location()
37# -----------------
38# Expansion of @$.
39m4_define([b4_lhs_location],
40[yyloc])
41
42
43# b4_rhs_location(RULE-LENGTH, NUM)
44# ---------------------------------
45# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
46# on RHS.
47m4_define([b4_rhs_location],
48[yylsp@<:@m4_eval([$2 - $1])@:>@])
49
50
be2a1a68 51m4_define_default([b4_input_suffix], [.y])
2992e1e9 52
be2a1a68
AD
53m4_define_default([b4_output_parser_suffix],
54[m4_translit(b4_input_suffix, [yY], [cC])])
55
56m4_define_default([b4_output_parser_name],
57[b4_output_prefix[]b4_output_infix[]b4_output_parser_suffix[]])
58
59
60m4_define_default([b4_output_header_suffix],
61[m4_translit(b4_input_suffix, [yY], [hH])])
62
63m4_define_default([b4_output_header_name],
64[b4_output_prefix[]b4_output_infix[]b4_output_header_suffix[]])
65
66m4_define_default([b4_header_guard],
67 [m4_bpatsubst(m4_toupper([BISON_]b4_output_header_name),
68 [[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]], [_])])
69
0d8bed56 70
83ccf991
AD
71# b4_token_define(TOKEN-NAME, TOKEN-NUMBER)
72# -----------------------------------------
0d8bed56
AD
73# Output the definition of this token as #define.
74m4_define([b4_token_define],
75[#define $1 $2
76])
77
78
83ccf991
AD
79# b4_token_enum(TOKEN-NAME, TOKEN-NUMBER)
80# ---------------------------------------
81# Output the definition of this token as an enum.
82m4_define([b4_token_enum],
53c71a12 83[$1 = $2])
83ccf991
AD
84
85
0d8bed56
AD
86# b4_token_defines(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
87# -------------------------------------------------------
53c71a12 88# Output the definition of the tokens (if there are) as enums and #define.
0d8bed56 89m4_define([b4_token_defines],
53c71a12
AD
90[m4_if([$@], [[]], [],
91[/* Tokens. */
92#ifndef YYTOKENTYPE
83ccf991
AD
93# if defined (__STDC__) || defined (__cplusplus)
94 /* Put the tokens into the symbol table, so that GDB and other debuggers
95 know about them. */
96 enum yytokentype {
97m4_map_sep([ b4_token_enum], [,
98],
99 [$@])
100 };
83ccf991 101# endif
fba798c7
PE
102 /* POSIX requires `int' for tokens in interfaces. */
103# define YYTOKENTYPE int
53c71a12
AD
104#endif /* !YYTOKENTYPE */
105m4_map([b4_token_define], [$@])
106])
107])
0d8bed56
AD
108
109
be2a1a68
AD
110m4_divert(0)dnl
111#output "b4_output_parser_name"
112/* A Bison parser, made from b4_filename
113 by GNU bison b4_version. */
114
115/* Skeleton output parser for Bison,
2992e1e9
PE
116 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
117 Foundation, Inc.
10fa2066
RS
118
119 This program is free software; you can redistribute it and/or modify
120 it under the terms of the GNU General Public License as published by
21b14802 121 the Free Software Foundation; either version 2, or (at your option)
10fa2066
RS
122 any later version.
123
124 This program is distributed in the hope that it will be useful,
125 but WITHOUT ANY WARRANTY; without even the implied warranty of
126 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
127 GNU General Public License for more details.
128
129 You should have received a copy of the GNU General Public License
130 along with this program; if not, write to the Free Software
c49a8e71
JT
131 Foundation, Inc., 59 Temple Place - Suite 330,
132 Boston, MA 02111-1307, USA. */
10fa2066 133
c71f8bba
RS
134/* As a special exception, when this file is copied by Bison into a
135 Bison output file, you may use that output file without restriction.
136 This special exception was added by the Free Software Foundation
cfeaeb52 137 in version 1.24 of Bison. */
10fa2066 138
71da9eea
AD
139/* This is the parser code that is written into each bison parser when
140 the %semantic_parser declaration is not specified in the grammar.
fdbcd8e2
AD
141 It was written by Richard Stallman by simplifying the original so
142 called ``semantic'' parser. */
444fbf65 143
cf44a9ae
PE
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. */
150
7093d0f5
AD
151/* Identify Bison output. */
152#define YYBISON 1
fd51e5ff 153
7093d0f5 154/* Pure parsers. */
be2a1a68 155#define YYPURE b4_pure
7093d0f5
AD
156
157/* Using locations. */
be2a1a68 158#define YYLSP_NEEDED b4_locations_flag
7093d0f5 159
be2a1a68
AD
160m4_if(b4_prefix[], [yy], [],
161[/* If NAME_PREFIX is specified substitute the variables and functions
17da6427 162 names. */
be2a1a68
AD
163#define yyparse b4_prefix[]parse
164#define yylex b4_prefix[]lex
165#define yyerror b4_prefix[]error
166#define yylval b4_prefix[]lval
167#define yychar b4_prefix[]char
168#define yydebug b4_prefix[]debug
169#define yynerrs b4_prefix[]nerrs
b5b61c61 170#if YYLSP_NEEDED
be2a1a68 171# define yylloc b4_prefix[]lloc
b5b61c61 172#endif
be2a1a68 173])
17da6427 174
0dd1580a
RA
175/* Copy the first part of user declarations. */
176b4_pre_prologue
cce71710 177
d99361e6
AD
178/* Enabling traces. */
179#ifndef YYDEBUG
be2a1a68 180# define YYDEBUG b4_debug
d99361e6
AD
181#endif
182
183/* Enabling verbose error messages. */
184#ifdef YYERROR_VERBOSE
185# undef YYERROR_VERBOSE
186# define YYERROR_VERBOSE 1
187#else
be2a1a68 188# define YYERROR_VERBOSE b4_error_verbose
d99361e6
AD
189#endif
190
fd51e5ff 191#ifndef YYSTYPE
642cb8f8
AD
192m4_ifdef([b4_stype_line],
193[#line b4_stype_line "b4_filename"
194])dnl
be2a1a68 195typedef b4_stype yystype;
fd51e5ff 196# define YYSTYPE yystype
71cd15d4 197# define YYSTYPE_IS_TRIVIAL 1
fd51e5ff
AD
198#endif
199
200#ifndef YYLTYPE
201typedef struct yyltype
202{
203 int first_line;
204 int first_column;
205 int last_line;
206 int last_column;
207} yyltype;
be2a1a68 208# define YYLTYPE b4_ltype
71cd15d4 209# define YYLTYPE_IS_TRIVIAL 1
fd51e5ff
AD
210#endif
211
0dd1580a
RA
212/* Copy the second part of user declarations. */
213b4_post_prologue
214
be2a1a68 215/* Line __line__ of __file__. */
06446ccf 216#line __oline__ "__ofile__"
7093d0f5 217
cf44a9ae 218#if ! defined (yyoverflow) || YYERROR_VERBOSE
7093d0f5
AD
219
220/* The parser invokes alloca or malloc; define the necessary symbols. */
221
222# if YYSTACK_USE_ALLOCA
223# define YYSTACK_ALLOC alloca
7093d0f5
AD
224# else
225# ifndef YYSTACK_USE_ALLOCA
226# if defined (alloca) || defined (_ALLOCA_H)
227# define YYSTACK_ALLOC alloca
7093d0f5 228# else
0d8a7363 229# ifdef __GNUC__
7093d0f5
AD
230# define YYSTACK_ALLOC __builtin_alloca
231# endif
7093d0f5
AD
232# endif
233# endif
234# endif
235
236# ifdef YYSTACK_ALLOC
237 /* Pacify GCC's `empty if-body' warning. */
238# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
239# else
45119af1
PE
240# if defined (__STDC__) || defined (__cplusplus)
241# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
242# define YYSIZE_T size_t
7093d0f5 243# endif
45119af1
PE
244# define YYSTACK_ALLOC malloc
245# define YYSTACK_FREE free
7093d0f5 246# endif
cf44a9ae
PE
247#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
248
249
250#if (! defined (yyoverflow) \
251 && (! defined (__cplusplus) \
252 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
7093d0f5 253
600f9b0c
PE
254/* A type that is properly aligned for any stack member. */
255union yyalloc
256{
2729e106
PE
257 short yyss;
258 YYSTYPE yyvs;
7093d0f5 259# if YYLSP_NEEDED
2729e106 260 YYLTYPE yyls;
7093d0f5 261# endif
600f9b0c
PE
262};
263
264/* The size of the maximum gap between one aligned stack and the next. */
7093d0f5 265# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
600f9b0c
PE
266
267/* The size of an array large to enough to hold all stacks, each with
268 N elements. */
7093d0f5
AD
269# if YYLSP_NEEDED
270# define YYSTACK_BYTES(N) \
cf44a9ae
PE
271 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
272 + 2 * YYSTACK_GAP_MAX)
7093d0f5
AD
273# else
274# define YYSTACK_BYTES(N) \
cf44a9ae
PE
275 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
276 + YYSTACK_GAP_MAX)
7093d0f5 277# endif
600f9b0c 278
5b041382
PE
279/* Copy COUNT objects from FROM to TO. The source and destination do
280 not overlap. */
281# ifndef YYCOPY
282# if 1 < __GNUC__
283# define YYCOPY(To, From, Count) \
284 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
285# else
286# define YYCOPY(To, From, Count) \
287 do \
288 { \
289 register YYSIZE_T yyi; \
290 for (yyi = 0; yyi < (Count); yyi++) \
0c76a0c9 291 (To)[[yyi]] = (From)[[yyi]]; \
5b041382
PE
292 } \
293 while (0)
294# endif
295# endif
296
297/* Relocate STACK from its old location to the new one. The
7093d0f5 298 local variables YYSIZE and YYSTACKSIZE give the old and new number of
600f9b0c
PE
299 elements in the stack, and YYPTR gives the new location of the
300 stack. Advance YYPTR to a properly aligned location for the next
301 stack. */
5b041382 302# define YYSTACK_RELOCATE(Stack) \
7093d0f5
AD
303 do \
304 { \
305 YYSIZE_T yynewbytes; \
5b041382 306 YYCOPY (&yyptr->Stack, Stack, yysize); \
2729e106 307 Stack = &yyptr->Stack; \
5b041382 308 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2729e106 309 yyptr += yynewbytes / sizeof (*yyptr); \
7093d0f5
AD
310 } \
311 while (0)
312
cf44a9ae 313#endif
8850be4b 314
0d8bed56 315b4_token_defines(b4_tokens)
a8289c62 316
7742ddeb 317/* YYFINAL -- State number of the termination state. */
be2a1a68
AD
318#define YYFINAL b4_final
319#define YYFLAG b4_flag
320#define YYLAST b4_last
7742ddeb
AD
321
322/* YYNTOKENS -- Number of terminals. */
be2a1a68 323#define YYNTOKENS b4_ntokens
7742ddeb 324/* YYNNTS -- Number of nonterminals. */
be2a1a68 325#define YYNNTS b4_nnts
7742ddeb 326/* YYNRULES -- Number of rules. */
be2a1a68 327#define YYNRULES b4_nrules
7742ddeb 328/* YYNRULES -- Number of states. */
be2a1a68 329#define YYNSTATES b4_nstates
7742ddeb
AD
330
331/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
007a50a4
AD
332#define YYUNDEFTOK b4_undef_token_number
333#define YYMAXUTOK b4_user_token_number_max
334
007a50a4
AD
335#define YYTRANSLATE(X) \
336 ((unsigned)(X) <= YYMAXUTOK ? yytranslate[[X]] : YYUNDEFTOK)
a8289c62 337
be2a1a68 338/* YYTRANSLATE[[YYLEX]] -- Bison symbol number corresponding to YYLEX. */
c0c9ea05 339static const b4_uint_type(b4_translate_max) yytranslate[[]] =
a8289c62 340{
be2a1a68 341 b4_translate
a8289c62
RA
342};
343
344#if YYDEBUG
be2a1a68 345/* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in
7742ddeb 346 YYRHS. */
5df5f6d5 347static const b4_uint_type(b4_prhs_max) yyprhs[[]] =
a8289c62 348{
be2a1a68 349 b4_prhs
a8289c62
RA
350};
351
3db472b9 352/* YYRHS -- A `-1'-separated list of the rules' RHS. */
5df5f6d5 353static const b4_sint_type(b4_rhs_max) yyrhs[[]] =
a8289c62 354{
be2a1a68 355 b4_rhs
a8289c62
RA
356};
357
be2a1a68 358/* YYRLINE[[YYN]] -- source line where rule number YYN was defined. */
5df5f6d5 359static const b4_uint_type(b4_rline_max) yyrline[[]] =
a8289c62 360{
be2a1a68 361 b4_rline
a8289c62
RA
362};
363#endif
364
5504898e 365#if YYDEBUG || YYERROR_VERBOSE
be2a1a68 366/* YYTNME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM.
7742ddeb 367 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
be2a1a68 368static const char *const yytname[[]] =
a8289c62 369{
be2a1a68 370 b4_tname
a8289c62
RA
371};
372#endif
373
be2a1a68
AD
374/* YYTOKNUM[[YYN]] -- Index in YYTNAME corresponding to YYLEX. */
375static const short yytoknum[[]] =
a8289c62 376{
be2a1a68 377 b4_toknum
a8289c62
RA
378};
379
be2a1a68 380/* YYR1[[YYN]] -- Symbol number of symbol that rule YYN derives. */
c0c9ea05 381static const b4_uint_type(b4_r1_max) yyr1[[]] =
a8289c62 382{
be2a1a68 383 b4_r1
a8289c62
RA
384};
385
be2a1a68 386/* YYR2[[YYN]] -- Number of symbols composing right hand side of rule YYN. */
5df5f6d5 387static const b4_uint_type(b4_r2_max) yyr2[[]] =
a8289c62 388{
be2a1a68 389 b4_r2
a8289c62
RA
390};
391
5504898e
AD
392/* YYDEFACT[[STATE-NAME]] -- Default rule to reduce with in state
393 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
394 means the default is an error. */
be2a1a68 395static const short yydefact[[]] =
a8289c62 396{
be2a1a68 397 b4_defact
a8289c62
RA
398};
399
be2a1a68
AD
400/* YYPGOTO[[NTERM-NUM]]. */
401static const short yydefgoto[[]] =
a8289c62 402{
be2a1a68 403 b4_defgoto
a8289c62
RA
404};
405
be2a1a68 406/* YYPACT[[STATE-NUM]] -- Index in YYTABLE of the portion describing
7742ddeb 407 STATE-NUM. */
be2a1a68 408static const short yypact[[]] =
a8289c62 409{
be2a1a68 410 b4_pact
a8289c62
RA
411};
412
be2a1a68
AD
413/* YYPGOTO[[NTERM-NUM]]. */
414static const short yypgoto[[]] =
a8289c62 415{
be2a1a68 416 b4_pgoto
a8289c62
RA
417};
418
be2a1a68 419/* YYTABLE[[YYPACT[STATE-NUM]]]. What to do in state STATE-NUM. If
7742ddeb
AD
420 positive, shift that token. If negative, reduce the rule which
421 number is the opposite. If zero, do what YYDEFACT says. */
be2a1a68 422static const short yytable[[]] =
a8289c62 423{
be2a1a68 424 b4_table
a8289c62
RA
425};
426
be2a1a68 427static const short yycheck[[]] =
a8289c62 428{
be2a1a68 429 b4_check
a8289c62
RA
430};
431
5504898e
AD
432#if YYDEBUG
433/* YYSTOS[[STATE-NUM]] -- The (internal number of the) accessing
434 symbol of state STATE-NUM. */
435static const b4_uint_type(b4_stos_max) yystos[[]] =
436{
437 b4_stos
438};
439#endif
7093d0f5
AD
440
441#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
442# define YYSIZE_T __SIZE_TYPE__
443#endif
444#if ! defined (YYSIZE_T) && defined (size_t)
445# define YYSIZE_T size_t
446#endif
b7575ffe 447#if ! defined (YYSIZE_T)
45119af1
PE
448# if defined (__STDC__) || defined (__cplusplus)
449# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
450# define YYSIZE_T size_t
b7575ffe 451# endif
7093d0f5
AD
452#endif
453#if ! defined (YYSIZE_T)
454# define YYSIZE_T unsigned int
455#endif
456
10fa2066 457#define yyerrok (yyerrstatus = 0)
17da6427 458#define yyclearin (yychar = YYEMPTY)
10fa2066
RS
459#define YYEMPTY -2
460#define YYEOF 0
a8289c62 461
70ddf897 462#define YYACCEPT goto yyacceptlab
a8289c62 463#define YYABORT goto yyabortlab
10fa2066 464#define YYERROR goto yyerrlab1
a8289c62 465
71da9eea
AD
466/* Like YYERROR except do call yyerror. This remains here temporarily
467 to ease the transition to the new meaning of YYERROR, for GCC.
10fa2066 468 Once GCC version 2 has supplanted version 1, this can go. */
a8289c62 469
10fa2066 470#define YYFAIL goto yyerrlab
a8289c62 471
10fa2066 472#define YYRECOVERING() (!!yyerrstatus)
a8289c62 473
69b4e0c5 474#define YYBACKUP(Token, Value) \
10fa2066 475do \
17da6427 476 if (yychar == YYEMPTY && yylen == 1) \
71da9eea 477 { \
17da6427 478 yychar = (Token); \
7742ddeb 479 yylval = (Value); \
17da6427 480 yychar1 = YYTRANSLATE (yychar); \
10fa2066
RS
481 YYPOPSTACK; \
482 goto yybackup; \
483 } \
484 else \
71da9eea 485 { \
7742ddeb 486 yyerror ("syntax error: cannot back up"); \
71da9eea
AD
487 YYERROR; \
488 } \
10fa2066
RS
489while (0)
490
491#define YYTERROR 1
492#define YYERRCODE 256
493
3abcd459 494/* YYLLOC_DEFAULT -- Compute the default location (before the actions
b2d52318 495 are run). */
3abcd459
AD
496
497#ifndef YYLLOC_DEFAULT
b2d52318
AD
498# define YYLLOC_DEFAULT(Current, Rhs, N) \
499 Current.first_line = Rhs[[1]].first_line; \
500 Current.first_column = Rhs[[1]].first_column; \
501 Current.last_line = Rhs[[N]].last_line; \
502 Current.last_column = Rhs[[N]].last_column;
3abcd459
AD
503#endif
504
3abcd459 505/* YYLEX -- calling `yylex' with the right arguments. */
553e2b22
AD
506
507#if YYPURE
5af1f549 508# if YYLSP_NEEDED
b07b484a 509# ifdef YYLEX_PARAM
17da6427 510# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
b07b484a 511# else
17da6427 512# define YYLEX yylex (&yylval, &yylloc)
b07b484a 513# endif
71da9eea 514# else /* !YYLSP_NEEDED */
b07b484a 515# ifdef YYLEX_PARAM
17da6427 516# define YYLEX yylex (&yylval, YYLEX_PARAM)
b07b484a 517# else
17da6427 518# define YYLEX yylex (&yylval)
b07b484a 519# endif
71da9eea 520# endif /* !YYLSP_NEEDED */
553e2b22 521#else /* !YYPURE */
17da6427 522# define YYLEX yylex ()
553e2b22
AD
523#endif /* !YYPURE */
524
5a35a6cb 525/* Enable debugging if requested. */
0d533154 526#if YYDEBUG
b7575ffe
PE
527
528# ifndef YYFPRINTF
45119af1
PE
529# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
530# define YYFPRINTF fprintf
b7575ffe
PE
531# endif
532
5a35a6cb
AD
533# define YYDPRINTF(Args) \
534do { \
17da6427 535 if (yydebug) \
b7575ffe 536 YYFPRINTF Args; \
5a35a6cb 537} while (0)
cf44a9ae
PE
538/* Nonzero means print parse trace. It is left uninitialized so that
539 multiple parsers can coexist. */
17da6427 540int yydebug;
5a35a6cb
AD
541#else /* !YYDEBUG */
542# define YYDPRINTF(Args)
543#endif /* !YYDEBUG */
544
545/* YYINITDEPTH -- initial size of the parser's stacks. */
10fa2066 546#ifndef YYINITDEPTH
be2a1a68 547# define YYINITDEPTH b4_initdepth
10fa2066
RS
548#endif
549
5a35a6cb 550/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
600f9b0c
PE
551 if the built-in stack extension method is used).
552
553 Do not make this value too large; the results are undefined if
554 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
555 evaluated with infinite-precision integer arithmetic. */
556
10fa2066 557#if YYMAXDEPTH == 0
b07b484a 558# undef YYMAXDEPTH
10fa2066
RS
559#endif
560
561#ifndef YYMAXDEPTH
be2a1a68 562# define YYMAXDEPTH b4_maxdepth
10fa2066 563#endif
a8289c62 564
10fa2066 565\f
a8289c62 566
7093d0f5
AD
567#if YYERROR_VERBOSE
568
569# ifndef yystrlen
570# if defined (__GLIBC__) && defined (_STRING_H)
571# define yystrlen strlen
572# else
573/* Return the length of YYSTR. */
574static YYSIZE_T
575# if defined (__STDC__) || defined (__cplusplus)
576yystrlen (const char *yystr)
577# else
578yystrlen (yystr)
579 const char *yystr;
580# endif
581{
582 register const char *yys = yystr;
583
584 while (*yys++ != '\0')
585 continue;
586
587 return yys - yystr - 1;
588}
589# endif
590# endif
591
592# ifndef yystpcpy
593# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
594# define yystpcpy stpcpy
595# else
596/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
597 YYDEST. */
598static char *
f11966ff
PE
599# if defined (__STDC__) || defined (__cplusplus)
600yystpcpy (char *yydest, const char *yysrc)
601# else
7093d0f5
AD
602yystpcpy (yydest, yysrc)
603 char *yydest;
604 const char *yysrc;
7093d0f5
AD
605# endif
606{
607 register char *yyd = yydest;
608 register const char *yys = yysrc;
609
610 while ((*yyd++ = *yys++) != '\0')
611 continue;
612
613 return yyd - 1;
614}
615# endif
616# endif
617
618#endif /* !YYERROR_VERBOSE */
619
10fa2066 620\f
a8289c62 621
b658bf92
RS
622/* The user can define YYPARSE_PARAM as the name of an argument to be passed
623 into yyparse. The argument should have type void *.
624 It should actually point to an object.
625 Grammar actions can access the variable by casting it
626 to the proper pointer type. */
627
628#ifdef YYPARSE_PARAM
45119af1 629# if defined (__STDC__) || defined (__cplusplus)
b07b484a
AD
630# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
631# define YYPARSE_PARAM_DECL
45119af1 632# else
b07b484a
AD
633# define YYPARSE_PARAM_ARG YYPARSE_PARAM
634# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
45119af1 635# endif
71da9eea 636#else /* !YYPARSE_PARAM */
b07b484a
AD
637# define YYPARSE_PARAM_ARG
638# define YYPARSE_PARAM_DECL
71da9eea 639#endif /* !YYPARSE_PARAM */
b658bf92 640
1b181651
PE
641/* Prevent warning if -Wstrict-prototypes. */
642#ifdef __GNUC__
b07b484a 643# ifdef YYPARSE_PARAM
17da6427 644int yyparse (void *);
b07b484a 645# else
17da6427 646int yyparse (void);
b07b484a 647# endif
1b181651
PE
648#endif
649
a35f64ea
AD
650/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
651 variables are global, or local to YYPARSE. */
652
7093d0f5 653#define YY_DECL_NON_LSP_VARIABLES \
a35f64ea 654/* The lookahead symbol. */ \
17da6427 655int yychar; \
a35f64ea 656 \
e8cb70b9 657/* The semantic value of the lookahead symbol. */ \
17da6427 658YYSTYPE yylval; \
a35f64ea
AD
659 \
660/* Number of parse errors so far. */ \
17da6427 661int yynerrs;
a35f64ea
AD
662
663#if YYLSP_NEEDED
664# define YY_DECL_VARIABLES \
7093d0f5 665YY_DECL_NON_LSP_VARIABLES \
a35f64ea
AD
666 \
667/* Location data for the lookahead symbol. */ \
668YYLTYPE yylloc;
669#else
670# define YY_DECL_VARIABLES \
7093d0f5 671YY_DECL_NON_LSP_VARIABLES
a35f64ea
AD
672#endif
673
e8cb70b9 674/* If nonreentrant, generate the variables here. */
a35f64ea
AD
675
676#if !YYPURE
677YY_DECL_VARIABLES
678#endif /* !YYPURE */
679
10fa2066 680int
17da6427 681yyparse (YYPARSE_PARAM_ARG)
b658bf92 682 YYPARSE_PARAM_DECL
be2a1a68 683{[
e8cb70b9 684 /* If reentrant, generate the variables here. */
a35f64ea
AD
685#if YYPURE
686 YY_DECL_VARIABLES
687#endif /* !YYPURE */
688
10fa2066
RS
689 register int yystate;
690 register int yyn;
600f9b0c 691 int yyresult;
b07b484a
AD
692 /* Number of tokens to shift before error messages enabled. */
693 int yyerrstatus;
694 /* Lookahead token as an internal (translated) token number. */
695 int yychar1 = 0;
10fa2066 696
bb10be54
AD
697 /* Three stacks and their tools:
698 `yyss': related to states,
e9e4c321 699 `yyvs': related to semantic values,
bb10be54
AD
700 `yyls': related to locations.
701
702 Refer to the stacks thru separate pointers, to allow yyoverflow
703 to reallocate them elsewhere. */
704
e8cb70b9 705 /* The state stack. */
b07b484a 706 short yyssa[YYINITDEPTH];
bb10be54
AD
707 short *yyss = yyssa;
708 register short *yyssp;
709
b07b484a
AD
710 /* The semantic value stack. */
711 YYSTYPE yyvsa[YYINITDEPTH];
b07b484a 712 YYSTYPE *yyvs = yyvsa;
bb10be54 713 register YYSTYPE *yyvsp;
10fa2066 714
5af1f549 715#if YYLSP_NEEDED
b07b484a
AD
716 /* The location stack. */
717 YYLTYPE yylsa[YYINITDEPTH];
10fa2066
RS
718 YYLTYPE *yyls = yylsa;
719 YYLTYPE *yylsp;
bb10be54 720#endif
10fa2066 721
5af1f549 722#if YYLSP_NEEDED
b07b484a 723# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
10fa2066 724#else
b07b484a 725# define YYPOPSTACK (yyvsp--, yyssp--)
10fa2066
RS
726#endif
727
7093d0f5 728 YYSIZE_T yystacksize = YYINITDEPTH;
10fa2066 729
6666f98f
AD
730 /* The variables used to return semantic value and location from the
731 action routines. */
bb10be54 732 YYSTYPE yyval;
7093d0f5 733#if YYLSP_NEEDED
6666f98f 734 YYLTYPE yyloc;
7093d0f5 735#endif
10fa2066 736
6666f98f 737 /* When reducing, the number of symbols on the RHS of the reduced
e8cb70b9 738 rule. */
10fa2066
RS
739 int yylen;
740
7ea5e977 741 YYDPRINTF ((stderr, "Starting parse\n"));
10fa2066
RS
742
743 yystate = 0;
744 yyerrstatus = 0;
17da6427
PB
745 yynerrs = 0;
746 yychar = YYEMPTY; /* Cause a token to be read. */
10fa2066
RS
747
748 /* Initialize stack pointers.
749 Waste one element of value and location stack
750 so that they stay on the same level as the state stack.
751 The wasted elements are never initialized. */
752
cbd89906 753 yyssp = yyss;
10fa2066 754 yyvsp = yyvs;
5af1f549 755#if YYLSP_NEEDED
10fa2066
RS
756 yylsp = yyls;
757#endif
cbd89906 758 goto yysetstate;
10fa2066 759
71da9eea
AD
760/*------------------------------------------------------------.
761| yynewstate -- Push a new state, which is found in yystate. |
762`------------------------------------------------------------*/
342b8b6e 763 yynewstate:
71da9eea
AD
764 /* In all cases, when you get here, the value and location stacks
765 have just been pushed. so pushing a state here evens the stacks.
766 */
cbd89906
PE
767 yyssp++;
768
342b8b6e 769 yysetstate:
cbd89906 770 *yyssp = yystate;
10fa2066
RS
771
772 if (yyssp >= yyss + yystacksize - 1)
773 {
10fa2066 774 /* Get the current used size of the three stacks, in elements. */
7093d0f5 775 YYSIZE_T yysize = yyssp - yyss + 1;
10fa2066
RS
776
777#ifdef yyoverflow
3d76b07d
AD
778 {
779 /* Give user a chance to reallocate the stack. Use copies of
780 these so that the &'s don't force the real ones into
781 memory. */
782 YYSTYPE *yyvs1 = yyvs;
783 short *yyss1 = yyss;
784
785 /* Each stack pointer address is followed by the size of the
786 data in use in that stack, in bytes. */
5af1f549 787# if YYLSP_NEEDED
3d76b07d
AD
788 YYLTYPE *yyls1 = yyls;
789 /* This used to be a conditional around just the two extra args,
790 but that might be undefined if yyoverflow is a macro. */
791 yyoverflow ("parser stack overflow",
7093d0f5
AD
792 &yyss1, yysize * sizeof (*yyssp),
793 &yyvs1, yysize * sizeof (*yyvsp),
794 &yyls1, yysize * sizeof (*yylsp),
3d76b07d
AD
795 &yystacksize);
796 yyls = yyls1;
b07b484a 797# else
3d76b07d 798 yyoverflow ("parser stack overflow",
7093d0f5
AD
799 &yyss1, yysize * sizeof (*yyssp),
800 &yyvs1, yysize * sizeof (*yyvsp),
3d76b07d 801 &yystacksize);
b07b484a 802# endif
3d76b07d
AD
803 yyss = yyss1;
804 yyvs = yyvs1;
805 }
10fa2066 806#else /* no yyoverflow */
cf44a9ae
PE
807# ifndef YYSTACK_RELOCATE
808 goto yyoverflowlab;
809# else
10fa2066
RS
810 /* Extend the stack our own way. */
811 if (yystacksize >= YYMAXDEPTH)
600f9b0c 812 goto yyoverflowlab;
10fa2066
RS
813 yystacksize *= 2;
814 if (yystacksize > YYMAXDEPTH)
815 yystacksize = YYMAXDEPTH;
e9e4c321 816
600f9b0c
PE
817 {
818 short *yyss1 = yyss;
2729e106
PE
819 union yyalloc *yyptr =
820 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
600f9b0c
PE
821 if (! yyptr)
822 goto yyoverflowlab;
5b041382
PE
823 YYSTACK_RELOCATE (yyss);
824 YYSTACK_RELOCATE (yyvs);
cf44a9ae 825# if YYLSP_NEEDED
5b041382 826 YYSTACK_RELOCATE (yyls);
cf44a9ae
PE
827# endif
828# undef YYSTACK_RELOCATE
600f9b0c
PE
829 if (yyss1 != yyssa)
830 YYSTACK_FREE (yyss1);
831 }
cf44a9ae 832# endif
10fa2066
RS
833#endif /* no yyoverflow */
834
7093d0f5
AD
835 yyssp = yyss + yysize - 1;
836 yyvsp = yyvs + yysize - 1;
5af1f549 837#if YYLSP_NEEDED
7093d0f5 838 yylsp = yyls + yysize - 1;
10fa2066
RS
839#endif
840
7ea5e977 841 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
600f9b0c 842 (unsigned long int) yystacksize));
10fa2066
RS
843
844 if (yyssp >= yyss + yystacksize - 1)
845 YYABORT;
846 }
847
7ea5e977 848 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
10fa2066
RS
849
850 goto yybackup;
71da9eea 851
71da9eea
AD
852/*-----------.
853| yybackup. |
854`-----------*/
855yybackup:
10fa2066
RS
856
857/* Do appropriate processing given the current state. */
858/* Read a lookahead token if we need one and don't already have one. */
859/* yyresume: */
860
861 /* First try to decide what to do without reference to lookahead token. */
862
863 yyn = yypact[yystate];
864 if (yyn == YYFLAG)
865 goto yydefault;
866
867 /* Not known => get a lookahead token if don't already have one. */
868
869 /* yychar is either YYEMPTY or YYEOF
870 or a valid token in external form. */
871
17da6427 872 if (yychar == YYEMPTY)
10fa2066 873 {
7ea5e977 874 YYDPRINTF ((stderr, "Reading a token: "));
17da6427 875 yychar = YYLEX;
10fa2066
RS
876 }
877
e8cb70b9 878 /* Convert token to internal form (in yychar1) for indexing tables with. */
10fa2066 879
17da6427 880 if (yychar <= 0) /* This means end of input. */
10fa2066
RS
881 {
882 yychar1 = 0;
17da6427 883 yychar = YYEOF; /* Don't call YYLEX any more. */
10fa2066 884
7ea5e977 885 YYDPRINTF ((stderr, "Now at end of input.\n"));
10fa2066
RS
886 }
887 else
888 {
17da6427 889 yychar1 = YYTRANSLATE (yychar);
10fa2066 890
0d533154
AD
891#if YYDEBUG
892 /* We have to keep this `#if YYDEBUG', since we use variables
893 which are defined only if `YYDEBUG' is set. */
17da6427 894 if (yydebug)
10fa2066 895 {
7ea5e977 896 YYFPRINTF (stderr, "Next token is %d (%s",
b7575ffe 897 yychar, yytname[yychar1]);
0d533154
AD
898 /* Give the individual parser a way to print the precise
899 meaning of a token, for further debugging info. */
b07b484a 900# ifdef YYPRINT
7ea5e977 901 YYPRINT (stderr, yychar, yylval);
b07b484a 902# endif
7ea5e977 903 YYFPRINTF (stderr, ")\n");
10fa2066 904 }
0d533154 905#endif
10fa2066
RS
906 }
907
908 yyn += yychar1;
909 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
910 goto yydefault;
911
912 yyn = yytable[yyn];
913
914 /* yyn is what to do for this token type in this state.
915 Negative => reduce, -yyn is rule number.
916 Positive => shift, yyn is new state.
917 New state is final state => don't bother to shift,
918 just return success.
919 0, or most negative number => error. */
920
921 if (yyn < 0)
922 {
923 if (yyn == YYFLAG)
924 goto yyerrlab;
925 yyn = -yyn;
926 goto yyreduce;
927 }
928 else if (yyn == 0)
929 goto yyerrlab;
930
931 if (yyn == YYFINAL)
932 YYACCEPT;
933
934 /* Shift the lookahead token. */
7ea5e977 935 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
b7575ffe 936 yychar, yytname[yychar1]));
10fa2066
RS
937
938 /* Discard the token being shifted unless it is eof. */
17da6427
PB
939 if (yychar != YYEOF)
940 yychar = YYEMPTY;
10fa2066 941
17da6427 942 *++yyvsp = yylval;
5af1f549 943#if YYLSP_NEEDED
10fa2066
RS
944 *++yylsp = yylloc;
945#endif
946
71da9eea
AD
947 /* Count tokens shifted since error; after three, turn off error
948 status. */
949 if (yyerrstatus)
950 yyerrstatus--;
10fa2066
RS
951
952 yystate = yyn;
953 goto yynewstate;
954
10fa2066 955
71da9eea
AD
956/*-----------------------------------------------------------.
957| yydefault -- do the default action for the current state. |
958`-----------------------------------------------------------*/
959yydefault:
10fa2066
RS
960 yyn = yydefact[yystate];
961 if (yyn == 0)
962 goto yyerrlab;
71da9eea 963 goto yyreduce;
10fa2066 964
71da9eea
AD
965
966/*-----------------------------.
967| yyreduce -- Do a reduction. |
968`-----------------------------*/
10fa2066 969yyreduce:
71da9eea 970 /* yyn is the number of a rule to reduce with. */
10fa2066 971 yylen = yyr2[yyn];
da9abf43
AD
972
973 /* If YYLEN is nonzero, implement the default value of the action:
573c1d9f 974 `$$ = $1'.
da9abf43
AD
975
976 Otherwise, the following line sets YYVAL to the semantic value of
977 the lookahead token. This behavior is undocumented and Bison
978 users should not rely upon it. Assigning to YYVAL
979 unconditionally makes the parser a bit smaller, and it avoids a
980 GCC warning that YYVAL may be used uninitialized. */
981 yyval = yyvsp[1-yylen];
3abcd459 982
5af1f549 983#if YYLSP_NEEDED
b2d52318 984 /* Default location. */
ca96bc2d 985 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
6666f98f 986#endif
10fa2066 987
0de741ca
AD
988#if YYDEBUG
989 /* We have to keep this `#if YYDEBUG', since we use variables which
990 are defined only if `YYDEBUG' is set. */
17da6427 991 if (yydebug)
10fa2066 992 {
7093d0f5 993 int yyi;
10fa2066 994
7ea5e977 995 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
3db472b9 996 yyn - 1, yyrline[yyn]);
10fa2066
RS
997
998 /* Print the symbols being reduced, and their result. */
3db472b9 999 for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
7ea5e977
AD
1000 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1001 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
10fa2066
RS
1002 }
1003#endif
a8289c62 1004 switch (yyn)
be2a1a68
AD
1005 ]{
1006 b4_actions
a8289c62 1007 }
897668ee 1008
be2a1a68 1009/* Line __line__ of __file__. */
06446ccf 1010#line __oline__ "__ofile__"
10fa2066 1011\f
be2a1a68 1012[ yyvsp -= yylen;
10fa2066 1013 yyssp -= yylen;
5af1f549 1014#if YYLSP_NEEDED
10fa2066
RS
1015 yylsp -= yylen;
1016#endif
1017
5a35a6cb 1018#if YYDEBUG
17da6427 1019 if (yydebug)
10fa2066 1020 {
7093d0f5 1021 short *yyssp1 = yyss - 1;
7ea5e977 1022 YYFPRINTF (stderr, "state stack now");
7093d0f5 1023 while (yyssp1 != yyssp)
7ea5e977
AD
1024 YYFPRINTF (stderr, " %d", *++yyssp1);
1025 YYFPRINTF (stderr, "\n");
10fa2066 1026 }
5a35a6cb 1027#endif
10fa2066
RS
1028
1029 *++yyvsp = yyval;
5af1f549 1030#if YYLSP_NEEDED
6666f98f 1031 *++yylsp = yyloc;
10fa2066
RS
1032#endif
1033
41aca2e0
AD
1034 /* Now `shift' the result of the reduction. Determine what state
1035 that goes to, based on the state we popped back to and the rule
1036 number reduced by. */
10fa2066
RS
1037
1038 yyn = yyr1[yyn];
1039
7742ddeb 1040 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
10fa2066
RS
1041 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1042 yystate = yytable[yystate];
1043 else
7742ddeb 1044 yystate = yydefgoto[yyn - YYNTOKENS];
10fa2066
RS
1045
1046 goto yynewstate;
1047
10fa2066 1048
71da9eea
AD
1049/*------------------------------------.
1050| yyerrlab -- here on detecting error |
1051`------------------------------------*/
1052yyerrlab:
1053 /* If not already recovering from an error, report this error. */
1054 if (!yyerrstatus)
10fa2066 1055 {
17da6427 1056 ++yynerrs;
10fa2066 1057
8850be4b 1058#if YYERROR_VERBOSE
10fa2066
RS
1059 yyn = yypact[yystate];
1060
1061 if (yyn > YYFLAG && yyn < YYLAST)
1062 {
7093d0f5
AD
1063 YYSIZE_T yysize = 0;
1064 char *yymsg;
1065 int yyx, yycount;
10fa2066 1066
7093d0f5
AD
1067 yycount = 0;
1068 /* Start YYX at -YYN if negative to avoid negative indexes in
f0473484 1069 YYCHECK. */
7093d0f5
AD
1070 for (yyx = yyn < 0 ? -yyn : 0;
1071 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
1072 if (yycheck[yyx + yyn] == yyx)
1073 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
1074 yysize += yystrlen ("parse error, unexpected ") + 1;
1075 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
1076 yymsg = (char *) YYSTACK_ALLOC (yysize);
1077 if (yymsg != 0)
10fa2066 1078 {
7093d0f5
AD
1079 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
1080 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
10fa2066 1081
7093d0f5 1082 if (yycount < 5)
10fa2066 1083 {
7093d0f5
AD
1084 yycount = 0;
1085 for (yyx = yyn < 0 ? -yyn : 0;
1086 yyx < (int) (sizeof (yytname) / sizeof (char *));
1087 yyx++)
1088 if (yycheck[yyx + yyn] == yyx)
10fa2066 1089 {
7093d0f5
AD
1090 const char *yyq = ! yycount ? ", expecting " : " or ";
1091 yyp = yystpcpy (yyp, yyq);
1092 yyp = yystpcpy (yyp, yytname[yyx]);
1093 yycount++;
10fa2066
RS
1094 }
1095 }
7093d0f5
AD
1096 yyerror (yymsg);
1097 YYSTACK_FREE (yymsg);
1098 }
1099 else
1100 yyerror ("parse error; also virtual memory exhausted");
a8289c62 1101 }
10fa2066 1102 else
b7575ffe 1103#endif /* YYERROR_VERBOSE */
17da6427 1104 yyerror ("parse error");
10fa2066 1105 }
10fa2066 1106 goto yyerrlab1;
10fa2066 1107
71da9eea 1108
e8cb70b9
PB
1109/*----------------------------------------------------.
1110| yyerrlab1 -- error raised explicitly by an action. |
1111`----------------------------------------------------*/
71da9eea 1112yyerrlab1:
10fa2066
RS
1113 if (yyerrstatus == 3)
1114 {
71da9eea
AD
1115 /* If just tried and failed to reuse lookahead token after an
1116 error, discard it. */
10fa2066 1117
e8cb70b9 1118 /* Return failure if at end of input. */
17da6427 1119 if (yychar == YYEOF)
10fa2066 1120 YYABORT;
7ea5e977 1121 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
17da6427
PB
1122 yychar, yytname[yychar1]));
1123 yychar = YYEMPTY;
10fa2066
RS
1124 }
1125
71da9eea
AD
1126 /* Else will try to reuse lookahead token after shifting the error
1127 token. */
10fa2066 1128
cf44a9ae 1129 yyerrstatus = 3; /* Each real token shifted decrements this. */
10fa2066 1130
660bc8dd
PE
1131 for (;;)
1132 {
1133 yyn = yypact[yystate];
1134 if (yyn != YYFLAG)
1135 {
1136 yyn += YYTERROR;
1137 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1138 {
1139 yyn = yytable[yyn];
1140 if (0 < yyn)
1141 break;
1142 }
1143 }
10fa2066 1144
660bc8dd
PE
1145 /* Pop the current state because it cannot handle the error token. */
1146 if (yyssp == yyss)
1147 YYABORT;
5504898e
AD
1148
1149#if YYDEBUG
1150 if (yydebug)
1151 {
1152 if (yystos[yystate] < YYNTOKENS)
1153 {
1154 YYFPRINTF (stderr, "Error: popping token %d (%s",
1155 yytoknum[yystos[yystate]], yytname[yystos[yystate]]);
1156# ifdef YYPRINT
1157 YYPRINT (stderr, yytoknum[yystos[yystate]], *yyvsp);
1158# endif
1159 YYFPRINTF (stderr, ")\n");
1160 }
1161 else
1162 {
1163 YYFPRINTF (stderr, "Error: popping nonterminal (%s)\n",
1164 yytname[yystos[yystate]]);
1165 }
1166 }
1167#endif
1168
660bc8dd
PE
1169 yyvsp--;
1170 yystate = *--yyssp;
5af1f549 1171#if YYLSP_NEEDED
660bc8dd 1172 yylsp--;
10fa2066
RS
1173#endif
1174
5a35a6cb 1175#if YYDEBUG
660bc8dd
PE
1176 if (yydebug)
1177 {
1178 short *yyssp1 = yyss - 1;
1179 YYFPRINTF (stderr, "Error: state stack now");
1180 while (yyssp1 != yyssp)
1181 YYFPRINTF (stderr, " %d", *++yyssp1);
1182 YYFPRINTF (stderr, "\n");
1183 }
5a35a6cb 1184#endif
10fa2066 1185 }
10fa2066
RS
1186
1187 if (yyn == YYFINAL)
1188 YYACCEPT;
1189
7ea5e977 1190 YYDPRINTF ((stderr, "Shifting error token, "));
10fa2066 1191
17da6427 1192 *++yyvsp = yylval;
5af1f549 1193#if YYLSP_NEEDED
10fa2066
RS
1194 *++yylsp = yylloc;
1195#endif
1196
1197 yystate = yyn;
1198 goto yynewstate;
70ddf897 1199
71da9eea
AD
1200
1201/*-------------------------------------.
1202| yyacceptlab -- YYACCEPT comes here. |
1203`-------------------------------------*/
1204yyacceptlab:
600f9b0c
PE
1205 yyresult = 0;
1206 goto yyreturn;
71da9eea
AD
1207
1208/*-----------------------------------.
1209| yyabortlab -- YYABORT comes here. |
1210`-----------------------------------*/
1211yyabortlab:
600f9b0c
PE
1212 yyresult = 1;
1213 goto yyreturn;
1214
1215/*---------------------------------------------.
1216| yyoverflowab -- parser overflow comes here. |
1217`---------------------------------------------*/
1218yyoverflowlab:
1219 yyerror ("parser stack overflow");
1220 yyresult = 2;
1221 /* Fall through. */
1222
1223yyreturn:
1224#ifndef yyoverflow
1225 if (yyss != yyssa)
1226 YYSTACK_FREE (yyss);
70ddf897 1227#endif
600f9b0c 1228 return yyresult;
be2a1a68
AD
1229]}
1230
1231b4_epilogue
1232m4_if(b4_defines_flag, 0, [],
1233[#output "b4_output_header_name"
1234#ifndef b4_header_guard
1235# define b4_header_guard
1236
0d8bed56 1237b4_token_defines(b4_tokens)
be2a1a68
AD
1238
1239#ifndef YYSTYPE
642cb8f8
AD
1240m4_ifdef([b4_stype_line],
1241[#line b4_stype_line "b4_filename"
1242])dnl
be2a1a68
AD
1243typedef b4_stype
1244yystype;
1245# define YYSTYPE yystype
1246#endif
1247
1248m4_if(b4_pure, [0],
1249[extern YYSTYPE b4_prefix[]lval;])
1250
1251m4_if(b4_locations_flag, [0], [],
1252[#ifndef YYLTYPE
1253typedef struct yyltype
1254{
1255 int first_line;
1256 int first_column;
1257 int last_line;
1258 int last_column;
1259} yyltype;
1260# define YYLTYPE yyltype
1261#endif
ff48177d 1262
be2a1a68
AD
1263m4_if(b4_pure, [0],
1264[extern YYLTYPE b4_prefix[]lloc;])
1265])
1266#endif /* not b4_header_guard */
1267])