1 /* A Bison parser, made by GNU Bison 2.4.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
44 /* Identify Bison output. */
48 #define YYBISON_VERSION "2.4.3"
51 #define YYSKELETON_NAME "yacc.c"
62 /* Using locations. */
63 #define YYLSP_NEEDED 0
67 /* Copy the first part of user declarations. */
76 static int is_typedef;
78 static char *current_name;
79 static struct string_list *decl_spec;
81 static void yyerror(const char *);
84 remove_node(struct string_list **p)
86 struct string_list *node = *p;
92 remove_list(struct string_list **pb, struct string_list **pe)
94 struct string_list *b = *pb, *e = *pe;
102 /* Enabling traces. */
107 /* Enabling verbose error messages. */
108 #ifdef YYERROR_VERBOSE
109 # undef YYERROR_VERBOSE
110 # define YYERROR_VERBOSE 1
112 # define YYERROR_VERBOSE 0
115 /* Enabling the token table. */
116 #ifndef YYTOKEN_TABLE
117 # define YYTOKEN_TABLE 0
124 /* Put the tokens into the symbol table, so that GDB and other debuggers
128 ATTRIBUTE_KEYW = 259,
136 EXTENSION_KEYW = 267,
153 EXPORT_SYMBOL_KEYW = 284,
155 ATTRIBUTE_PHRASE = 286,
157 BRACKET_PHRASE = 288,
158 EXPRESSION_PHRASE = 289,
173 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
175 # define YYSTYPE_IS_TRIVIAL 1
176 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
177 # define YYSTYPE_IS_DECLARED 1
181 /* Copy the second part of user declarations. */
190 typedef YYTYPE_UINT8 yytype_uint8;
192 typedef unsigned char yytype_uint8;
196 typedef YYTYPE_INT8 yytype_int8;
197 #elif (defined __STDC__ || defined __C99__FUNC__ \
198 || defined __cplusplus || defined _MSC_VER)
199 typedef signed char yytype_int8;
201 typedef short int yytype_int8;
205 typedef YYTYPE_UINT16 yytype_uint16;
207 typedef unsigned short int yytype_uint16;
211 typedef YYTYPE_INT16 yytype_int16;
213 typedef short int yytype_int16;
217 # ifdef __SIZE_TYPE__
218 # define YYSIZE_T __SIZE_TYPE__
219 # elif defined size_t
220 # define YYSIZE_T size_t
221 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
222 || defined __cplusplus || defined _MSC_VER)
223 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
224 # define YYSIZE_T size_t
226 # define YYSIZE_T unsigned int
230 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
233 # if defined YYENABLE_NLS && YYENABLE_NLS
235 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
236 # define YY_(msgid) dgettext ("bison-runtime", msgid)
240 # define YY_(msgid) msgid
244 /* Suppress unused-variable warnings by "using" E. */
245 #if ! defined lint || defined __GNUC__
246 # define YYUSE(e) ((void) (e))
248 # define YYUSE(e) /* empty */
251 /* Identity function, used to suppress warnings about constant conditions. */
255 #if (defined __STDC__ || defined __C99__FUNC__ \
256 || defined __cplusplus || defined _MSC_VER)
269 #if ! defined yyoverflow || YYERROR_VERBOSE
271 /* The parser invokes alloca or malloc; define the necessary symbols. */
273 # ifdef YYSTACK_USE_ALLOCA
274 # if YYSTACK_USE_ALLOCA
276 # define YYSTACK_ALLOC __builtin_alloca
277 # elif defined __BUILTIN_VA_ARG_INCR
278 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
280 # define YYSTACK_ALLOC __alloca
281 # elif defined _MSC_VER
282 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
283 # define alloca _alloca
285 # define YYSTACK_ALLOC alloca
286 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
287 || defined __cplusplus || defined _MSC_VER)
288 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
297 # ifdef YYSTACK_ALLOC
298 /* Pacify GCC's `empty if-body' warning. */
299 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
300 # ifndef YYSTACK_ALLOC_MAXIMUM
301 /* The OS might guarantee only one guard page at the bottom of the stack,
302 and a page size can be as small as 4096 bytes. So we cannot safely
303 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
304 to allow for a few compiler-allocated temporary stack slots. */
305 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
308 # define YYSTACK_ALLOC YYMALLOC
309 # define YYSTACK_FREE YYFREE
310 # ifndef YYSTACK_ALLOC_MAXIMUM
311 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
313 # if (defined __cplusplus && ! defined _STDLIB_H \
314 && ! ((defined YYMALLOC || defined malloc) \
315 && (defined YYFREE || defined free)))
316 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
322 # define YYMALLOC malloc
323 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
324 || defined __cplusplus || defined _MSC_VER)
325 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
330 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
331 || defined __cplusplus || defined _MSC_VER)
332 void free (void *); /* INFRINGES ON USER NAME SPACE */
336 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
339 #if (! defined yyoverflow \
340 && (! defined __cplusplus \
341 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
343 /* A type that is properly aligned for any stack member. */
346 yytype_int16 yyss_alloc;
350 /* The size of the maximum gap between one aligned stack and the next. */
351 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
353 /* The size of an array large to enough to hold all stacks, each with
355 # define YYSTACK_BYTES(N) \
356 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
357 + YYSTACK_GAP_MAXIMUM)
359 /* Copy COUNT objects from FROM to TO. The source and destination do
362 # if defined __GNUC__ && 1 < __GNUC__
363 # define YYCOPY(To, From, Count) \
364 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
366 # define YYCOPY(To, From, Count) \
370 for (yyi = 0; yyi < (Count); yyi++) \
371 (To)[yyi] = (From)[yyi]; \
377 /* Relocate STACK from its old location to the new one. The
378 local variables YYSIZE and YYSTACKSIZE give the old and new number of
379 elements in the stack, and YYPTR gives the new location of the
380 stack. Advance YYPTR to a properly aligned location for the next
382 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
385 YYSIZE_T yynewbytes; \
386 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
387 Stack = &yyptr->Stack_alloc; \
388 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
389 yyptr += yynewbytes / sizeof (*yyptr); \
395 /* YYFINAL -- State number of the termination state. */
397 /* YYLAST -- Last index in YYTABLE. */
400 /* YYNTOKENS -- Number of terminals. */
402 /* YYNNTS -- Number of nonterminals. */
404 /* YYNRULES -- Number of rules. */
406 /* YYNRULES -- Number of states. */
407 #define YYNSTATES 188
409 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
411 #define YYMAXUTOK 298
413 #define YYTRANSLATE(YYX) \
414 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
416 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
417 static const yytype_uint8 yytranslate[] =
419 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
422 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
423 47, 49, 48, 2, 46, 2, 2, 2, 2, 2,
424 2, 2, 2, 2, 2, 2, 2, 2, 52, 44,
425 2, 50, 2, 2, 2, 2, 2, 2, 2, 2,
426 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
427 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
428 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
429 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
430 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
431 2, 2, 2, 51, 2, 45, 2, 2, 2, 2,
432 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
433 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
434 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
435 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
436 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
437 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
439 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
440 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
441 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
442 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
443 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
444 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
445 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
446 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
447 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
448 35, 36, 37, 38, 39, 40, 41, 42, 43
452 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
454 static const yytype_uint16 yyprhs[] =
456 0, 0, 3, 5, 8, 9, 12, 13, 18, 19,
457 23, 25, 27, 29, 31, 34, 37, 41, 42, 44,
458 46, 50, 55, 56, 58, 60, 63, 65, 67, 69,
459 71, 73, 75, 77, 79, 81, 87, 92, 95, 98,
460 101, 105, 109, 113, 116, 119, 122, 124, 126, 128,
461 130, 132, 134, 136, 138, 140, 142, 144, 147, 148,
462 150, 152, 155, 157, 159, 161, 163, 166, 168, 170,
463 175, 180, 183, 187, 191, 194, 196, 198, 200, 205,
464 210, 213, 217, 221, 224, 226, 230, 231, 233, 235,
465 239, 242, 245, 247, 248, 250, 252, 257, 262, 265,
466 269, 273, 277, 278, 280, 283, 287, 291, 292, 294,
467 296, 299, 303, 306, 307, 309, 311, 315, 318, 321,
468 323, 326, 327, 330, 334, 339, 341, 345, 347, 351,
472 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
473 static const yytype_int8 yyrhs[] =
475 54, 0, -1, 55, -1, 54, 55, -1, -1, 56,
476 57, -1, -1, 12, 23, 58, 60, -1, -1, 23,
477 59, 60, -1, 60, -1, 84, -1, 99, -1, 101,
478 -1, 1, 44, -1, 1, 45, -1, 64, 61, 44,
479 -1, -1, 62, -1, 63, -1, 62, 46, 63, -1,
480 74, 100, 95, 85, -1, -1, 65, -1, 66, -1,
481 65, 66, -1, 67, -1, 68, -1, 5, -1, 17,
482 -1, 21, -1, 11, -1, 14, -1, 69, -1, 73,
483 -1, 28, 47, 65, 48, 49, -1, 28, 47, 65,
484 49, -1, 22, 37, -1, 24, 37, -1, 10, 37,
485 -1, 22, 37, 87, -1, 24, 37, 87, -1, 10,
486 37, 96, -1, 10, 96, -1, 22, 87, -1, 24,
487 87, -1, 7, -1, 19, -1, 15, -1, 16, -1,
488 20, -1, 25, -1, 13, -1, 9, -1, 26, -1,
489 6, -1, 41, -1, 48, 71, -1, -1, 72, -1,
490 73, -1, 72, 73, -1, 8, -1, 27, -1, 31,
491 -1, 18, -1, 70, 74, -1, 75, -1, 37, -1,
492 75, 47, 78, 49, -1, 75, 47, 1, 49, -1,
493 75, 33, -1, 47, 74, 49, -1, 47, 1, 49,
494 -1, 70, 76, -1, 77, -1, 37, -1, 41, -1,
495 77, 47, 78, 49, -1, 77, 47, 1, 49, -1,
496 77, 33, -1, 47, 76, 49, -1, 47, 1, 49,
497 -1, 79, 36, -1, 79, -1, 80, 46, 36, -1,
498 -1, 80, -1, 81, -1, 80, 46, 81, -1, 65,
499 82, -1, 70, 82, -1, 83, -1, -1, 37, -1,
500 41, -1, 83, 47, 78, 49, -1, 83, 47, 1,
501 49, -1, 83, 33, -1, 47, 82, 49, -1, 47,
502 1, 49, -1, 64, 74, 32, -1, -1, 86, -1,
503 50, 34, -1, 51, 88, 45, -1, 51, 1, 45,
504 -1, -1, 89, -1, 90, -1, 89, 90, -1, 64,
505 91, 44, -1, 1, 44, -1, -1, 92, -1, 93,
506 -1, 92, 46, 93, -1, 76, 95, -1, 37, 94,
507 -1, 94, -1, 52, 34, -1, -1, 95, 31, -1,
508 51, 97, 45, -1, 51, 97, 46, 45, -1, 98,
509 -1, 97, 46, 98, -1, 37, -1, 37, 50, 34,
510 -1, 30, 44, -1, -1, 30, -1, 29, 47, 37,
514 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
515 static const yytype_uint16 yyrline[] =
517 0, 104, 104, 105, 109, 109, 115, 115, 117, 117,
518 119, 120, 121, 122, 123, 124, 128, 142, 143, 147,
519 155, 168, 174, 175, 179, 180, 184, 190, 194, 195,
520 196, 197, 198, 202, 203, 204, 205, 209, 211, 213,
521 217, 224, 231, 241, 244, 245, 249, 250, 251, 252,
522 253, 254, 255, 256, 257, 258, 259, 263, 268, 269,
523 273, 274, 278, 278, 278, 279, 287, 288, 292, 301,
524 303, 305, 307, 309, 316, 317, 321, 322, 323, 325,
525 327, 329, 331, 336, 337, 338, 342, 343, 347, 348,
526 353, 358, 360, 364, 365, 373, 377, 379, 381, 383,
527 385, 390, 399, 400, 405, 410, 411, 415, 416, 420,
528 421, 425, 427, 432, 433, 437, 438, 442, 443, 444,
529 448, 452, 453, 457, 458, 462, 463, 466, 471, 479,
534 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
535 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
536 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
537 static const char *const yytname[] =
539 "$end", "error", "$undefined", "ASM_KEYW", "ATTRIBUTE_KEYW",
540 "AUTO_KEYW", "BOOL_KEYW", "CHAR_KEYW", "CONST_KEYW", "DOUBLE_KEYW",
541 "ENUM_KEYW", "EXTERN_KEYW", "EXTENSION_KEYW", "FLOAT_KEYW",
542 "INLINE_KEYW", "INT_KEYW", "LONG_KEYW", "REGISTER_KEYW", "RESTRICT_KEYW",
543 "SHORT_KEYW", "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW",
544 "TYPEDEF_KEYW", "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW",
545 "VOLATILE_KEYW", "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE",
546 "ATTRIBUTE_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
547 "EXPRESSION_PHRASE", "CHAR", "DOTS", "IDENT", "INT", "REAL", "STRING",
548 "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "'*'", "')'",
549 "'='", "'{'", "':'", "$accept", "declaration_seq", "declaration", "$@1",
550 "declaration1", "$@2", "$@3", "simple_declaration",
551 "init_declarator_list_opt", "init_declarator_list", "init_declarator",
552 "decl_specifier_seq_opt", "decl_specifier_seq", "decl_specifier",
553 "storage_class_specifier", "type_specifier", "simple_type_specifier",
554 "ptr_operator", "cvar_qualifier_seq_opt", "cvar_qualifier_seq",
555 "cvar_qualifier", "declarator", "direct_declarator", "nested_declarator",
556 "direct_nested_declarator", "parameter_declaration_clause",
557 "parameter_declaration_list_opt", "parameter_declaration_list",
558 "parameter_declaration", "m_abstract_declarator",
559 "direct_m_abstract_declarator", "function_definition", "initializer_opt",
560 "initializer", "class_body", "member_specification_opt",
561 "member_specification", "member_declaration",
562 "member_declarator_list_opt", "member_declarator_list",
563 "member_declarator", "member_bitfield_declarator", "attribute_opt",
564 "enum_body", "enumerator_list", "enumerator", "asm_definition",
565 "asm_phrase_opt", "export_definition", 0
570 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
572 static const yytype_uint16 yytoknum[] =
574 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
575 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
576 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
577 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
578 295, 296, 297, 298, 59, 125, 44, 40, 42, 41,
583 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
584 static const yytype_uint8 yyr1[] =
586 0, 53, 54, 54, 56, 55, 58, 57, 59, 57,
587 57, 57, 57, 57, 57, 57, 60, 61, 61, 62,
588 62, 63, 64, 64, 65, 65, 66, 66, 67, 67,
589 67, 67, 67, 68, 68, 68, 68, 68, 68, 68,
590 68, 68, 68, 68, 68, 68, 69, 69, 69, 69,
591 69, 69, 69, 69, 69, 69, 69, 70, 71, 71,
592 72, 72, 73, 73, 73, 73, 74, 74, 75, 75,
593 75, 75, 75, 75, 76, 76, 77, 77, 77, 77,
594 77, 77, 77, 78, 78, 78, 79, 79, 80, 80,
595 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
596 83, 84, 85, 85, 86, 87, 87, 88, 88, 89,
597 89, 90, 90, 91, 91, 92, 92, 93, 93, 93,
598 94, 95, 95, 96, 96, 97, 97, 98, 98, 99,
602 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
603 static const yytype_uint8 yyr2[] =
605 0, 2, 1, 2, 0, 2, 0, 4, 0, 3,
606 1, 1, 1, 1, 2, 2, 3, 0, 1, 1,
607 3, 4, 0, 1, 1, 2, 1, 1, 1, 1,
608 1, 1, 1, 1, 1, 5, 4, 2, 2, 2,
609 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
610 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
611 1, 2, 1, 1, 1, 1, 2, 1, 1, 4,
612 4, 2, 3, 3, 2, 1, 1, 1, 4, 4,
613 2, 3, 3, 2, 1, 3, 0, 1, 1, 3,
614 2, 2, 1, 0, 1, 1, 4, 4, 2, 3,
615 3, 3, 0, 1, 2, 3, 3, 0, 1, 1,
616 2, 3, 2, 0, 1, 1, 3, 2, 2, 1,
617 2, 0, 2, 3, 4, 1, 3, 1, 3, 2,
621 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
622 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
623 means the default is an error. */
624 static const yytype_uint8 yydefact[] =
626 4, 4, 2, 0, 1, 3, 0, 28, 55, 46,
627 62, 53, 0, 31, 0, 52, 32, 48, 49, 29,
628 65, 47, 50, 30, 0, 8, 0, 51, 54, 63,
629 0, 0, 0, 64, 56, 5, 10, 17, 23, 24,
630 26, 27, 33, 34, 11, 12, 13, 14, 15, 39,
631 0, 43, 6, 37, 0, 44, 22, 38, 45, 0,
632 0, 129, 68, 0, 58, 0, 18, 19, 0, 130,
633 67, 25, 42, 127, 0, 125, 22, 40, 0, 113,
634 0, 0, 109, 9, 17, 41, 0, 0, 0, 0,
635 57, 59, 60, 16, 0, 66, 131, 101, 121, 71,
636 0, 0, 123, 0, 7, 112, 106, 76, 77, 0,
637 0, 0, 121, 75, 0, 114, 115, 119, 105, 0,
638 110, 130, 0, 36, 0, 73, 72, 61, 20, 102,
639 0, 93, 0, 84, 87, 88, 128, 124, 126, 118,
640 0, 76, 0, 120, 74, 117, 80, 0, 111, 0,
641 35, 132, 122, 0, 21, 103, 70, 94, 56, 0,
642 93, 90, 92, 69, 83, 0, 82, 81, 0, 0,
643 116, 104, 0, 95, 0, 91, 98, 0, 85, 89,
644 79, 78, 100, 99, 0, 0, 97, 96
647 /* YYDEFGOTO[NTERM-NUM]. */
648 static const yytype_int16 yydefgoto[] =
650 -1, 1, 2, 3, 35, 76, 56, 36, 65, 66,
651 67, 79, 38, 39, 40, 41, 42, 68, 90, 91,
652 43, 121, 70, 112, 113, 132, 133, 134, 135, 161,
653 162, 44, 154, 155, 55, 80, 81, 82, 114, 115,
654 116, 117, 129, 51, 74, 75, 45, 98, 46
657 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
659 #define YYPACT_NINF -135
660 static const yytype_int16 yypact[] =
662 -135, 20, -135, 321, -135, -135, 30, -135, -135, -135,
663 -135, -135, -28, -135, 2, -135, -135, -135, -135, -135,
664 -135, -135, -135, -135, -6, -135, 9, -135, -135, -135,
665 -5, 15, -17, -135, -135, -135, -135, 18, 491, -135,
666 -135, -135, -135, -135, -135, -135, -135, -135, -135, -22,
667 31, -135, -135, 19, 106, -135, 491, 19, -135, 491,
668 50, -135, -135, 11, -3, 51, 57, -135, 18, -14,
669 14, -135, -135, 48, 46, -135, 491, -135, 33, 32,
670 59, 154, -135, -135, 18, -135, 365, 56, 60, 61,
671 -135, -3, -135, -135, 18, -135, -135, -135, -135, -135,
672 202, 74, -135, -23, -135, -135, -135, 77, -135, 16,
673 101, 49, -135, 34, 92, 93, -135, -135, -135, 94,
674 -135, 110, 95, -135, 97, -135, -135, -135, -135, -20,
675 96, 410, 99, 113, 100, -135, -135, -135, -135, -135,
676 103, -135, 107, -135, -135, 111, -135, 239, -135, 32,
677 -135, -135, -135, 123, -135, -135, -135, -135, -135, 3,
678 52, -135, 38, -135, -135, 454, -135, -135, 117, 128,
679 -135, -135, 134, -135, 135, -135, -135, 276, -135, -135,
680 -135, -135, -135, -135, 137, 138, -135, -135
683 /* YYPGOTO[NTERM-NUM]. */
684 static const yytype_int16 yypgoto[] =
686 -135, -135, 187, -135, -135, -135, -135, -50, -135, -135,
687 98, 0, -59, -37, -135, -135, -135, -77, -135, -135,
688 -54, -30, -135, -90, -135, -134, -135, -135, 24, -58,
689 -135, -135, -135, -135, -18, -135, -135, 109, -135, -135,
690 44, 87, 84, 148, -135, 102, -135, -135, -135
693 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
694 positive, shift that token. If negative, reduce the rule which
695 number is the opposite. If zero, do what YYDEFACT says.
696 If YYTABLE_NINF, syntax error. */
697 #define YYTABLE_NINF -109
698 static const yytype_int16 yytable[] =
700 86, 71, 111, 37, 172, 10, 83, 69, 58, 49,
701 92, 152, 88, 169, 73, 20, 96, 140, 97, 142,
702 4, 144, 137, 50, 29, 52, 104, 61, 33, 50,
703 153, 53, 111, 89, 111, 77, -93, 127, 95, 85,
704 157, 131, 59, 185, 173, 54, 57, 99, 62, 71,
705 159, 64, -93, 141, 160, 62, 84, 108, 63, 64,
706 54, 100, 60, 109, 64, 63, 64, 146, 73, 107,
707 54, 176, 111, 108, 47, 48, 84, 105, 106, 109,
708 64, 147, 160, 160, 110, 177, 141, 87, 131, 157,
709 108, 102, 103, 173, 71, 93, 109, 64, 101, 159,
710 64, 174, 175, 94, 118, 124, 131, 78, 136, 125,
711 126, 7, 8, 9, 10, 11, 12, 13, 131, 15,
712 16, 17, 18, 19, 20, 21, 22, 23, 24, 110,
713 26, 27, 28, 29, 30, 143, 148, 33, 105, 149,
714 96, 151, 152, -22, 150, 156, 165, 34, 163, 164,
715 -22, -107, 166, -22, -22, 119, 167, 171, -22, 7,
716 8, 9, 10, 11, 12, 13, 180, 15, 16, 17,
717 18, 19, 20, 21, 22, 23, 24, 181, 26, 27,
718 28, 29, 30, 182, 183, 33, 186, 187, 5, 179,
719 120, -22, 128, 170, 139, 34, 145, 72, -22, -108,
720 0, -22, -22, 130, 0, 138, -22, 7, 8, 9,
721 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
722 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
723 30, 0, 0, 33, 0, 0, 0, 0, -86, 0,
724 168, 0, 0, 34, 7, 8, 9, 10, 11, 12,
725 13, -86, 15, 16, 17, 18, 19, 20, 21, 22,
726 23, 24, 0, 26, 27, 28, 29, 30, 0, 0,
727 33, 0, 0, 0, 0, -86, 0, 184, 0, 0,
728 34, 7, 8, 9, 10, 11, 12, 13, -86, 15,
729 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
730 26, 27, 28, 29, 30, 0, 0, 33, 0, 0,
731 0, 0, -86, 0, 0, 0, 0, 34, 0, 0,
732 0, 0, 6, 0, 0, -86, 7, 8, 9, 10,
733 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
734 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
735 31, 32, 33, 0, 0, 0, 0, 0, -22, 0,
736 0, 0, 34, 0, 0, -22, 0, 0, -22, -22,
737 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
738 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
739 27, 28, 29, 30, 0, 0, 33, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 34, 0, 0, 0,
741 0, 0, 0, 122, 123, 7, 8, 9, 10, 11,
742 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
743 22, 23, 24, 0, 26, 27, 28, 29, 30, 0,
744 0, 33, 0, 0, 0, 0, 0, 157, 0, 0,
745 0, 158, 0, 0, 0, 0, 0, 159, 64, 7,
746 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
747 18, 19, 20, 21, 22, 23, 24, 0, 26, 27,
748 28, 29, 30, 0, 0, 33, 0, 0, 0, 0,
749 178, 0, 0, 0, 0, 34, 7, 8, 9, 10,
750 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
751 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
752 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,
756 static const yytype_int16 yycheck[] =
758 59, 38, 79, 3, 1, 8, 56, 37, 26, 37,
759 64, 31, 1, 147, 37, 18, 30, 1, 32, 109,
760 0, 111, 45, 51, 27, 23, 76, 44, 31, 51,
761 50, 37, 109, 63, 111, 53, 33, 91, 68, 57,
762 37, 100, 47, 177, 41, 51, 37, 33, 37, 86,
763 47, 48, 49, 37, 131, 37, 56, 41, 47, 48,
764 51, 47, 47, 47, 48, 47, 48, 33, 37, 37,
765 51, 33, 149, 41, 44, 45, 76, 44, 45, 47,
766 48, 47, 159, 160, 52, 47, 37, 37, 147, 37,
767 41, 45, 46, 41, 131, 44, 47, 48, 50, 47,
768 48, 159, 160, 46, 45, 49, 165, 1, 34, 49,
769 49, 5, 6, 7, 8, 9, 10, 11, 177, 13,
770 14, 15, 16, 17, 18, 19, 20, 21, 22, 52,
771 24, 25, 26, 27, 28, 34, 44, 31, 44, 46,
772 30, 44, 31, 37, 49, 49, 46, 41, 49, 36,
773 44, 45, 49, 47, 48, 1, 49, 34, 52, 5,
774 6, 7, 8, 9, 10, 11, 49, 13, 14, 15,
775 16, 17, 18, 19, 20, 21, 22, 49, 24, 25,
776 26, 27, 28, 49, 49, 31, 49, 49, 1, 165,
777 81, 37, 94, 149, 107, 41, 112, 49, 44, 45,
778 -1, 47, 48, 1, -1, 103, 52, 5, 6, 7,
779 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
780 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
781 28, -1, -1, 31, -1, -1, -1, -1, 36, -1,
782 1, -1, -1, 41, 5, 6, 7, 8, 9, 10,
783 11, 49, 13, 14, 15, 16, 17, 18, 19, 20,
784 21, 22, -1, 24, 25, 26, 27, 28, -1, -1,
785 31, -1, -1, -1, -1, 36, -1, 1, -1, -1,
786 41, 5, 6, 7, 8, 9, 10, 11, 49, 13,
787 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
788 24, 25, 26, 27, 28, -1, -1, 31, -1, -1,
789 -1, -1, 36, -1, -1, -1, -1, 41, -1, -1,
790 -1, -1, 1, -1, -1, 49, 5, 6, 7, 8,
791 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
792 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
793 29, 30, 31, -1, -1, -1, -1, -1, 37, -1,
794 -1, -1, 41, -1, -1, 44, -1, -1, 47, 48,
795 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
796 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
797 25, 26, 27, 28, -1, -1, 31, -1, -1, -1,
798 -1, -1, -1, -1, -1, -1, 41, -1, -1, -1,
799 -1, -1, -1, 48, 49, 5, 6, 7, 8, 9,
800 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
801 20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
802 -1, 31, -1, -1, -1, -1, -1, 37, -1, -1,
803 -1, 41, -1, -1, -1, -1, -1, 47, 48, 5,
804 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
805 16, 17, 18, 19, 20, 21, 22, -1, 24, 25,
806 26, 27, 28, -1, -1, 31, -1, -1, -1, -1,
807 36, -1, -1, -1, -1, 41, 5, 6, 7, 8,
808 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
809 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
810 -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
814 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
815 symbol of state STATE-NUM. */
816 static const yytype_uint8 yystos[] =
818 0, 54, 55, 56, 0, 55, 1, 5, 6, 7,
819 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
820 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
821 28, 29, 30, 31, 41, 57, 60, 64, 65, 66,
822 67, 68, 69, 73, 84, 99, 101, 44, 45, 37,
823 51, 96, 23, 37, 51, 87, 59, 37, 87, 47,
824 47, 44, 37, 47, 48, 61, 62, 63, 70, 74,
825 75, 66, 96, 37, 97, 98, 58, 87, 1, 64,
826 88, 89, 90, 60, 64, 87, 65, 37, 1, 74,
827 71, 72, 73, 44, 46, 74, 30, 32, 100, 33,
828 47, 50, 45, 46, 60, 44, 45, 37, 41, 47,
829 52, 70, 76, 77, 91, 92, 93, 94, 45, 1,
830 90, 74, 48, 49, 49, 49, 49, 73, 63, 95,
831 1, 65, 78, 79, 80, 81, 34, 45, 98, 94,
832 1, 37, 76, 34, 76, 95, 33, 47, 44, 46,
833 49, 44, 31, 50, 85, 86, 49, 37, 41, 47,
834 70, 82, 83, 49, 36, 46, 49, 49, 1, 78,
835 93, 34, 1, 41, 82, 82, 33, 47, 36, 81,
836 49, 49, 49, 49, 1, 78, 49, 49
839 #define yyerrok (yyerrstatus = 0)
840 #define yyclearin (yychar = YYEMPTY)
844 #define YYACCEPT goto yyacceptlab
845 #define YYABORT goto yyabortlab
846 #define YYERROR goto yyerrorlab
849 /* Like YYERROR except do call yyerror. This remains here temporarily
850 to ease the transition to the new meaning of YYERROR, for GCC.
851 Once GCC version 2 has supplanted version 1, this can go. However,
852 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
853 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
856 #define YYFAIL goto yyerrlab
858 /* This is here to suppress warnings from the GCC cpp's
859 -Wunused-macros. Normally we don't worry about that warning, but
860 some users do, and we want to make it easy for users to remove
861 YYFAIL uses, which will produce warnings from Bison 2.5. */
864 #define YYRECOVERING() (!!yyerrstatus)
866 #define YYBACKUP(Token, Value) \
868 if (yychar == YYEMPTY && yylen == 1) \
872 yytoken = YYTRANSLATE (yychar); \
878 yyerror (YY_("syntax error: cannot back up")); \
885 #define YYERRCODE 256
888 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
889 If N is 0, then set CURRENT to the empty location which ends
890 the previous symbol: RHS[0] (always defined). */
892 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
893 #ifndef YYLLOC_DEFAULT
894 # define YYLLOC_DEFAULT(Current, Rhs, N) \
898 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
899 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
900 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
901 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
905 (Current).first_line = (Current).last_line = \
906 YYRHSLOC (Rhs, 0).last_line; \
907 (Current).first_column = (Current).last_column = \
908 YYRHSLOC (Rhs, 0).last_column; \
914 /* YY_LOCATION_PRINT -- Print the location on the stream.
915 This macro was not mandated originally: define only if we know
916 we won't break user code: when these are the locations we know. */
918 #ifndef YY_LOCATION_PRINT
919 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
920 # define YY_LOCATION_PRINT(File, Loc) \
921 fprintf (File, "%d.%d-%d.%d", \
922 (Loc).first_line, (Loc).first_column, \
923 (Loc).last_line, (Loc).last_column)
925 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
930 /* YYLEX -- calling `yylex' with the right arguments. */
933 # define YYLEX yylex (YYLEX_PARAM)
935 # define YYLEX yylex ()
938 /* Enable debugging if requested. */
942 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
943 # define YYFPRINTF fprintf
946 # define YYDPRINTF(Args) \
952 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
956 YYFPRINTF (stderr, "%s ", Title); \
957 yy_symbol_print (stderr, \
959 YYFPRINTF (stderr, "\n"); \
964 /*--------------------------------.
965 | Print this symbol on YYOUTPUT. |
966 `--------------------------------*/
969 #if (defined __STDC__ || defined __C99__FUNC__ \
970 || defined __cplusplus || defined _MSC_VER)
972 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
975 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
978 YYSTYPE const * const yyvaluep;
984 if (yytype < YYNTOKENS)
985 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
997 /*--------------------------------.
998 | Print this symbol on YYOUTPUT. |
999 `--------------------------------*/
1001 #if (defined __STDC__ || defined __C99__FUNC__ \
1002 || defined __cplusplus || defined _MSC_VER)
1004 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1007 yy_symbol_print (yyoutput, yytype, yyvaluep)
1010 YYSTYPE const * const yyvaluep;
1013 if (yytype < YYNTOKENS)
1014 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1016 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1018 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1019 YYFPRINTF (yyoutput, ")");
1022 /*------------------------------------------------------------------.
1023 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1025 `------------------------------------------------------------------*/
1027 #if (defined __STDC__ || defined __C99__FUNC__ \
1028 || defined __cplusplus || defined _MSC_VER)
1030 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1033 yy_stack_print (yybottom, yytop)
1034 yytype_int16 *yybottom;
1035 yytype_int16 *yytop;
1038 YYFPRINTF (stderr, "Stack now");
1039 for (; yybottom <= yytop; yybottom++)
1041 int yybot = *yybottom;
1042 YYFPRINTF (stderr, " %d", yybot);
1044 YYFPRINTF (stderr, "\n");
1047 # define YY_STACK_PRINT(Bottom, Top) \
1050 yy_stack_print ((Bottom), (Top)); \
1054 /*------------------------------------------------.
1055 | Report that the YYRULE is going to be reduced. |
1056 `------------------------------------------------*/
1058 #if (defined __STDC__ || defined __C99__FUNC__ \
1059 || defined __cplusplus || defined _MSC_VER)
1061 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1064 yy_reduce_print (yyvsp, yyrule)
1069 int yynrhs = yyr2[yyrule];
1071 unsigned long int yylno = yyrline[yyrule];
1072 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1074 /* The symbols being reduced. */
1075 for (yyi = 0; yyi < yynrhs; yyi++)
1077 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1078 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1079 &(yyvsp[(yyi + 1) - (yynrhs)])
1081 YYFPRINTF (stderr, "\n");
1085 # define YY_REDUCE_PRINT(Rule) \
1088 yy_reduce_print (yyvsp, Rule); \
1091 /* Nonzero means print parse trace. It is left uninitialized so that
1092 multiple parsers can coexist. */
1094 #else /* !YYDEBUG */
1095 # define YYDPRINTF(Args)
1096 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1097 # define YY_STACK_PRINT(Bottom, Top)
1098 # define YY_REDUCE_PRINT(Rule)
1099 #endif /* !YYDEBUG */
1102 /* YYINITDEPTH -- initial size of the parser's stacks. */
1104 # define YYINITDEPTH 200
1107 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1108 if the built-in stack extension method is used).
1110 Do not make this value too large; the results are undefined if
1111 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1112 evaluated with infinite-precision integer arithmetic. */
1115 # define YYMAXDEPTH 10000
1123 # if defined __GLIBC__ && defined _STRING_H
1124 # define yystrlen strlen
1126 /* Return the length of YYSTR. */
1127 #if (defined __STDC__ || defined __C99__FUNC__ \
1128 || defined __cplusplus || defined _MSC_VER)
1130 yystrlen (const char *yystr)
1138 for (yylen = 0; yystr[yylen]; yylen++)
1146 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1147 # define yystpcpy stpcpy
1149 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1151 #if (defined __STDC__ || defined __C99__FUNC__ \
1152 || defined __cplusplus || defined _MSC_VER)
1154 yystpcpy (char *yydest, const char *yysrc)
1157 yystpcpy (yydest, yysrc)
1163 const char *yys = yysrc;
1165 while ((*yyd++ = *yys++) != '\0')
1174 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1175 quotes and backslashes, so that it's suitable for yyerror. The
1176 heuristic is that double-quoting is unnecessary unless the string
1177 contains an apostrophe, a comma, or backslash (other than
1178 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1179 null, do not copy; instead, return the length of what the result
1182 yytnamerr (char *yyres, const char *yystr)
1187 char const *yyp = yystr;
1194 goto do_not_strip_quotes;
1198 goto do_not_strip_quotes;
1211 do_not_strip_quotes: ;
1215 return yystrlen (yystr);
1217 return yystpcpy (yyres, yystr) - yyres;
1221 /* Copy into YYRESULT an error message about the unexpected token
1222 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1223 including the terminating null byte. If YYRESULT is null, do not
1224 copy anything; just return the number of bytes that would be
1225 copied. As a special case, return 0 if an ordinary "syntax error"
1226 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1227 size calculation. */
1229 yysyntax_error (char *yyresult, int yystate, int yychar)
1231 int yyn = yypact[yystate];
1233 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1237 int yytype = YYTRANSLATE (yychar);
1238 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1239 YYSIZE_T yysize = yysize0;
1241 int yysize_overflow = 0;
1242 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1243 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1247 /* This is so xgettext sees the translatable formats that are
1248 constructed on the fly. */
1249 YY_("syntax error, unexpected %s");
1250 YY_("syntax error, unexpected %s, expecting %s");
1251 YY_("syntax error, unexpected %s, expecting %s or %s");
1252 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1253 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1257 static char const yyunexpected[] = "syntax error, unexpected %s";
1258 static char const yyexpecting[] = ", expecting %s";
1259 static char const yyor[] = " or %s";
1260 char yyformat[sizeof yyunexpected
1261 + sizeof yyexpecting - 1
1262 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1263 * (sizeof yyor - 1))];
1264 char const *yyprefix = yyexpecting;
1266 /* Start YYX at -YYN if negative to avoid negative indexes in
1268 int yyxbegin = yyn < 0 ? -yyn : 0;
1270 /* Stay within bounds of both yycheck and yytname. */
1271 int yychecklim = YYLAST - yyn + 1;
1272 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1275 yyarg[0] = yytname[yytype];
1276 yyfmt = yystpcpy (yyformat, yyunexpected);
1278 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1279 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1281 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1285 yyformat[sizeof yyunexpected - 1] = '\0';
1288 yyarg[yycount++] = yytname[yyx];
1289 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1290 yysize_overflow |= (yysize1 < yysize);
1292 yyfmt = yystpcpy (yyfmt, yyprefix);
1296 yyf = YY_(yyformat);
1297 yysize1 = yysize + yystrlen (yyf);
1298 yysize_overflow |= (yysize1 < yysize);
1301 if (yysize_overflow)
1302 return YYSIZE_MAXIMUM;
1306 /* Avoid sprintf, as that infringes on the user's name space.
1307 Don't have undefined behavior even if the translation
1308 produced a string with the wrong number of "%s"s. */
1309 char *yyp = yyresult;
1311 while ((*yyp = *yyf) != '\0')
1313 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1315 yyp += yytnamerr (yyp, yyarg[yyi++]);
1328 #endif /* YYERROR_VERBOSE */
1331 /*-----------------------------------------------.
1332 | Release the memory associated to this symbol. |
1333 `-----------------------------------------------*/
1336 #if (defined __STDC__ || defined __C99__FUNC__ \
1337 || defined __cplusplus || defined _MSC_VER)
1339 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1342 yydestruct (yymsg, yytype, yyvaluep)
1352 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1362 /* Prevent warnings from -Wmissing-prototypes. */
1363 #ifdef YYPARSE_PARAM
1364 #if defined __STDC__ || defined __cplusplus
1365 int yyparse (void *YYPARSE_PARAM);
1369 #else /* ! YYPARSE_PARAM */
1370 #if defined __STDC__ || defined __cplusplus
1375 #endif /* ! YYPARSE_PARAM */
1378 /* The lookahead symbol. */
1381 /* The semantic value of the lookahead symbol. */
1384 /* Number of syntax errors so far. */
1389 /*-------------------------.
1390 | yyparse or yypush_parse. |
1391 `-------------------------*/
1393 #ifdef YYPARSE_PARAM
1394 #if (defined __STDC__ || defined __C99__FUNC__ \
1395 || defined __cplusplus || defined _MSC_VER)
1397 yyparse (void *YYPARSE_PARAM)
1400 yyparse (YYPARSE_PARAM)
1401 void *YYPARSE_PARAM;
1403 #else /* ! YYPARSE_PARAM */
1404 #if (defined __STDC__ || defined __C99__FUNC__ \
1405 || defined __cplusplus || defined _MSC_VER)
1418 /* Number of tokens to shift before error messages enabled. */
1421 /* The stacks and their tools:
1422 `yyss': related to states.
1423 `yyvs': related to semantic values.
1425 Refer to the stacks thru separate pointers, to allow yyoverflow
1426 to reallocate them elsewhere. */
1428 /* The state stack. */
1429 yytype_int16 yyssa[YYINITDEPTH];
1431 yytype_int16 *yyssp;
1433 /* The semantic value stack. */
1434 YYSTYPE yyvsa[YYINITDEPTH];
1438 YYSIZE_T yystacksize;
1442 /* Lookahead token as an internal (translated) token number. */
1444 /* The variables used to return semantic value and location from the
1449 /* Buffer for error messages, and its allocated size. */
1451 char *yymsg = yymsgbuf;
1452 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1455 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1457 /* The number of symbols on the RHS of the reduced rule.
1458 Keep to zero when no symbol should be popped. */
1464 yystacksize = YYINITDEPTH;
1466 YYDPRINTF ((stderr, "Starting parse\n"));
1471 yychar = YYEMPTY; /* Cause a token to be read. */
1473 /* Initialize stack pointers.
1474 Waste one element of value and location stack
1475 so that they stay on the same level as the state stack.
1476 The wasted elements are never initialized. */
1482 /*------------------------------------------------------------.
1483 | yynewstate -- Push a new state, which is found in yystate. |
1484 `------------------------------------------------------------*/
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. */
1493 if (yyss + yystacksize - 1 <= yyssp)
1495 /* Get the current used size of the three stacks, in elements. */
1496 YYSIZE_T yysize = yyssp - yyss + 1;
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
1503 YYSTYPE *yyvs1 = yyvs;
1504 yytype_int16 *yyss1 = yyss;
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),
1518 #else /* no yyoverflow */
1519 # ifndef YYSTACK_RELOCATE
1520 goto yyexhaustedlab;
1522 /* Extend the stack our own way. */
1523 if (YYMAXDEPTH <= yystacksize)
1524 goto yyexhaustedlab;
1526 if (YYMAXDEPTH < yystacksize)
1527 yystacksize = YYMAXDEPTH;
1530 yytype_int16 *yyss1 = yyss;
1531 union yyalloc *yyptr =
1532 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1534 goto yyexhaustedlab;
1535 YYSTACK_RELOCATE (yyss_alloc, yyss);
1536 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1537 # undef YYSTACK_RELOCATE
1539 YYSTACK_FREE (yyss1);
1542 #endif /* no yyoverflow */
1544 yyssp = yyss + yysize - 1;
1545 yyvsp = yyvs + yysize - 1;
1547 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1548 (unsigned long int) yystacksize));
1550 if (yyss + yystacksize - 1 <= yyssp)
1554 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1556 if (yystate == YYFINAL)
1566 /* Do appropriate processing given the current state. Read a
1567 lookahead token if we need one and don't already have one. */
1569 /* First try to decide what to do without reference to lookahead token. */
1570 yyn = yypact[yystate];
1571 if (yyn == YYPACT_NINF)
1574 /* Not known => get a lookahead token if don't already have one. */
1576 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1577 if (yychar == YYEMPTY)
1579 YYDPRINTF ((stderr, "Reading a token: "));
1583 if (yychar <= YYEOF)
1585 yychar = yytoken = YYEOF;
1586 YYDPRINTF ((stderr, "Now at end of input.\n"));
1590 yytoken = YYTRANSLATE (yychar);
1591 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1594 /* If the proper action on seeing token YYTOKEN is to reduce or to
1595 detect an error, take that action. */
1597 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1602 if (yyn == 0 || yyn == YYTABLE_NINF)
1608 /* Count tokens shifted since error; after three, turn off error
1613 /* Shift the lookahead token. */
1614 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1616 /* Discard the shifted token. */
1625 /*-----------------------------------------------------------.
1626 | yydefault -- do the default action for the current state. |
1627 `-----------------------------------------------------------*/
1629 yyn = yydefact[yystate];
1635 /*-----------------------------.
1636 | yyreduce -- Do a reduction. |
1637 `-----------------------------*/
1639 /* yyn is the number of a rule to reduce with. */
1642 /* If YYLEN is nonzero, implement the default value of the action:
1645 Otherwise, the following line sets YYVAL to garbage.
1646 This behavior is undocumented and Bison
1647 users should not rely upon it. Assigning to YYVAL
1648 unconditionally makes the parser a bit smaller, and it avoids a
1649 GCC warning that YYVAL may be used uninitialized. */
1650 yyval = yyvsp[1-yylen];
1653 YY_REDUCE_PRINT (yyn);
1658 { is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ;}
1663 { free_list(*(yyvsp[(2) - (2)]), NULL); *(yyvsp[(2) - (2)]) = NULL; ;}
1668 { is_typedef = 1; ;}
1673 { (yyval) = (yyvsp[(4) - (4)]); ;}
1678 { is_typedef = 1; ;}
1683 { (yyval) = (yyvsp[(3) - (3)]); ;}
1688 { (yyval) = (yyvsp[(2) - (2)]); ;}
1693 { (yyval) = (yyvsp[(2) - (2)]); ;}
1698 { if (current_name) {
1699 struct string_list *decl = (*(yyvsp[(3) - (3)]))->next;
1700 (*(yyvsp[(3) - (3)]))->next = NULL;
1701 add_symbol(current_name,
1702 is_typedef ? SYM_TYPEDEF : SYM_NORMAL,
1704 current_name = NULL;
1706 (yyval) = (yyvsp[(3) - (3)]);
1712 { (yyval) = NULL; ;}
1717 { struct string_list *decl = *(yyvsp[(1) - (1)]);
1718 *(yyvsp[(1) - (1)]) = NULL;
1719 add_symbol(current_name,
1720 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1721 current_name = NULL;
1722 (yyval) = (yyvsp[(1) - (1)]);
1728 { struct string_list *decl = *(yyvsp[(3) - (3)]);
1729 *(yyvsp[(3) - (3)]) = NULL;
1730 free_list(*(yyvsp[(2) - (3)]), NULL);
1731 *(yyvsp[(2) - (3)]) = decl_spec;
1732 add_symbol(current_name,
1733 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1734 current_name = NULL;
1735 (yyval) = (yyvsp[(3) - (3)]);
1741 { (yyval) = (yyvsp[(4) - (4)]) ? (yyvsp[(4) - (4)]) : (yyvsp[(3) - (4)]) ? (yyvsp[(3) - (4)]) : (yyvsp[(2) - (4)]) ? (yyvsp[(2) - (4)]) : (yyvsp[(1) - (4)]); ;}
1746 { decl_spec = NULL; ;}
1751 { decl_spec = *(yyvsp[(1) - (1)]); ;}
1756 { decl_spec = *(yyvsp[(2) - (2)]); ;}
1761 { /* Version 2 checksumming ignores storage class, as that
1762 is really irrelevant to the linkage. */
1763 remove_node((yyvsp[(1) - (1)]));
1764 (yyval) = (yyvsp[(1) - (1)]);
1770 { is_extern = 1; (yyval) = (yyvsp[(1) - (1)]); ;}
1775 { is_extern = 0; (yyval) = (yyvsp[(1) - (1)]); ;}
1780 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_STRUCT; (yyval) = (yyvsp[(2) - (2)]); ;}
1785 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_UNION; (yyval) = (yyvsp[(2) - (2)]); ;}
1790 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_ENUM; (yyval) = (yyvsp[(2) - (2)]); ;}
1795 { struct string_list *s = *(yyvsp[(3) - (3)]), *i = *(yyvsp[(2) - (3)]), *r;
1796 r = copy_node(i); r->tag = SYM_STRUCT;
1797 r->next = (*(yyvsp[(1) - (3)]))->next; *(yyvsp[(3) - (3)]) = r; (*(yyvsp[(1) - (3)]))->next = NULL;
1798 add_symbol(i->string, SYM_STRUCT, s, is_extern);
1799 (yyval) = (yyvsp[(3) - (3)]);
1805 { struct string_list *s = *(yyvsp[(3) - (3)]), *i = *(yyvsp[(2) - (3)]), *r;
1806 r = copy_node(i); r->tag = SYM_UNION;
1807 r->next = (*(yyvsp[(1) - (3)]))->next; *(yyvsp[(3) - (3)]) = r; (*(yyvsp[(1) - (3)]))->next = NULL;
1808 add_symbol(i->string, SYM_UNION, s, is_extern);
1809 (yyval) = (yyvsp[(3) - (3)]);
1815 { struct string_list *s = *(yyvsp[(3) - (3)]), *i = *(yyvsp[(2) - (3)]), *r;
1816 r = copy_node(i); r->tag = SYM_ENUM;
1817 r->next = (*(yyvsp[(1) - (3)]))->next; *(yyvsp[(3) - (3)]) = r; (*(yyvsp[(1) - (3)]))->next = NULL;
1818 add_symbol(i->string, SYM_ENUM, s, is_extern);
1819 (yyval) = (yyvsp[(3) - (3)]);
1825 { add_symbol(NULL, SYM_ENUM, NULL, 0); (yyval) = (yyvsp[(2) - (2)]); ;}
1830 { (yyval) = (yyvsp[(2) - (2)]); ;}
1835 { (yyval) = (yyvsp[(2) - (2)]); ;}
1840 { (*(yyvsp[(1) - (1)]))->tag = SYM_TYPEDEF; (yyval) = (yyvsp[(1) - (1)]); ;}
1845 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
1850 { (yyval) = NULL; ;}
1855 { (yyval) = (yyvsp[(2) - (2)]); ;}
1860 { /* restrict has no effect in prototypes so ignore it */
1861 remove_node((yyvsp[(1) - (1)]));
1862 (yyval) = (yyvsp[(1) - (1)]);
1868 { (yyval) = (yyvsp[(2) - (2)]); ;}
1873 { if (current_name != NULL) {
1874 error_with_pos("unexpected second declaration name");
1877 current_name = (*(yyvsp[(1) - (1)]))->string;
1878 (yyval) = (yyvsp[(1) - (1)]);
1885 { (yyval) = (yyvsp[(4) - (4)]); ;}
1890 { (yyval) = (yyvsp[(4) - (4)]); ;}
1895 { (yyval) = (yyvsp[(2) - (2)]); ;}
1900 { (yyval) = (yyvsp[(3) - (3)]); ;}
1905 { (yyval) = (yyvsp[(3) - (3)]); ;}
1910 { (yyval) = (yyvsp[(2) - (2)]); ;}
1915 { (yyval) = (yyvsp[(4) - (4)]); ;}
1920 { (yyval) = (yyvsp[(4) - (4)]); ;}
1925 { (yyval) = (yyvsp[(2) - (2)]); ;}
1930 { (yyval) = (yyvsp[(3) - (3)]); ;}
1935 { (yyval) = (yyvsp[(3) - (3)]); ;}
1940 { (yyval) = (yyvsp[(2) - (2)]); ;}
1945 { (yyval) = (yyvsp[(3) - (3)]); ;}
1950 { (yyval) = NULL; ;}
1955 { (yyval) = (yyvsp[(3) - (3)]); ;}
1960 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
1965 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
1970 { (yyval) = NULL; ;}
1975 { /* For version 2 checksums, we don't want to remember
1976 private parameter names. */
1977 remove_node((yyvsp[(1) - (1)]));
1978 (yyval) = (yyvsp[(1) - (1)]);
1984 { remove_node((yyvsp[(1) - (1)]));
1985 (yyval) = (yyvsp[(1) - (1)]);
1991 { (yyval) = (yyvsp[(4) - (4)]); ;}
1996 { (yyval) = (yyvsp[(4) - (4)]); ;}
2001 { (yyval) = (yyvsp[(2) - (2)]); ;}
2006 { (yyval) = (yyvsp[(3) - (3)]); ;}
2011 { (yyval) = (yyvsp[(3) - (3)]); ;}
2016 { struct string_list *decl = *(yyvsp[(2) - (3)]);
2017 *(yyvsp[(2) - (3)]) = NULL;
2018 add_symbol(current_name, SYM_NORMAL, decl, is_extern);
2019 (yyval) = (yyvsp[(3) - (3)]);
2025 { (yyval) = NULL; ;}
2030 { remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); ;}
2035 { (yyval) = (yyvsp[(3) - (3)]); ;}
2040 { (yyval) = (yyvsp[(3) - (3)]); ;}
2045 { (yyval) = NULL; ;}
2050 { (yyval) = (yyvsp[(2) - (2)]); ;}
2055 { (yyval) = (yyvsp[(3) - (3)]); ;}
2060 { (yyval) = (yyvsp[(2) - (2)]); ;}
2065 { (yyval) = NULL; ;}
2070 { (yyval) = (yyvsp[(3) - (3)]); ;}
2075 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
2080 { (yyval) = (yyvsp[(2) - (2)]); ;}
2085 { (yyval) = (yyvsp[(2) - (2)]); ;}
2090 { (yyval) = NULL; ;}
2095 { (yyval) = (yyvsp[(3) - (3)]); ;}
2100 { (yyval) = (yyvsp[(4) - (4)]); ;}
2106 const char *name = strdup((*(yyvsp[(1) - (1)]))->string);
2107 add_symbol(name, SYM_ENUM_CONST, NULL, 0);
2114 const char *name = strdup((*(yyvsp[(1) - (3)]))->string);
2115 struct string_list *expr = copy_list_range(*(yyvsp[(3) - (3)]), *(yyvsp[(2) - (3)]));
2116 add_symbol(name, SYM_ENUM_CONST, expr, 0);
2122 { (yyval) = (yyvsp[(2) - (2)]); ;}
2127 { (yyval) = NULL; ;}
2132 { export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); ;}
2139 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2143 YY_STACK_PRINT (yyss, yyssp);
2147 /* Now `shift' the result of the reduction. Determine what state
2148 that goes to, based on the state we popped back to and the rule
2149 number reduced by. */
2153 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2154 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2155 yystate = yytable[yystate];
2157 yystate = yydefgoto[yyn - YYNTOKENS];
2162 /*------------------------------------.
2163 | yyerrlab -- here on detecting error |
2164 `------------------------------------*/
2166 /* If not already recovering from an error, report this error. */
2170 #if ! YYERROR_VERBOSE
2171 yyerror (YY_("syntax error"));
2174 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2175 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2177 YYSIZE_T yyalloc = 2 * yysize;
2178 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2179 yyalloc = YYSTACK_ALLOC_MAXIMUM;
2180 if (yymsg != yymsgbuf)
2181 YYSTACK_FREE (yymsg);
2182 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2184 yymsg_alloc = yyalloc;
2188 yymsg_alloc = sizeof yymsgbuf;
2192 if (0 < yysize && yysize <= yymsg_alloc)
2194 (void) yysyntax_error (yymsg, yystate, yychar);
2199 yyerror (YY_("syntax error"));
2201 goto yyexhaustedlab;
2209 if (yyerrstatus == 3)
2211 /* If just tried and failed to reuse lookahead token after an
2212 error, discard it. */
2214 if (yychar <= YYEOF)
2216 /* Return failure if at end of input. */
2217 if (yychar == YYEOF)
2222 yydestruct ("Error: discarding",
2228 /* Else will try to reuse lookahead token after shifting the error
2233 /*---------------------------------------------------.
2234 | yyerrorlab -- error raised explicitly by YYERROR. |
2235 `---------------------------------------------------*/
2238 /* Pacify compilers like GCC when the user code never invokes
2239 YYERROR and the label yyerrorlab therefore never appears in user
2241 if (/*CONSTCOND*/ 0)
2244 /* Do not reclaim the symbols of the rule which action triggered
2248 YY_STACK_PRINT (yyss, yyssp);
2253 /*-------------------------------------------------------------.
2254 | yyerrlab1 -- common code for both syntax error and YYERROR. |
2255 `-------------------------------------------------------------*/
2257 yyerrstatus = 3; /* Each real token shifted decrements this. */
2261 yyn = yypact[yystate];
2262 if (yyn != YYPACT_NINF)
2265 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2273 /* Pop the current state because it cannot handle the error token. */
2278 yydestruct ("Error: popping",
2279 yystos[yystate], yyvsp);
2282 YY_STACK_PRINT (yyss, yyssp);
2288 /* Shift the error token. */
2289 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2295 /*-------------------------------------.
2296 | yyacceptlab -- YYACCEPT comes here. |
2297 `-------------------------------------*/
2302 /*-----------------------------------.
2303 | yyabortlab -- YYABORT comes here. |
2304 `-----------------------------------*/
2309 #if !defined(yyoverflow) || YYERROR_VERBOSE
2310 /*-------------------------------------------------.
2311 | yyexhaustedlab -- memory exhaustion comes here. |
2312 `-------------------------------------------------*/
2314 yyerror (YY_("memory exhausted"));
2320 if (yychar != YYEMPTY)
2321 yydestruct ("Cleanup: discarding lookahead",
2323 /* Do not reclaim the symbols of the rule which action triggered
2324 this YYABORT or YYACCEPT. */
2326 YY_STACK_PRINT (yyss, yyssp);
2327 while (yyssp != yyss)
2329 yydestruct ("Cleanup: popping",
2330 yystos[*yyssp], yyvsp);
2335 YYSTACK_FREE (yyss);
2338 if (yymsg != yymsgbuf)
2339 YYSTACK_FREE (yymsg);
2341 /* Make sure YYID is used. */
2342 return YYID (yyresult);
2350 yyerror(const char *e)
2352 error_with_pos("%s", e);