]> git.saurik.com Git - bison.git/blame - data/yacc.c
(AC_INIT): Bump version number to 1.75e.
[bison.git] / data / yacc.c
CommitLineData
007a50a4 1m4_divert(-1) -*- C -*-
fb8135fa 2m4_include([c.m4])
a8289c62 3
60491a94 4# Yacc compatible skeleton for Bison
12b0043a
AD
5# Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002
6# Free Software Foundation, Inc.
60491a94
AD
7
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.
12
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.
17
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
21# 02111-1307 USA
22
66d30cd4
AD
23
24
25## ---------------- ##
26## Default values. ##
27## ---------------- ##
28
29# Stack parameters.
30m4_define_default([b4_stack_depth_max], [10000])
31m4_define_default([b4_stack_depth_init], [200])
32
33# Location type.
34m4_define_default([b4_location_type], [yyltype])
35
2a8d363a
AD
36
37## ------------------------ ##
38## Pure/impure interfaces. ##
39## ------------------------ ##
40
41
947427ae 42# b4_pure_if(IF-TRUE, IF-FALSE)
2a8d363a
AD
43# -----------------------------
44# Expand IF-TRUE, if %pure-parser and %parse-param, IF-FALSE otherwise.
45m4_define([b4_Pure_if],
46[b4_pure_if([m4_ifset([b4_parse_param],
47 [$1], [$2])],
48 [$2])])
49
50
93724f13
AD
51# b4_yyerror_args
52# ---------------
2a8d363a 53# Arguments passed to yyerror: user args plus yylloc.
93724f13
AD
54m4_define([b4_yyerror_args],
55[b4_Pure_if([b4_location_if([&yylloc, ])])dnl
56m4_ifset([b4_parse_param], [b4_c_args(b4_parse_param), ])])
2a8d363a
AD
57
58
59# b4_lex_param
60# ------------
21964f43 61# Accumule in b4_lex_param all the yylex arguments.
2a8d363a 62# b4_lex_param arrives quoted twice, but we want to keep only one level.
21964f43
AD
63m4_define([b4_lex_param],
64m4_dquote(b4_pure_if([[[[YYSTYPE *]], [[&yylval]]][]dnl
65b4_location_if([, [[YYLTYPE *], [&yylloc]]])])dnl
66m4_ifdef([b4_lex_param], [, ]b4_lex_param)))
66d30cd4
AD
67
68
f1886bb2
AD
69
70## ------------ ##
71## Data Types. ##
72## ------------ ##
73
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
2a8d363a 78# on "signed char" which is not portable to old K&R compilers.
f1886bb2
AD
79m4_define([b4_int_type],
80[m4_if(b4_ints_in($@, [0], [255]), [1], [unsigned char],
81 b4_ints_in($@, [-128], [127]), [1], [yysigned_char],
82
83 b4_ints_in($@, [0], [65535]), [1], [unsigned short],
84 b4_ints_in($@, [-32768], [32767]), [1], [short],
85
86 m4_eval([0 <= $1]), [1], [unsigned int],
87
88 [int])])
89
90
66d30cd4
AD
91## ----------------- ##
92## Semantic Values. ##
93## ----------------- ##
94
95
82b6cb3f
AD
96# b4_lhs_value([TYPE])
97# --------------------
98# Expansion of $<TYPE>$.
99m4_define([b4_lhs_value],
100[yyval[]m4_ifval([$1], [.$1])])
101
102
103# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])
104# --------------------------------------
105# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
106# symbols on RHS.
107m4_define([b4_rhs_value],
947427ae 108[yyvsp@{m4_eval([$2 - $1])@}m4_ifval([$3], [.$3])])
82b6cb3f
AD
109
110
58612f1d
AD
111
112## ----------- ##
113## Locations. ##
114## ----------- ##
115
82b6cb3f
AD
116# b4_lhs_location()
117# -----------------
118# Expansion of @$.
119m4_define([b4_lhs_location],
120[yyloc])
121
122
123# b4_rhs_location(RULE-LENGTH, NUM)
124# ---------------------------------
125# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
126# on RHS.
127m4_define([b4_rhs_location],
947427ae 128[yylsp@{m4_eval([$2 - $1])@}])
be2a1a68 129
0d8bed56 130
0d8bed56 131
1ae72863
AD
132## --------------------------------------------------------- ##
133## Defining symbol actions, e.g., printers and destructors. ##
134## --------------------------------------------------------- ##
135
b526ee61
AD
136# We do want M4 expansion after # for CPP macros.
137m4_changecom()
be2a1a68 138m4_divert(0)dnl
947427ae 139@output @output_parser_name@
fb8135fa 140b4_copyright([Skeleton parser for Yacc-like parsing with Bison],
9c1e26bd 141 [1984, 1989, 1990, 2000, 2001, 2002])[
fb8135fa 142
0252b55c
PE
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. */
147
fb8135fa
AD
148/* Written by Richard Stallman by simplifying the original so called
149 ``semantic'' parser. */
444fbf65 150
cf44a9ae
PE
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. */
157
9c1e26bd 158]b4_identification
be2a1a68
AD
159m4_if(b4_prefix[], [yy], [],
160[/* If NAME_PREFIX is specified substitute the variables and functions
17da6427 161 names. */
be2a1a68
AD
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
9c1e26bd 169b4_location_if([#define yylloc b4_prefix[]lloc])])[
17da6427 170
9c1e26bd 171]b4_token_defines(b4_tokens)[
17acead5 172
0dd1580a 173/* Copy the first part of user declarations. */
9c1e26bd 174]b4_pre_prologue[
cce71710 175
d99361e6
AD
176/* Enabling traces. */
177#ifndef YYDEBUG
9c1e26bd 178# define YYDEBUG ]b4_debug[
d99361e6
AD
179#endif
180
181/* Enabling verbose error messages. */
182#ifdef YYERROR_VERBOSE
183# undef YYERROR_VERBOSE
184# define YYERROR_VERBOSE 1
185#else
9c1e26bd 186# define YYERROR_VERBOSE ]b4_error_verbose[
d99361e6
AD
187#endif
188
fd51e5ff 189#ifndef YYSTYPE
9c1e26bd 190]m4_ifdef([b4_stype],
437c2d80 191[b4_syncline([b4_stype_line], [b4_filename])
e96c9728 192typedef union b4_stype yystype;
996b1c7e 193/* Line __line__ of yacc.c. */
947427ae 194b4_syncline([@oline@], [@ofile@])],
9c1e26bd 195[typedef int yystype;])[
fd51e5ff 196# define YYSTYPE yystype
71cd15d4 197# define YYSTYPE_IS_TRIVIAL 1
fd51e5ff
AD
198#endif
199
1915f133 200]b4_location_if([#ifndef YYLTYPE
fd51e5ff
AD
201typedef struct yyltype
202{
203 int first_line;
204 int first_column;
205 int last_line;
206 int last_column;
207} yyltype;
9c1e26bd 208# define YYLTYPE ]b4_location_type[
71cd15d4 209# define YYLTYPE_IS_TRIVIAL 1
fd51e5ff 210#endif
1915f133 211])[
fd51e5ff 212
0dd1580a 213/* Copy the second part of user declarations. */
ee41006f 214]b4_post_prologue
0dd1580a 215
996b1c7e 216/* Line __line__ of yacc.c. */
ee41006f 217b4_syncline([@oline@], [@ofile@])[
7093d0f5 218
cf44a9ae 219#if ! defined (yyoverflow) || YYERROR_VERBOSE
7093d0f5
AD
220
221/* The parser invokes alloca or malloc; define the necessary symbols. */
222
223# if YYSTACK_USE_ALLOCA
224# define YYSTACK_ALLOC alloca
7093d0f5
AD
225# else
226# ifndef YYSTACK_USE_ALLOCA
227# if defined (alloca) || defined (_ALLOCA_H)
228# define YYSTACK_ALLOC alloca
7093d0f5 229# else
0d8a7363 230# ifdef __GNUC__
7093d0f5
AD
231# define YYSTACK_ALLOC __builtin_alloca
232# endif
7093d0f5
AD
233# endif
234# endif
235# endif
236
237# ifdef YYSTACK_ALLOC
238 /* Pacify GCC's `empty if-body' warning. */
239# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
240# else
45119af1
PE
241# if defined (__STDC__) || defined (__cplusplus)
242# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
243# define YYSIZE_T size_t
7093d0f5 244# endif
45119af1
PE
245# define YYSTACK_ALLOC malloc
246# define YYSTACK_FREE free
7093d0f5 247# endif
cf44a9ae
PE
248#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
249
250
251#if (! defined (yyoverflow) \
252 && (! defined (__cplusplus) \
1915f133 253 || (]b4_location_if([YYLTYPE_IS_TRIVIAL && ])[YYSTYPE_IS_TRIVIAL)))
7093d0f5 254
600f9b0c
PE
255/* A type that is properly aligned for any stack member. */
256union yyalloc
257{
2729e106
PE
258 short yyss;
259 YYSTYPE yyvs;
9c1e26bd 260 ]b4_location_if([ YYLTYPE yyls;
58612f1d 261])dnl
9c1e26bd 262[};
600f9b0c
PE
263
264/* The size of the maximum gap between one aligned stack and the next. */
17836590 265# define YYSTACK_GAP_MAXIMUM (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. */
9c1e26bd 269]b4_location_if(
58612f1d 270[# define YYSTACK_BYTES(N) \
cf44a9ae 271 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
17836590 272 + 2 * YYSTACK_GAP_MAXIMUM)],
58612f1d 273[# define YYSTACK_BYTES(N) \
cf44a9ae 274 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
17836590 275 + YYSTACK_GAP_MAXIMUM)])[
600f9b0c 276
5b041382
PE
277/* Copy COUNT objects from FROM to TO. The source and destination do
278 not overlap. */
279# ifndef YYCOPY
280# if 1 < __GNUC__
281# define YYCOPY(To, From, Count) \
282 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
283# else
284# define YYCOPY(To, From, Count) \
285 do \
286 { \
287 register YYSIZE_T yyi; \
288 for (yyi = 0; yyi < (Count); yyi++) \
9c1e26bd 289 (To)[yyi] = (From)[yyi]; \
5b041382
PE
290 } \
291 while (0)
292# endif
293# endif
294
295/* Relocate STACK from its old location to the new one. The
7093d0f5 296 local variables YYSIZE and YYSTACKSIZE give the old and new number of
600f9b0c
PE
297 elements in the stack, and YYPTR gives the new location of the
298 stack. Advance YYPTR to a properly aligned location for the next
299 stack. */
5b041382 300# define YYSTACK_RELOCATE(Stack) \
7093d0f5
AD
301 do \
302 { \
303 YYSIZE_T yynewbytes; \
5b041382 304 YYCOPY (&yyptr->Stack, Stack, yysize); \
2729e106 305 Stack = &yyptr->Stack; \
17836590 306 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
2729e106 307 yyptr += yynewbytes / sizeof (*yyptr); \
7093d0f5
AD
308 } \
309 while (0)
310
cf44a9ae 311#endif
8850be4b 312
768eb43f
PE
313#if defined (__STDC__) || defined (__cplusplus)
314 typedef signed char yysigned_char;
315#else
316 typedef short yysigned_char;
317#endif
318
7742ddeb 319/* YYFINAL -- State number of the termination state. */
9c1e26bd 320#define YYFINAL ]b4_final_state_number[
39912f52 321/* YYLAST -- Last index in YYTABLE. */
9c1e26bd 322#define YYLAST ]b4_last[
7742ddeb
AD
323
324/* YYNTOKENS -- Number of terminals. */
9c1e26bd 325#define YYNTOKENS ]b4_tokens_number[
7742ddeb 326/* YYNNTS -- Number of nonterminals. */
9c1e26bd 327#define YYNNTS ]b4_nterms_number[
7742ddeb 328/* YYNRULES -- Number of rules. */
9c1e26bd 329#define YYNRULES ]b4_rules_number[
7742ddeb 330/* YYNRULES -- Number of states. */
9c1e26bd 331#define YYNSTATES ]b4_states_number[
7742ddeb
AD
332
333/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
9c1e26bd
AD
334#define YYUNDEFTOK ]b4_undef_token_number[
335#define YYMAXUTOK ]b4_user_token_number_max[
007a50a4 336
b0400cc6
AD
337#define YYTRANSLATE(YYX) \
338 ((YYX <= 0) ? YYEOF : \
339 (unsigned)(YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
a8289c62 340
b0400cc6
AD
341/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
342static const ]b4_int_type_for([b4_translate])[ yytranslate[] =
a8289c62 343{
c5e3e510 344 ]b4_translate[
a8289c62
RA
345};
346
347#if YYDEBUG
c5e3e510 348/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
7742ddeb 349 YYRHS. */
c5e3e510 350static const ]b4_int_type_for([b4_prhs])[ yyprhs[] =
a8289c62 351{
c5e3e510 352 ]b4_prhs[
a8289c62
RA
353};
354
3db472b9 355/* YYRHS -- A `-1'-separated list of the rules' RHS. */
c5e3e510 356static const ]b4_int_type_for([b4_rhs])[ yyrhs[] =
a8289c62 357{
c5e3e510 358 ]b4_rhs[
a8289c62
RA
359};
360
c5e3e510
AD
361/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
362static const ]b4_int_type_for([b4_rline])[ yyrline[] =
a8289c62 363{
c5e3e510 364 ]b4_rline[
a8289c62
RA
365};
366#endif
367
5504898e 368#if YYDEBUG || YYERROR_VERBOSE
c5e3e510 369/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
7742ddeb 370 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
c5e3e510 371static const char *const yytname[] =
a8289c62 372{
c5e3e510 373 ]b4_tname[
a8289c62
RA
374};
375#endif
376
c0ad8bf3 377# ifdef YYPRINT
c5e3e510 378/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
769b430f 379 token YYLEX-NUM. */
c5e3e510 380static const ]b4_int_type_for([b4_toknum])[ yytoknum[] =
a8289c62 381{
c5e3e510 382 ]b4_toknum[
a8289c62 383};
c0ad8bf3 384# endif
a8289c62 385
c5e3e510
AD
386/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
387static const ]b4_int_type_for([b4_r1])[ yyr1[] =
a8289c62 388{
c5e3e510 389 ]b4_r1[
a8289c62
RA
390};
391
c5e3e510
AD
392/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
393static const ]b4_int_type_for([b4_r2])[ yyr2[] =
a8289c62 394{
c5e3e510 395 ]b4_r2[
a8289c62
RA
396};
397
c5e3e510 398/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
5504898e
AD
399 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
400 means the default is an error. */
c5e3e510 401static const ]b4_int_type_for([b4_defact])[ yydefact[] =
a8289c62 402{
c5e3e510 403 ]b4_defact[
a8289c62
RA
404};
405
c5e3e510
AD
406/* YYDEFGOTO[NTERM-NUM]. */
407static const ]b4_int_type_for([b4_defgoto])[ yydefgoto[] =
a8289c62 408{
c5e3e510 409 ]b4_defgoto[
a8289c62
RA
410};
411
c5e3e510 412/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
7742ddeb 413 STATE-NUM. */
c5e3e510
AD
414#define YYPACT_NINF ]b4_pact_ninf[
415static const ]b4_int_type_for([b4_pact])[ yypact[] =
a8289c62 416{
c5e3e510 417 ]b4_pact[
a8289c62
RA
418};
419
c5e3e510
AD
420/* YYPGOTO[NTERM-NUM]. */
421static const ]b4_int_type_for([b4_pgoto])[ yypgoto[] =
a8289c62 422{
c5e3e510 423 ]b4_pgoto[
a8289c62
RA
424};
425
c5e3e510 426/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
7742ddeb 427 positive, shift that token. If negative, reduce the rule which
f50adbbd 428 number is the opposite. If zero, do what YYDEFACT says.
6e649e65 429 If YYTABLE_NINF, syntax error. */
c5e3e510
AD
430#define YYTABLE_NINF ]b4_table_ninf[
431static const ]b4_int_type_for([b4_table])[ yytable[] =
a8289c62 432{
c5e3e510 433 ]b4_table[
a8289c62
RA
434};
435
c5e3e510 436static const ]b4_int_type_for([b4_check])[ yycheck[] =
a8289c62 437{
c5e3e510 438 ]b4_check[
a8289c62
RA
439};
440
c5e3e510 441/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
5504898e 442 symbol of state STATE-NUM. */
c5e3e510 443static const ]b4_int_type_for([b4_stos])[ yystos[] =
5504898e 444{
c5e3e510 445 ]b4_stos[
5504898e 446};
7093d0f5
AD
447
448#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
449# define YYSIZE_T __SIZE_TYPE__
450#endif
451#if ! defined (YYSIZE_T) && defined (size_t)
452# define YYSIZE_T size_t
453#endif
b7575ffe 454#if ! defined (YYSIZE_T)
45119af1
PE
455# if defined (__STDC__) || defined (__cplusplus)
456# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457# define YYSIZE_T size_t
b7575ffe 458# endif
7093d0f5
AD
459#endif
460#if ! defined (YYSIZE_T)
461# define YYSIZE_T unsigned int
462#endif
463
10fa2066 464#define yyerrok (yyerrstatus = 0)
b0400cc6 465#define yyclearin (yytoken = YYEMPTY)
10fa2066
RS
466#define YYEMPTY -2
467#define YYEOF 0
a8289c62 468
70ddf897 469#define YYACCEPT goto yyacceptlab
a8289c62 470#define YYABORT goto yyabortlab
10fa2066 471#define YYERROR goto yyerrlab1
a8289c62 472
71da9eea
AD
473/* Like YYERROR except do call yyerror. This remains here temporarily
474 to ease the transition to the new meaning of YYERROR, for GCC.
10fa2066 475 Once GCC version 2 has supplanted version 1, this can go. */
a8289c62 476
10fa2066 477#define YYFAIL goto yyerrlab
a8289c62 478
10fa2066 479#define YYRECOVERING() (!!yyerrstatus)
a8289c62 480
69b4e0c5 481#define YYBACKUP(Token, Value) \
10fa2066 482do \
b0400cc6 483 if (yytoken == YYEMPTY && yylen == 1) \
71da9eea 484 { \
17da6427 485 yychar = (Token); \
7742ddeb 486 yylval = (Value); \
b0400cc6 487 yytoken = YYTRANSLATE (yychar); \
10fa2066
RS
488 YYPOPSTACK; \
489 goto yybackup; \
490 } \
491 else \
71da9eea 492 { \
9c1e26bd 493 yyerror (]b4_yyerror_args["syntax error: cannot back up");\
71da9eea
AD
494 YYERROR; \
495 } \
10fa2066
RS
496while (0)
497
498#define YYTERROR 1
499#define YYERRCODE 256
500
3abcd459 501/* YYLLOC_DEFAULT -- Compute the default location (before the actions
b2d52318 502 are run). */
3abcd459
AD
503
504#ifndef YYLLOC_DEFAULT
9c1e26bd
AD
505# define YYLLOC_DEFAULT(Current, Rhs, N) \
506 Current.first_line = Rhs[1].first_line; \
507 Current.first_column = Rhs[1].first_column; \
508 Current.last_line = Rhs[N].last_line; \
509 Current.last_column = Rhs[N].last_column;
3abcd459
AD
510#endif
511
3abcd459 512/* YYLEX -- calling `yylex' with the right arguments. */
553e2b22 513
ae7453f2 514#ifdef YYLEX_PARAM
9c1e26bd 515# define YYLEX yylex (]b4_pure_if([&yylval[]b4_location_if([, &yylloc]), ])[YYLEX_PARAM)
74310291 516#else
9c1e26bd 517# define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[
ae7453f2 518#endif
553e2b22 519
5a35a6cb 520/* Enable debugging if requested. */
0d533154 521#if YYDEBUG
b7575ffe
PE
522
523# ifndef YYFPRINTF
45119af1
PE
524# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
525# define YYFPRINTF fprintf
b7575ffe
PE
526# endif
527
5a35a6cb
AD
528# define YYDPRINTF(Args) \
529do { \
17da6427 530 if (yydebug) \
b7575ffe 531 YYFPRINTF Args; \
5a35a6cb 532} while (0)
c5e3e510 533
253862fd
AD
534# define YYDSYMPRINT(Args) \
535do { \
536 if (yydebug) \
537 yysymprint Args; \
538} while (0)
c5e3e510 539
9c1e26bd
AD
540# define YYDSYMPRINTF(Title, Token, Value, Location) \
541do { \
542 if (yydebug) \
543 { \
544 YYFPRINTF (stderr, "%s ", Title); \
545 yysymprint (stderr, \
546 Token, Value]b4_location_if([, Location])[); \
547 YYFPRINTF (stderr, "\n"); \
548 } \
549} while (0)
550
b0937b22
AD
551/*------------------------------------------------------------------.
552| yy_stack_print -- Print the state stack from its BOTTOM up to its |
553| TOP (cinluded). |
554`------------------------------------------------------------------*/
555
556]b4_c_function_def([yy_stack_print], [static void],
557 [[short *bottom], [bottom]],
558 [[short *top], [top]])[
559{
560 YYFPRINTF (stderr, "Stack now");
561 for (/* Nothing. */; bottom <= top; ++bottom)
562 YYFPRINTF (stderr, " %d", *bottom);
563 YYFPRINTF (stderr, "\n");
564}
565
566# define YY_STACK_PRINT(Bottom, Top) \
567do { \
568 if (yydebug) \
569 yy_stack_print ((Bottom), (Top)); \
570} while (0)
571
572
573/*------------------------------------------------.
574| Report that the YYRULE is going to be reduced. |
575`------------------------------------------------*/
576
577]b4_c_function_def([yy_reduce_print], [static void],
578 [[int yyrule], [yyrule]])[
579{
580 int yyi;
4f21fffe
PE
581 unsigned int yylineno = yyrline[yyrule];
582 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
583 yyrule - 1, yylineno);
b0937b22
AD
584 /* Print the symbols being reduced, and their result. */
585 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
586 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
587 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
588}
589
590# define YY_REDUCE_PRINT(Rule) \
591do { \
592 if (yydebug) \
593 yy_reduce_print (Rule); \
594} while (0)
595
cf44a9ae
PE
596/* Nonzero means print parse trace. It is left uninitialized so that
597 multiple parsers can coexist. */
17da6427 598int yydebug;
5a35a6cb
AD
599#else /* !YYDEBUG */
600# define YYDPRINTF(Args)
253862fd 601# define YYDSYMPRINT(Args)
9c1e26bd 602# define YYDSYMPRINTF(Title, Token, Value, Location)
b0937b22
AD
603# define YY_STACK_PRINT(Bottom, Top)
604# define YY_REDUCE_PRINT(Rule)
5a35a6cb
AD
605#endif /* !YYDEBUG */
606
b0937b22 607
5a35a6cb 608/* YYINITDEPTH -- initial size of the parser's stacks. */
10fa2066 609#ifndef YYINITDEPTH
9c1e26bd 610# define YYINITDEPTH ]b4_stack_depth_init[
10fa2066
RS
611#endif
612
5a35a6cb 613/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
600f9b0c
PE
614 if the built-in stack extension method is used).
615
616 Do not make this value too large; the results are undefined if
617 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
618 evaluated with infinite-precision integer arithmetic. */
619
10fa2066 620#if YYMAXDEPTH == 0
b07b484a 621# undef YYMAXDEPTH
10fa2066
RS
622#endif
623
624#ifndef YYMAXDEPTH
9c1e26bd 625# define YYMAXDEPTH ]b4_stack_depth_max[
10fa2066 626#endif
a8289c62 627
10fa2066 628\f
a8289c62 629
7093d0f5
AD
630#if YYERROR_VERBOSE
631
632# ifndef yystrlen
633# if defined (__GLIBC__) && defined (_STRING_H)
634# define yystrlen strlen
635# else
636/* Return the length of YYSTR. */
637static YYSIZE_T
638# if defined (__STDC__) || defined (__cplusplus)
639yystrlen (const char *yystr)
640# else
641yystrlen (yystr)
642 const char *yystr;
643# endif
644{
645 register const char *yys = yystr;
646
647 while (*yys++ != '\0')
648 continue;
649
650 return yys - yystr - 1;
651}
652# endif
653# endif
654
655# ifndef yystpcpy
656# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
657# define yystpcpy stpcpy
658# else
659/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
660 YYDEST. */
661static char *
f11966ff
PE
662# if defined (__STDC__) || defined (__cplusplus)
663yystpcpy (char *yydest, const char *yysrc)
664# else
7093d0f5
AD
665yystpcpy (yydest, yysrc)
666 char *yydest;
667 const char *yysrc;
7093d0f5
AD
668# endif
669{
670 register char *yyd = yydest;
671 register const char *yys = yysrc;
672
673 while ((*yyd++ = *yys++) != '\0')
674 continue;
675
676 return yyd - 1;
677}
678# endif
679# endif
680
681#endif /* !YYERROR_VERBOSE */
682
10fa2066 683\f
a8289c62 684
b8df3223 685#if YYDEBUG
9c1e26bd 686]b4_yysymprint_generate([b4_c_function_def])[
c5e3e510 687#endif /* ! YYDEBUG */
9c1e26bd 688]b4_yydestruct_generate([b4_c_function_def])
4a2a22f4
AD
689\f
690
0245f82d 691/* Prevent warnings from -Wmissing-prototypes. */
4a2a22f4
AD
692
693#ifdef YYPARSE_PARAM
694# if defined (__STDC__) || defined (__cplusplus)
0245f82d 695int yyparse (void *YYPARSE_PARAM);
4a2a22f4 696# else
0245f82d 697int yyparse ();
4a2a22f4 698# endif
0245f82d
AD
699#else /* ! YYPARSE_PARAM */
700b4_c_function_decl([yyparse], [int], b4_parse_param)
c5e3e510 701#endif /* ! YYPARSE_PARAM */
1b181651 702
0245f82d 703
74310291
AD
704m4_divert_push([KILL])# ======================== M4 code.
705# b4_declare_parser_variables
706# ---------------------------
707# Declare the variables that are global, or local to YYPARSE if
0245f82d 708# pure-parser.
74310291
AD
709m4_define([b4_declare_parser_variables],
710[/* The lookahead symbol. */
711int yychar;
712
713/* The semantic value of the lookahead symbol. */
714YYSTYPE yylval;
715
6e649e65 716/* Number of syntax errors so far. */
74310291
AD
717int yynerrs;b4_location_if([
718/* Location data for the lookahead symbol. */
58612f1d 719YYLTYPE yylloc;])
74310291
AD
720])
721m4_divert_pop([KILL])dnl# ====================== End of M4 code.
58612f1d 722
74310291
AD
723b4_pure_if([],
724 [b4_declare_parser_variables])
a35f64ea 725
0245f82d
AD
726
727/*----------.
728| yyparse. |
729`----------*/
730
731#ifdef YYPARSE_PARAM
732# if defined (__STDC__) || defined (__cplusplus)
733int yyparse (void *YYPARSE_PARAM)
734# else
735int yyparse (YYPARSE_PARAM)
736 void *YYPARSE_PARAM;
737# endif
738#else /* ! YYPARSE_PARAM */
739b4_c_function_def([yyparse], [int], b4_parse_param)
740#endif
be2a1a68 741{[
74310291 742 ]b4_pure_if([b4_declare_parser_variables])[
10fa2066
RS
743 register int yystate;
744 register int yyn;
600f9b0c 745 int yyresult;
b07b484a
AD
746 /* Number of tokens to shift before error messages enabled. */
747 int yyerrstatus;
748 /* Lookahead token as an internal (translated) token number. */
b0400cc6 749 int yytoken = 0;
10fa2066 750
bb10be54
AD
751 /* Three stacks and their tools:
752 `yyss': related to states,
e9e4c321 753 `yyvs': related to semantic values,
bb10be54
AD
754 `yyls': related to locations.
755
756 Refer to the stacks thru separate pointers, to allow yyoverflow
757 to reallocate them elsewhere. */
758
e8cb70b9 759 /* The state stack. */
b07b484a 760 short yyssa[YYINITDEPTH];
bb10be54
AD
761 short *yyss = yyssa;
762 register short *yyssp;
763
b07b484a
AD
764 /* The semantic value stack. */
765 YYSTYPE yyvsa[YYINITDEPTH];
b07b484a 766 YYSTYPE *yyvs = yyvsa;
bb10be54 767 register YYSTYPE *yyvsp;
10fa2066 768
58612f1d
AD
769]b4_location_if(
770[[ /* The location stack. */
b07b484a 771 YYLTYPE yylsa[YYINITDEPTH];
10fa2066 772 YYLTYPE *yyls = yylsa;
58612f1d 773 YYLTYPE *yylsp;]])[
10fa2066 774
58612f1d 775#define YYPOPSTACK (yyvsp--, yyssp--]b4_location_if([, yylsp--])[)
10fa2066 776
7093d0f5 777 YYSIZE_T yystacksize = YYINITDEPTH;
10fa2066 778
6666f98f
AD
779 /* The variables used to return semantic value and location from the
780 action routines. */
bb10be54 781 YYSTYPE yyval;
58612f1d 782]b4_location_if([ YYLTYPE yyloc;])[
10fa2066 783
6666f98f 784 /* When reducing, the number of symbols on the RHS of the reduced
e8cb70b9 785 rule. */
10fa2066
RS
786 int yylen;
787
7ea5e977 788 YYDPRINTF ((stderr, "Starting parse\n"));
10fa2066
RS
789
790 yystate = 0;
791 yyerrstatus = 0;
17da6427 792 yynerrs = 0;
b0400cc6 793 yychar = yytoken = YYEMPTY; /* Cause a token to be read. */
10fa2066
RS
794
795 /* Initialize stack pointers.
796 Waste one element of value and location stack
797 so that they stay on the same level as the state stack.
798 The wasted elements are never initialized. */
799
cbd89906 800 yyssp = yyss;
10fa2066 801 yyvsp = yyvs;
58612f1d 802]b4_location_if([ yylsp = yyls;])[
cbd89906 803 goto yysetstate;
10fa2066 804
71da9eea
AD
805/*------------------------------------------------------------.
806| yynewstate -- Push a new state, which is found in yystate. |
807`------------------------------------------------------------*/
342b8b6e 808 yynewstate:
71da9eea
AD
809 /* In all cases, when you get here, the value and location stacks
810 have just been pushed. so pushing a state here evens the stacks.
811 */
cbd89906
PE
812 yyssp++;
813
342b8b6e 814 yysetstate:
cbd89906 815 *yyssp = yystate;
10fa2066 816
39912f52 817 if (yyss + yystacksize - 1 <= yyssp)
10fa2066 818 {
10fa2066 819 /* Get the current used size of the three stacks, in elements. */
7093d0f5 820 YYSIZE_T yysize = yyssp - yyss + 1;
10fa2066
RS
821
822#ifdef yyoverflow
3d76b07d
AD
823 {
824 /* Give user a chance to reallocate the stack. Use copies of
825 these so that the &'s don't force the real ones into
826 memory. */
827 YYSTYPE *yyvs1 = yyvs;
828 short *yyss1 = yyss;
58612f1d 829]b4_location_if([ YYLTYPE *yyls1 = yyls;])[
3d76b07d
AD
830
831 /* Each stack pointer address is followed by the size of the
58612f1d
AD
832 data in use in that stack, in bytes. This used to be a
833 conditional around just the two extra args, but that might
834 be undefined if yyoverflow is a macro. */
3d76b07d 835 yyoverflow ("parser stack overflow",
7093d0f5
AD
836 &yyss1, yysize * sizeof (*yyssp),
837 &yyvs1, yysize * sizeof (*yyvsp),
58612f1d 838]b4_location_if([ &yyls1, yysize * sizeof (*yylsp),])[
3d76b07d 839 &yystacksize);
58612f1d 840]b4_location_if([ yyls = yyls1;])[
3d76b07d
AD
841 yyss = yyss1;
842 yyvs = yyvs1;
843 }
10fa2066 844#else /* no yyoverflow */
cf44a9ae
PE
845# ifndef YYSTACK_RELOCATE
846 goto yyoverflowlab;
847# else
10fa2066 848 /* Extend the stack our own way. */
39912f52 849 if (YYMAXDEPTH <= yystacksize)
600f9b0c 850 goto yyoverflowlab;
10fa2066 851 yystacksize *= 2;
39912f52 852 if (YYMAXDEPTH < yystacksize)
10fa2066 853 yystacksize = YYMAXDEPTH;
e9e4c321 854
600f9b0c
PE
855 {
856 short *yyss1 = yyss;
2729e106
PE
857 union yyalloc *yyptr =
858 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
600f9b0c
PE
859 if (! yyptr)
860 goto yyoverflowlab;
5b041382
PE
861 YYSTACK_RELOCATE (yyss);
862 YYSTACK_RELOCATE (yyvs);
58612f1d 863]b4_location_if([ YYSTACK_RELOCATE (yyls);])[
cf44a9ae 864# undef YYSTACK_RELOCATE
600f9b0c
PE
865 if (yyss1 != yyssa)
866 YYSTACK_FREE (yyss1);
867 }
cf44a9ae 868# endif
10fa2066
RS
869#endif /* no yyoverflow */
870
7093d0f5
AD
871 yyssp = yyss + yysize - 1;
872 yyvsp = yyvs + yysize - 1;
58612f1d 873]b4_location_if([ yylsp = yyls + yysize - 1;])[
10fa2066 874
7ea5e977 875 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
600f9b0c 876 (unsigned long int) yystacksize));
10fa2066 877
39912f52 878 if (yyss + yystacksize - 1 <= yyssp)
10fa2066
RS
879 YYABORT;
880 }
881
7ea5e977 882 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
10fa2066
RS
883
884 goto yybackup;
71da9eea 885
71da9eea
AD
886/*-----------.
887| yybackup. |
888`-----------*/
889yybackup:
10fa2066
RS
890
891/* Do appropriate processing given the current state. */
892/* Read a lookahead token if we need one and don't already have one. */
893/* yyresume: */
894
895 /* First try to decide what to do without reference to lookahead token. */
896
897 yyn = yypact[yystate];
12b0043a 898 if (yyn == YYPACT_NINF)
10fa2066
RS
899 goto yydefault;
900
901 /* Not known => get a lookahead token if don't already have one. */
902
b0400cc6
AD
903 /* YYTOKEN is either YYEMPTY or YYEOF or a valid token. */
904 if (yytoken == YYEMPTY)
10fa2066 905 {
7ea5e977 906 YYDPRINTF ((stderr, "Reading a token: "));
17da6427 907 yychar = YYLEX;
b0400cc6 908 yytoken = YYTRANSLATE (yychar);
10fa2066
RS
909 }
910
b0400cc6 911 if (yytoken == YYEOF)
10fa2066 912 {
7ea5e977 913 YYDPRINTF ((stderr, "Now at end of input.\n"));
10fa2066
RS
914 }
915 else
916 {
9c1e26bd 917 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
10fa2066
RS
918 }
919
b0400cc6 920 /* If the proper action on seeing token YYTOKEN is to reduce or to
e5cfd9d8 921 detect an error, take that action. */
b0400cc6
AD
922 yyn += yytoken;
923 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
e5cfd9d8
PE
924 goto yydefault;
925 yyn = yytable[yyn];
926 if (yyn <= 0)
10fa2066 927 {
e5cfd9d8
PE
928 if (yyn == 0 || yyn == YYTABLE_NINF)
929 goto yyerrlab;
10fa2066
RS
930 yyn = -yyn;
931 goto yyreduce;
932 }
10fa2066
RS
933
934 if (yyn == YYFINAL)
935 YYACCEPT;
936
937 /* Shift the lookahead token. */
9c1e26bd 938 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
10fa2066
RS
939
940 /* Discard the token being shifted unless it is eof. */
b0400cc6
AD
941 if (yytoken != YYEOF)
942 yytoken = YYEMPTY;
10fa2066 943
17da6427 944 *++yyvsp = yylval;
58612f1d 945]b4_location_if([ *++yylsp = yylloc;])[
10fa2066 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 975
accea6db
PE
976 Otherwise, the following line sets YYVAL to garbage.
977 This behavior is undocumented and Bison
da9abf43
AD
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
58612f1d
AD
983]b4_location_if(
984[ /* Default location. */
985 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);])[
b0937b22 986 YY_REDUCE_PRINT (yyn);
a8289c62 987 switch (yyn)
be2a1a68
AD
988 ]{
989 b4_actions
a8289c62 990 }
897668ee 991
996b1c7e 992/* Line __line__ of yacc.c. */
947427ae 993b4_syncline([@oline@], [@ofile@])
10fa2066 994\f
be2a1a68 995[ yyvsp -= yylen;
10fa2066 996 yyssp -= yylen;
58612f1d 997]b4_location_if([ yylsp -= yylen;])[
10fa2066 998
b0937b22 999 YY_STACK_PRINT (yyss, yyssp);
10fa2066
RS
1000
1001 *++yyvsp = yyval;
58612f1d 1002]b4_location_if([ *++yylsp = yyloc;])[
10fa2066 1003
41aca2e0
AD
1004 /* Now `shift' the result of the reduction. Determine what state
1005 that goes to, based on the state we popped back to and the rule
1006 number reduced by. */
10fa2066
RS
1007
1008 yyn = yyr1[yyn];
1009
7742ddeb 1010 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
12b0043a 1011 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10fa2066
RS
1012 yystate = yytable[yystate];
1013 else
7742ddeb 1014 yystate = yydefgoto[yyn - YYNTOKENS];
10fa2066
RS
1015
1016 goto yynewstate;
1017
10fa2066 1018
71da9eea
AD
1019/*------------------------------------.
1020| yyerrlab -- here on detecting error |
1021`------------------------------------*/
1022yyerrlab:
1023 /* If not already recovering from an error, report this error. */
1024 if (!yyerrstatus)
10fa2066 1025 {
17da6427 1026 ++yynerrs;
df5aed8c
PE
1027#if YYERROR_VERBOSE
1028 yyn = yypact[yystate];
1029
1030 if (YYPACT_NINF < yyn && yyn < YYLAST)
1031 {
1032 YYSIZE_T yysize = 0;
1033 int yytype = YYTRANSLATE (yychar);
1034 char *yymsg;
1035 int yyx, yycount;
1036
1037 yycount = 0;
1038 /* Start YYX at -YYN if negative to avoid negative indexes in
1039 YYCHECK. */
1040 for (yyx = yyn < 0 ? -yyn : 0;
1041 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
1042 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1043 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
6e649e65 1044 yysize += yystrlen ("syntax error, unexpected ") + 1;
df5aed8c
PE
1045 yysize += yystrlen (yytname[yytype]);
1046 yymsg = (char *) YYSTACK_ALLOC (yysize);
1047 if (yymsg != 0)
1048 {
6e649e65 1049 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
df5aed8c
PE
1050 yyp = yystpcpy (yyp, yytname[yytype]);
1051
1052 if (yycount < 5)
1053 {
1054 yycount = 0;
1055 for (yyx = yyn < 0 ? -yyn : 0;
1056 yyx < (int) (sizeof (yytname) / sizeof (char *));
1057 yyx++)
1058 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1059 {
1060 const char *yyq = ! yycount ? ", expecting " : " or ";
1061 yyp = yystpcpy (yyp, yyq);
1062 yyp = yystpcpy (yyp, yytname[yyx]);
1063 yycount++;
1064 }
1065 }
93724f13 1066 yyerror (]b4_yyerror_args[yymsg);
df5aed8c
PE
1067 YYSTACK_FREE (yymsg);
1068 }
1069 else
6e649e65 1070 yyerror (]b4_yyerror_args["syntax error; also virtual memory exhausted");
df5aed8c
PE
1071 }
1072 else
1073#endif /* YYERROR_VERBOSE */
6e649e65 1074 yyerror (]b4_yyerror_args["syntax error");
10fa2066 1075 }
71da9eea 1076
10fa2066
RS
1077 if (yyerrstatus == 3)
1078 {
71da9eea
AD
1079 /* If just tried and failed to reuse lookahead token after an
1080 error, discard it. */
10fa2066 1081
e8cb70b9 1082 /* Return failure if at end of input. */
b0400cc6 1083 if (yytoken == YYEOF)
5719c109
AD
1084 {
1085 /* Pop the error token. */
1086 YYPOPSTACK;
1087 /* Pop the rest of the stack. */
39912f52 1088 while (yyss < yyssp)
5719c109 1089 {
9c1e26bd 1090 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
7bd6c77e 1091 yydestruct (yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
5719c109
AD
1092 YYPOPSTACK;
1093 }
1094 YYABORT;
1095 }
1096
9c1e26bd 1097 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
7bd6c77e 1098 yydestruct (yytoken, &yylval]b4_location_if([, &yylloc])[);
b0400cc6 1099 yytoken = YYEMPTY;
10fa2066
RS
1100 }
1101
71da9eea
AD
1102 /* Else will try to reuse lookahead token after shifting the error
1103 token. */
300a7966
PE
1104 goto yyerrlab1;
1105
10fa2066 1106
300a7966
PE
1107/*----------------------------------------------------.
1108| yyerrlab1 -- error raised explicitly by an action. |
1109`----------------------------------------------------*/
1110yyerrlab1:
cf44a9ae 1111 yyerrstatus = 3; /* Each real token shifted decrements this. */
10fa2066 1112
660bc8dd
PE
1113 for (;;)
1114 {
1115 yyn = yypact[yystate];
12b0043a 1116 if (yyn != YYPACT_NINF)
660bc8dd
PE
1117 {
1118 yyn += YYTERROR;
1119 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1120 {
1121 yyn = yytable[yyn];
1122 if (0 < yyn)
1123 break;
1124 }
1125 }
10fa2066 1126
660bc8dd
PE
1127 /* Pop the current state because it cannot handle the error token. */
1128 if (yyssp == yyss)
1129 YYABORT;
5504898e 1130
9c1e26bd 1131 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
7bd6c77e 1132 yydestruct (yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
660bc8dd
PE
1133 yyvsp--;
1134 yystate = *--yyssp;
58612f1d 1135]b4_location_if([ yylsp--;])[
b0937b22 1136 YY_STACK_PRINT (yyss, yyssp);
10fa2066 1137 }
10fa2066
RS
1138
1139 if (yyn == YYFINAL)
1140 YYACCEPT;
1141
7ea5e977 1142 YYDPRINTF ((stderr, "Shifting error token, "));
10fa2066 1143
17da6427 1144 *++yyvsp = yylval;
58612f1d 1145]b4_location_if([ *++yylsp = yylloc;])[
10fa2066
RS
1146
1147 yystate = yyn;
1148 goto yynewstate;
70ddf897 1149
71da9eea
AD
1150
1151/*-------------------------------------.
1152| yyacceptlab -- YYACCEPT comes here. |
1153`-------------------------------------*/
1154yyacceptlab:
600f9b0c
PE
1155 yyresult = 0;
1156 goto yyreturn;
71da9eea
AD
1157
1158/*-----------------------------------.
1159| yyabortlab -- YYABORT comes here. |
1160`-----------------------------------*/
1161yyabortlab:
600f9b0c
PE
1162 yyresult = 1;
1163 goto yyreturn;
1164
0bfb02ff 1165#ifndef yyoverflow
ca98bf57
AD
1166/*----------------------------------------------.
1167| yyoverflowlab -- parser overflow comes here. |
1168`----------------------------------------------*/
600f9b0c 1169yyoverflowlab:
93724f13 1170 yyerror (]b4_yyerror_args["parser stack overflow");
600f9b0c
PE
1171 yyresult = 2;
1172 /* Fall through. */
0bfb02ff 1173#endif
600f9b0c
PE
1174
1175yyreturn:
1176#ifndef yyoverflow
1177 if (yyss != yyssa)
1178 YYSTACK_FREE (yyss);
70ddf897 1179#endif
600f9b0c 1180 return yyresult;
be2a1a68
AD
1181]}
1182
24c0aad7 1183
be2a1a68
AD
1184b4_epilogue
1185m4_if(b4_defines_flag, 0, [],
947427ae 1186[@output @output_header_name@
c76e14da 1187b4_copyright([Skeleton parser for Yacc-like parsing with Bison],
0252b55c
PE
1188 [1984, 1989, 1990, 2000, 2001, 2002])
1189
1190/* As a special exception, when this file is copied by Bison into a
1191 Bison output file, you may use that output file without restriction.
1192 This special exception was added by the Free Software Foundation
1193 in version 1.24 of Bison. */
c76e14da 1194
0d8bed56 1195b4_token_defines(b4_tokens)
be2a1a68
AD
1196
1197#ifndef YYSTYPE
e9955c83 1198m4_ifdef([b4_stype],
437c2d80 1199[b4_syncline([b4_stype_line], [b4_filename])
e96c9728 1200typedef union b4_stype yystype;
996b1c7e 1201/* Line __line__ of yacc.c. */
947427ae 1202b4_syncline([@oline@], [@ofile@])],
e9955c83 1203[typedef int yystype;])
be2a1a68 1204# define YYSTYPE yystype
947427ae 1205# define YYSTYPE_IS_TRIVIAL 1
be2a1a68
AD
1206#endif
1207
74310291 1208b4_pure_if([],
be2a1a68
AD
1209[extern YYSTYPE b4_prefix[]lval;])
1210
58612f1d 1211b4_location_if(
be2a1a68
AD
1212[#ifndef YYLTYPE
1213typedef struct yyltype
1214{
1215 int first_line;
1216 int first_column;
1217 int last_line;
1218 int last_column;
1219} yyltype;
1220# define YYLTYPE yyltype
1221#endif
ff48177d 1222
be2a1a68
AD
1223m4_if(b4_pure, [0],
1224[extern YYLTYPE b4_prefix[]lloc;])
1225])
be2a1a68 1226])