]> git.saurik.com Git - bison.git/blame - data/yacc.c
(Torturing the Scanner): Don't invoke "cc a.c b.c
[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
AD
192typedef union b4_stype yystype;
193/* Line __line__ of __file__. */
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
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;
9c1e26bd 208# define YYLTYPE ]b4_location_type[
71cd15d4 209# define YYLTYPE_IS_TRIVIAL 1
fd51e5ff
AD
210#endif
211
0dd1580a 212/* Copy the second part of user declarations. */
9c1e26bd 213]b4_post_prologue[
0dd1580a 214
be2a1a68 215/* Line __line__ of __file__. */
9c1e26bd 216]b4_syncline([@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;
9c1e26bd 259 ]b4_location_if([ YYLTYPE yyls;
58612f1d 260])dnl
9c1e26bd 261[};
600f9b0c
PE
262
263/* The size of the maximum gap between one aligned stack and the next. */
7093d0f5 264# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
600f9b0c
PE
265
266/* The size of an array large to enough to hold all stacks, each with
267 N elements. */
9c1e26bd 268]b4_location_if(
58612f1d 269[# define YYSTACK_BYTES(N) \
cf44a9ae 270 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
58612f1d
AD
271 + 2 * YYSTACK_GAP_MAX)],
272[# define YYSTACK_BYTES(N) \
cf44a9ae 273 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
9c1e26bd 274 + YYSTACK_GAP_MAX)])[
600f9b0c 275
5b041382
PE
276/* Copy COUNT objects from FROM to TO. The source and destination do
277 not overlap. */
278# ifndef YYCOPY
279# if 1 < __GNUC__
280# define YYCOPY(To, From, Count) \
281 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
282# else
283# define YYCOPY(To, From, Count) \
284 do \
285 { \
286 register YYSIZE_T yyi; \
287 for (yyi = 0; yyi < (Count); yyi++) \
9c1e26bd 288 (To)[yyi] = (From)[yyi]; \
5b041382
PE
289 } \
290 while (0)
291# endif
292# endif
293
294/* Relocate STACK from its old location to the new one. The
7093d0f5 295 local variables YYSIZE and YYSTACKSIZE give the old and new number of
600f9b0c
PE
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
298 stack. */
5b041382 299# define YYSTACK_RELOCATE(Stack) \
7093d0f5
AD
300 do \
301 { \
302 YYSIZE_T yynewbytes; \
5b041382 303 YYCOPY (&yyptr->Stack, Stack, yysize); \
2729e106 304 Stack = &yyptr->Stack; \
5b041382 305 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
2729e106 306 yyptr += yynewbytes / sizeof (*yyptr); \
7093d0f5
AD
307 } \
308 while (0)
309
cf44a9ae 310#endif
8850be4b 311
768eb43f
PE
312#if defined (__STDC__) || defined (__cplusplus)
313 typedef signed char yysigned_char;
314#else
315 typedef short yysigned_char;
316#endif
317
7742ddeb 318/* YYFINAL -- State number of the termination state. */
9c1e26bd 319#define YYFINAL ]b4_final_state_number[
39912f52 320/* YYLAST -- Last index in YYTABLE. */
9c1e26bd 321#define YYLAST ]b4_last[
7742ddeb
AD
322
323/* YYNTOKENS -- Number of terminals. */
9c1e26bd 324#define YYNTOKENS ]b4_tokens_number[
7742ddeb 325/* YYNNTS -- Number of nonterminals. */
9c1e26bd 326#define YYNNTS ]b4_nterms_number[
7742ddeb 327/* YYNRULES -- Number of rules. */
9c1e26bd 328#define YYNRULES ]b4_rules_number[
7742ddeb 329/* YYNRULES -- Number of states. */
9c1e26bd 330#define YYNSTATES ]b4_states_number[
7742ddeb
AD
331
332/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
9c1e26bd
AD
333#define YYUNDEFTOK ]b4_undef_token_number[
334#define YYMAXUTOK ]b4_user_token_number_max[
007a50a4 335
b0400cc6
AD
336#define YYTRANSLATE(YYX) \
337 ((YYX <= 0) ? YYEOF : \
338 (unsigned)(YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
a8289c62 339
b0400cc6
AD
340/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
341static const ]b4_int_type_for([b4_translate])[ yytranslate[] =
a8289c62 342{
b0400cc6 343 ]b4_translate
a8289c62
RA
344};
345
346#if YYDEBUG
be2a1a68 347/* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in
7742ddeb 348 YYRHS. */
a762e609 349static const b4_int_type_for([b4_prhs]) yyprhs[[]] =
a8289c62 350{
be2a1a68 351 b4_prhs
a8289c62
RA
352};
353
3db472b9 354/* YYRHS -- A `-1'-separated list of the rules' RHS. */
a762e609 355static const b4_int_type_for([b4_rhs]) yyrhs[[]] =
a8289c62 356{
be2a1a68 357 b4_rhs
a8289c62
RA
358};
359
be2a1a68 360/* YYRLINE[[YYN]] -- source line where rule number YYN was defined. */
a762e609 361static const b4_int_type_for([b4_rline]) yyrline[[]] =
a8289c62 362{
be2a1a68 363 b4_rline
a8289c62
RA
364};
365#endif
366
5504898e 367#if YYDEBUG || YYERROR_VERBOSE
be2a1a68 368/* YYTNME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM.
7742ddeb 369 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
be2a1a68 370static const char *const yytname[[]] =
a8289c62 371{
be2a1a68 372 b4_tname
a8289c62
RA
373};
374#endif
375
c0ad8bf3 376# ifdef YYPRINT
769b430f
AD
377/* YYTOKNUM[[YYLEX-NUM]] -- Internal token number corresponding to
378 token YYLEX-NUM. */
a762e609 379static const b4_int_type_for([b4_toknum]) yytoknum[[]] =
a8289c62 380{
be2a1a68 381 b4_toknum
a8289c62 382};
c0ad8bf3 383# endif
a8289c62 384
be2a1a68 385/* YYR1[[YYN]] -- Symbol number of symbol that rule YYN derives. */
a762e609 386static const b4_int_type_for([b4_r1]) yyr1[[]] =
a8289c62 387{
be2a1a68 388 b4_r1
a8289c62
RA
389};
390
be2a1a68 391/* YYR2[[YYN]] -- Number of symbols composing right hand side of rule YYN. */
a762e609 392static const b4_int_type_for([b4_r2]) yyr2[[]] =
a8289c62 393{
be2a1a68 394 b4_r2
a8289c62
RA
395};
396
5504898e
AD
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. */
a762e609 400static const b4_int_type_for([b4_defact]) yydefact[[]] =
a8289c62 401{
be2a1a68 402 b4_defact
a8289c62
RA
403};
404
12b0043a 405/* YYDEFGOTO[[NTERM-NUM]]. */
a762e609 406static const b4_int_type_for([b4_defgoto]) yydefgoto[[]] =
a8289c62 407{
be2a1a68 408 b4_defgoto
a8289c62
RA
409};
410
be2a1a68 411/* YYPACT[[STATE-NUM]] -- Index in YYTABLE of the portion describing
7742ddeb 412 STATE-NUM. */
12b0043a 413#define YYPACT_NINF b4_pact_ninf
a762e609 414static const b4_int_type_for([b4_pact]) yypact[[]] =
a8289c62 415{
be2a1a68 416 b4_pact
a8289c62
RA
417};
418
be2a1a68 419/* YYPGOTO[[NTERM-NUM]]. */
a762e609 420static const b4_int_type_for([b4_pgoto]) yypgoto[[]] =
a8289c62 421{
be2a1a68 422 b4_pgoto
a8289c62
RA
423};
424
be2a1a68 425/* YYTABLE[[YYPACT[STATE-NUM]]]. What to do in state STATE-NUM. If
7742ddeb 426 positive, shift that token. If negative, reduce the rule which
f50adbbd
AD
427 number is the opposite. If zero, do what YYDEFACT says.
428 If YYTABLE_NINF, parse error. */
12b0043a 429#define YYTABLE_NINF b4_table_ninf
a762e609 430static const b4_int_type_for([b4_table]) yytable[[]] =
a8289c62 431{
be2a1a68 432 b4_table
a8289c62
RA
433};
434
a762e609 435static const b4_int_type_for([b4_check]) yycheck[[]] =
a8289c62 436{
be2a1a68 437 b4_check
a8289c62
RA
438};
439
5504898e
AD
440/* YYSTOS[[STATE-NUM]] -- The (internal number of the) accessing
441 symbol of state STATE-NUM. */
a762e609 442static const b4_int_type_for([b4_stos]) yystos[[]] =
5504898e 443{
9c1e26bd 444 b4_stos[
5504898e 445};
7093d0f5
AD
446
447#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
448# define YYSIZE_T __SIZE_TYPE__
449#endif
450#if ! defined (YYSIZE_T) && defined (size_t)
451# define YYSIZE_T size_t
452#endif
b7575ffe 453#if ! defined (YYSIZE_T)
45119af1
PE
454# if defined (__STDC__) || defined (__cplusplus)
455# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
456# define YYSIZE_T size_t
b7575ffe 457# endif
7093d0f5
AD
458#endif
459#if ! defined (YYSIZE_T)
460# define YYSIZE_T unsigned int
461#endif
462
10fa2066 463#define yyerrok (yyerrstatus = 0)
b0400cc6 464#define yyclearin (yytoken = YYEMPTY)
10fa2066
RS
465#define YYEMPTY -2
466#define YYEOF 0
a8289c62 467
70ddf897 468#define YYACCEPT goto yyacceptlab
a8289c62 469#define YYABORT goto yyabortlab
10fa2066 470#define YYERROR goto yyerrlab1
a8289c62 471
71da9eea
AD
472/* Like YYERROR except do call yyerror. This remains here temporarily
473 to ease the transition to the new meaning of YYERROR, for GCC.
10fa2066 474 Once GCC version 2 has supplanted version 1, this can go. */
a8289c62 475
10fa2066 476#define YYFAIL goto yyerrlab
a8289c62 477
10fa2066 478#define YYRECOVERING() (!!yyerrstatus)
a8289c62 479
69b4e0c5 480#define YYBACKUP(Token, Value) \
10fa2066 481do \
b0400cc6 482 if (yytoken == YYEMPTY && yylen == 1) \
71da9eea 483 { \
17da6427 484 yychar = (Token); \
7742ddeb 485 yylval = (Value); \
b0400cc6 486 yytoken = YYTRANSLATE (yychar); \
10fa2066
RS
487 YYPOPSTACK; \
488 goto yybackup; \
489 } \
490 else \
71da9eea 491 { \
9c1e26bd 492 yyerror (]b4_yyerror_args["syntax error: cannot back up");\
71da9eea
AD
493 YYERROR; \
494 } \
10fa2066
RS
495while (0)
496
497#define YYTERROR 1
498#define YYERRCODE 256
499
3abcd459 500/* YYLLOC_DEFAULT -- Compute the default location (before the actions
b2d52318 501 are run). */
3abcd459
AD
502
503#ifndef YYLLOC_DEFAULT
9c1e26bd
AD
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;
3abcd459
AD
509#endif
510
3abcd459 511/* YYLEX -- calling `yylex' with the right arguments. */
553e2b22 512
ae7453f2 513#ifdef YYLEX_PARAM
9c1e26bd 514# define YYLEX yylex (]b4_pure_if([&yylval[]b4_location_if([, &yylloc]), ])[YYLEX_PARAM)
74310291 515#else
9c1e26bd 516# define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[
ae7453f2 517#endif
553e2b22 518
5a35a6cb 519/* Enable debugging if requested. */
0d533154 520#if YYDEBUG
b7575ffe
PE
521
522# ifndef YYFPRINTF
45119af1
PE
523# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
524# define YYFPRINTF fprintf
b7575ffe
PE
525# endif
526
5a35a6cb
AD
527# define YYDPRINTF(Args) \
528do { \
17da6427 529 if (yydebug) \
b7575ffe 530 YYFPRINTF Args; \
5a35a6cb 531} while (0)
253862fd
AD
532# define YYDSYMPRINT(Args) \
533do { \
534 if (yydebug) \
535 yysymprint Args; \
536} while (0)
9c1e26bd
AD
537# define YYDSYMPRINTF(Title, Token, Value, Location) \
538do { \
539 if (yydebug) \
540 { \
541 YYFPRINTF (stderr, "%s ", Title); \
542 yysymprint (stderr, \
543 Token, Value]b4_location_if([, Location])[); \
544 YYFPRINTF (stderr, "\n"); \
545 } \
546} while (0)
547
cf44a9ae
PE
548/* Nonzero means print parse trace. It is left uninitialized so that
549 multiple parsers can coexist. */
17da6427 550int yydebug;
5a35a6cb
AD
551#else /* !YYDEBUG */
552# define YYDPRINTF(Args)
253862fd 553# define YYDSYMPRINT(Args)
9c1e26bd 554# define YYDSYMPRINTF(Title, Token, Value, Location)
5a35a6cb
AD
555#endif /* !YYDEBUG */
556
557/* YYINITDEPTH -- initial size of the parser's stacks. */
10fa2066 558#ifndef YYINITDEPTH
9c1e26bd 559# define YYINITDEPTH ]b4_stack_depth_init[
10fa2066
RS
560#endif
561
5a35a6cb 562/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
600f9b0c
PE
563 if the built-in stack extension method is used).
564
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. */
568
10fa2066 569#if YYMAXDEPTH == 0
b07b484a 570# undef YYMAXDEPTH
10fa2066
RS
571#endif
572
573#ifndef YYMAXDEPTH
9c1e26bd 574# define YYMAXDEPTH ]b4_stack_depth_max[
10fa2066 575#endif
a8289c62 576
10fa2066 577\f
a8289c62 578
7093d0f5
AD
579#if YYERROR_VERBOSE
580
581# ifndef yystrlen
582# if defined (__GLIBC__) && defined (_STRING_H)
583# define yystrlen strlen
584# else
585/* Return the length of YYSTR. */
586static YYSIZE_T
587# if defined (__STDC__) || defined (__cplusplus)
588yystrlen (const char *yystr)
589# else
590yystrlen (yystr)
591 const char *yystr;
592# endif
593{
594 register const char *yys = yystr;
595
596 while (*yys++ != '\0')
597 continue;
598
599 return yys - yystr - 1;
600}
601# endif
602# endif
603
604# ifndef yystpcpy
605# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
606# define yystpcpy stpcpy
607# else
608/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
609 YYDEST. */
610static char *
f11966ff
PE
611# if defined (__STDC__) || defined (__cplusplus)
612yystpcpy (char *yydest, const char *yysrc)
613# else
7093d0f5
AD
614yystpcpy (yydest, yysrc)
615 char *yydest;
616 const char *yysrc;
7093d0f5
AD
617# endif
618{
619 register char *yyd = yydest;
620 register const char *yys = yysrc;
621
622 while ((*yyd++ = *yys++) != '\0')
623 continue;
624
625 return yyd - 1;
626}
627# endif
628# endif
629
630#endif /* !YYERROR_VERBOSE */
631
10fa2066 632\f
a8289c62 633
b8df3223 634#if YYDEBUG
9c1e26bd 635]b4_yysymprint_generate([b4_c_function_def])[
b8df3223 636#endif /* YYDEBUG. */
9c1e26bd 637]b4_yydestruct_generate([b4_c_function_def])
4a2a22f4
AD
638\f
639
0245f82d 640/* Prevent warnings from -Wmissing-prototypes. */
4a2a22f4
AD
641
642#ifdef YYPARSE_PARAM
643# if defined (__STDC__) || defined (__cplusplus)
0245f82d 644int yyparse (void *YYPARSE_PARAM);
4a2a22f4 645# else
0245f82d 646int yyparse ();
4a2a22f4 647# endif
0245f82d
AD
648#else /* ! YYPARSE_PARAM */
649b4_c_function_decl([yyparse], [int], b4_parse_param)
4a2a22f4 650#endif
1b181651 651
0245f82d 652
74310291
AD
653m4_divert_push([KILL])# ======================== M4 code.
654# b4_declare_parser_variables
655# ---------------------------
656# Declare the variables that are global, or local to YYPARSE if
0245f82d 657# pure-parser.
74310291
AD
658m4_define([b4_declare_parser_variables],
659[/* The lookahead symbol. */
660int yychar;
661
662/* The semantic value of the lookahead symbol. */
663YYSTYPE yylval;
664
665/* Number of parse errors so far. */
666int yynerrs;b4_location_if([
667/* Location data for the lookahead symbol. */
58612f1d 668YYLTYPE yylloc;])
74310291
AD
669])
670m4_divert_pop([KILL])dnl# ====================== End of M4 code.
58612f1d 671
74310291
AD
672b4_pure_if([],
673 [b4_declare_parser_variables])
a35f64ea 674
0245f82d
AD
675
676/*----------.
677| yyparse. |
678`----------*/
679
680#ifdef YYPARSE_PARAM
681# if defined (__STDC__) || defined (__cplusplus)
682int yyparse (void *YYPARSE_PARAM)
683# else
684int yyparse (YYPARSE_PARAM)
685 void *YYPARSE_PARAM;
686# endif
687#else /* ! YYPARSE_PARAM */
688b4_c_function_def([yyparse], [int], b4_parse_param)
689#endif
be2a1a68 690{[
74310291 691 ]b4_pure_if([b4_declare_parser_variables])[
10fa2066
RS
692 register int yystate;
693 register int yyn;
600f9b0c 694 int yyresult;
b07b484a
AD
695 /* Number of tokens to shift before error messages enabled. */
696 int yyerrstatus;
697 /* Lookahead token as an internal (translated) token number. */
b0400cc6 698 int yytoken = 0;
10fa2066 699
bb10be54
AD
700 /* Three stacks and their tools:
701 `yyss': related to states,
e9e4c321 702 `yyvs': related to semantic values,
bb10be54
AD
703 `yyls': related to locations.
704
705 Refer to the stacks thru separate pointers, to allow yyoverflow
706 to reallocate them elsewhere. */
707
e8cb70b9 708 /* The state stack. */
b07b484a 709 short yyssa[YYINITDEPTH];
bb10be54
AD
710 short *yyss = yyssa;
711 register short *yyssp;
712
b07b484a
AD
713 /* The semantic value stack. */
714 YYSTYPE yyvsa[YYINITDEPTH];
b07b484a 715 YYSTYPE *yyvs = yyvsa;
bb10be54 716 register YYSTYPE *yyvsp;
10fa2066 717
58612f1d
AD
718]b4_location_if(
719[[ /* The location stack. */
b07b484a 720 YYLTYPE yylsa[YYINITDEPTH];
10fa2066 721 YYLTYPE *yyls = yylsa;
58612f1d 722 YYLTYPE *yylsp;]])[
10fa2066 723
58612f1d 724#define YYPOPSTACK (yyvsp--, yyssp--]b4_location_if([, yylsp--])[)
10fa2066 725
7093d0f5 726 YYSIZE_T yystacksize = YYINITDEPTH;
10fa2066 727
6666f98f
AD
728 /* The variables used to return semantic value and location from the
729 action routines. */
bb10be54 730 YYSTYPE yyval;
58612f1d 731]b4_location_if([ YYLTYPE yyloc;])[
10fa2066 732
6666f98f 733 /* When reducing, the number of symbols on the RHS of the reduced
e8cb70b9 734 rule. */
10fa2066
RS
735 int yylen;
736
7ea5e977 737 YYDPRINTF ((stderr, "Starting parse\n"));
10fa2066
RS
738
739 yystate = 0;
740 yyerrstatus = 0;
17da6427 741 yynerrs = 0;
b0400cc6 742 yychar = yytoken = YYEMPTY; /* Cause a token to be read. */
10fa2066
RS
743
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. */
748
cbd89906 749 yyssp = yyss;
10fa2066 750 yyvsp = yyvs;
58612f1d 751]b4_location_if([ yylsp = yyls;])[
cbd89906 752 goto yysetstate;
10fa2066 753
71da9eea
AD
754/*------------------------------------------------------------.
755| yynewstate -- Push a new state, which is found in yystate. |
756`------------------------------------------------------------*/
342b8b6e 757 yynewstate:
71da9eea
AD
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.
760 */
cbd89906
PE
761 yyssp++;
762
342b8b6e 763 yysetstate:
cbd89906 764 *yyssp = yystate;
10fa2066 765
39912f52 766 if (yyss + yystacksize - 1 <= yyssp)
10fa2066 767 {
10fa2066 768 /* Get the current used size of the three stacks, in elements. */
7093d0f5 769 YYSIZE_T yysize = yyssp - yyss + 1;
10fa2066
RS
770
771#ifdef yyoverflow
3d76b07d
AD
772 {
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
775 memory. */
776 YYSTYPE *yyvs1 = yyvs;
777 short *yyss1 = yyss;
58612f1d 778]b4_location_if([ YYLTYPE *yyls1 = yyls;])[
3d76b07d
AD
779
780 /* Each stack pointer address is followed by the size of the
58612f1d
AD
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. */
3d76b07d 784 yyoverflow ("parser stack overflow",
7093d0f5
AD
785 &yyss1, yysize * sizeof (*yyssp),
786 &yyvs1, yysize * sizeof (*yyvsp),
58612f1d 787]b4_location_if([ &yyls1, yysize * sizeof (*yylsp),])[
3d76b07d 788 &yystacksize);
58612f1d 789]b4_location_if([ yyls = yyls1;])[
3d76b07d
AD
790 yyss = yyss1;
791 yyvs = yyvs1;
792 }
10fa2066 793#else /* no yyoverflow */
cf44a9ae
PE
794# ifndef YYSTACK_RELOCATE
795 goto yyoverflowlab;
796# else
10fa2066 797 /* Extend the stack our own way. */
39912f52 798 if (YYMAXDEPTH <= yystacksize)
600f9b0c 799 goto yyoverflowlab;
10fa2066 800 yystacksize *= 2;
39912f52 801 if (YYMAXDEPTH < yystacksize)
10fa2066 802 yystacksize = YYMAXDEPTH;
e9e4c321 803
600f9b0c
PE
804 {
805 short *yyss1 = yyss;
2729e106
PE
806 union yyalloc *yyptr =
807 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
600f9b0c
PE
808 if (! yyptr)
809 goto yyoverflowlab;
5b041382
PE
810 YYSTACK_RELOCATE (yyss);
811 YYSTACK_RELOCATE (yyvs);
58612f1d 812]b4_location_if([ YYSTACK_RELOCATE (yyls);])[
cf44a9ae 813# undef YYSTACK_RELOCATE
600f9b0c
PE
814 if (yyss1 != yyssa)
815 YYSTACK_FREE (yyss1);
816 }
cf44a9ae 817# endif
10fa2066
RS
818#endif /* no yyoverflow */
819
7093d0f5
AD
820 yyssp = yyss + yysize - 1;
821 yyvsp = yyvs + yysize - 1;
58612f1d 822]b4_location_if([ yylsp = yyls + yysize - 1;])[
10fa2066 823
7ea5e977 824 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
600f9b0c 825 (unsigned long int) yystacksize));
10fa2066 826
39912f52 827 if (yyss + yystacksize - 1 <= yyssp)
10fa2066
RS
828 YYABORT;
829 }
830
7ea5e977 831 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
10fa2066
RS
832
833 goto yybackup;
71da9eea 834
71da9eea
AD
835/*-----------.
836| yybackup. |
837`-----------*/
838yybackup:
10fa2066
RS
839
840/* Do appropriate processing given the current state. */
841/* Read a lookahead token if we need one and don't already have one. */
842/* yyresume: */
843
844 /* First try to decide what to do without reference to lookahead token. */
845
846 yyn = yypact[yystate];
12b0043a 847 if (yyn == YYPACT_NINF)
10fa2066
RS
848 goto yydefault;
849
850 /* Not known => get a lookahead token if don't already have one. */
851
b0400cc6
AD
852 /* YYTOKEN is either YYEMPTY or YYEOF or a valid token. */
853 if (yytoken == YYEMPTY)
10fa2066 854 {
7ea5e977 855 YYDPRINTF ((stderr, "Reading a token: "));
17da6427 856 yychar = YYLEX;
b0400cc6 857 yytoken = YYTRANSLATE (yychar);
10fa2066
RS
858 }
859
b0400cc6 860 if (yytoken == YYEOF)
10fa2066 861 {
7ea5e977 862 YYDPRINTF ((stderr, "Now at end of input.\n"));
10fa2066
RS
863 }
864 else
865 {
253862fd
AD
866 /* We have to keep this `#if YYDEBUG', since we use variables
867 which are defined only if `YYDEBUG' is set. */
9c1e26bd 868 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
10fa2066
RS
869 }
870
b0400cc6 871 /* If the proper action on seeing token YYTOKEN is to reduce or to
e5cfd9d8 872 detect an error, take that action. */
b0400cc6
AD
873 yyn += yytoken;
874 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
e5cfd9d8
PE
875 goto yydefault;
876 yyn = yytable[yyn];
877 if (yyn <= 0)
10fa2066 878 {
e5cfd9d8
PE
879 if (yyn == 0 || yyn == YYTABLE_NINF)
880 goto yyerrlab;
10fa2066
RS
881 yyn = -yyn;
882 goto yyreduce;
883 }
10fa2066
RS
884
885 if (yyn == YYFINAL)
886 YYACCEPT;
887
888 /* Shift the lookahead token. */
9c1e26bd 889 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
10fa2066
RS
890
891 /* Discard the token being shifted unless it is eof. */
b0400cc6
AD
892 if (yytoken != YYEOF)
893 yytoken = YYEMPTY;
10fa2066 894
17da6427 895 *++yyvsp = yylval;
58612f1d 896]b4_location_if([ *++yylsp = yylloc;])[
10fa2066 897
71da9eea
AD
898 /* Count tokens shifted since error; after three, turn off error
899 status. */
900 if (yyerrstatus)
901 yyerrstatus--;
10fa2066
RS
902
903 yystate = yyn;
904 goto yynewstate;
905
10fa2066 906
71da9eea
AD
907/*-----------------------------------------------------------.
908| yydefault -- do the default action for the current state. |
909`-----------------------------------------------------------*/
910yydefault:
10fa2066
RS
911 yyn = yydefact[yystate];
912 if (yyn == 0)
913 goto yyerrlab;
71da9eea 914 goto yyreduce;
10fa2066 915
71da9eea
AD
916
917/*-----------------------------.
918| yyreduce -- Do a reduction. |
919`-----------------------------*/
10fa2066 920yyreduce:
71da9eea 921 /* yyn is the number of a rule to reduce with. */
10fa2066 922 yylen = yyr2[yyn];
da9abf43
AD
923
924 /* If YYLEN is nonzero, implement the default value of the action:
573c1d9f 925 `$$ = $1'.
da9abf43 926
accea6db
PE
927 Otherwise, the following line sets YYVAL to garbage.
928 This behavior is undocumented and Bison
da9abf43
AD
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];
3abcd459 933
58612f1d
AD
934]b4_location_if(
935[ /* Default location. */
936 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);])[
10fa2066 937
0de741ca
AD
938#if YYDEBUG
939 /* We have to keep this `#if YYDEBUG', since we use variables which
940 are defined only if `YYDEBUG' is set. */
17da6427 941 if (yydebug)
10fa2066 942 {
7093d0f5 943 int yyi;
10fa2066 944
9c1e26bd 945 YYFPRINTF (stderr, "Reducing by rule %d (line %d), ",
3db472b9 946 yyn - 1, yyrline[yyn]);
10fa2066
RS
947
948 /* Print the symbols being reduced, and their result. */
39912f52 949 for (yyi = yyprhs[yyn]; 0 <= yyrhs[yyi]; yyi++)
7ea5e977 950 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
9c1e26bd 951 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyn]]);
10fa2066
RS
952 }
953#endif
a8289c62 954 switch (yyn)
be2a1a68
AD
955 ]{
956 b4_actions
a8289c62 957 }
897668ee 958
be2a1a68 959/* Line __line__ of __file__. */
947427ae 960b4_syncline([@oline@], [@ofile@])
10fa2066 961\f
be2a1a68 962[ yyvsp -= yylen;
10fa2066 963 yyssp -= yylen;
58612f1d 964]b4_location_if([ yylsp -= yylen;])[
10fa2066 965
5a35a6cb 966#if YYDEBUG
17da6427 967 if (yydebug)
10fa2066 968 {
7093d0f5 969 short *yyssp1 = yyss - 1;
7ea5e977 970 YYFPRINTF (stderr, "state stack now");
7093d0f5 971 while (yyssp1 != yyssp)
7ea5e977
AD
972 YYFPRINTF (stderr, " %d", *++yyssp1);
973 YYFPRINTF (stderr, "\n");
10fa2066 974 }
5a35a6cb 975#endif
10fa2066
RS
976
977 *++yyvsp = yyval;
58612f1d 978]b4_location_if([ *++yylsp = yyloc;])[
10fa2066 979
41aca2e0
AD
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. */
10fa2066
RS
983
984 yyn = yyr1[yyn];
985
7742ddeb 986 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
12b0043a 987 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
10fa2066
RS
988 yystate = yytable[yystate];
989 else
7742ddeb 990 yystate = yydefgoto[yyn - YYNTOKENS];
10fa2066
RS
991
992 goto yynewstate;
993
10fa2066 994
71da9eea
AD
995/*------------------------------------.
996| yyerrlab -- here on detecting error |
997`------------------------------------*/
998yyerrlab:
999 /* If not already recovering from an error, report this error. */
1000 if (!yyerrstatus)
10fa2066 1001 {
17da6427 1002 ++yynerrs;
df5aed8c
PE
1003#if YYERROR_VERBOSE
1004 yyn = yypact[yystate];
1005
1006 if (YYPACT_NINF < yyn && yyn < YYLAST)
1007 {
1008 YYSIZE_T yysize = 0;
1009 int yytype = YYTRANSLATE (yychar);
1010 char *yymsg;
1011 int yyx, yycount;
1012
1013 yycount = 0;
1014 /* Start YYX at -YYN if negative to avoid negative indexes in
1015 YYCHECK. */
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);
1023 if (yymsg != 0)
1024 {
1025 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
1026 yyp = yystpcpy (yyp, yytname[yytype]);
1027
1028 if (yycount < 5)
1029 {
1030 yycount = 0;
1031 for (yyx = yyn < 0 ? -yyn : 0;
1032 yyx < (int) (sizeof (yytname) / sizeof (char *));
1033 yyx++)
1034 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1035 {
1036 const char *yyq = ! yycount ? ", expecting " : " or ";
1037 yyp = yystpcpy (yyp, yyq);
1038 yyp = yystpcpy (yyp, yytname[yyx]);
1039 yycount++;
1040 }
1041 }
93724f13 1042 yyerror (]b4_yyerror_args[yymsg);
df5aed8c
PE
1043 YYSTACK_FREE (yymsg);
1044 }
1045 else
93724f13 1046 yyerror (]b4_yyerror_args["parse error; also virtual memory exhausted");
df5aed8c
PE
1047 }
1048 else
1049#endif /* YYERROR_VERBOSE */
93724f13 1050 yyerror (]b4_yyerror_args["parse error");
10fa2066 1051 }
10fa2066 1052 goto yyerrlab1;
10fa2066 1053
71da9eea 1054
e8cb70b9
PB
1055/*----------------------------------------------------.
1056| yyerrlab1 -- error raised explicitly by an action. |
1057`----------------------------------------------------*/
71da9eea 1058yyerrlab1:
10fa2066
RS
1059 if (yyerrstatus == 3)
1060 {
71da9eea
AD
1061 /* If just tried and failed to reuse lookahead token after an
1062 error, discard it. */
10fa2066 1063
e8cb70b9 1064 /* Return failure if at end of input. */
b0400cc6 1065 if (yytoken == YYEOF)
5719c109
AD
1066 {
1067 /* Pop the error token. */
1068 YYPOPSTACK;
1069 /* Pop the rest of the stack. */
39912f52 1070 while (yyss < yyssp)
5719c109 1071 {
9c1e26bd 1072 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
7bd6c77e 1073 yydestruct (yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
5719c109
AD
1074 YYPOPSTACK;
1075 }
1076 YYABORT;
1077 }
1078
9c1e26bd 1079 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
7bd6c77e 1080 yydestruct (yytoken, &yylval]b4_location_if([, &yylloc])[);
b0400cc6 1081 yytoken = YYEMPTY;
10fa2066
RS
1082 }
1083
71da9eea
AD
1084 /* Else will try to reuse lookahead token after shifting the error
1085 token. */
10fa2066 1086
cf44a9ae 1087 yyerrstatus = 3; /* Each real token shifted decrements this. */
10fa2066 1088
660bc8dd
PE
1089 for (;;)
1090 {
1091 yyn = yypact[yystate];
12b0043a 1092 if (yyn != YYPACT_NINF)
660bc8dd
PE
1093 {
1094 yyn += YYTERROR;
1095 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1096 {
1097 yyn = yytable[yyn];
1098 if (0 < yyn)
1099 break;
1100 }
1101 }
10fa2066 1102
660bc8dd
PE
1103 /* Pop the current state because it cannot handle the error token. */
1104 if (yyssp == yyss)
1105 YYABORT;
5504898e 1106
9c1e26bd 1107 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
7bd6c77e 1108 yydestruct (yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
660bc8dd
PE
1109 yyvsp--;
1110 yystate = *--yyssp;
58612f1d 1111]b4_location_if([ yylsp--;])[
10fa2066 1112
5a35a6cb 1113#if YYDEBUG
660bc8dd
PE
1114 if (yydebug)
1115 {
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");
1121 }
5a35a6cb 1122#endif
10fa2066 1123 }
10fa2066
RS
1124
1125 if (yyn == YYFINAL)
1126 YYACCEPT;
1127
7ea5e977 1128 YYDPRINTF ((stderr, "Shifting error token, "));
10fa2066 1129
17da6427 1130 *++yyvsp = yylval;
58612f1d 1131]b4_location_if([ *++yylsp = yylloc;])[
10fa2066
RS
1132
1133 yystate = yyn;
1134 goto yynewstate;
70ddf897 1135
71da9eea
AD
1136
1137/*-------------------------------------.
1138| yyacceptlab -- YYACCEPT comes here. |
1139`-------------------------------------*/
1140yyacceptlab:
600f9b0c
PE
1141 yyresult = 0;
1142 goto yyreturn;
71da9eea
AD
1143
1144/*-----------------------------------.
1145| yyabortlab -- YYABORT comes here. |
1146`-----------------------------------*/
1147yyabortlab:
600f9b0c
PE
1148 yyresult = 1;
1149 goto yyreturn;
1150
0bfb02ff 1151#ifndef yyoverflow
ca98bf57
AD
1152/*----------------------------------------------.
1153| yyoverflowlab -- parser overflow comes here. |
1154`----------------------------------------------*/
600f9b0c 1155yyoverflowlab:
93724f13 1156 yyerror (]b4_yyerror_args["parser stack overflow");
600f9b0c
PE
1157 yyresult = 2;
1158 /* Fall through. */
0bfb02ff 1159#endif
600f9b0c
PE
1160
1161yyreturn:
1162#ifndef yyoverflow
1163 if (yyss != yyssa)
1164 YYSTACK_FREE (yyss);
70ddf897 1165#endif
600f9b0c 1166 return yyresult;
be2a1a68
AD
1167]}
1168
24c0aad7 1169
be2a1a68
AD
1170b4_epilogue
1171m4_if(b4_defines_flag, 0, [],
947427ae 1172[@output @output_header_name@
c76e14da 1173b4_copyright([Skeleton parser for Yacc-like parsing with Bison],
0252b55c
PE
1174 [1984, 1989, 1990, 2000, 2001, 2002])
1175
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. */
c76e14da 1180
0d8bed56 1181b4_token_defines(b4_tokens)
be2a1a68
AD
1182
1183#ifndef YYSTYPE
e9955c83 1184m4_ifdef([b4_stype],
437c2d80 1185[b4_syncline([b4_stype_line], [b4_filename])
e96c9728
AD
1186typedef union b4_stype yystype;
1187/* Line __line__ of __file__. */
947427ae 1188b4_syncline([@oline@], [@ofile@])],
e9955c83 1189[typedef int yystype;])
be2a1a68 1190# define YYSTYPE yystype
947427ae 1191# define YYSTYPE_IS_TRIVIAL 1
be2a1a68
AD
1192#endif
1193
74310291 1194b4_pure_if([],
be2a1a68
AD
1195[extern YYSTYPE b4_prefix[]lval;])
1196
58612f1d 1197b4_location_if(
be2a1a68
AD
1198[#ifndef YYLTYPE
1199typedef struct yyltype
1200{
1201 int first_line;
1202 int first_column;
1203 int last_line;
1204 int last_column;
1205} yyltype;
1206# define YYLTYPE yyltype
1207#endif
ff48177d 1208
be2a1a68
AD
1209m4_if(b4_pure, [0],
1210[extern YYLTYPE b4_prefix[]lloc;])
1211])
be2a1a68 1212])