1 /* A Bison parser, made by GNU Bison 2.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 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 2, or (at your option)
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, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
66 /* Put the tokens into the symbol table, so that GDB and other debuggers
95 EXPORT_SYMBOL_KEYW = 284,
97 ATTRIBUTE_PHRASE = 286,
100 EXPRESSION_PHRASE = 289,
114 #define ATTRIBUTE_KEYW 259
115 #define AUTO_KEYW 260
116 #define BOOL_KEYW 261
117 #define CHAR_KEYW 262
118 #define CONST_KEYW 263
119 #define DOUBLE_KEYW 264
120 #define ENUM_KEYW 265
121 #define EXTERN_KEYW 266
122 #define EXTENSION_KEYW 267
123 #define FLOAT_KEYW 268
124 #define INLINE_KEYW 269
126 #define LONG_KEYW 271
127 #define REGISTER_KEYW 272
128 #define RESTRICT_KEYW 273
129 #define SHORT_KEYW 274
130 #define SIGNED_KEYW 275
131 #define STATIC_KEYW 276
132 #define STRUCT_KEYW 277
133 #define TYPEDEF_KEYW 278
134 #define UNION_KEYW 279
135 #define UNSIGNED_KEYW 280
136 #define VOID_KEYW 281
137 #define VOLATILE_KEYW 282
138 #define TYPEOF_KEYW 283
139 #define EXPORT_SYMBOL_KEYW 284
140 #define ASM_PHRASE 285
141 #define ATTRIBUTE_PHRASE 286
142 #define BRACE_PHRASE 287
143 #define BRACKET_PHRASE 288
144 #define EXPRESSION_PHRASE 289
158 /* Copy the first part of user declarations. */
159 #line 24 "scripts/genksyms/parse.y"
164 #include "genksyms.h"
166 static int is_typedef;
167 static int is_extern;
168 static char *current_name;
169 static struct string_list *decl_spec;
171 static void yyerror(const char *);
174 remove_node(struct string_list **p)
176 struct string_list *node = *p;
182 remove_list(struct string_list **pb, struct string_list **pe)
184 struct string_list *b = *pb, *e = *pe;
191 /* Enabling traces. */
196 /* Enabling verbose error messages. */
197 #ifdef YYERROR_VERBOSE
198 # undef YYERROR_VERBOSE
199 # define YYERROR_VERBOSE 1
201 # define YYERROR_VERBOSE 0
204 /* Enabling the token table. */
205 #ifndef YYTOKEN_TABLE
206 # define YYTOKEN_TABLE 0
209 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
211 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
212 # define YYSTYPE_IS_DECLARED 1
213 # define YYSTYPE_IS_TRIVIAL 1
218 /* Copy the second part of user declarations. */
221 /* Line 216 of yacc.c. */
222 #line 223 "scripts/genksyms/parse.c"
229 typedef YYTYPE_UINT8 yytype_uint8;
231 typedef unsigned char yytype_uint8;
235 typedef YYTYPE_INT8 yytype_int8;
236 #elif (defined __STDC__ || defined __C99__FUNC__ \
237 || defined __cplusplus || defined _MSC_VER)
238 typedef signed char yytype_int8;
240 typedef short int yytype_int8;
244 typedef YYTYPE_UINT16 yytype_uint16;
246 typedef unsigned short int yytype_uint16;
250 typedef YYTYPE_INT16 yytype_int16;
252 typedef short int yytype_int16;
256 # ifdef __SIZE_TYPE__
257 # define YYSIZE_T __SIZE_TYPE__
258 # elif defined size_t
259 # define YYSIZE_T size_t
260 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
261 || defined __cplusplus || defined _MSC_VER)
262 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
263 # define YYSIZE_T size_t
265 # define YYSIZE_T unsigned int
269 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
274 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
275 # define YY_(msgid) dgettext ("bison-runtime", msgid)
279 # define YY_(msgid) msgid
283 /* Suppress unused-variable warnings by "using" E. */
284 #if ! defined lint || defined __GNUC__
285 # define YYUSE(e) ((void) (e))
287 # define YYUSE(e) /* empty */
290 /* Identity function, used to suppress warnings about constant conditions. */
294 #if (defined __STDC__ || defined __C99__FUNC__ \
295 || defined __cplusplus || defined _MSC_VER)
308 #if ! defined yyoverflow || YYERROR_VERBOSE
310 /* The parser invokes alloca or malloc; define the necessary symbols. */
312 # ifdef YYSTACK_USE_ALLOCA
313 # if YYSTACK_USE_ALLOCA
315 # define YYSTACK_ALLOC __builtin_alloca
316 # elif defined __BUILTIN_VA_ARG_INCR
317 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
319 # define YYSTACK_ALLOC __alloca
320 # elif defined _MSC_VER
321 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
322 # define alloca _alloca
324 # define YYSTACK_ALLOC alloca
325 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
326 || defined __cplusplus || defined _MSC_VER)
327 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
336 # ifdef YYSTACK_ALLOC
337 /* Pacify GCC's `empty if-body' warning. */
338 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
339 # ifndef YYSTACK_ALLOC_MAXIMUM
340 /* The OS might guarantee only one guard page at the bottom of the stack,
341 and a page size can be as small as 4096 bytes. So we cannot safely
342 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
343 to allow for a few compiler-allocated temporary stack slots. */
344 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
347 # define YYSTACK_ALLOC YYMALLOC
348 # define YYSTACK_FREE YYFREE
349 # ifndef YYSTACK_ALLOC_MAXIMUM
350 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
352 # if (defined __cplusplus && ! defined _STDLIB_H \
353 && ! ((defined YYMALLOC || defined malloc) \
354 && (defined YYFREE || defined free)))
355 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
361 # define YYMALLOC malloc
362 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
363 || defined __cplusplus || defined _MSC_VER)
364 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
369 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
370 || defined __cplusplus || defined _MSC_VER)
371 void free (void *); /* INFRINGES ON USER NAME SPACE */
375 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
378 #if (! defined yyoverflow \
379 && (! defined __cplusplus \
380 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
382 /* A type that is properly aligned for any stack member. */
389 /* The size of the maximum gap between one aligned stack and the next. */
390 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
392 /* The size of an array large to enough to hold all stacks, each with
394 # define YYSTACK_BYTES(N) \
395 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
396 + YYSTACK_GAP_MAXIMUM)
398 /* Copy COUNT objects from FROM to TO. The source and destination do
401 # if defined __GNUC__ && 1 < __GNUC__
402 # define YYCOPY(To, From, Count) \
403 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
405 # define YYCOPY(To, From, Count) \
409 for (yyi = 0; yyi < (Count); yyi++) \
410 (To)[yyi] = (From)[yyi]; \
416 /* Relocate STACK from its old location to the new one. The
417 local variables YYSIZE and YYSTACKSIZE give the old and new number of
418 elements in the stack, and YYPTR gives the new location of the
419 stack. Advance YYPTR to a properly aligned location for the next
421 # define YYSTACK_RELOCATE(Stack) \
424 YYSIZE_T yynewbytes; \
425 YYCOPY (&yyptr->Stack, Stack, yysize); \
426 Stack = &yyptr->Stack; \
427 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
428 yyptr += yynewbytes / sizeof (*yyptr); \
434 /* YYFINAL -- State number of the termination state. */
436 /* YYLAST -- Last index in YYTABLE. */
439 /* YYNTOKENS -- Number of terminals. */
441 /* YYNNTS -- Number of nonterminals. */
443 /* YYNRULES -- Number of rules. */
445 /* YYNRULES -- Number of states. */
446 #define YYNSTATES 178
448 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
450 #define YYMAXUTOK 298
452 #define YYTRANSLATE(YYX) \
453 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
455 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
456 static const yytype_uint8 yytranslate[] =
458 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
459 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
460 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
461 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
462 47, 49, 48, 2, 46, 2, 2, 2, 2, 2,
463 2, 2, 2, 2, 2, 2, 2, 2, 52, 44,
464 2, 50, 2, 2, 2, 2, 2, 2, 2, 2,
465 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
466 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
467 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
468 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
470 2, 2, 2, 51, 2, 45, 2, 2, 2, 2,
471 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
472 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
474 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
476 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
477 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
478 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
479 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
480 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
481 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
482 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
483 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
484 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
485 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
486 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
487 35, 36, 37, 38, 39, 40, 41, 42, 43
491 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
493 static const yytype_uint16 yyprhs[] =
495 0, 0, 3, 5, 8, 9, 12, 13, 18, 19,
496 23, 25, 27, 29, 31, 34, 37, 41, 42, 44,
497 46, 50, 55, 56, 58, 60, 63, 65, 67, 69,
498 71, 73, 75, 77, 79, 81, 87, 92, 95, 98,
499 101, 105, 109, 113, 116, 119, 122, 124, 126, 128,
500 130, 132, 134, 136, 138, 140, 142, 144, 147, 148,
501 150, 152, 155, 157, 159, 161, 163, 166, 168, 170,
502 175, 180, 183, 187, 191, 194, 196, 198, 200, 205,
503 210, 213, 217, 221, 224, 226, 230, 231, 233, 235,
504 239, 242, 245, 247, 248, 250, 252, 257, 262, 265,
505 269, 273, 277, 278, 280, 283, 287, 291, 292, 294,
506 296, 299, 303, 306, 307, 309, 311, 315, 318, 321,
507 323, 326, 327, 329, 332, 333, 335
510 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
511 static const yytype_int8 yyrhs[] =
513 54, 0, -1, 55, -1, 54, 55, -1, -1, 56,
514 57, -1, -1, 12, 23, 58, 60, -1, -1, 23,
515 59, 60, -1, 60, -1, 84, -1, 96, -1, 98,
516 -1, 1, 44, -1, 1, 45, -1, 64, 61, 44,
517 -1, -1, 62, -1, 63, -1, 62, 46, 63, -1,
518 74, 97, 95, 85, -1, -1, 65, -1, 66, -1,
519 65, 66, -1, 67, -1, 68, -1, 5, -1, 17,
520 -1, 21, -1, 11, -1, 14, -1, 69, -1, 73,
521 -1, 28, 47, 65, 48, 49, -1, 28, 47, 65,
522 49, -1, 22, 37, -1, 24, 37, -1, 10, 37,
523 -1, 22, 37, 87, -1, 24, 37, 87, -1, 10,
524 37, 32, -1, 10, 32, -1, 22, 87, -1, 24,
525 87, -1, 7, -1, 19, -1, 15, -1, 16, -1,
526 20, -1, 25, -1, 13, -1, 9, -1, 26, -1,
527 6, -1, 41, -1, 48, 71, -1, -1, 72, -1,
528 73, -1, 72, 73, -1, 8, -1, 27, -1, 31,
529 -1, 18, -1, 70, 74, -1, 75, -1, 37, -1,
530 75, 47, 78, 49, -1, 75, 47, 1, 49, -1,
531 75, 33, -1, 47, 74, 49, -1, 47, 1, 49,
532 -1, 70, 76, -1, 77, -1, 37, -1, 41, -1,
533 77, 47, 78, 49, -1, 77, 47, 1, 49, -1,
534 77, 33, -1, 47, 76, 49, -1, 47, 1, 49,
535 -1, 79, 36, -1, 79, -1, 80, 46, 36, -1,
536 -1, 80, -1, 81, -1, 80, 46, 81, -1, 65,
537 82, -1, 70, 82, -1, 83, -1, -1, 37, -1,
538 41, -1, 83, 47, 78, 49, -1, 83, 47, 1,
539 49, -1, 83, 33, -1, 47, 82, 49, -1, 47,
540 1, 49, -1, 64, 74, 32, -1, -1, 86, -1,
541 50, 34, -1, 51, 88, 45, -1, 51, 1, 45,
542 -1, -1, 89, -1, 90, -1, 89, 90, -1, 64,
543 91, 44, -1, 1, 44, -1, -1, 92, -1, 93,
544 -1, 92, 46, 93, -1, 76, 95, -1, 37, 94,
545 -1, 94, -1, 52, 34, -1, -1, 31, -1, 30,
546 44, -1, -1, 30, -1, 29, 47, 37, 49, 44,
550 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
551 static const yytype_uint16 yyrline[] =
553 0, 103, 103, 104, 108, 108, 114, 114, 116, 116,
554 118, 119, 120, 121, 122, 123, 127, 141, 142, 146,
555 154, 167, 173, 174, 178, 179, 183, 189, 193, 194,
556 195, 196, 197, 201, 202, 203, 204, 208, 210, 212,
557 216, 223, 230, 239, 240, 241, 245, 246, 247, 248,
558 249, 250, 251, 252, 253, 254, 255, 259, 264, 265,
559 269, 270, 274, 274, 274, 275, 283, 284, 288, 297,
560 299, 301, 303, 305, 312, 313, 317, 318, 319, 321,
561 323, 325, 327, 332, 333, 334, 338, 339, 343, 344,
562 349, 354, 356, 360, 361, 369, 373, 375, 377, 379,
563 381, 386, 395, 396, 401, 406, 407, 411, 412, 416,
564 417, 421, 423, 428, 429, 433, 434, 438, 439, 440,
565 444, 448, 449, 453, 457, 458, 462
569 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
570 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
571 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
572 static const char *const yytname[] =
574 "$end", "error", "$undefined", "ASM_KEYW", "ATTRIBUTE_KEYW",
575 "AUTO_KEYW", "BOOL_KEYW", "CHAR_KEYW", "CONST_KEYW", "DOUBLE_KEYW",
576 "ENUM_KEYW", "EXTERN_KEYW", "EXTENSION_KEYW", "FLOAT_KEYW",
577 "INLINE_KEYW", "INT_KEYW", "LONG_KEYW", "REGISTER_KEYW", "RESTRICT_KEYW",
578 "SHORT_KEYW", "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW",
579 "TYPEDEF_KEYW", "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW",
580 "VOLATILE_KEYW", "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE",
581 "ATTRIBUTE_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
582 "EXPRESSION_PHRASE", "CHAR", "DOTS", "IDENT", "INT", "REAL", "STRING",
583 "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "'*'", "')'",
584 "'='", "'{'", "':'", "$accept", "declaration_seq", "declaration", "@1",
585 "declaration1", "@2", "@3", "simple_declaration",
586 "init_declarator_list_opt", "init_declarator_list", "init_declarator",
587 "decl_specifier_seq_opt", "decl_specifier_seq", "decl_specifier",
588 "storage_class_specifier", "type_specifier", "simple_type_specifier",
589 "ptr_operator", "cvar_qualifier_seq_opt", "cvar_qualifier_seq",
590 "cvar_qualifier", "declarator", "direct_declarator", "nested_declarator",
591 "direct_nested_declarator", "parameter_declaration_clause",
592 "parameter_declaration_list_opt", "parameter_declaration_list",
593 "parameter_declaration", "m_abstract_declarator",
594 "direct_m_abstract_declarator", "function_definition", "initializer_opt",
595 "initializer", "class_body", "member_specification_opt",
596 "member_specification", "member_declaration",
597 "member_declarator_list_opt", "member_declarator_list",
598 "member_declarator", "member_bitfield_declarator", "attribute_opt",
599 "asm_definition", "asm_phrase_opt", "export_definition", 0
604 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
606 static const yytype_uint16 yytoknum[] =
608 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
609 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
610 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
611 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
612 295, 296, 297, 298, 59, 125, 44, 40, 42, 41,
617 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
618 static const yytype_uint8 yyr1[] =
620 0, 53, 54, 54, 56, 55, 58, 57, 59, 57,
621 57, 57, 57, 57, 57, 57, 60, 61, 61, 62,
622 62, 63, 64, 64, 65, 65, 66, 66, 67, 67,
623 67, 67, 67, 68, 68, 68, 68, 68, 68, 68,
624 68, 68, 68, 68, 68, 68, 69, 69, 69, 69,
625 69, 69, 69, 69, 69, 69, 69, 70, 71, 71,
626 72, 72, 73, 73, 73, 73, 74, 74, 75, 75,
627 75, 75, 75, 75, 76, 76, 77, 77, 77, 77,
628 77, 77, 77, 78, 78, 78, 79, 79, 80, 80,
629 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
630 83, 84, 85, 85, 86, 87, 87, 88, 88, 89,
631 89, 90, 90, 91, 91, 92, 92, 93, 93, 93,
632 94, 95, 95, 96, 97, 97, 98
635 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
636 static const yytype_uint8 yyr2[] =
638 0, 2, 1, 2, 0, 2, 0, 4, 0, 3,
639 1, 1, 1, 1, 2, 2, 3, 0, 1, 1,
640 3, 4, 0, 1, 1, 2, 1, 1, 1, 1,
641 1, 1, 1, 1, 1, 5, 4, 2, 2, 2,
642 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
643 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
644 1, 2, 1, 1, 1, 1, 2, 1, 1, 4,
645 4, 2, 3, 3, 2, 1, 1, 1, 4, 4,
646 2, 3, 3, 2, 1, 3, 0, 1, 1, 3,
647 2, 2, 1, 0, 1, 1, 4, 4, 2, 3,
648 3, 3, 0, 1, 2, 3, 3, 0, 1, 1,
649 2, 3, 2, 0, 1, 1, 3, 2, 2, 1,
653 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
654 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
655 means the default is an error. */
656 static const yytype_uint8 yydefact[] =
658 4, 4, 2, 0, 1, 3, 0, 28, 55, 46,
659 62, 53, 0, 31, 0, 52, 32, 48, 49, 29,
660 65, 47, 50, 30, 0, 8, 0, 51, 54, 63,
661 0, 0, 0, 64, 56, 5, 10, 17, 23, 24,
662 26, 27, 33, 34, 11, 12, 13, 14, 15, 43,
663 39, 6, 37, 0, 44, 22, 38, 45, 0, 0,
664 123, 68, 0, 58, 0, 18, 19, 0, 124, 67,
665 25, 42, 22, 40, 0, 113, 0, 0, 109, 9,
666 17, 41, 0, 0, 0, 0, 57, 59, 60, 16,
667 0, 66, 125, 101, 121, 71, 0, 7, 112, 106,
668 76, 77, 0, 0, 0, 121, 75, 0, 114, 115,
669 119, 105, 0, 110, 124, 0, 36, 0, 73, 72,
670 61, 20, 122, 102, 0, 93, 0, 84, 87, 88,
671 118, 0, 76, 0, 120, 74, 117, 80, 0, 111,
672 0, 35, 126, 0, 21, 103, 70, 94, 56, 0,
673 93, 90, 92, 69, 83, 0, 82, 81, 0, 0,
674 116, 104, 0, 95, 0, 91, 98, 0, 85, 89,
675 79, 78, 100, 99, 0, 0, 97, 96
678 /* YYDEFGOTO[NTERM-NUM]. */
679 static const yytype_int16 yydefgoto[] =
681 -1, 1, 2, 3, 35, 72, 55, 36, 64, 65,
682 66, 75, 38, 39, 40, 41, 42, 67, 86, 87,
683 43, 114, 69, 105, 106, 126, 127, 128, 129, 151,
684 152, 44, 144, 145, 54, 76, 77, 78, 107, 108,
685 109, 110, 123, 45, 94, 46
688 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
690 #define YYPACT_NINF -135
691 static const yytype_int16 yypact[] =
693 -135, 11, -135, 312, -135, -135, 24, -135, -135, -135,
694 -135, -135, -23, -135, -2, -135, -135, -135, -135, -135,
695 -135, -135, -135, -135, -17, -135, -11, -135, -135, -135,
696 -3, 16, 26, -135, -135, -135, -135, 34, 482, -135,
697 -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
698 -8, -135, 22, 97, -135, 482, 22, -135, 482, 56,
699 -135, -135, 12, 10, 50, 49, -135, 34, -13, 15,
700 -135, -135, 482, -135, 47, -25, 51, 145, -135, -135,
701 34, -135, 356, 52, 71, 77, -135, 10, -135, -135,
702 34, -135, -135, -135, 68, -135, 193, -135, -135, -135,
703 48, -135, 6, 93, 37, 68, 18, 85, 84, -135,
704 -135, -135, 87, -135, 102, 86, -135, 89, -135, -135,
705 -135, -135, -135, 90, 88, 401, 94, 100, 101, -135,
706 -135, 99, -135, 108, -135, -135, -135, -135, 230, -135,
707 -25, -135, -135, 105, -135, -135, -135, -135, -135, 9,
708 42, -135, 28, -135, -135, 445, -135, -135, 119, 125,
709 -135, -135, 126, -135, 128, -135, -135, 267, -135, -135,
710 -135, -135, -135, -135, 129, 130, -135, -135
713 /* YYPGOTO[NTERM-NUM]. */
714 static const yytype_int16 yypgoto[] =
716 -135, -135, 179, -135, -135, -135, -135, -47, -135, -135,
717 91, 0, -58, -37, -135, -135, -135, -73, -135, -135,
718 -48, -32, -135, -38, -135, -134, -135, -135, 29, -63,
719 -135, -135, -135, -135, -20, -135, -135, 106, -135, -135,
720 45, 95, 82, -135, -135, -135
723 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
724 positive, shift that token. If negative, reduce the rule which
725 number is the opposite. If zero, do what YYDEFACT says.
726 If YYTABLE_NINF, syntax error. */
727 #define YYTABLE_NINF -109
728 static const yytype_int16 yytable[] =
730 82, 70, 104, 37, 159, 68, 57, 131, 79, 49,
731 162, 4, 100, 84, 50, 88, 101, 92, 10, 93,
732 52, 51, 102, 63, 71, 97, 56, 103, 20, 104,
733 85, 104, 73, 175, 53, 91, 81, 29, 125, 120,
734 53, 33, -93, 132, 58, 70, 147, 101, 95, 61,
735 163, 137, 150, 102, 63, 80, 149, 63, -93, 62,
736 63, 166, 96, 59, 133, 138, 135, 104, 47, 48,
737 60, 61, 80, 53, 132, 167, 150, 150, 101, 147,
738 125, 62, 63, 163, 102, 63, 164, 165, 70, 149,
739 63, 98, 99, 83, 89, 90, 111, 125, 74, 122,
740 103, 117, 7, 8, 9, 10, 11, 12, 13, 125,
741 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
742 118, 26, 27, 28, 29, 30, 119, 134, 33, 139,
743 140, 98, 92, 142, -22, 141, 154, 146, 34, 161,
744 143, -22, -107, 153, -22, -22, 112, 155, 156, -22,
745 7, 8, 9, 10, 11, 12, 13, 157, 15, 16,
746 17, 18, 19, 20, 21, 22, 23, 24, 170, 26,
747 27, 28, 29, 30, 171, 172, 33, 173, 176, 177,
748 5, 121, -22, 113, 169, 160, 34, 136, 0, -22,
749 -108, 0, -22, -22, 124, 130, 0, -22, 7, 8,
750 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
751 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
752 29, 30, 0, 0, 33, 0, 0, 0, 0, -86,
753 0, 158, 0, 0, 34, 7, 8, 9, 10, 11,
754 12, 13, -86, 15, 16, 17, 18, 19, 20, 21,
755 22, 23, 24, 0, 26, 27, 28, 29, 30, 0,
756 0, 33, 0, 0, 0, 0, -86, 0, 174, 0,
757 0, 34, 7, 8, 9, 10, 11, 12, 13, -86,
758 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
759 0, 26, 27, 28, 29, 30, 0, 0, 33, 0,
760 0, 0, 0, -86, 0, 0, 0, 0, 34, 0,
761 0, 0, 0, 6, 0, 0, -86, 7, 8, 9,
762 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
763 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
764 30, 31, 32, 33, 0, 0, 0, 0, 0, -22,
765 0, 0, 0, 34, 0, 0, -22, 0, 0, -22,
766 -22, 7, 8, 9, 10, 11, 12, 13, 0, 15,
767 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
768 26, 27, 28, 29, 30, 0, 0, 33, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 34, 0, 0,
770 0, 0, 0, 0, 115, 116, 7, 8, 9, 10,
771 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
772 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
773 0, 0, 33, 0, 0, 0, 0, 0, 147, 0,
774 0, 0, 148, 0, 0, 0, 0, 0, 149, 63,
775 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
776 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
777 27, 28, 29, 30, 0, 0, 33, 0, 0, 0,
778 0, 168, 0, 0, 0, 0, 34, 7, 8, 9,
779 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
780 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
781 30, 0, 0, 33, 0, 0, 0, 0, 0, 0,
785 static const yytype_int16 yycheck[] =
787 58, 38, 75, 3, 138, 37, 26, 1, 55, 32,
788 1, 0, 37, 1, 37, 63, 41, 30, 8, 32,
789 37, 23, 47, 48, 32, 72, 37, 52, 18, 102,
790 62, 104, 52, 167, 51, 67, 56, 27, 96, 87,
791 51, 31, 33, 37, 47, 82, 37, 41, 33, 37,
792 41, 33, 125, 47, 48, 55, 47, 48, 49, 47,
793 48, 33, 47, 47, 102, 47, 104, 140, 44, 45,
794 44, 37, 72, 51, 37, 47, 149, 150, 41, 37,
795 138, 47, 48, 41, 47, 48, 149, 150, 125, 47,
796 48, 44, 45, 37, 44, 46, 45, 155, 1, 31,
797 52, 49, 5, 6, 7, 8, 9, 10, 11, 167,
798 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
799 49, 24, 25, 26, 27, 28, 49, 34, 31, 44,
800 46, 44, 30, 44, 37, 49, 36, 49, 41, 34,
801 50, 44, 45, 49, 47, 48, 1, 46, 49, 52,
802 5, 6, 7, 8, 9, 10, 11, 49, 13, 14,
803 15, 16, 17, 18, 19, 20, 21, 22, 49, 24,
804 25, 26, 27, 28, 49, 49, 31, 49, 49, 49,
805 1, 90, 37, 77, 155, 140, 41, 105, -1, 44,
806 45, -1, 47, 48, 1, 100, -1, 52, 5, 6,
807 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
808 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
809 27, 28, -1, -1, 31, -1, -1, -1, -1, 36,
810 -1, 1, -1, -1, 41, 5, 6, 7, 8, 9,
811 10, 11, 49, 13, 14, 15, 16, 17, 18, 19,
812 20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
813 -1, 31, -1, -1, -1, -1, 36, -1, 1, -1,
814 -1, 41, 5, 6, 7, 8, 9, 10, 11, 49,
815 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
816 -1, 24, 25, 26, 27, 28, -1, -1, 31, -1,
817 -1, -1, -1, 36, -1, -1, -1, -1, 41, -1,
818 -1, -1, -1, 1, -1, -1, 49, 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, -1, -1, -1, -1, -1, 37,
822 -1, -1, -1, 41, -1, -1, 44, -1, -1, 47,
823 48, 5, 6, 7, 8, 9, 10, 11, -1, 13,
824 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
825 24, 25, 26, 27, 28, -1, -1, 31, -1, -1,
826 -1, -1, -1, -1, -1, -1, -1, 41, -1, -1,
827 -1, -1, -1, -1, 48, 49, 5, 6, 7, 8,
828 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
829 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
830 -1, -1, 31, -1, -1, -1, -1, -1, 37, -1,
831 -1, -1, 41, -1, -1, -1, -1, -1, 47, 48,
832 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
833 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
834 25, 26, 27, 28, -1, -1, 31, -1, -1, -1,
835 -1, 36, -1, -1, -1, -1, 41, 5, 6, 7,
836 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
837 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
838 28, -1, -1, 31, -1, -1, -1, -1, -1, -1,
842 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
843 symbol of state STATE-NUM. */
844 static const yytype_uint8 yystos[] =
846 0, 54, 55, 56, 0, 55, 1, 5, 6, 7,
847 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
848 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
849 28, 29, 30, 31, 41, 57, 60, 64, 65, 66,
850 67, 68, 69, 73, 84, 96, 98, 44, 45, 32,
851 37, 23, 37, 51, 87, 59, 37, 87, 47, 47,
852 44, 37, 47, 48, 61, 62, 63, 70, 74, 75,
853 66, 32, 58, 87, 1, 64, 88, 89, 90, 60,
854 64, 87, 65, 37, 1, 74, 71, 72, 73, 44,
855 46, 74, 30, 32, 97, 33, 47, 60, 44, 45,
856 37, 41, 47, 52, 70, 76, 77, 91, 92, 93,
857 94, 45, 1, 90, 74, 48, 49, 49, 49, 49,
858 73, 63, 31, 95, 1, 65, 78, 79, 80, 81,
859 94, 1, 37, 76, 34, 76, 95, 33, 47, 44,
860 46, 49, 44, 50, 85, 86, 49, 37, 41, 47,
861 70, 82, 83, 49, 36, 46, 49, 49, 1, 78,
862 93, 34, 1, 41, 82, 82, 33, 47, 36, 81,
863 49, 49, 49, 49, 1, 78, 49, 49
866 #define yyerrok (yyerrstatus = 0)
867 #define yyclearin (yychar = YYEMPTY)
871 #define YYACCEPT goto yyacceptlab
872 #define YYABORT goto yyabortlab
873 #define YYERROR goto yyerrorlab
876 /* Like YYERROR except do call yyerror. This remains here temporarily
877 to ease the transition to the new meaning of YYERROR, for GCC.
878 Once GCC version 2 has supplanted version 1, this can go. */
880 #define YYFAIL goto yyerrlab
882 #define YYRECOVERING() (!!yyerrstatus)
884 #define YYBACKUP(Token, Value) \
886 if (yychar == YYEMPTY && yylen == 1) \
890 yytoken = YYTRANSLATE (yychar); \
896 yyerror (YY_("syntax error: cannot back up")); \
903 #define YYERRCODE 256
906 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
907 If N is 0, then set CURRENT to the empty location which ends
908 the previous symbol: RHS[0] (always defined). */
910 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
911 #ifndef YYLLOC_DEFAULT
912 # define YYLLOC_DEFAULT(Current, Rhs, N) \
916 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
917 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
918 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
919 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
923 (Current).first_line = (Current).last_line = \
924 YYRHSLOC (Rhs, 0).last_line; \
925 (Current).first_column = (Current).last_column = \
926 YYRHSLOC (Rhs, 0).last_column; \
932 /* YY_LOCATION_PRINT -- Print the location on the stream.
933 This macro was not mandated originally: define only if we know
934 we won't break user code: when these are the locations we know. */
936 #ifndef YY_LOCATION_PRINT
937 # if YYLTYPE_IS_TRIVIAL
938 # define YY_LOCATION_PRINT(File, Loc) \
939 fprintf (File, "%d.%d-%d.%d", \
940 (Loc).first_line, (Loc).first_column, \
941 (Loc).last_line, (Loc).last_column)
943 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
948 /* YYLEX -- calling `yylex' with the right arguments. */
951 # define YYLEX yylex (YYLEX_PARAM)
953 # define YYLEX yylex ()
956 /* Enable debugging if requested. */
960 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
961 # define YYFPRINTF fprintf
964 # define YYDPRINTF(Args) \
970 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
974 YYFPRINTF (stderr, "%s ", Title); \
975 yy_symbol_print (stderr, \
977 YYFPRINTF (stderr, "\n"); \
982 /*--------------------------------.
983 | Print this symbol on YYOUTPUT. |
984 `--------------------------------*/
987 #if (defined __STDC__ || defined __C99__FUNC__ \
988 || defined __cplusplus || defined _MSC_VER)
990 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
993 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
996 YYSTYPE const * const yyvaluep;
1002 if (yytype < YYNTOKENS)
1003 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1015 /*--------------------------------.
1016 | Print this symbol on YYOUTPUT. |
1017 `--------------------------------*/
1019 #if (defined __STDC__ || defined __C99__FUNC__ \
1020 || defined __cplusplus || defined _MSC_VER)
1022 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1025 yy_symbol_print (yyoutput, yytype, yyvaluep)
1028 YYSTYPE const * const yyvaluep;
1031 if (yytype < YYNTOKENS)
1032 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1034 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1036 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1037 YYFPRINTF (yyoutput, ")");
1040 /*------------------------------------------------------------------.
1041 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1043 `------------------------------------------------------------------*/
1045 #if (defined __STDC__ || defined __C99__FUNC__ \
1046 || defined __cplusplus || defined _MSC_VER)
1048 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1051 yy_stack_print (bottom, top)
1052 yytype_int16 *bottom;
1056 YYFPRINTF (stderr, "Stack now");
1057 for (; bottom <= top; ++bottom)
1058 YYFPRINTF (stderr, " %d", *bottom);
1059 YYFPRINTF (stderr, "\n");
1062 # define YY_STACK_PRINT(Bottom, Top) \
1065 yy_stack_print ((Bottom), (Top)); \
1069 /*------------------------------------------------.
1070 | Report that the YYRULE is going to be reduced. |
1071 `------------------------------------------------*/
1073 #if (defined __STDC__ || defined __C99__FUNC__ \
1074 || defined __cplusplus || defined _MSC_VER)
1076 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1079 yy_reduce_print (yyvsp, yyrule)
1084 int yynrhs = yyr2[yyrule];
1086 unsigned long int yylno = yyrline[yyrule];
1087 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1089 /* The symbols being reduced. */
1090 for (yyi = 0; yyi < yynrhs; yyi++)
1092 fprintf (stderr, " $%d = ", yyi + 1);
1093 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1094 &(yyvsp[(yyi + 1) - (yynrhs)])
1096 fprintf (stderr, "\n");
1100 # define YY_REDUCE_PRINT(Rule) \
1103 yy_reduce_print (yyvsp, Rule); \
1106 /* Nonzero means print parse trace. It is left uninitialized so that
1107 multiple parsers can coexist. */
1109 #else /* !YYDEBUG */
1110 # define YYDPRINTF(Args)
1111 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1112 # define YY_STACK_PRINT(Bottom, Top)
1113 # define YY_REDUCE_PRINT(Rule)
1114 #endif /* !YYDEBUG */
1117 /* YYINITDEPTH -- initial size of the parser's stacks. */
1119 # define YYINITDEPTH 200
1122 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1123 if the built-in stack extension method is used).
1125 Do not make this value too large; the results are undefined if
1126 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1127 evaluated with infinite-precision integer arithmetic. */
1130 # define YYMAXDEPTH 10000
1138 # if defined __GLIBC__ && defined _STRING_H
1139 # define yystrlen strlen
1141 /* Return the length of YYSTR. */
1142 #if (defined __STDC__ || defined __C99__FUNC__ \
1143 || defined __cplusplus || defined _MSC_VER)
1145 yystrlen (const char *yystr)
1153 for (yylen = 0; yystr[yylen]; yylen++)
1161 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1162 # define yystpcpy stpcpy
1164 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1166 #if (defined __STDC__ || defined __C99__FUNC__ \
1167 || defined __cplusplus || defined _MSC_VER)
1169 yystpcpy (char *yydest, const char *yysrc)
1172 yystpcpy (yydest, yysrc)
1178 const char *yys = yysrc;
1180 while ((*yyd++ = *yys++) != '\0')
1189 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1190 quotes and backslashes, so that it's suitable for yyerror. The
1191 heuristic is that double-quoting is unnecessary unless the string
1192 contains an apostrophe, a comma, or backslash (other than
1193 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1194 null, do not copy; instead, return the length of what the result
1197 yytnamerr (char *yyres, const char *yystr)
1202 char const *yyp = yystr;
1209 goto do_not_strip_quotes;
1213 goto do_not_strip_quotes;
1226 do_not_strip_quotes: ;
1230 return yystrlen (yystr);
1232 return yystpcpy (yyres, yystr) - yyres;
1236 /* Copy into YYRESULT an error message about the unexpected token
1237 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1238 including the terminating null byte. If YYRESULT is null, do not
1239 copy anything; just return the number of bytes that would be
1240 copied. As a special case, return 0 if an ordinary "syntax error"
1241 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1242 size calculation. */
1244 yysyntax_error (char *yyresult, int yystate, int yychar)
1246 int yyn = yypact[yystate];
1248 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1252 int yytype = YYTRANSLATE (yychar);
1253 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1254 YYSIZE_T yysize = yysize0;
1256 int yysize_overflow = 0;
1257 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1258 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1262 /* This is so xgettext sees the translatable formats that are
1263 constructed on the fly. */
1264 YY_("syntax error, unexpected %s");
1265 YY_("syntax error, unexpected %s, expecting %s");
1266 YY_("syntax error, unexpected %s, expecting %s or %s");
1267 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1268 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1272 static char const yyunexpected[] = "syntax error, unexpected %s";
1273 static char const yyexpecting[] = ", expecting %s";
1274 static char const yyor[] = " or %s";
1275 char yyformat[sizeof yyunexpected
1276 + sizeof yyexpecting - 1
1277 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1278 * (sizeof yyor - 1))];
1279 char const *yyprefix = yyexpecting;
1281 /* Start YYX at -YYN if negative to avoid negative indexes in
1283 int yyxbegin = yyn < 0 ? -yyn : 0;
1285 /* Stay within bounds of both yycheck and yytname. */
1286 int yychecklim = YYLAST - yyn + 1;
1287 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1290 yyarg[0] = yytname[yytype];
1291 yyfmt = yystpcpy (yyformat, yyunexpected);
1293 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1294 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1296 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1300 yyformat[sizeof yyunexpected - 1] = '\0';
1303 yyarg[yycount++] = yytname[yyx];
1304 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1305 yysize_overflow |= (yysize1 < yysize);
1307 yyfmt = yystpcpy (yyfmt, yyprefix);
1311 yyf = YY_(yyformat);
1312 yysize1 = yysize + yystrlen (yyf);
1313 yysize_overflow |= (yysize1 < yysize);
1316 if (yysize_overflow)
1317 return YYSIZE_MAXIMUM;
1321 /* Avoid sprintf, as that infringes on the user's name space.
1322 Don't have undefined behavior even if the translation
1323 produced a string with the wrong number of "%s"s. */
1324 char *yyp = yyresult;
1326 while ((*yyp = *yyf) != '\0')
1328 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1330 yyp += yytnamerr (yyp, yyarg[yyi++]);
1343 #endif /* YYERROR_VERBOSE */
1346 /*-----------------------------------------------.
1347 | Release the memory associated to this symbol. |
1348 `-----------------------------------------------*/
1351 #if (defined __STDC__ || defined __C99__FUNC__ \
1352 || defined __cplusplus || defined _MSC_VER)
1354 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1357 yydestruct (yymsg, yytype, yyvaluep)
1367 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1378 /* Prevent warnings from -Wmissing-prototypes. */
1380 #ifdef YYPARSE_PARAM
1381 #if defined __STDC__ || defined __cplusplus
1382 int yyparse (void *YYPARSE_PARAM);
1386 #else /* ! YYPARSE_PARAM */
1387 #if defined __STDC__ || defined __cplusplus
1392 #endif /* ! YYPARSE_PARAM */
1396 /* The look-ahead symbol. */
1399 /* The semantic value of the look-ahead symbol. */
1402 /* Number of syntax errors so far. */
1411 #ifdef YYPARSE_PARAM
1412 #if (defined __STDC__ || defined __C99__FUNC__ \
1413 || defined __cplusplus || defined _MSC_VER)
1415 yyparse (void *YYPARSE_PARAM)
1418 yyparse (YYPARSE_PARAM)
1419 void *YYPARSE_PARAM;
1421 #else /* ! YYPARSE_PARAM */
1422 #if (defined __STDC__ || defined __C99__FUNC__ \
1423 || defined __cplusplus || defined _MSC_VER)
1437 /* Number of tokens to shift before error messages enabled. */
1439 /* Look-ahead token as an internal (translated) token number. */
1442 /* Buffer for error messages, and its allocated size. */
1444 char *yymsg = yymsgbuf;
1445 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1448 /* Three stacks and their tools:
1449 `yyss': related to states,
1450 `yyvs': related to semantic values,
1451 `yyls': related to locations.
1453 Refer to the stacks thru separate pointers, to allow yyoverflow
1454 to reallocate them elsewhere. */
1456 /* The state stack. */
1457 yytype_int16 yyssa[YYINITDEPTH];
1458 yytype_int16 *yyss = yyssa;
1459 yytype_int16 *yyssp;
1461 /* The semantic value stack. */
1462 YYSTYPE yyvsa[YYINITDEPTH];
1463 YYSTYPE *yyvs = yyvsa;
1468 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1470 YYSIZE_T yystacksize = YYINITDEPTH;
1472 /* The variables used to return semantic value and location from the
1477 /* The number of symbols on the RHS of the reduced rule.
1478 Keep to zero when no symbol should be popped. */
1481 YYDPRINTF ((stderr, "Starting parse\n"));
1486 yychar = YYEMPTY; /* Cause a token to be read. */
1488 /* Initialize stack pointers.
1489 Waste one element of value and location stack
1490 so that they stay on the same level as the state stack.
1491 The wasted elements are never initialized. */
1498 /*------------------------------------------------------------.
1499 | yynewstate -- Push a new state, which is found in yystate. |
1500 `------------------------------------------------------------*/
1502 /* In all cases, when you get here, the value and location stacks
1503 have just been pushed. So pushing a state here evens the stacks. */
1509 if (yyss + yystacksize - 1 <= yyssp)
1511 /* Get the current used size of the three stacks, in elements. */
1512 YYSIZE_T yysize = yyssp - yyss + 1;
1516 /* Give user a chance to reallocate the stack. Use copies of
1517 these so that the &'s don't force the real ones into
1519 YYSTYPE *yyvs1 = yyvs;
1520 yytype_int16 *yyss1 = yyss;
1523 /* Each stack pointer address is followed by the size of the
1524 data in use in that stack, in bytes. This used to be a
1525 conditional around just the two extra args, but that might
1526 be undefined if yyoverflow is a macro. */
1527 yyoverflow (YY_("memory exhausted"),
1528 &yyss1, yysize * sizeof (*yyssp),
1529 &yyvs1, yysize * sizeof (*yyvsp),
1536 #else /* no yyoverflow */
1537 # ifndef YYSTACK_RELOCATE
1538 goto yyexhaustedlab;
1540 /* Extend the stack our own way. */
1541 if (YYMAXDEPTH <= yystacksize)
1542 goto yyexhaustedlab;
1544 if (YYMAXDEPTH < yystacksize)
1545 yystacksize = YYMAXDEPTH;
1548 yytype_int16 *yyss1 = yyss;
1549 union yyalloc *yyptr =
1550 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1552 goto yyexhaustedlab;
1553 YYSTACK_RELOCATE (yyss);
1554 YYSTACK_RELOCATE (yyvs);
1556 # undef YYSTACK_RELOCATE
1558 YYSTACK_FREE (yyss1);
1561 #endif /* no yyoverflow */
1563 yyssp = yyss + yysize - 1;
1564 yyvsp = yyvs + yysize - 1;
1567 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1568 (unsigned long int) yystacksize));
1570 if (yyss + yystacksize - 1 <= yyssp)
1574 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1583 /* Do appropriate processing given the current state. Read a
1584 look-ahead token if we need one and don't already have one. */
1586 /* First try to decide what to do without reference to look-ahead token. */
1587 yyn = yypact[yystate];
1588 if (yyn == YYPACT_NINF)
1591 /* Not known => get a look-ahead token if don't already have one. */
1593 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1594 if (yychar == YYEMPTY)
1596 YYDPRINTF ((stderr, "Reading a token: "));
1600 if (yychar <= YYEOF)
1602 yychar = yytoken = YYEOF;
1603 YYDPRINTF ((stderr, "Now at end of input.\n"));
1607 yytoken = YYTRANSLATE (yychar);
1608 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1611 /* If the proper action on seeing token YYTOKEN is to reduce or to
1612 detect an error, take that action. */
1614 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1619 if (yyn == 0 || yyn == YYTABLE_NINF)
1628 /* Count tokens shifted since error; after three, turn off error
1633 /* Shift the look-ahead token. */
1634 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1636 /* Discard the shifted token unless it is eof. */
1637 if (yychar != YYEOF)
1646 /*-----------------------------------------------------------.
1647 | yydefault -- do the default action for the current state. |
1648 `-----------------------------------------------------------*/
1650 yyn = yydefact[yystate];
1656 /*-----------------------------.
1657 | yyreduce -- Do a reduction. |
1658 `-----------------------------*/
1660 /* yyn is the number of a rule to reduce with. */
1663 /* If YYLEN is nonzero, implement the default value of the action:
1666 Otherwise, the following line sets YYVAL to garbage.
1667 This behavior is undocumented and Bison
1668 users should not rely upon it. Assigning to YYVAL
1669 unconditionally makes the parser a bit smaller, and it avoids a
1670 GCC warning that YYVAL may be used uninitialized. */
1671 yyval = yyvsp[1-yylen];
1674 YY_REDUCE_PRINT (yyn);
1678 #line 108 "scripts/genksyms/parse.y"
1679 { is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ;}
1683 #line 110 "scripts/genksyms/parse.y"
1684 { free_list(*(yyvsp[(2) - (2)]), NULL); *(yyvsp[(2) - (2)]) = NULL; ;}
1688 #line 114 "scripts/genksyms/parse.y"
1689 { is_typedef = 1; ;}
1693 #line 115 "scripts/genksyms/parse.y"
1694 { (yyval) = (yyvsp[(4) - (4)]); ;}
1698 #line 116 "scripts/genksyms/parse.y"
1699 { is_typedef = 1; ;}
1703 #line 117 "scripts/genksyms/parse.y"
1704 { (yyval) = (yyvsp[(3) - (3)]); ;}
1708 #line 122 "scripts/genksyms/parse.y"
1709 { (yyval) = (yyvsp[(2) - (2)]); ;}
1713 #line 123 "scripts/genksyms/parse.y"
1714 { (yyval) = (yyvsp[(2) - (2)]); ;}
1718 #line 128 "scripts/genksyms/parse.y"
1719 { if (current_name) {
1720 struct string_list *decl = (*(yyvsp[(3) - (3)]))->next;
1721 (*(yyvsp[(3) - (3)]))->next = NULL;
1722 add_symbol(current_name,
1723 is_typedef ? SYM_TYPEDEF : SYM_NORMAL,
1725 current_name = NULL;
1727 (yyval) = (yyvsp[(3) - (3)]);
1732 #line 141 "scripts/genksyms/parse.y"
1733 { (yyval) = NULL; ;}
1737 #line 147 "scripts/genksyms/parse.y"
1738 { struct string_list *decl = *(yyvsp[(1) - (1)]);
1739 *(yyvsp[(1) - (1)]) = NULL;
1740 add_symbol(current_name,
1741 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1742 current_name = NULL;
1743 (yyval) = (yyvsp[(1) - (1)]);
1748 #line 155 "scripts/genksyms/parse.y"
1749 { struct string_list *decl = *(yyvsp[(3) - (3)]);
1750 *(yyvsp[(3) - (3)]) = NULL;
1751 free_list(*(yyvsp[(2) - (3)]), NULL);
1752 *(yyvsp[(2) - (3)]) = decl_spec;
1753 add_symbol(current_name,
1754 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1755 current_name = NULL;
1756 (yyval) = (yyvsp[(3) - (3)]);
1761 #line 168 "scripts/genksyms/parse.y"
1762 { (yyval) = (yyvsp[(4) - (4)]) ? (yyvsp[(4) - (4)]) : (yyvsp[(3) - (4)]) ? (yyvsp[(3) - (4)]) : (yyvsp[(2) - (4)]) ? (yyvsp[(2) - (4)]) : (yyvsp[(1) - (4)]); ;}
1766 #line 173 "scripts/genksyms/parse.y"
1767 { decl_spec = NULL; ;}
1771 #line 178 "scripts/genksyms/parse.y"
1772 { decl_spec = *(yyvsp[(1) - (1)]); ;}
1776 #line 179 "scripts/genksyms/parse.y"
1777 { decl_spec = *(yyvsp[(2) - (2)]); ;}
1781 #line 184 "scripts/genksyms/parse.y"
1782 { /* Version 2 checksumming ignores storage class, as that
1783 is really irrelevant to the linkage. */
1784 remove_node((yyvsp[(1) - (1)]));
1785 (yyval) = (yyvsp[(1) - (1)]);
1790 #line 196 "scripts/genksyms/parse.y"
1791 { is_extern = 1; (yyval) = (yyvsp[(1) - (1)]); ;}
1795 #line 197 "scripts/genksyms/parse.y"
1796 { is_extern = 0; (yyval) = (yyvsp[(1) - (1)]); ;}
1800 #line 209 "scripts/genksyms/parse.y"
1801 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_STRUCT; (yyval) = (yyvsp[(2) - (2)]); ;}
1805 #line 211 "scripts/genksyms/parse.y"
1806 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_UNION; (yyval) = (yyvsp[(2) - (2)]); ;}
1810 #line 213 "scripts/genksyms/parse.y"
1811 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_ENUM; (yyval) = (yyvsp[(2) - (2)]); ;}
1815 #line 217 "scripts/genksyms/parse.y"
1816 { struct string_list *s = *(yyvsp[(3) - (3)]), *i = *(yyvsp[(2) - (3)]), *r;
1817 r = copy_node(i); r->tag = SYM_STRUCT;
1818 r->next = (*(yyvsp[(1) - (3)]))->next; *(yyvsp[(3) - (3)]) = r; (*(yyvsp[(1) - (3)]))->next = NULL;
1819 add_symbol(i->string, SYM_STRUCT, s, is_extern);
1820 (yyval) = (yyvsp[(3) - (3)]);
1825 #line 224 "scripts/genksyms/parse.y"
1826 { struct string_list *s = *(yyvsp[(3) - (3)]), *i = *(yyvsp[(2) - (3)]), *r;
1827 r = copy_node(i); r->tag = SYM_UNION;
1828 r->next = (*(yyvsp[(1) - (3)]))->next; *(yyvsp[(3) - (3)]) = r; (*(yyvsp[(1) - (3)]))->next = NULL;
1829 add_symbol(i->string, SYM_UNION, s, is_extern);
1830 (yyval) = (yyvsp[(3) - (3)]);
1835 #line 231 "scripts/genksyms/parse.y"
1836 { struct string_list *s = *(yyvsp[(3) - (3)]), *i = *(yyvsp[(2) - (3)]), *r;
1837 r = copy_node(i); r->tag = SYM_ENUM;
1838 r->next = (*(yyvsp[(1) - (3)]))->next; *(yyvsp[(3) - (3)]) = r; (*(yyvsp[(1) - (3)]))->next = NULL;
1839 add_symbol(i->string, SYM_ENUM, s, is_extern);
1840 (yyval) = (yyvsp[(3) - (3)]);
1845 #line 239 "scripts/genksyms/parse.y"
1846 { (yyval) = (yyvsp[(2) - (2)]); ;}
1850 #line 240 "scripts/genksyms/parse.y"
1851 { (yyval) = (yyvsp[(2) - (2)]); ;}
1855 #line 241 "scripts/genksyms/parse.y"
1856 { (yyval) = (yyvsp[(2) - (2)]); ;}
1860 #line 255 "scripts/genksyms/parse.y"
1861 { (*(yyvsp[(1) - (1)]))->tag = SYM_TYPEDEF; (yyval) = (yyvsp[(1) - (1)]); ;}
1865 #line 260 "scripts/genksyms/parse.y"
1866 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
1870 #line 264 "scripts/genksyms/parse.y"
1871 { (yyval) = NULL; ;}
1875 #line 270 "scripts/genksyms/parse.y"
1876 { (yyval) = (yyvsp[(2) - (2)]); ;}
1880 #line 276 "scripts/genksyms/parse.y"
1881 { /* restrict has no effect in prototypes so ignore it */
1882 remove_node((yyvsp[(1) - (1)]));
1883 (yyval) = (yyvsp[(1) - (1)]);
1888 #line 283 "scripts/genksyms/parse.y"
1889 { (yyval) = (yyvsp[(2) - (2)]); ;}
1893 #line 289 "scripts/genksyms/parse.y"
1894 { if (current_name != NULL) {
1895 error_with_pos("unexpected second declaration name");
1898 current_name = (*(yyvsp[(1) - (1)]))->string;
1899 (yyval) = (yyvsp[(1) - (1)]);
1905 #line 298 "scripts/genksyms/parse.y"
1906 { (yyval) = (yyvsp[(4) - (4)]); ;}
1910 #line 300 "scripts/genksyms/parse.y"
1911 { (yyval) = (yyvsp[(4) - (4)]); ;}
1915 #line 302 "scripts/genksyms/parse.y"
1916 { (yyval) = (yyvsp[(2) - (2)]); ;}
1920 #line 304 "scripts/genksyms/parse.y"
1921 { (yyval) = (yyvsp[(3) - (3)]); ;}
1925 #line 306 "scripts/genksyms/parse.y"
1926 { (yyval) = (yyvsp[(3) - (3)]); ;}
1930 #line 312 "scripts/genksyms/parse.y"
1931 { (yyval) = (yyvsp[(2) - (2)]); ;}
1935 #line 320 "scripts/genksyms/parse.y"
1936 { (yyval) = (yyvsp[(4) - (4)]); ;}
1940 #line 322 "scripts/genksyms/parse.y"
1941 { (yyval) = (yyvsp[(4) - (4)]); ;}
1945 #line 324 "scripts/genksyms/parse.y"
1946 { (yyval) = (yyvsp[(2) - (2)]); ;}
1950 #line 326 "scripts/genksyms/parse.y"
1951 { (yyval) = (yyvsp[(3) - (3)]); ;}
1955 #line 328 "scripts/genksyms/parse.y"
1956 { (yyval) = (yyvsp[(3) - (3)]); ;}
1960 #line 332 "scripts/genksyms/parse.y"
1961 { (yyval) = (yyvsp[(2) - (2)]); ;}
1965 #line 334 "scripts/genksyms/parse.y"
1966 { (yyval) = (yyvsp[(3) - (3)]); ;}
1970 #line 338 "scripts/genksyms/parse.y"
1971 { (yyval) = NULL; ;}
1975 #line 345 "scripts/genksyms/parse.y"
1976 { (yyval) = (yyvsp[(3) - (3)]); ;}
1980 #line 350 "scripts/genksyms/parse.y"
1981 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
1985 #line 355 "scripts/genksyms/parse.y"
1986 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
1990 #line 360 "scripts/genksyms/parse.y"
1991 { (yyval) = NULL; ;}
1995 #line 362 "scripts/genksyms/parse.y"
1996 { /* For version 2 checksums, we don't want to remember
1997 private parameter names. */
1998 remove_node((yyvsp[(1) - (1)]));
1999 (yyval) = (yyvsp[(1) - (1)]);
2004 #line 370 "scripts/genksyms/parse.y"
2005 { remove_node((yyvsp[(1) - (1)]));
2006 (yyval) = (yyvsp[(1) - (1)]);
2011 #line 374 "scripts/genksyms/parse.y"
2012 { (yyval) = (yyvsp[(4) - (4)]); ;}
2016 #line 376 "scripts/genksyms/parse.y"
2017 { (yyval) = (yyvsp[(4) - (4)]); ;}
2021 #line 378 "scripts/genksyms/parse.y"
2022 { (yyval) = (yyvsp[(2) - (2)]); ;}
2026 #line 380 "scripts/genksyms/parse.y"
2027 { (yyval) = (yyvsp[(3) - (3)]); ;}
2031 #line 382 "scripts/genksyms/parse.y"
2032 { (yyval) = (yyvsp[(3) - (3)]); ;}
2036 #line 387 "scripts/genksyms/parse.y"
2037 { struct string_list *decl = *(yyvsp[(2) - (3)]);
2038 *(yyvsp[(2) - (3)]) = NULL;
2039 add_symbol(current_name, SYM_NORMAL, decl, is_extern);
2040 (yyval) = (yyvsp[(3) - (3)]);
2045 #line 395 "scripts/genksyms/parse.y"
2046 { (yyval) = NULL; ;}
2050 #line 402 "scripts/genksyms/parse.y"
2051 { remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); ;}
2055 #line 406 "scripts/genksyms/parse.y"
2056 { (yyval) = (yyvsp[(3) - (3)]); ;}
2060 #line 407 "scripts/genksyms/parse.y"
2061 { (yyval) = (yyvsp[(3) - (3)]); ;}
2065 #line 411 "scripts/genksyms/parse.y"
2066 { (yyval) = NULL; ;}
2070 #line 417 "scripts/genksyms/parse.y"
2071 { (yyval) = (yyvsp[(2) - (2)]); ;}
2075 #line 422 "scripts/genksyms/parse.y"
2076 { (yyval) = (yyvsp[(3) - (3)]); ;}
2080 #line 424 "scripts/genksyms/parse.y"
2081 { (yyval) = (yyvsp[(2) - (2)]); ;}
2085 #line 428 "scripts/genksyms/parse.y"
2086 { (yyval) = NULL; ;}
2090 #line 434 "scripts/genksyms/parse.y"
2091 { (yyval) = (yyvsp[(3) - (3)]); ;}
2095 #line 438 "scripts/genksyms/parse.y"
2096 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); ;}
2100 #line 439 "scripts/genksyms/parse.y"
2101 { (yyval) = (yyvsp[(2) - (2)]); ;}
2105 #line 444 "scripts/genksyms/parse.y"
2106 { (yyval) = (yyvsp[(2) - (2)]); ;}
2110 #line 448 "scripts/genksyms/parse.y"
2111 { (yyval) = NULL; ;}
2115 #line 453 "scripts/genksyms/parse.y"
2116 { (yyval) = (yyvsp[(2) - (2)]); ;}
2120 #line 457 "scripts/genksyms/parse.y"
2121 { (yyval) = NULL; ;}
2125 #line 463 "scripts/genksyms/parse.y"
2126 { export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); ;}
2130 /* Line 1267 of yacc.c. */
2131 #line 2132 "scripts/genksyms/parse.c"
2134 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2138 YY_STACK_PRINT (yyss, yyssp);
2143 /* Now `shift' the result of the reduction. Determine what state
2144 that goes to, based on the state we popped back to and the rule
2145 number reduced by. */
2149 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2150 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2151 yystate = yytable[yystate];
2153 yystate = yydefgoto[yyn - YYNTOKENS];
2158 /*------------------------------------.
2159 | yyerrlab -- here on detecting error |
2160 `------------------------------------*/
2162 /* If not already recovering from an error, report this error. */
2166 #if ! YYERROR_VERBOSE
2167 yyerror (YY_("syntax error"));
2170 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2171 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2173 YYSIZE_T yyalloc = 2 * yysize;
2174 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2175 yyalloc = YYSTACK_ALLOC_MAXIMUM;
2176 if (yymsg != yymsgbuf)
2177 YYSTACK_FREE (yymsg);
2178 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2180 yymsg_alloc = yyalloc;
2184 yymsg_alloc = sizeof yymsgbuf;
2188 if (0 < yysize && yysize <= yymsg_alloc)
2190 (void) yysyntax_error (yymsg, yystate, yychar);
2195 yyerror (YY_("syntax error"));
2197 goto yyexhaustedlab;
2205 if (yyerrstatus == 3)
2207 /* If just tried and failed to reuse look-ahead token after an
2208 error, discard it. */
2210 if (yychar <= YYEOF)
2212 /* Return failure if at end of input. */
2213 if (yychar == YYEOF)
2218 yydestruct ("Error: discarding",
2224 /* Else will try to reuse look-ahead token after shifting the error
2229 /*---------------------------------------------------.
2230 | yyerrorlab -- error raised explicitly by YYERROR. |
2231 `---------------------------------------------------*/
2234 /* Pacify compilers like GCC when the user code never invokes
2235 YYERROR and the label yyerrorlab therefore never appears in user
2237 if (/*CONSTCOND*/ 0)
2240 /* Do not reclaim the symbols of the rule which action triggered
2244 YY_STACK_PRINT (yyss, yyssp);
2249 /*-------------------------------------------------------------.
2250 | yyerrlab1 -- common code for both syntax error and YYERROR. |
2251 `-------------------------------------------------------------*/
2253 yyerrstatus = 3; /* Each real token shifted decrements this. */
2257 yyn = yypact[yystate];
2258 if (yyn != YYPACT_NINF)
2261 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2269 /* Pop the current state because it cannot handle the error token. */
2274 yydestruct ("Error: popping",
2275 yystos[yystate], yyvsp);
2278 YY_STACK_PRINT (yyss, yyssp);
2287 /* Shift the error token. */
2288 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2294 /*-------------------------------------.
2295 | yyacceptlab -- YYACCEPT comes here. |
2296 `-------------------------------------*/
2301 /*-----------------------------------.
2302 | yyabortlab -- YYABORT comes here. |
2303 `-----------------------------------*/
2309 /*-------------------------------------------------.
2310 | yyexhaustedlab -- memory exhaustion comes here. |
2311 `-------------------------------------------------*/
2313 yyerror (YY_("memory exhausted"));
2319 if (yychar != YYEOF && yychar != YYEMPTY)
2320 yydestruct ("Cleanup: discarding lookahead",
2322 /* Do not reclaim the symbols of the rule which action triggered
2323 this YYABORT or YYACCEPT. */
2325 YY_STACK_PRINT (yyss, yyssp);
2326 while (yyssp != yyss)
2328 yydestruct ("Cleanup: popping",
2329 yystos[*yyssp], yyvsp);
2334 YYSTACK_FREE (yyss);
2337 if (yymsg != yymsgbuf)
2338 YYSTACK_FREE (yymsg);
2340 /* Make sure YYID is used. */
2341 return YYID (yyresult);
2345 #line 467 "scripts/genksyms/parse.y"
2349 yyerror(const char *e)
2351 error_with_pos("%s", e);