]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/tools/build/src/engine/jamgram.c
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / tools / build / src / engine / jamgram.c
1 /* A Bison parser, made by GNU Bison 2.6.4. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "2.6.4"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 0
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 /* Line 358 of yacc.c */
66 #line 98 "jamgram.y"
67
68 #include "jam.h"
69
70 #include "lists.h"
71 #include "parse.h"
72 #include "scan.h"
73 #include "compile.h"
74 #include "object.h"
75 #include "rules.h"
76
77 # define YYMAXDEPTH 10000 /* for OSF and other less endowed yaccs */
78
79 # define F0 -1
80 # define P0 (PARSE *)0
81 # define S0 (OBJECT *)0
82
83 # define pappend( l,r ) parse_make( PARSE_APPEND,l,r,P0,S0,S0,0 )
84 # define peval( c,l,r ) parse_make( PARSE_EVAL,l,r,P0,S0,S0,c )
85 # define pfor( s,l,r,x ) parse_make( PARSE_FOREACH,l,r,P0,s,S0,x )
86 # define pif( l,r,t ) parse_make( PARSE_IF,l,r,t,S0,S0,0 )
87 # define pincl( l ) parse_make( PARSE_INCLUDE,l,P0,P0,S0,S0,0 )
88 # define plist( s ) parse_make( PARSE_LIST,P0,P0,P0,s,S0,0 )
89 # define plocal( l,r,t ) parse_make( PARSE_LOCAL,l,r,t,S0,S0,0 )
90 # define pmodule( l,r ) parse_make( PARSE_MODULE,l,r,P0,S0,S0,0 )
91 # define pclass( l,r ) parse_make( PARSE_CLASS,l,r,P0,S0,S0,0 )
92 # define pnull() parse_make( PARSE_NULL,P0,P0,P0,S0,S0,0 )
93 # define pon( l,r ) parse_make( PARSE_ON,l,r,P0,S0,S0,0 )
94 # define prule( s,p ) parse_make( PARSE_RULE,p,P0,P0,s,S0,0 )
95 # define prules( l,r ) parse_make( PARSE_RULES,l,r,P0,S0,S0,0 )
96 # define pset( l,r,a ) parse_make( PARSE_SET,l,r,P0,S0,S0,a )
97 # define pset1( l,r,t,a ) parse_make( PARSE_SETTINGS,l,r,t,S0,S0,a )
98 # define psetc( s,p,a,l ) parse_make( PARSE_SETCOMP,p,a,P0,s,S0,l )
99 # define psete( s,l,s1,f ) parse_make( PARSE_SETEXEC,l,P0,P0,s,s1,f )
100 # define pswitch( l,r ) parse_make( PARSE_SWITCH,l,r,P0,S0,S0,0 )
101 # define pwhile( l,r ) parse_make( PARSE_WHILE,l,r,P0,S0,S0,0 )
102 # define preturn( l ) parse_make( PARSE_RETURN,l,P0,P0,S0,S0,0 )
103 # define pbreak() parse_make( PARSE_BREAK,P0,P0,P0,S0,S0,0 )
104 # define pcontinue() parse_make( PARSE_CONTINUE,P0,P0,P0,S0,S0,0 )
105
106 # define pnode( l,r ) parse_make( F0,l,r,P0,S0,S0,0 )
107 # define psnode( s,l ) parse_make( F0,l,P0,P0,s,S0,0 )
108
109
110 /* Line 358 of yacc.c */
111 #line 112 "y.tab.c"
112
113 # ifndef YY_NULL
114 # if defined __cplusplus && 201103L <= __cplusplus
115 # define YY_NULL nullptr
116 # else
117 # define YY_NULL 0
118 # endif
119 # endif
120
121 /* Enabling verbose error messages. */
122 #ifdef YYERROR_VERBOSE
123 # undef YYERROR_VERBOSE
124 # define YYERROR_VERBOSE 1
125 #else
126 # define YYERROR_VERBOSE 0
127 #endif
128
129 /* In a future release of Bison, this section will be replaced
130 by #include "y.tab.h". */
131 #ifndef YY_YY_Y_TAB_H_INCLUDED
132 # define YY_YY_Y_TAB_H_INCLUDED
133 /* Enabling traces. */
134 #ifndef YYDEBUG
135 # define YYDEBUG 1
136 #endif
137 #if YYDEBUG
138 extern int yydebug;
139 #endif
140
141 /* Tokens. */
142 #ifndef YYTOKENTYPE
143 # define YYTOKENTYPE
144 /* Put the tokens into the symbol table, so that GDB and other debuggers
145 know about them. */
146 enum yytokentype {
147 _BANG_t = 258,
148 _BANG_EQUALS_t = 259,
149 _AMPER_t = 260,
150 _AMPERAMPER_t = 261,
151 _LPAREN_t = 262,
152 _RPAREN_t = 263,
153 _PLUS_EQUALS_t = 264,
154 _COLON_t = 265,
155 _SEMIC_t = 266,
156 _LANGLE_t = 267,
157 _LANGLE_EQUALS_t = 268,
158 _EQUALS_t = 269,
159 _RANGLE_t = 270,
160 _RANGLE_EQUALS_t = 271,
161 _QUESTION_EQUALS_t = 272,
162 _LBRACKET_t = 273,
163 _RBRACKET_t = 274,
164 ACTIONS_t = 275,
165 BIND_t = 276,
166 BREAK_t = 277,
167 CASE_t = 278,
168 CLASS_t = 279,
169 CONTINUE_t = 280,
170 DEFAULT_t = 281,
171 ELSE_t = 282,
172 EXISTING_t = 283,
173 FOR_t = 284,
174 IF_t = 285,
175 IGNORE_t = 286,
176 IN_t = 287,
177 INCLUDE_t = 288,
178 LOCAL_t = 289,
179 MODULE_t = 290,
180 ON_t = 291,
181 PIECEMEAL_t = 292,
182 QUIETLY_t = 293,
183 RETURN_t = 294,
184 RULE_t = 295,
185 SWITCH_t = 296,
186 TOGETHER_t = 297,
187 UPDATED_t = 298,
188 WHILE_t = 299,
189 _LBRACE_t = 300,
190 _BAR_t = 301,
191 _BARBAR_t = 302,
192 _RBRACE_t = 303,
193 ARG = 304,
194 STRING = 305
195 };
196 #endif
197 /* Tokens. */
198 #define _BANG_t 258
199 #define _BANG_EQUALS_t 259
200 #define _AMPER_t 260
201 #define _AMPERAMPER_t 261
202 #define _LPAREN_t 262
203 #define _RPAREN_t 263
204 #define _PLUS_EQUALS_t 264
205 #define _COLON_t 265
206 #define _SEMIC_t 266
207 #define _LANGLE_t 267
208 #define _LANGLE_EQUALS_t 268
209 #define _EQUALS_t 269
210 #define _RANGLE_t 270
211 #define _RANGLE_EQUALS_t 271
212 #define _QUESTION_EQUALS_t 272
213 #define _LBRACKET_t 273
214 #define _RBRACKET_t 274
215 #define ACTIONS_t 275
216 #define BIND_t 276
217 #define BREAK_t 277
218 #define CASE_t 278
219 #define CLASS_t 279
220 #define CONTINUE_t 280
221 #define DEFAULT_t 281
222 #define ELSE_t 282
223 #define EXISTING_t 283
224 #define FOR_t 284
225 #define IF_t 285
226 #define IGNORE_t 286
227 #define IN_t 287
228 #define INCLUDE_t 288
229 #define LOCAL_t 289
230 #define MODULE_t 290
231 #define ON_t 291
232 #define PIECEMEAL_t 292
233 #define QUIETLY_t 293
234 #define RETURN_t 294
235 #define RULE_t 295
236 #define SWITCH_t 296
237 #define TOGETHER_t 297
238 #define UPDATED_t 298
239 #define WHILE_t 299
240 #define _LBRACE_t 300
241 #define _BAR_t 301
242 #define _BARBAR_t 302
243 #define _RBRACE_t 303
244 #define ARG 304
245 #define STRING 305
246
247
248
249 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
250 typedef int YYSTYPE;
251 # define YYSTYPE_IS_TRIVIAL 1
252 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
253 # define YYSTYPE_IS_DECLARED 1
254 #endif
255
256 extern YYSTYPE yylval;
257
258 #ifdef YYPARSE_PARAM
259 #if defined __STDC__ || defined __cplusplus
260 int yyparse (void *YYPARSE_PARAM);
261 #else
262 int yyparse ();
263 #endif
264 #else /* ! YYPARSE_PARAM */
265 #if defined __STDC__ || defined __cplusplus
266 int yyparse (void);
267 #else
268 int yyparse ();
269 #endif
270 #endif /* ! YYPARSE_PARAM */
271
272 #endif /* !YY_YY_Y_TAB_H_INCLUDED */
273
274 /* Copy the second part of user declarations. */
275
276 /* Line 377 of yacc.c */
277 #line 278 "y.tab.c"
278
279 #ifdef short
280 # undef short
281 #endif
282
283 #ifdef YYTYPE_UINT8
284 typedef YYTYPE_UINT8 yytype_uint8;
285 #else
286 typedef unsigned char yytype_uint8;
287 #endif
288
289 #ifdef YYTYPE_INT8
290 typedef YYTYPE_INT8 yytype_int8;
291 #elif (defined __STDC__ || defined __C99__FUNC__ \
292 || defined __cplusplus || defined _MSC_VER)
293 typedef signed char yytype_int8;
294 #else
295 typedef short int yytype_int8;
296 #endif
297
298 #ifdef YYTYPE_UINT16
299 typedef YYTYPE_UINT16 yytype_uint16;
300 #else
301 typedef unsigned short int yytype_uint16;
302 #endif
303
304 #ifdef YYTYPE_INT16
305 typedef YYTYPE_INT16 yytype_int16;
306 #else
307 typedef short int yytype_int16;
308 #endif
309
310 #ifndef YYSIZE_T
311 # ifdef __SIZE_TYPE__
312 # define YYSIZE_T __SIZE_TYPE__
313 # elif defined size_t
314 # define YYSIZE_T size_t
315 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
316 || defined __cplusplus || defined _MSC_VER)
317 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
318 # define YYSIZE_T size_t
319 # else
320 # define YYSIZE_T unsigned int
321 # endif
322 #endif
323
324 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
325
326 #ifndef YY_
327 # if defined YYENABLE_NLS && YYENABLE_NLS
328 # if ENABLE_NLS
329 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
330 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
331 # endif
332 # endif
333 # ifndef YY_
334 # define YY_(Msgid) Msgid
335 # endif
336 #endif
337
338 /* Suppress unused-variable warnings by "using" E. */
339 #if ! defined lint || defined __GNUC__
340 # define YYUSE(E) ((void) (E))
341 #else
342 # define YYUSE(E) /* empty */
343 #endif
344
345 /* Identity function, used to suppress warnings about constant conditions. */
346 #ifndef lint
347 # define YYID(N) (N)
348 #else
349 #if (defined __STDC__ || defined __C99__FUNC__ \
350 || defined __cplusplus || defined _MSC_VER)
351 static int
352 YYID (int yyi)
353 #else
354 static int
355 YYID (yyi)
356 int yyi;
357 #endif
358 {
359 return yyi;
360 }
361 #endif
362
363 #if ! defined yyoverflow || YYERROR_VERBOSE
364
365 /* The parser invokes alloca or malloc; define the necessary symbols. */
366
367 # ifdef YYSTACK_USE_ALLOCA
368 # if YYSTACK_USE_ALLOCA
369 # ifdef __GNUC__
370 # define YYSTACK_ALLOC __builtin_alloca
371 # elif defined __BUILTIN_VA_ARG_INCR
372 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
373 # elif defined _AIX
374 # define YYSTACK_ALLOC __alloca
375 # elif defined _MSC_VER
376 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
377 # define alloca _alloca
378 # else
379 # define YYSTACK_ALLOC alloca
380 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
381 || defined __cplusplus || defined _MSC_VER)
382 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
383 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
384 # ifndef EXIT_SUCCESS
385 # define EXIT_SUCCESS 0
386 # endif
387 # endif
388 # endif
389 # endif
390 # endif
391
392 # ifdef YYSTACK_ALLOC
393 /* Pacify GCC's `empty if-body' warning. */
394 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
395 # ifndef YYSTACK_ALLOC_MAXIMUM
396 /* The OS might guarantee only one guard page at the bottom of the stack,
397 and a page size can be as small as 4096 bytes. So we cannot safely
398 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
399 to allow for a few compiler-allocated temporary stack slots. */
400 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
401 # endif
402 # else
403 # define YYSTACK_ALLOC YYMALLOC
404 # define YYSTACK_FREE YYFREE
405 # ifndef YYSTACK_ALLOC_MAXIMUM
406 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
407 # endif
408 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
409 && ! ((defined YYMALLOC || defined malloc) \
410 && (defined YYFREE || defined free)))
411 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
412 # ifndef EXIT_SUCCESS
413 # define EXIT_SUCCESS 0
414 # endif
415 # endif
416 # ifndef YYMALLOC
417 # define YYMALLOC malloc
418 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
419 || defined __cplusplus || defined _MSC_VER)
420 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
421 # endif
422 # endif
423 # ifndef YYFREE
424 # define YYFREE free
425 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
426 || defined __cplusplus || defined _MSC_VER)
427 void free (void *); /* INFRINGES ON USER NAME SPACE */
428 # endif
429 # endif
430 # endif
431 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
432
433
434 #if (! defined yyoverflow \
435 && (! defined __cplusplus \
436 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
437
438 /* A type that is properly aligned for any stack member. */
439 union yyalloc
440 {
441 yytype_int16 yyss_alloc;
442 YYSTYPE yyvs_alloc;
443 };
444
445 /* The size of the maximum gap between one aligned stack and the next. */
446 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
447
448 /* The size of an array large to enough to hold all stacks, each with
449 N elements. */
450 # define YYSTACK_BYTES(N) \
451 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
452 + YYSTACK_GAP_MAXIMUM)
453
454 # define YYCOPY_NEEDED 1
455
456 /* Relocate STACK from its old location to the new one. The
457 local variables YYSIZE and YYSTACKSIZE give the old and new number of
458 elements in the stack, and YYPTR gives the new location of the
459 stack. Advance YYPTR to a properly aligned location for the next
460 stack. */
461 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
462 do \
463 { \
464 YYSIZE_T yynewbytes; \
465 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
466 Stack = &yyptr->Stack_alloc; \
467 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
468 yyptr += yynewbytes / sizeof (*yyptr); \
469 } \
470 while (YYID (0))
471
472 #endif
473
474 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
475 /* Copy COUNT objects from SRC to DST. The source and destination do
476 not overlap. */
477 # ifndef YYCOPY
478 # if defined __GNUC__ && 1 < __GNUC__
479 # define YYCOPY(Dst, Src, Count) \
480 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
481 # else
482 # define YYCOPY(Dst, Src, Count) \
483 do \
484 { \
485 YYSIZE_T yyi; \
486 for (yyi = 0; yyi < (Count); yyi++) \
487 (Dst)[yyi] = (Src)[yyi]; \
488 } \
489 while (YYID (0))
490 # endif
491 # endif
492 #endif /* !YYCOPY_NEEDED */
493
494 /* YYFINAL -- State number of the termination state. */
495 #define YYFINAL 47
496 /* YYLAST -- Last index in YYTABLE. */
497 #define YYLAST 238
498
499 /* YYNTOKENS -- Number of terminals. */
500 #define YYNTOKENS 51
501 /* YYNNTS -- Number of nonterminals. */
502 #define YYNNTS 24
503 /* YYNRULES -- Number of rules. */
504 #define YYNRULES 77
505 /* YYNRULES -- Number of states. */
506 #define YYNSTATES 163
507
508 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
509 #define YYUNDEFTOK 2
510 #define YYMAXUTOK 305
511
512 #define YYTRANSLATE(YYX) \
513 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
514
515 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
516 static const yytype_uint8 yytranslate[] =
517 {
518 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
532 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
533 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
536 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
537 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
538 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
539 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
540 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
541 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
542 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
543 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
544 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
545 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
546 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
547 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
548 45, 46, 47, 48, 49, 50
549 };
550
551 #if YYDEBUG
552 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
553 YYRHS. */
554 static const yytype_uint16 yyprhs[] =
555 {
556 0, 0, 3, 4, 6, 8, 10, 12, 15, 21,
557 22, 25, 27, 31, 32, 34, 35, 39, 43, 47,
558 52, 59, 63, 66, 69, 78, 84, 90, 96, 102,
559 108, 116, 122, 126, 127, 128, 138, 140, 142, 144,
560 147, 149, 153, 157, 161, 165, 169, 173, 177, 181,
561 185, 189, 193, 196, 200, 201, 204, 209, 211, 215,
562 217, 218, 221, 223, 224, 229, 232, 237, 242, 243,
563 246, 248, 250, 252, 254, 256, 258, 259
564 };
565
566 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
567 static const yytype_int8 yyrhs[] =
568 {
569 52, 0, -1, -1, 54, -1, 55, -1, 54, -1,
570 59, -1, 59, 54, -1, 34, 67, 56, 11, 53,
571 -1, -1, 14, 67, -1, 55, -1, 7, 66, 8,
572 -1, -1, 34, -1, -1, 45, 53, 48, -1, 33,
573 67, 11, -1, 49, 66, 11, -1, 69, 62, 67,
574 11, -1, 69, 36, 67, 62, 67, 11, -1, 39,
575 67, 11, -1, 22, 11, -1, 25, 11, -1, 29,
576 58, 49, 32, 67, 45, 53, 48, -1, 41, 67,
577 45, 64, 48, -1, 30, 63, 45, 53, 48, -1,
578 35, 67, 45, 53, 48, -1, 24, 66, 45, 53,
579 48, -1, 44, 63, 45, 53, 48, -1, 30, 63,
580 45, 53, 48, 27, 59, -1, 58, 40, 49, 57,
581 59, -1, 36, 69, 59, -1, -1, -1, 20, 72,
582 49, 74, 45, 60, 50, 61, 48, -1, 14, -1,
583 9, -1, 17, -1, 26, 14, -1, 69, -1, 63,
584 14, 63, -1, 63, 4, 63, -1, 63, 12, 63,
585 -1, 63, 13, 63, -1, 63, 15, 63, -1, 63,
586 16, 63, -1, 63, 5, 63, -1, 63, 6, 63,
587 -1, 63, 46, 63, -1, 63, 47, 63, -1, 69,
588 32, 67, -1, 3, 63, -1, 7, 63, 8, -1,
589 -1, 65, 64, -1, 23, 49, 10, 53, -1, 67,
590 -1, 67, 10, 66, -1, 68, -1, -1, 68, 69,
591 -1, 49, -1, -1, 18, 70, 71, 19, -1, 49,
592 66, -1, 36, 69, 49, 66, -1, 36, 69, 39,
593 67, -1, -1, 72, 73, -1, 43, -1, 42, -1,
594 31, -1, 38, -1, 37, -1, 28, -1, -1, 21,
595 67, -1
596 };
597
598 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
599 static const yytype_uint16 yyrline[] =
600 {
601 0, 144, 144, 146, 157, 159, 163, 165, 167, 172,
602 175, 177, 181, 184, 187, 190, 193, 195, 197, 199,
603 201, 203, 205, 207, 209, 211, 213, 215, 217, 219,
604 221, 223, 225, 228, 230, 227, 239, 241, 243, 245,
605 252, 254, 256, 258, 260, 262, 264, 266, 268, 270,
606 272, 274, 276, 278, 290, 291, 295, 304, 306, 316,
607 321, 322, 326, 328, 328, 337, 339, 341, 352, 353,
608 357, 359, 361, 363, 365, 367, 377, 378
609 };
610 #endif
611
612 #if YYDEBUG || YYERROR_VERBOSE || 0
613 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
614 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
615 static const char *const yytname[] =
616 {
617 "$end", "error", "$undefined", "_BANG_t", "_BANG_EQUALS_t", "_AMPER_t",
618 "_AMPERAMPER_t", "_LPAREN_t", "_RPAREN_t", "_PLUS_EQUALS_t", "_COLON_t",
619 "_SEMIC_t", "_LANGLE_t", "_LANGLE_EQUALS_t", "_EQUALS_t", "_RANGLE_t",
620 "_RANGLE_EQUALS_t", "_QUESTION_EQUALS_t", "_LBRACKET_t", "_RBRACKET_t",
621 "ACTIONS_t", "BIND_t", "BREAK_t", "CASE_t", "CLASS_t", "CONTINUE_t",
622 "DEFAULT_t", "ELSE_t", "EXISTING_t", "FOR_t", "IF_t", "IGNORE_t", "IN_t",
623 "INCLUDE_t", "LOCAL_t", "MODULE_t", "ON_t", "PIECEMEAL_t", "QUIETLY_t",
624 "RETURN_t", "RULE_t", "SWITCH_t", "TOGETHER_t", "UPDATED_t", "WHILE_t",
625 "_LBRACE_t", "_BAR_t", "_BARBAR_t", "_RBRACE_t", "ARG", "STRING",
626 "$accept", "run", "block", "rules", "null", "assign_list_opt",
627 "arglist_opt", "local_opt", "rule", "$@1", "$@2", "assign", "expr",
628 "cases", "case", "lol", "list", "listp", "arg", "$@3", "func", "eflags",
629 "eflag", "bindlist", YY_NULL
630 };
631 #endif
632
633 # ifdef YYPRINT
634 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
635 token YYLEX-NUM. */
636 static const yytype_uint16 yytoknum[] =
637 {
638 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
639 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
640 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
641 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
642 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
643 305
644 };
645 # endif
646
647 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
648 static const yytype_uint8 yyr1[] =
649 {
650 0, 51, 52, 52, 53, 53, 54, 54, 54, 55,
651 56, 56, 57, 57, 58, 58, 59, 59, 59, 59,
652 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
653 59, 59, 59, 60, 61, 59, 62, 62, 62, 62,
654 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
655 63, 63, 63, 63, 64, 64, 65, 66, 66, 67,
656 68, 68, 69, 70, 69, 71, 71, 71, 72, 72,
657 73, 73, 73, 73, 73, 73, 74, 74
658 };
659
660 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
661 static const yytype_uint8 yyr2[] =
662 {
663 0, 2, 0, 1, 1, 1, 1, 2, 5, 0,
664 2, 1, 3, 0, 1, 0, 3, 3, 3, 4,
665 6, 3, 2, 2, 8, 5, 5, 5, 5, 5,
666 7, 5, 3, 0, 0, 9, 1, 1, 1, 2,
667 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
668 3, 3, 2, 3, 0, 2, 4, 1, 3, 1,
669 0, 2, 1, 0, 4, 2, 4, 4, 0, 2,
670 1, 1, 1, 1, 1, 1, 0, 2
671 };
672
673 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
674 Performed when YYTABLE doesn't specify something else to do. Zero
675 means the default is an error. */
676 static const yytype_uint8 yydefact[] =
677 {
678 2, 63, 68, 0, 60, 0, 15, 0, 60, 60,
679 60, 0, 60, 60, 0, 9, 62, 0, 3, 0,
680 6, 0, 0, 0, 22, 0, 57, 59, 23, 14,
681 0, 0, 0, 62, 0, 40, 0, 9, 0, 15,
682 0, 0, 0, 0, 5, 4, 0, 1, 0, 7,
683 37, 36, 38, 0, 60, 60, 0, 60, 0, 75,
684 72, 74, 73, 71, 70, 76, 69, 9, 60, 61,
685 0, 52, 0, 0, 0, 0, 0, 0, 0, 0,
686 0, 9, 0, 0, 60, 17, 60, 11, 0, 9,
687 32, 21, 54, 9, 16, 18, 13, 39, 0, 0,
688 0, 65, 64, 60, 0, 0, 58, 60, 53, 42,
689 47, 48, 43, 44, 41, 45, 46, 0, 49, 50,
690 51, 10, 9, 0, 0, 0, 54, 0, 60, 15,
691 60, 19, 60, 60, 77, 33, 28, 0, 26, 8,
692 27, 0, 25, 55, 29, 0, 31, 0, 67, 66,
693 0, 9, 15, 9, 12, 20, 34, 0, 30, 56,
694 0, 24, 35
695 };
696
697 /* YYDEFGOTO[NTERM-NUM]. */
698 static const yytype_int16 yydefgoto[] =
699 {
700 -1, 17, 43, 44, 45, 88, 129, 19, 20, 150,
701 160, 55, 34, 125, 126, 25, 26, 27, 35, 22,
702 58, 23, 66, 104
703 };
704
705 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
706 STATE-NUM. */
707 #define YYPACT_NINF -50
708 static const yytype_int16 yypact[] =
709 {
710 161, -50, -50, -1, -50, 6, -25, 5, -50, -5,
711 -50, -11, -50, -50, 5, 161, 11, 28, -50, -4,
712 161, 61, 9, -12, -50, 14, 51, -11, -50, -50,
713 27, 5, 5, -50, 37, 53, 69, 72, 43, 189,
714 79, 46, 128, 44, -50, -50, 84, -50, 49, -50,
715 -50, -50, -50, 85, -50, -50, -11, -50, 82, -50,
716 -50, -50, -50, -50, -50, 92, -50, 161, -50, -50,
717 71, -50, 142, 5, 5, 5, 5, 5, 5, 5,
718 5, 161, 5, 5, -50, -50, -50, -50, 105, 161,
719 -50, -50, 95, 161, -50, -50, 112, -50, 48, 109,
720 -15, -50, -50, -50, 76, 80, -50, -50, -50, 56,
721 123, 123, -50, -50, 56, -50, -50, 97, 155, 155,
722 -50, -50, 161, 101, 75, 114, 95, 115, -50, 189,
723 -50, -50, -50, -50, -50, -50, -50, 119, 103, -50,
724 -50, 156, -50, -50, -50, 157, -50, 165, -50, -50,
725 122, 161, 189, 161, -50, -50, -50, 129, -50, -50,
726 130, -50, -50
727 };
728
729 /* YYPGOTO[NTERM-NUM]. */
730 static const yytype_int16 yypgoto[] =
731 {
732 -50, -50, -49, 13, 143, -50, -50, 176, -35, -50,
733 -50, 86, 32, 66, -50, -2, -7, -50, 0, -50,
734 -50, -50, -50, -50
735 };
736
737 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
738 positive, shift that token. If negative, reduce the rule which
739 number is the opposite. If YYTABLE_NINF, syntax error. */
740 #define YYTABLE_NINF -61
741 static const yytype_int16 yytable[] =
742 {
743 21, 36, 37, 38, 90, 40, 41, 1, 31, 29,
744 24, 39, 32, 18, 46, 21, 59, 28, 105, 60,
745 21, -60, -60, 1, 132, 61, 62, 69, 47, -60,
746 63, 64, 117, 49, 133, -14, 48, 65, 33, 21,
747 123, 73, 74, 75, 127, 56, 42, 98, 99, 76,
748 77, 78, 79, 80, 33, 101, 100, 50, 57, 67,
749 -60, 68, 51, 71, 72, 52, 106, 21, 76, 77,
750 50, 79, 80, 139, 53, 51, 70, 120, 52, 121,
751 85, 21, 81, 82, 83, 84, 86, 53, 89, 21,
752 91, 92, 94, 21, 146, 95, 134, 54, 96, 97,
753 137, 102, 157, 107, 159, 109, 110, 111, 112, 113,
754 114, 115, 116, 103, 118, 119, 122, 158, 124, 128,
755 131, 135, 21, 147, 141, 148, 145, 73, 136, 21,
756 152, 149, 73, 74, 75, 76, 77, 78, 79, 80,
757 76, 77, 78, 79, 80, 138, 73, 74, 75, 140,
758 108, 21, 21, 21, 76, 77, 78, 79, 80, 73,
759 74, 75, 142, 144, 151, 154, 153, 76, 77, 78,
760 79, 80, 156, 93, 82, 83, 155, 161, 162, 1,
761 87, 2, 30, 3, 130, 4, 5, 0, 82, 83,
762 6, 7, 143, 0, 8, 9, 10, 11, 0, 0,
763 12, -15, 13, 0, 0, 14, 15, 1, 0, 2,
764 16, 3, 0, 4, 5, 0, 0, 0, 6, 7,
765 0, 0, 8, 29, 10, 11, 0, 0, 12, 0,
766 13, 0, 0, 14, 15, 0, 0, 0, 16
767 };
768
769 #define yypact_value_is_default(Yystate) \
770 (!!((Yystate) == (-50)))
771
772 #define yytable_value_is_error(Yytable_value) \
773 YYID (0)
774
775 static const yytype_int16 yycheck[] =
776 {
777 0, 8, 9, 10, 39, 12, 13, 18, 3, 34,
778 11, 11, 7, 0, 16, 15, 28, 11, 67, 31,
779 20, 10, 11, 18, 39, 37, 38, 27, 0, 18,
780 42, 43, 81, 20, 49, 40, 40, 49, 49, 39,
781 89, 4, 5, 6, 93, 36, 14, 54, 55, 12,
782 13, 14, 15, 16, 49, 57, 56, 9, 49, 45,
783 49, 10, 14, 31, 32, 17, 68, 67, 12, 13,
784 9, 15, 16, 122, 26, 14, 49, 84, 17, 86,
785 11, 81, 45, 46, 47, 32, 14, 26, 45, 89,
786 11, 45, 48, 93, 129, 11, 103, 36, 49, 14,
787 107, 19, 151, 32, 153, 73, 74, 75, 76, 77,
788 78, 79, 80, 21, 82, 83, 11, 152, 23, 7,
789 11, 45, 122, 130, 49, 132, 128, 4, 48, 129,
790 27, 133, 4, 5, 6, 12, 13, 14, 15, 16,
791 12, 13, 14, 15, 16, 48, 4, 5, 6, 48,
792 8, 151, 152, 153, 12, 13, 14, 15, 16, 4,
793 5, 6, 48, 48, 45, 8, 10, 12, 13, 14,
794 15, 16, 50, 45, 46, 47, 11, 48, 48, 18,
795 37, 20, 6, 22, 98, 24, 25, -1, 46, 47,
796 29, 30, 126, -1, 33, 34, 35, 36, -1, -1,
797 39, 40, 41, -1, -1, 44, 45, 18, -1, 20,
798 49, 22, -1, 24, 25, -1, -1, -1, 29, 30,
799 -1, -1, 33, 34, 35, 36, -1, -1, 39, -1,
800 41, -1, -1, 44, 45, -1, -1, -1, 49
801 };
802
803 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
804 symbol of state STATE-NUM. */
805 static const yytype_uint8 yystos[] =
806 {
807 0, 18, 20, 22, 24, 25, 29, 30, 33, 34,
808 35, 36, 39, 41, 44, 45, 49, 52, 54, 58,
809 59, 69, 70, 72, 11, 66, 67, 68, 11, 34,
810 58, 3, 7, 49, 63, 69, 67, 67, 67, 69,
811 67, 67, 63, 53, 54, 55, 66, 0, 40, 54,
812 9, 14, 17, 26, 36, 62, 36, 49, 71, 28,
813 31, 37, 38, 42, 43, 49, 73, 45, 10, 69,
814 49, 63, 63, 4, 5, 6, 12, 13, 14, 15,
815 16, 45, 46, 47, 32, 11, 14, 55, 56, 45,
816 59, 11, 45, 45, 48, 11, 49, 14, 67, 67,
817 69, 66, 19, 21, 74, 53, 66, 32, 8, 63,
818 63, 63, 63, 63, 63, 63, 63, 53, 63, 63,
819 67, 67, 11, 53, 23, 64, 65, 53, 7, 57,
820 62, 11, 39, 49, 67, 45, 48, 67, 48, 53,
821 48, 49, 48, 64, 48, 66, 59, 67, 67, 66,
822 60, 45, 27, 10, 8, 11, 50, 53, 59, 53,
823 61, 48, 48
824 };
825
826 #define yyerrok (yyerrstatus = 0)
827 #define yyclearin (yychar = YYEMPTY)
828 #define YYEMPTY (-2)
829 #define YYEOF 0
830
831 #define YYACCEPT goto yyacceptlab
832 #define YYABORT goto yyabortlab
833 #define YYERROR goto yyerrorlab
834
835
836 /* Like YYERROR except do call yyerror. This remains here temporarily
837 to ease the transition to the new meaning of YYERROR, for GCC.
838 Once GCC version 2 has supplanted version 1, this can go. However,
839 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
840 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
841 discussed. */
842
843 #define YYFAIL goto yyerrlab
844 #if defined YYFAIL
845 /* This is here to suppress warnings from the GCC cpp's
846 -Wunused-macros. Normally we don't worry about that warning, but
847 some users do, and we want to make it easy for users to remove
848 YYFAIL uses, which will produce warnings from Bison 2.5. */
849 #endif
850
851 #define YYRECOVERING() (!!yyerrstatus)
852
853 #define YYBACKUP(Token, Value) \
854 do \
855 if (yychar == YYEMPTY) \
856 { \
857 yychar = (Token); \
858 yylval = (Value); \
859 YYPOPSTACK (yylen); \
860 yystate = *yyssp; \
861 goto yybackup; \
862 } \
863 else \
864 { \
865 yyerror (YY_("syntax error: cannot back up")); \
866 YYERROR; \
867 } \
868 while (YYID (0))
869
870
871 #define YYTERROR 1
872 #define YYERRCODE 256
873
874 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
875 If N is 0, then set CURRENT to the empty location which ends
876 the previous symbol: RHS[0] (always defined). */
877
878 #ifndef YYLLOC_DEFAULT
879 # define YYLLOC_DEFAULT(Current, Rhs, N) \
880 do \
881 if (YYID (N)) \
882 { \
883 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
884 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
885 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
886 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
887 } \
888 else \
889 { \
890 (Current).first_line = (Current).last_line = \
891 YYRHSLOC (Rhs, 0).last_line; \
892 (Current).first_column = (Current).last_column = \
893 YYRHSLOC (Rhs, 0).last_column; \
894 } \
895 while (YYID (0))
896 #endif
897
898 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
899
900
901
902 /* This macro is provided for backward compatibility. */
903
904 #ifndef YY_LOCATION_PRINT
905 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
906 #endif
907
908
909 /* YYLEX -- calling `yylex' with the right arguments. */
910
911 #ifdef YYLEX_PARAM
912 # define YYLEX yylex (YYLEX_PARAM)
913 #else
914 # define YYLEX yylex ()
915 #endif
916
917 /* Enable debugging if requested. */
918 #if YYDEBUG
919
920 # ifndef YYFPRINTF
921 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
922 # define YYFPRINTF fprintf
923 # endif
924
925 # define YYDPRINTF(Args) \
926 do { \
927 if (yydebug) \
928 YYFPRINTF Args; \
929 } while (YYID (0))
930
931 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
932 do { \
933 if (yydebug) \
934 { \
935 YYFPRINTF (stderr, "%s ", Title); \
936 yy_symbol_print (stderr, \
937 Type, Value); \
938 YYFPRINTF (stderr, "\n"); \
939 } \
940 } while (YYID (0))
941
942
943 /*--------------------------------.
944 | Print this symbol on YYOUTPUT. |
945 `--------------------------------*/
946
947 /*ARGSUSED*/
948 #if (defined __STDC__ || defined __C99__FUNC__ \
949 || defined __cplusplus || defined _MSC_VER)
950 static void
951 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
952 #else
953 static void
954 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
955 FILE *yyoutput;
956 int yytype;
957 YYSTYPE const * const yyvaluep;
958 #endif
959 {
960 FILE *yyo = yyoutput;
961 YYUSE (yyo);
962 if (!yyvaluep)
963 return;
964 # ifdef YYPRINT
965 if (yytype < YYNTOKENS)
966 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
967 # else
968 YYUSE (yyoutput);
969 # endif
970 switch (yytype)
971 {
972 default:
973 break;
974 }
975 }
976
977
978 /*--------------------------------.
979 | Print this symbol on YYOUTPUT. |
980 `--------------------------------*/
981
982 #if (defined __STDC__ || defined __C99__FUNC__ \
983 || defined __cplusplus || defined _MSC_VER)
984 static void
985 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
986 #else
987 static void
988 yy_symbol_print (yyoutput, yytype, yyvaluep)
989 FILE *yyoutput;
990 int yytype;
991 YYSTYPE const * const yyvaluep;
992 #endif
993 {
994 if (yytype < YYNTOKENS)
995 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
996 else
997 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
998
999 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1000 YYFPRINTF (yyoutput, ")");
1001 }
1002
1003 /*------------------------------------------------------------------.
1004 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1005 | TOP (included). |
1006 `------------------------------------------------------------------*/
1007
1008 #if (defined __STDC__ || defined __C99__FUNC__ \
1009 || defined __cplusplus || defined _MSC_VER)
1010 static void
1011 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1012 #else
1013 static void
1014 yy_stack_print (yybottom, yytop)
1015 yytype_int16 *yybottom;
1016 yytype_int16 *yytop;
1017 #endif
1018 {
1019 YYFPRINTF (stderr, "Stack now");
1020 for (; yybottom <= yytop; yybottom++)
1021 {
1022 int yybot = *yybottom;
1023 YYFPRINTF (stderr, " %d", yybot);
1024 }
1025 YYFPRINTF (stderr, "\n");
1026 }
1027
1028 # define YY_STACK_PRINT(Bottom, Top) \
1029 do { \
1030 if (yydebug) \
1031 yy_stack_print ((Bottom), (Top)); \
1032 } while (YYID (0))
1033
1034
1035 /*------------------------------------------------.
1036 | Report that the YYRULE is going to be reduced. |
1037 `------------------------------------------------*/
1038
1039 #if (defined __STDC__ || defined __C99__FUNC__ \
1040 || defined __cplusplus || defined _MSC_VER)
1041 static void
1042 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1043 #else
1044 static void
1045 yy_reduce_print (yyvsp, yyrule)
1046 YYSTYPE *yyvsp;
1047 int yyrule;
1048 #endif
1049 {
1050 int yynrhs = yyr2[yyrule];
1051 int yyi;
1052 unsigned long int yylno = yyrline[yyrule];
1053 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1054 yyrule - 1, yylno);
1055 /* The symbols being reduced. */
1056 for (yyi = 0; yyi < yynrhs; yyi++)
1057 {
1058 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1059 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1060 &(yyvsp[(yyi + 1) - (yynrhs)])
1061 );
1062 YYFPRINTF (stderr, "\n");
1063 }
1064 }
1065
1066 # define YY_REDUCE_PRINT(Rule) \
1067 do { \
1068 if (yydebug) \
1069 yy_reduce_print (yyvsp, Rule); \
1070 } while (YYID (0))
1071
1072 /* Nonzero means print parse trace. It is left uninitialized so that
1073 multiple parsers can coexist. */
1074 int yydebug;
1075 #else /* !YYDEBUG */
1076 # define YYDPRINTF(Args)
1077 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1078 # define YY_STACK_PRINT(Bottom, Top)
1079 # define YY_REDUCE_PRINT(Rule)
1080 #endif /* !YYDEBUG */
1081
1082
1083 /* YYINITDEPTH -- initial size of the parser's stacks. */
1084 #ifndef YYINITDEPTH
1085 # define YYINITDEPTH 200
1086 #endif
1087
1088 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1089 if the built-in stack extension method is used).
1090
1091 Do not make this value too large; the results are undefined if
1092 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1093 evaluated with infinite-precision integer arithmetic. */
1094
1095 #ifndef YYMAXDEPTH
1096 # define YYMAXDEPTH 10000
1097 #endif
1098
1099
1100 #if YYERROR_VERBOSE
1101
1102 # ifndef yystrlen
1103 # if defined __GLIBC__ && defined _STRING_H
1104 # define yystrlen strlen
1105 # else
1106 /* Return the length of YYSTR. */
1107 #if (defined __STDC__ || defined __C99__FUNC__ \
1108 || defined __cplusplus || defined _MSC_VER)
1109 static YYSIZE_T
1110 yystrlen (const char *yystr)
1111 #else
1112 static YYSIZE_T
1113 yystrlen (yystr)
1114 const char *yystr;
1115 #endif
1116 {
1117 YYSIZE_T yylen;
1118 for (yylen = 0; yystr[yylen]; yylen++)
1119 continue;
1120 return yylen;
1121 }
1122 # endif
1123 # endif
1124
1125 # ifndef yystpcpy
1126 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1127 # define yystpcpy stpcpy
1128 # else
1129 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1130 YYDEST. */
1131 #if (defined __STDC__ || defined __C99__FUNC__ \
1132 || defined __cplusplus || defined _MSC_VER)
1133 static char *
1134 yystpcpy (char *yydest, const char *yysrc)
1135 #else
1136 static char *
1137 yystpcpy (yydest, yysrc)
1138 char *yydest;
1139 const char *yysrc;
1140 #endif
1141 {
1142 char *yyd = yydest;
1143 const char *yys = yysrc;
1144
1145 while ((*yyd++ = *yys++) != '\0')
1146 continue;
1147
1148 return yyd - 1;
1149 }
1150 # endif
1151 # endif
1152
1153 # ifndef yytnamerr
1154 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1155 quotes and backslashes, so that it's suitable for yyerror. The
1156 heuristic is that double-quoting is unnecessary unless the string
1157 contains an apostrophe, a comma, or backslash (other than
1158 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1159 null, do not copy; instead, return the length of what the result
1160 would have been. */
1161 static YYSIZE_T
1162 yytnamerr (char *yyres, const char *yystr)
1163 {
1164 if (*yystr == '"')
1165 {
1166 YYSIZE_T yyn = 0;
1167 char const *yyp = yystr;
1168
1169 for (;;)
1170 switch (*++yyp)
1171 {
1172 case '\'':
1173 case ',':
1174 goto do_not_strip_quotes;
1175
1176 case '\\':
1177 if (*++yyp != '\\')
1178 goto do_not_strip_quotes;
1179 /* Fall through. */
1180 default:
1181 if (yyres)
1182 yyres[yyn] = *yyp;
1183 yyn++;
1184 break;
1185
1186 case '"':
1187 if (yyres)
1188 yyres[yyn] = '\0';
1189 return yyn;
1190 }
1191 do_not_strip_quotes: ;
1192 }
1193
1194 if (! yyres)
1195 return yystrlen (yystr);
1196
1197 return yystpcpy (yyres, yystr) - yyres;
1198 }
1199 # endif
1200
1201 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1202 about the unexpected token YYTOKEN for the state stack whose top is
1203 YYSSP.
1204
1205 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1206 not large enough to hold the message. In that case, also set
1207 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1208 required number of bytes is too large to store. */
1209 static int
1210 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1211 yytype_int16 *yyssp, int yytoken)
1212 {
1213 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
1214 YYSIZE_T yysize = yysize0;
1215 YYSIZE_T yysize1;
1216 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1217 /* Internationalized format string. */
1218 const char *yyformat = YY_NULL;
1219 /* Arguments of yyformat. */
1220 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1221 /* Number of reported tokens (one for the "unexpected", one per
1222 "expected"). */
1223 int yycount = 0;
1224
1225 /* There are many possibilities here to consider:
1226 - Assume YYFAIL is not used. It's too flawed to consider. See
1227 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1228 for details. YYERROR is fine as it does not invoke this
1229 function.
1230 - If this state is a consistent state with a default action, then
1231 the only way this function was invoked is if the default action
1232 is an error action. In that case, don't check for expected
1233 tokens because there are none.
1234 - The only way there can be no lookahead present (in yychar) is if
1235 this state is a consistent state with a default action. Thus,
1236 detecting the absence of a lookahead is sufficient to determine
1237 that there is no unexpected or expected token to report. In that
1238 case, just report a simple "syntax error".
1239 - Don't assume there isn't a lookahead just because this state is a
1240 consistent state with a default action. There might have been a
1241 previous inconsistent state, consistent state with a non-default
1242 action, or user semantic action that manipulated yychar.
1243 - Of course, the expected token list depends on states to have
1244 correct lookahead information, and it depends on the parser not
1245 to perform extra reductions after fetching a lookahead from the
1246 scanner and before detecting a syntax error. Thus, state merging
1247 (from LALR or IELR) and default reductions corrupt the expected
1248 token list. However, the list is correct for canonical LR with
1249 one exception: it will still contain any token that will not be
1250 accepted due to an error action in a later state.
1251 */
1252 if (yytoken != YYEMPTY)
1253 {
1254 int yyn = yypact[*yyssp];
1255 yyarg[yycount++] = yytname[yytoken];
1256 if (!yypact_value_is_default (yyn))
1257 {
1258 /* Start YYX at -YYN if negative to avoid negative indexes in
1259 YYCHECK. In other words, skip the first -YYN actions for
1260 this state because they are default actions. */
1261 int yyxbegin = yyn < 0 ? -yyn : 0;
1262 /* Stay within bounds of both yycheck and yytname. */
1263 int yychecklim = YYLAST - yyn + 1;
1264 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1265 int yyx;
1266
1267 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1268 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1269 && !yytable_value_is_error (yytable[yyx + yyn]))
1270 {
1271 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1272 {
1273 yycount = 1;
1274 yysize = yysize0;
1275 break;
1276 }
1277 yyarg[yycount++] = yytname[yyx];
1278 yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
1279 if (! (yysize <= yysize1
1280 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1281 return 2;
1282 yysize = yysize1;
1283 }
1284 }
1285 }
1286
1287 switch (yycount)
1288 {
1289 # define YYCASE_(N, S) \
1290 case N: \
1291 yyformat = S; \
1292 break
1293 YYCASE_(0, YY_("syntax error"));
1294 YYCASE_(1, YY_("syntax error, unexpected %s"));
1295 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1296 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1297 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1298 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1299 # undef YYCASE_
1300 }
1301
1302 yysize1 = yysize + yystrlen (yyformat);
1303 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1304 return 2;
1305 yysize = yysize1;
1306
1307 if (*yymsg_alloc < yysize)
1308 {
1309 *yymsg_alloc = 2 * yysize;
1310 if (! (yysize <= *yymsg_alloc
1311 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1312 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1313 return 1;
1314 }
1315
1316 /* Avoid sprintf, as that infringes on the user's name space.
1317 Don't have undefined behavior even if the translation
1318 produced a string with the wrong number of "%s"s. */
1319 {
1320 char *yyp = *yymsg;
1321 int yyi = 0;
1322 while ((*yyp = *yyformat) != '\0')
1323 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1324 {
1325 yyp += yytnamerr (yyp, yyarg[yyi++]);
1326 yyformat += 2;
1327 }
1328 else
1329 {
1330 yyp++;
1331 yyformat++;
1332 }
1333 }
1334 return 0;
1335 }
1336 #endif /* YYERROR_VERBOSE */
1337
1338 /*-----------------------------------------------.
1339 | Release the memory associated to this symbol. |
1340 `-----------------------------------------------*/
1341
1342 /*ARGSUSED*/
1343 #if (defined __STDC__ || defined __C99__FUNC__ \
1344 || defined __cplusplus || defined _MSC_VER)
1345 static void
1346 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1347 #else
1348 static void
1349 yydestruct (yymsg, yytype, yyvaluep)
1350 const char *yymsg;
1351 int yytype;
1352 YYSTYPE *yyvaluep;
1353 #endif
1354 {
1355 YYUSE (yyvaluep);
1356
1357 if (!yymsg)
1358 yymsg = "Deleting";
1359 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1360
1361 switch (yytype)
1362 {
1363
1364 default:
1365 break;
1366 }
1367 }
1368
1369
1370
1371
1372 /* The lookahead symbol. */
1373 int yychar;
1374
1375
1376 #ifndef YYLVAL_INITIALIZE
1377 # define YYLVAL_INITIALIZE()
1378 #endif
1379 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1380 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1381 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1382 #endif
1383
1384 /* The semantic value of the lookahead symbol. */
1385 YYSTYPE yylval;
1386
1387 /* Number of syntax errors so far. */
1388 int yynerrs;
1389
1390
1391 /*----------.
1392 | yyparse. |
1393 `----------*/
1394
1395 #ifdef YYPARSE_PARAM
1396 #if (defined __STDC__ || defined __C99__FUNC__ \
1397 || defined __cplusplus || defined _MSC_VER)
1398 int
1399 yyparse (void *YYPARSE_PARAM)
1400 #else
1401 int
1402 yyparse (YYPARSE_PARAM)
1403 void *YYPARSE_PARAM;
1404 #endif
1405 #else /* ! YYPARSE_PARAM */
1406 #if (defined __STDC__ || defined __C99__FUNC__ \
1407 || defined __cplusplus || defined _MSC_VER)
1408 int
1409 yyparse (void)
1410 #else
1411 int
1412 yyparse ()
1413
1414 #endif
1415 #endif
1416 {
1417 int yystate;
1418 /* Number of tokens to shift before error messages enabled. */
1419 int yyerrstatus;
1420
1421 /* The stacks and their tools:
1422 `yyss': related to states.
1423 `yyvs': related to semantic values.
1424
1425 Refer to the stacks through separate pointers, to allow yyoverflow
1426 to reallocate them elsewhere. */
1427
1428 /* The state stack. */
1429 yytype_int16 yyssa[YYINITDEPTH];
1430 yytype_int16 *yyss;
1431 yytype_int16 *yyssp;
1432
1433 /* The semantic value stack. */
1434 YYSTYPE yyvsa[YYINITDEPTH];
1435 YYSTYPE *yyvs;
1436 YYSTYPE *yyvsp;
1437
1438 YYSIZE_T yystacksize;
1439
1440 int yyn;
1441 int yyresult;
1442 /* Lookahead token as an internal (translated) token number. */
1443 int yytoken = 0;
1444 /* The variables used to return semantic value and location from the
1445 action routines. */
1446 YYSTYPE yyval;
1447
1448 #if YYERROR_VERBOSE
1449 /* Buffer for error messages, and its allocated size. */
1450 char yymsgbuf[128];
1451 char *yymsg = yymsgbuf;
1452 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1453 #endif
1454
1455 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1456
1457 /* The number of symbols on the RHS of the reduced rule.
1458 Keep to zero when no symbol should be popped. */
1459 int yylen = 0;
1460
1461 yyss = yyssa;
1462 yyvs = yyvsa;
1463 yystacksize = YYINITDEPTH;
1464
1465 YYDPRINTF ((stderr, "Starting parse\n"));
1466
1467 yystate = 0;
1468 yyerrstatus = 0;
1469 yynerrs = 0;
1470 yychar = YYEMPTY; /* Cause a token to be read. */
1471
1472 /* Initialize stack pointers.
1473 Waste one element of value and location stack
1474 so that they stay on the same level as the state stack.
1475 The wasted elements are never initialized. */
1476 yyssp = yyss;
1477 yyvsp = yyvs;
1478
1479 YYLVAL_INITIALIZE ();
1480 goto yysetstate;
1481
1482 /*------------------------------------------------------------.
1483 | yynewstate -- Push a new state, which is found in yystate. |
1484 `------------------------------------------------------------*/
1485 yynewstate:
1486 /* In all cases, when you get here, the value and location stacks
1487 have just been pushed. So pushing a state here evens the stacks. */
1488 yyssp++;
1489
1490 yysetstate:
1491 *yyssp = yystate;
1492
1493 if (yyss + yystacksize - 1 <= yyssp)
1494 {
1495 /* Get the current used size of the three stacks, in elements. */
1496 YYSIZE_T yysize = yyssp - yyss + 1;
1497
1498 #ifdef yyoverflow
1499 {
1500 /* Give user a chance to reallocate the stack. Use copies of
1501 these so that the &'s don't force the real ones into
1502 memory. */
1503 YYSTYPE *yyvs1 = yyvs;
1504 yytype_int16 *yyss1 = yyss;
1505
1506 /* Each stack pointer address is followed by the size of the
1507 data in use in that stack, in bytes. This used to be a
1508 conditional around just the two extra args, but that might
1509 be undefined if yyoverflow is a macro. */
1510 yyoverflow (YY_("memory exhausted"),
1511 &yyss1, yysize * sizeof (*yyssp),
1512 &yyvs1, yysize * sizeof (*yyvsp),
1513 &yystacksize);
1514
1515 yyss = yyss1;
1516 yyvs = yyvs1;
1517 }
1518 #else /* no yyoverflow */
1519 # ifndef YYSTACK_RELOCATE
1520 goto yyexhaustedlab;
1521 # else
1522 /* Extend the stack our own way. */
1523 if (YYMAXDEPTH <= yystacksize)
1524 goto yyexhaustedlab;
1525 yystacksize *= 2;
1526 if (YYMAXDEPTH < yystacksize)
1527 yystacksize = YYMAXDEPTH;
1528
1529 {
1530 yytype_int16 *yyss1 = yyss;
1531 union yyalloc *yyptr =
1532 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1533 if (! yyptr)
1534 goto yyexhaustedlab;
1535 YYSTACK_RELOCATE (yyss_alloc, yyss);
1536 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1537 # undef YYSTACK_RELOCATE
1538 if (yyss1 != yyssa)
1539 YYSTACK_FREE (yyss1);
1540 }
1541 # endif
1542 #endif /* no yyoverflow */
1543
1544 yyssp = yyss + yysize - 1;
1545 yyvsp = yyvs + yysize - 1;
1546
1547 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1548 (unsigned long int) yystacksize));
1549
1550 if (yyss + yystacksize - 1 <= yyssp)
1551 YYABORT;
1552 }
1553
1554 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1555
1556 if (yystate == YYFINAL)
1557 YYACCEPT;
1558
1559 goto yybackup;
1560
1561 /*-----------.
1562 | yybackup. |
1563 `-----------*/
1564 yybackup:
1565
1566 /* Do appropriate processing given the current state. Read a
1567 lookahead token if we need one and don't already have one. */
1568
1569 /* First try to decide what to do without reference to lookahead token. */
1570 yyn = yypact[yystate];
1571 if (yypact_value_is_default (yyn))
1572 goto yydefault;
1573
1574 /* Not known => get a lookahead token if don't already have one. */
1575
1576 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1577 if (yychar == YYEMPTY)
1578 {
1579 YYDPRINTF ((stderr, "Reading a token: "));
1580 yychar = YYLEX;
1581 }
1582
1583 if (yychar <= YYEOF)
1584 {
1585 yychar = yytoken = YYEOF;
1586 YYDPRINTF ((stderr, "Now at end of input.\n"));
1587 }
1588 else
1589 {
1590 yytoken = YYTRANSLATE (yychar);
1591 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1592 }
1593
1594 /* If the proper action on seeing token YYTOKEN is to reduce or to
1595 detect an error, take that action. */
1596 yyn += yytoken;
1597 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1598 goto yydefault;
1599 yyn = yytable[yyn];
1600 if (yyn <= 0)
1601 {
1602 if (yytable_value_is_error (yyn))
1603 goto yyerrlab;
1604 yyn = -yyn;
1605 goto yyreduce;
1606 }
1607
1608 /* Count tokens shifted since error; after three, turn off error
1609 status. */
1610 if (yyerrstatus)
1611 yyerrstatus--;
1612
1613 /* Shift the lookahead token. */
1614 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1615
1616 /* Discard the shifted token. */
1617 yychar = YYEMPTY;
1618
1619 yystate = yyn;
1620 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1621 *++yyvsp = yylval;
1622 YY_IGNORE_MAYBE_UNINITIALIZED_END
1623
1624 goto yynewstate;
1625
1626
1627 /*-----------------------------------------------------------.
1628 | yydefault -- do the default action for the current state. |
1629 `-----------------------------------------------------------*/
1630 yydefault:
1631 yyn = yydefact[yystate];
1632 if (yyn == 0)
1633 goto yyerrlab;
1634 goto yyreduce;
1635
1636
1637 /*-----------------------------.
1638 | yyreduce -- Do a reduction. |
1639 `-----------------------------*/
1640 yyreduce:
1641 /* yyn is the number of a rule to reduce with. */
1642 yylen = yyr2[yyn];
1643
1644 /* If YYLEN is nonzero, implement the default value of the action:
1645 `$$ = $1'.
1646
1647 Otherwise, the following line sets YYVAL to garbage.
1648 This behavior is undocumented and Bison
1649 users should not rely upon it. Assigning to YYVAL
1650 unconditionally makes the parser a bit smaller, and it avoids a
1651 GCC warning that YYVAL may be used uninitialized. */
1652 yyval = yyvsp[1-yylen];
1653
1654
1655 YY_REDUCE_PRINT (yyn);
1656 switch (yyn)
1657 {
1658 case 3:
1659 /* Line 1813 of yacc.c */
1660 #line 147 "jamgram.y"
1661 { parse_save( (yyvsp[(1) - (1)]).parse ); }
1662 break;
1663
1664 case 4:
1665 /* Line 1813 of yacc.c */
1666 #line 158 "jamgram.y"
1667 { (yyval).parse = (yyvsp[(1) - (1)]).parse; }
1668 break;
1669
1670 case 5:
1671 /* Line 1813 of yacc.c */
1672 #line 160 "jamgram.y"
1673 { (yyval).parse = (yyvsp[(1) - (1)]).parse; }
1674 break;
1675
1676 case 6:
1677 /* Line 1813 of yacc.c */
1678 #line 164 "jamgram.y"
1679 { (yyval).parse = (yyvsp[(1) - (1)]).parse; }
1680 break;
1681
1682 case 7:
1683 /* Line 1813 of yacc.c */
1684 #line 166 "jamgram.y"
1685 { (yyval).parse = prules( (yyvsp[(1) - (2)]).parse, (yyvsp[(2) - (2)]).parse ); }
1686 break;
1687
1688 case 8:
1689 /* Line 1813 of yacc.c */
1690 #line 168 "jamgram.y"
1691 { (yyval).parse = plocal( (yyvsp[(2) - (5)]).parse, (yyvsp[(3) - (5)]).parse, (yyvsp[(5) - (5)]).parse ); }
1692 break;
1693
1694 case 9:
1695 /* Line 1813 of yacc.c */
1696 #line 172 "jamgram.y"
1697 { (yyval).parse = pnull(); }
1698 break;
1699
1700 case 10:
1701 /* Line 1813 of yacc.c */
1702 #line 176 "jamgram.y"
1703 { (yyval).parse = (yyvsp[(2) - (2)]).parse; (yyval).number = ASSIGN_SET; }
1704 break;
1705
1706 case 11:
1707 /* Line 1813 of yacc.c */
1708 #line 178 "jamgram.y"
1709 { (yyval).parse = (yyvsp[(1) - (1)]).parse; (yyval).number = ASSIGN_APPEND; }
1710 break;
1711
1712 case 12:
1713 /* Line 1813 of yacc.c */
1714 #line 182 "jamgram.y"
1715 { (yyval).parse = (yyvsp[(2) - (3)]).parse; }
1716 break;
1717
1718 case 13:
1719 /* Line 1813 of yacc.c */
1720 #line 184 "jamgram.y"
1721 { (yyval).parse = P0; }
1722 break;
1723
1724 case 14:
1725 /* Line 1813 of yacc.c */
1726 #line 188 "jamgram.y"
1727 { (yyval).number = 1; }
1728 break;
1729
1730 case 15:
1731 /* Line 1813 of yacc.c */
1732 #line 190 "jamgram.y"
1733 { (yyval).number = 0; }
1734 break;
1735
1736 case 16:
1737 /* Line 1813 of yacc.c */
1738 #line 194 "jamgram.y"
1739 { (yyval).parse = (yyvsp[(2) - (3)]).parse; }
1740 break;
1741
1742 case 17:
1743 /* Line 1813 of yacc.c */
1744 #line 196 "jamgram.y"
1745 { (yyval).parse = pincl( (yyvsp[(2) - (3)]).parse ); }
1746 break;
1747
1748 case 18:
1749 /* Line 1813 of yacc.c */
1750 #line 198 "jamgram.y"
1751 { (yyval).parse = prule( (yyvsp[(1) - (3)]).string, (yyvsp[(2) - (3)]).parse ); }
1752 break;
1753
1754 case 19:
1755 /* Line 1813 of yacc.c */
1756 #line 200 "jamgram.y"
1757 { (yyval).parse = pset( (yyvsp[(1) - (4)]).parse, (yyvsp[(3) - (4)]).parse, (yyvsp[(2) - (4)]).number ); }
1758 break;
1759
1760 case 20:
1761 /* Line 1813 of yacc.c */
1762 #line 202 "jamgram.y"
1763 { (yyval).parse = pset1( (yyvsp[(1) - (6)]).parse, (yyvsp[(3) - (6)]).parse, (yyvsp[(5) - (6)]).parse, (yyvsp[(4) - (6)]).number ); }
1764 break;
1765
1766 case 21:
1767 /* Line 1813 of yacc.c */
1768 #line 204 "jamgram.y"
1769 { (yyval).parse = preturn( (yyvsp[(2) - (3)]).parse ); }
1770 break;
1771
1772 case 22:
1773 /* Line 1813 of yacc.c */
1774 #line 206 "jamgram.y"
1775 { (yyval).parse = pbreak(); }
1776 break;
1777
1778 case 23:
1779 /* Line 1813 of yacc.c */
1780 #line 208 "jamgram.y"
1781 { (yyval).parse = pcontinue(); }
1782 break;
1783
1784 case 24:
1785 /* Line 1813 of yacc.c */
1786 #line 210 "jamgram.y"
1787 { (yyval).parse = pfor( (yyvsp[(3) - (8)]).string, (yyvsp[(5) - (8)]).parse, (yyvsp[(7) - (8)]).parse, (yyvsp[(2) - (8)]).number ); }
1788 break;
1789
1790 case 25:
1791 /* Line 1813 of yacc.c */
1792 #line 212 "jamgram.y"
1793 { (yyval).parse = pswitch( (yyvsp[(2) - (5)]).parse, (yyvsp[(4) - (5)]).parse ); }
1794 break;
1795
1796 case 26:
1797 /* Line 1813 of yacc.c */
1798 #line 214 "jamgram.y"
1799 { (yyval).parse = pif( (yyvsp[(2) - (5)]).parse, (yyvsp[(4) - (5)]).parse, pnull() ); }
1800 break;
1801
1802 case 27:
1803 /* Line 1813 of yacc.c */
1804 #line 216 "jamgram.y"
1805 { (yyval).parse = pmodule( (yyvsp[(2) - (5)]).parse, (yyvsp[(4) - (5)]).parse ); }
1806 break;
1807
1808 case 28:
1809 /* Line 1813 of yacc.c */
1810 #line 218 "jamgram.y"
1811 { (yyval).parse = pclass( (yyvsp[(2) - (5)]).parse, (yyvsp[(4) - (5)]).parse ); }
1812 break;
1813
1814 case 29:
1815 /* Line 1813 of yacc.c */
1816 #line 220 "jamgram.y"
1817 { (yyval).parse = pwhile( (yyvsp[(2) - (5)]).parse, (yyvsp[(4) - (5)]).parse ); }
1818 break;
1819
1820 case 30:
1821 /* Line 1813 of yacc.c */
1822 #line 222 "jamgram.y"
1823 { (yyval).parse = pif( (yyvsp[(2) - (7)]).parse, (yyvsp[(4) - (7)]).parse, (yyvsp[(7) - (7)]).parse ); }
1824 break;
1825
1826 case 31:
1827 /* Line 1813 of yacc.c */
1828 #line 224 "jamgram.y"
1829 { (yyval).parse = psetc( (yyvsp[(3) - (5)]).string, (yyvsp[(5) - (5)]).parse, (yyvsp[(4) - (5)]).parse, (yyvsp[(1) - (5)]).number ); }
1830 break;
1831
1832 case 32:
1833 /* Line 1813 of yacc.c */
1834 #line 226 "jamgram.y"
1835 { (yyval).parse = pon( (yyvsp[(2) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1836 break;
1837
1838 case 33:
1839 /* Line 1813 of yacc.c */
1840 #line 228 "jamgram.y"
1841 { yymode( SCAN_STRING ); }
1842 break;
1843
1844 case 34:
1845 /* Line 1813 of yacc.c */
1846 #line 230 "jamgram.y"
1847 { yymode( SCAN_NORMAL ); }
1848 break;
1849
1850 case 35:
1851 /* Line 1813 of yacc.c */
1852 #line 232 "jamgram.y"
1853 { (yyval).parse = psete( (yyvsp[(3) - (9)]).string,(yyvsp[(4) - (9)]).parse,(yyvsp[(7) - (9)]).string,(yyvsp[(2) - (9)]).number ); }
1854 break;
1855
1856 case 36:
1857 /* Line 1813 of yacc.c */
1858 #line 240 "jamgram.y"
1859 { (yyval).number = ASSIGN_SET; }
1860 break;
1861
1862 case 37:
1863 /* Line 1813 of yacc.c */
1864 #line 242 "jamgram.y"
1865 { (yyval).number = ASSIGN_APPEND; }
1866 break;
1867
1868 case 38:
1869 /* Line 1813 of yacc.c */
1870 #line 244 "jamgram.y"
1871 { (yyval).number = ASSIGN_DEFAULT; }
1872 break;
1873
1874 case 39:
1875 /* Line 1813 of yacc.c */
1876 #line 246 "jamgram.y"
1877 { (yyval).number = ASSIGN_DEFAULT; }
1878 break;
1879
1880 case 40:
1881 /* Line 1813 of yacc.c */
1882 #line 253 "jamgram.y"
1883 { (yyval).parse = peval( EXPR_EXISTS, (yyvsp[(1) - (1)]).parse, pnull() ); }
1884 break;
1885
1886 case 41:
1887 /* Line 1813 of yacc.c */
1888 #line 255 "jamgram.y"
1889 { (yyval).parse = peval( EXPR_EQUALS, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1890 break;
1891
1892 case 42:
1893 /* Line 1813 of yacc.c */
1894 #line 257 "jamgram.y"
1895 { (yyval).parse = peval( EXPR_NOTEQ, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1896 break;
1897
1898 case 43:
1899 /* Line 1813 of yacc.c */
1900 #line 259 "jamgram.y"
1901 { (yyval).parse = peval( EXPR_LESS, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1902 break;
1903
1904 case 44:
1905 /* Line 1813 of yacc.c */
1906 #line 261 "jamgram.y"
1907 { (yyval).parse = peval( EXPR_LESSEQ, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1908 break;
1909
1910 case 45:
1911 /* Line 1813 of yacc.c */
1912 #line 263 "jamgram.y"
1913 { (yyval).parse = peval( EXPR_MORE, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1914 break;
1915
1916 case 46:
1917 /* Line 1813 of yacc.c */
1918 #line 265 "jamgram.y"
1919 { (yyval).parse = peval( EXPR_MOREEQ, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1920 break;
1921
1922 case 47:
1923 /* Line 1813 of yacc.c */
1924 #line 267 "jamgram.y"
1925 { (yyval).parse = peval( EXPR_AND, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1926 break;
1927
1928 case 48:
1929 /* Line 1813 of yacc.c */
1930 #line 269 "jamgram.y"
1931 { (yyval).parse = peval( EXPR_AND, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1932 break;
1933
1934 case 49:
1935 /* Line 1813 of yacc.c */
1936 #line 271 "jamgram.y"
1937 { (yyval).parse = peval( EXPR_OR, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1938 break;
1939
1940 case 50:
1941 /* Line 1813 of yacc.c */
1942 #line 273 "jamgram.y"
1943 { (yyval).parse = peval( EXPR_OR, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1944 break;
1945
1946 case 51:
1947 /* Line 1813 of yacc.c */
1948 #line 275 "jamgram.y"
1949 { (yyval).parse = peval( EXPR_IN, (yyvsp[(1) - (3)]).parse, (yyvsp[(3) - (3)]).parse ); }
1950 break;
1951
1952 case 52:
1953 /* Line 1813 of yacc.c */
1954 #line 277 "jamgram.y"
1955 { (yyval).parse = peval( EXPR_NOT, (yyvsp[(2) - (2)]).parse, pnull() ); }
1956 break;
1957
1958 case 53:
1959 /* Line 1813 of yacc.c */
1960 #line 279 "jamgram.y"
1961 { (yyval).parse = (yyvsp[(2) - (3)]).parse; }
1962 break;
1963
1964 case 54:
1965 /* Line 1813 of yacc.c */
1966 #line 290 "jamgram.y"
1967 { (yyval).parse = P0; }
1968 break;
1969
1970 case 55:
1971 /* Line 1813 of yacc.c */
1972 #line 292 "jamgram.y"
1973 { (yyval).parse = pnode( (yyvsp[(1) - (2)]).parse, (yyvsp[(2) - (2)]).parse ); }
1974 break;
1975
1976 case 56:
1977 /* Line 1813 of yacc.c */
1978 #line 296 "jamgram.y"
1979 { (yyval).parse = psnode( (yyvsp[(2) - (4)]).string, (yyvsp[(4) - (4)]).parse ); }
1980 break;
1981
1982 case 57:
1983 /* Line 1813 of yacc.c */
1984 #line 305 "jamgram.y"
1985 { (yyval).parse = pnode( P0, (yyvsp[(1) - (1)]).parse ); }
1986 break;
1987
1988 case 58:
1989 /* Line 1813 of yacc.c */
1990 #line 307 "jamgram.y"
1991 { (yyval).parse = pnode( (yyvsp[(3) - (3)]).parse, (yyvsp[(1) - (3)]).parse ); }
1992 break;
1993
1994 case 59:
1995 /* Line 1813 of yacc.c */
1996 #line 317 "jamgram.y"
1997 { (yyval).parse = (yyvsp[(1) - (1)]).parse; yymode( SCAN_NORMAL ); }
1998 break;
1999
2000 case 60:
2001 /* Line 1813 of yacc.c */
2002 #line 321 "jamgram.y"
2003 { (yyval).parse = pnull(); yymode( SCAN_PUNCT ); }
2004 break;
2005
2006 case 61:
2007 /* Line 1813 of yacc.c */
2008 #line 323 "jamgram.y"
2009 { (yyval).parse = pappend( (yyvsp[(1) - (2)]).parse, (yyvsp[(2) - (2)]).parse ); }
2010 break;
2011
2012 case 62:
2013 /* Line 1813 of yacc.c */
2014 #line 327 "jamgram.y"
2015 { (yyval).parse = plist( (yyvsp[(1) - (1)]).string ); }
2016 break;
2017
2018 case 63:
2019 /* Line 1813 of yacc.c */
2020 #line 328 "jamgram.y"
2021 { yymode( SCAN_NORMAL ); }
2022 break;
2023
2024 case 64:
2025 /* Line 1813 of yacc.c */
2026 #line 329 "jamgram.y"
2027 { (yyval).parse = (yyvsp[(3) - (4)]).parse; }
2028 break;
2029
2030 case 65:
2031 /* Line 1813 of yacc.c */
2032 #line 338 "jamgram.y"
2033 { (yyval).parse = prule( (yyvsp[(1) - (2)]).string, (yyvsp[(2) - (2)]).parse ); }
2034 break;
2035
2036 case 66:
2037 /* Line 1813 of yacc.c */
2038 #line 340 "jamgram.y"
2039 { (yyval).parse = pon( (yyvsp[(2) - (4)]).parse, prule( (yyvsp[(3) - (4)]).string, (yyvsp[(4) - (4)]).parse ) ); }
2040 break;
2041
2042 case 67:
2043 /* Line 1813 of yacc.c */
2044 #line 342 "jamgram.y"
2045 { (yyval).parse = pon( (yyvsp[(2) - (4)]).parse, (yyvsp[(4) - (4)]).parse ); }
2046 break;
2047
2048 case 68:
2049 /* Line 1813 of yacc.c */
2050 #line 352 "jamgram.y"
2051 { (yyval).number = 0; }
2052 break;
2053
2054 case 69:
2055 /* Line 1813 of yacc.c */
2056 #line 354 "jamgram.y"
2057 { (yyval).number = (yyvsp[(1) - (2)]).number | (yyvsp[(2) - (2)]).number; }
2058 break;
2059
2060 case 70:
2061 /* Line 1813 of yacc.c */
2062 #line 358 "jamgram.y"
2063 { (yyval).number = EXEC_UPDATED; }
2064 break;
2065
2066 case 71:
2067 /* Line 1813 of yacc.c */
2068 #line 360 "jamgram.y"
2069 { (yyval).number = EXEC_TOGETHER; }
2070 break;
2071
2072 case 72:
2073 /* Line 1813 of yacc.c */
2074 #line 362 "jamgram.y"
2075 { (yyval).number = EXEC_IGNORE; }
2076 break;
2077
2078 case 73:
2079 /* Line 1813 of yacc.c */
2080 #line 364 "jamgram.y"
2081 { (yyval).number = EXEC_QUIETLY; }
2082 break;
2083
2084 case 74:
2085 /* Line 1813 of yacc.c */
2086 #line 366 "jamgram.y"
2087 { (yyval).number = EXEC_PIECEMEAL; }
2088 break;
2089
2090 case 75:
2091 /* Line 1813 of yacc.c */
2092 #line 368 "jamgram.y"
2093 { (yyval).number = EXEC_EXISTING; }
2094 break;
2095
2096 case 76:
2097 /* Line 1813 of yacc.c */
2098 #line 377 "jamgram.y"
2099 { (yyval).parse = pnull(); }
2100 break;
2101
2102 case 77:
2103 /* Line 1813 of yacc.c */
2104 #line 379 "jamgram.y"
2105 { (yyval).parse = (yyvsp[(2) - (2)]).parse; }
2106 break;
2107
2108
2109 /* Line 1813 of yacc.c */
2110 #line 2111 "y.tab.c"
2111 default: break;
2112 }
2113 /* User semantic actions sometimes alter yychar, and that requires
2114 that yytoken be updated with the new translation. We take the
2115 approach of translating immediately before every use of yytoken.
2116 One alternative is translating here after every semantic action,
2117 but that translation would be missed if the semantic action invokes
2118 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2119 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
2120 incorrect destructor might then be invoked immediately. In the
2121 case of YYERROR or YYBACKUP, subsequent parser actions might lead
2122 to an incorrect destructor call or verbose syntax error message
2123 before the lookahead is translated. */
2124 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2125
2126 YYPOPSTACK (yylen);
2127 yylen = 0;
2128 YY_STACK_PRINT (yyss, yyssp);
2129
2130 *++yyvsp = yyval;
2131
2132 /* Now `shift' the result of the reduction. Determine what state
2133 that goes to, based on the state we popped back to and the rule
2134 number reduced by. */
2135
2136 yyn = yyr1[yyn];
2137
2138 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2139 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2140 yystate = yytable[yystate];
2141 else
2142 yystate = yydefgoto[yyn - YYNTOKENS];
2143
2144 goto yynewstate;
2145
2146
2147 /*------------------------------------.
2148 | yyerrlab -- here on detecting error |
2149 `------------------------------------*/
2150 yyerrlab:
2151 /* Make sure we have latest lookahead translation. See comments at
2152 user semantic actions for why this is necessary. */
2153 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
2154
2155 /* If not already recovering from an error, report this error. */
2156 if (!yyerrstatus)
2157 {
2158 ++yynerrs;
2159 #if ! YYERROR_VERBOSE
2160 yyerror (YY_("syntax error"));
2161 #else
2162 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2163 yyssp, yytoken)
2164 {
2165 char const *yymsgp = YY_("syntax error");
2166 int yysyntax_error_status;
2167 yysyntax_error_status = YYSYNTAX_ERROR;
2168 if (yysyntax_error_status == 0)
2169 yymsgp = yymsg;
2170 else if (yysyntax_error_status == 1)
2171 {
2172 if (yymsg != yymsgbuf)
2173 YYSTACK_FREE (yymsg);
2174 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
2175 if (!yymsg)
2176 {
2177 yymsg = yymsgbuf;
2178 yymsg_alloc = sizeof yymsgbuf;
2179 yysyntax_error_status = 2;
2180 }
2181 else
2182 {
2183 yysyntax_error_status = YYSYNTAX_ERROR;
2184 yymsgp = yymsg;
2185 }
2186 }
2187 yyerror (yymsgp);
2188 if (yysyntax_error_status == 2)
2189 goto yyexhaustedlab;
2190 }
2191 # undef YYSYNTAX_ERROR
2192 #endif
2193 }
2194
2195
2196
2197 if (yyerrstatus == 3)
2198 {
2199 /* If just tried and failed to reuse lookahead token after an
2200 error, discard it. */
2201
2202 if (yychar <= YYEOF)
2203 {
2204 /* Return failure if at end of input. */
2205 if (yychar == YYEOF)
2206 YYABORT;
2207 }
2208 else
2209 {
2210 yydestruct ("Error: discarding",
2211 yytoken, &yylval);
2212 yychar = YYEMPTY;
2213 }
2214 }
2215
2216 /* Else will try to reuse lookahead token after shifting the error
2217 token. */
2218 goto yyerrlab1;
2219
2220
2221 /*---------------------------------------------------.
2222 | yyerrorlab -- error raised explicitly by YYERROR. |
2223 `---------------------------------------------------*/
2224 yyerrorlab:
2225
2226 /* Pacify compilers like GCC when the user code never invokes
2227 YYERROR and the label yyerrorlab therefore never appears in user
2228 code. */
2229 if (/*CONSTCOND*/ 0)
2230 goto yyerrorlab;
2231
2232 /* Do not reclaim the symbols of the rule which action triggered
2233 this YYERROR. */
2234 YYPOPSTACK (yylen);
2235 yylen = 0;
2236 YY_STACK_PRINT (yyss, yyssp);
2237 yystate = *yyssp;
2238 goto yyerrlab1;
2239
2240
2241 /*-------------------------------------------------------------.
2242 | yyerrlab1 -- common code for both syntax error and YYERROR. |
2243 `-------------------------------------------------------------*/
2244 yyerrlab1:
2245 yyerrstatus = 3; /* Each real token shifted decrements this. */
2246
2247 for (;;)
2248 {
2249 yyn = yypact[yystate];
2250 if (!yypact_value_is_default (yyn))
2251 {
2252 yyn += YYTERROR;
2253 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2254 {
2255 yyn = yytable[yyn];
2256 if (0 < yyn)
2257 break;
2258 }
2259 }
2260
2261 /* Pop the current state because it cannot handle the error token. */
2262 if (yyssp == yyss)
2263 YYABORT;
2264
2265
2266 yydestruct ("Error: popping",
2267 yystos[yystate], yyvsp);
2268 YYPOPSTACK (1);
2269 yystate = *yyssp;
2270 YY_STACK_PRINT (yyss, yyssp);
2271 }
2272
2273 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2274 *++yyvsp = yylval;
2275 YY_IGNORE_MAYBE_UNINITIALIZED_END
2276
2277
2278 /* Shift the error token. */
2279 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2280
2281 yystate = yyn;
2282 goto yynewstate;
2283
2284
2285 /*-------------------------------------.
2286 | yyacceptlab -- YYACCEPT comes here. |
2287 `-------------------------------------*/
2288 yyacceptlab:
2289 yyresult = 0;
2290 goto yyreturn;
2291
2292 /*-----------------------------------.
2293 | yyabortlab -- YYABORT comes here. |
2294 `-----------------------------------*/
2295 yyabortlab:
2296 yyresult = 1;
2297 goto yyreturn;
2298
2299 #if !defined yyoverflow || YYERROR_VERBOSE
2300 /*-------------------------------------------------.
2301 | yyexhaustedlab -- memory exhaustion comes here. |
2302 `-------------------------------------------------*/
2303 yyexhaustedlab:
2304 yyerror (YY_("memory exhausted"));
2305 yyresult = 2;
2306 /* Fall through. */
2307 #endif
2308
2309 yyreturn:
2310 if (yychar != YYEMPTY)
2311 {
2312 /* Make sure we have latest lookahead translation. See comments at
2313 user semantic actions for why this is necessary. */
2314 yytoken = YYTRANSLATE (yychar);
2315 yydestruct ("Cleanup: discarding lookahead",
2316 yytoken, &yylval);
2317 }
2318 /* Do not reclaim the symbols of the rule which action triggered
2319 this YYABORT or YYACCEPT. */
2320 YYPOPSTACK (yylen);
2321 YY_STACK_PRINT (yyss, yyssp);
2322 while (yyssp != yyss)
2323 {
2324 yydestruct ("Cleanup: popping",
2325 yystos[*yyssp], yyvsp);
2326 YYPOPSTACK (1);
2327 }
2328 #ifndef yyoverflow
2329 if (yyss != yyssa)
2330 YYSTACK_FREE (yyss);
2331 #endif
2332 #if YYERROR_VERBOSE
2333 if (yymsg != yymsgbuf)
2334 YYSTACK_FREE (yymsg);
2335 #endif
2336 /* Make sure YYID is used. */
2337 return YYID (yyresult);
2338 }
2339
2340