45da54f88916d1c18fc0f3ff8eec0741106701ee
[sdk] / compiler / libec / src / type.ec
1 /* Code generated from Bison source file: type.y */
2 /* A Bison parser, made by GNU Bison 2.4.2.  */
3
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5    
6       Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
7    Foundation, Inc.
8    
9    This program is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13    
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18    
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21
22 /* As a special exception, you may create a larger work that contains
23    part or all of the Bison parser skeleton and distribute that work
24    under terms of your choice, so long as that work isn't itself a
25    parser generator using the skeleton or a modified version thereof
26    as a parser skeleton.  Alternatively, if you modify or redistribute
27    the parser skeleton itself, you may (at your option) remove this
28    special exception, which will cause the skeleton and the resulting
29    Bison output files to be licensed under the GNU General Public
30    License without this special exception.
31    
32    This special exception was added by the Free Software Foundation in
33    version 2.2 of Bison.  */
34
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36    simplifying the original so-called "semantic" parser.  */
37
38 /* All symbols defined below should begin with yy or YY, to avoid
39    infringing on user name space.  This should be done even for local
40    variables, as they might otherwise be expanded by user macros.
41    There are some unavoidable exceptions within include files to
42    define necessary library symbols; they are noted "INFRINGES ON
43    USER NAME SPACE" below.  */
44
45 /* Identify Bison output.  */
46 #define YYBISON 1
47
48 /* Bison version.  */
49 #define YYBISON_VERSION "2.4.2"
50
51 /* Skeleton name.  */
52 #define YYSKELETON_NAME "yacc.c"
53
54 /* Pure parsers.  */
55 #define YYPURE 0
56
57 /* Push parsers.  */
58 #define YYPUSH 0
59
60 /* Pull parsers.  */
61 #define YYPULL 1
62
63 /* Using locations.  */
64 #define YYLSP_NEEDED 1
65
66
67
68 /* Copy the first part of user declarations.  */
69
70 /* Line 189 of yacc.c  */
71 #line 1 "type.y"
72
73
74 import "ecdefs"
75
76 #define YYLTYPE Location
77 #include "grammar.h"
78
79 #ifndef YYLLOC_DEFAULT
80 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
81   (Current).start = (Rhs)[1].start;      \
82   (Current).end = (Rhs)[N].end;
83 #endif
84
85 TypeName parsedType;
86
87 #define PRECOMPILER
88
89 #define yyparse type_yyparse
90 #define yylval  type_yylval
91 #define yychar  type_yychar
92 #define yydebug type_yydebug
93 #define yynerrs type_yynerrs
94 #define yylloc  type_yylloc
95
96 extern bool parseTypeError;
97
98 extern File fileInput;
99 extern char * yytext;
100 int yylex();
101 int yyerror();
102
103 #define uint _uint
104 default:
105
106
107
108 /* Line 189 of yacc.c  */
109 #line 109 "type.ec"
110
111 /* Enabling traces.  */
112 #ifndef YYDEBUG
113 # define YYDEBUG 1
114 #endif
115
116 /* Enabling verbose error messages.  */
117 #ifdef YYERROR_VERBOSE
118 # undef YYERROR_VERBOSE
119 # define YYERROR_VERBOSE 1
120 #else
121 # define YYERROR_VERBOSE 0
122 #endif
123
124 /* Enabling the token table.  */
125 #ifndef YYTOKEN_TABLE
126 # define YYTOKEN_TABLE 0
127 #endif
128
129
130 /* Tokens.  */
131 #ifndef YYTOKENTYPE
132 # define YYTOKENTYPE
133    /* Put the tokens into the symbol table, so that GDB and other debuggers
134       know about them.  */
135    enum yytokentype {
136      IDENTIFIER = 258,
137      CONSTANT = 259,
138      STRING_LITERAL = 260,
139      SIZEOF = 261,
140      PTR_OP = 262,
141      INC_OP = 263,
142      DEC_OP = 264,
143      LEFT_OP = 265,
144      RIGHT_OP = 266,
145      LE_OP = 267,
146      GE_OP = 268,
147      EQ_OP = 269,
148      NE_OP = 270,
149      AND_OP = 271,
150      OR_OP = 272,
151      MUL_ASSIGN = 273,
152      DIV_ASSIGN = 274,
153      MOD_ASSIGN = 275,
154      ADD_ASSIGN = 276,
155      SUB_ASSIGN = 277,
156      LEFT_ASSIGN = 278,
157      RIGHT_ASSIGN = 279,
158      AND_ASSIGN = 280,
159      XOR_ASSIGN = 281,
160      OR_ASSIGN = 282,
161      TYPE_NAME = 283,
162      TYPEDEF = 284,
163      EXTERN = 285,
164      STATIC = 286,
165      AUTO = 287,
166      REGISTER = 288,
167      CHAR = 289,
168      SHORT = 290,
169      INT = 291,
170      UINT = 292,
171      INT64 = 293,
172      LONG = 294,
173      SIGNED = 295,
174      UNSIGNED = 296,
175      FLOAT = 297,
176      DOUBLE = 298,
177      CONST = 299,
178      VOLATILE = 300,
179      VOID = 301,
180      VALIST = 302,
181      STRUCT = 303,
182      UNION = 304,
183      ENUM = 305,
184      ELLIPSIS = 306,
185      CASE = 307,
186      DEFAULT = 308,
187      IF = 309,
188      SWITCH = 310,
189      WHILE = 311,
190      DO = 312,
191      FOR = 313,
192      GOTO = 314,
193      CONTINUE = 315,
194      BREAK = 316,
195      RETURN = 317,
196      IFX = 318,
197      ELSE = 319,
198      CLASS = 320,
199      THISCLASS = 321,
200      CLASS_NAME = 322,
201      PROPERTY = 323,
202      SETPROP = 324,
203      GETPROP = 325,
204      NEWOP = 326,
205      RENEW = 327,
206      DELETE = 328,
207      EXT_DECL = 329,
208      EXT_STORAGE = 330,
209      IMPORT = 331,
210      DEFINE = 332,
211      VIRTUAL = 333,
212      ATTRIB = 334,
213      PUBLIC = 335,
214      PRIVATE = 336,
215      TYPED_OBJECT = 337,
216      ANY_OBJECT = 338,
217      _INCREF = 339,
218      EXTENSION = 340,
219      ASM = 341,
220      TYPEOF = 342,
221      WATCH = 343,
222      STOPWATCHING = 344,
223      FIREWATCHERS = 345,
224      WATCHABLE = 346,
225      CLASS_DESIGNER = 347,
226      CLASS_NO_EXPANSION = 348,
227      CLASS_FIXED = 349,
228      ISPROPSET = 350,
229      CLASS_DEFAULT_PROPERTY = 351,
230      PROPERTY_CATEGORY = 352,
231      CLASS_DATA = 353,
232      CLASS_PROPERTY = 354,
233      SUBCLASS = 355,
234      NAMESPACE = 356,
235      NEW0OP = 357,
236      RENEW0 = 358,
237      VAARG = 359,
238      DBTABLE = 360,
239      DBFIELD = 361,
240      DBINDEX = 362,
241      DATABASE_OPEN = 363,
242      ALIGNOF = 364,
243      ATTRIB_DEP = 365,
244      __ATTRIB = 366
245    };
246 #endif
247
248
249
250 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
251 typedef union YYSTYPE
252 {
253
254 /* Line 214 of yacc.c  */
255 #line 39 "type.y"
256
257    int i;
258    SpecifierType specifierType;
259    Identifier id;
260    Expression exp;
261    Specifier specifier;
262    OldList * list;
263    Enumerator enumerator;
264    Declarator declarator;
265    Pointer pointer;
266    Initializer initializer;
267    InitDeclarator initDeclarator;
268    TypeName typeName;
269    Declaration declaration;
270    Statement stmt;
271    FunctionDefinition function;
272    External external;
273    Context context;
274    Attrib attrib;
275    ExtDecl extDecl;
276    Attribute attribute;
277
278    Instantiation instance;
279    MembersInit membersInit;
280    MemberInit memberInit;
281    ClassFunction classFunction;
282    ClassDefinition _class;
283    ClassDef classDef;
284    PropertyDef prop;
285    char * string;
286    Symbol symbol;
287    TemplateParameter templateParameter;
288    TemplateArgument templateArgument;
289    TemplateDatatype templateDatatype;
290
291
292
293 /* Line 214 of yacc.c  */
294 #line 294 "type.ec"
295 } YYSTYPE;
296 # define YYSTYPE_IS_TRIVIAL 1
297 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
298 # define YYSTYPE_IS_DECLARED 1
299 #endif
300
301 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
302 typedef struct YYLTYPE
303 {
304   int first_line;
305   int first_column;
306   int last_line;
307   int last_column;
308 } YYLTYPE;
309 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
310 # define YYLTYPE_IS_DECLARED 1
311 # define YYLTYPE_IS_TRIVIAL 1
312 #endif
313
314
315 /* Copy the second part of user declarations.  */
316
317
318 /* Line 264 of yacc.c  */
319 #line 319 "type.ec"
320
321 #ifdef short
322 # undef short
323 #endif
324
325 #ifdef YYTYPE_UINT8
326 typedef YYTYPE_UINT8 yytype_uint8;
327 #else
328 typedef unsigned char yytype_uint8;
329 #endif
330
331 #ifdef YYTYPE_INT8
332 typedef YYTYPE_INT8 yytype_int8;
333 #elif (defined __STDC__ || defined __C99__FUNC__ \
334      || defined __cplusplus || defined _MSC_VER)
335 typedef signed char yytype_int8;
336 #else
337 typedef short int yytype_int8;
338 #endif
339
340 #ifdef YYTYPE_UINT16
341 typedef YYTYPE_UINT16 yytype_uint16;
342 #else
343 typedef unsigned short int yytype_uint16;
344 #endif
345
346 #ifdef YYTYPE_INT16
347 typedef YYTYPE_INT16 yytype_int16;
348 #else
349 typedef short int yytype_int16;
350 #endif
351
352 #ifndef YYSIZE_T
353 # ifdef __SIZE_TYPE__
354 #  define YYSIZE_T __SIZE_TYPE__
355 # elif defined size_t
356 #  define YYSIZE_T size_t
357 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
358      || defined __cplusplus || defined _MSC_VER)
359 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
360 #  define YYSIZE_T size_t
361 # else
362 #  define YYSIZE_T unsigned int
363 # endif
364 #endif
365
366 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
367
368 #ifndef YY_
369 # if defined YYENABLE_NLS && YYENABLE_NLS
370 #  if ENABLE_NLS
371 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
372 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
373 #  endif
374 # endif
375 # ifndef YY_
376 #  define YY_(msgid) msgid
377 # endif
378 #endif
379
380 /* Suppress unused-variable warnings by "using" E.  */
381 #if ! defined lint || defined __GNUC__
382 # define YYUSE(e) ((void) (e))
383 #else
384 # define YYUSE(e) /* empty */
385 #endif
386
387 /* Identity function, used to suppress warnings about constant conditions.  */
388 #ifndef lint
389 # define YYID(n) (n)
390 #else
391 #if (defined __STDC__ || defined __C99__FUNC__ \
392      || defined __cplusplus || defined _MSC_VER)
393 static int
394 YYID (int yyi)
395 #else
396 static int
397 YYID (yyi)
398     int yyi;
399 #endif
400 {
401   return yyi;
402 }
403 #endif
404
405 #if ! defined yyoverflow || YYERROR_VERBOSE
406
407 /* The parser invokes alloca or malloc; define the necessary symbols.  */
408
409 # ifdef YYSTACK_USE_ALLOCA
410 #  if YYSTACK_USE_ALLOCA
411 #   ifdef __GNUC__
412 #    define YYSTACK_ALLOC __builtin_alloca
413 #   elif defined __BUILTIN_VA_ARG_INCR
414 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
415 #   elif defined _AIX
416 #    define YYSTACK_ALLOC __alloca
417 #   elif defined _MSC_VER
418 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
419 #    define alloca _alloca
420 #   else
421 #    define YYSTACK_ALLOC alloca
422 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
423      || defined __cplusplus || defined _MSC_VER)
424 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
425 #     ifndef _STDLIB_H
426 #      define _STDLIB_H 1
427 #     endif
428 #    endif
429 #   endif
430 #  endif
431 # endif
432
433 # ifdef YYSTACK_ALLOC
434    /* Pacify GCC's `empty if-body' warning.  */
435 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
436 #  ifndef YYSTACK_ALLOC_MAXIMUM
437     /* The OS might guarantee only one guard page at the bottom of the stack,
438        and a page size can be as small as 4096 bytes.  So we cannot safely
439        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
440        to allow for a few compiler-allocated temporary stack slots.  */
441 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
442 #  endif
443 # else
444 #  define YYSTACK_ALLOC YYMALLOC
445 #  define YYSTACK_FREE YYFREE
446 #  ifndef YYSTACK_ALLOC_MAXIMUM
447 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
448 #  endif
449 #  if (defined __cplusplus && ! defined _STDLIB_H \
450        && ! ((defined YYMALLOC || defined malloc) \
451              && (defined YYFREE || defined free)))
452 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
453 #   ifndef _STDLIB_H
454 #    define _STDLIB_H 1
455 #   endif
456 #  endif
457 #  ifndef YYMALLOC
458 #   define YYMALLOC malloc
459 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
460      || defined __cplusplus || defined _MSC_VER)
461 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
462 #   endif
463 #  endif
464 #  ifndef YYFREE
465 #   define YYFREE free
466 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
467      || defined __cplusplus || defined _MSC_VER)
468 void free (void *); /* INFRINGES ON USER NAME SPACE */
469 #   endif
470 #  endif
471 # endif
472 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
473
474
475 #if (! defined yyoverflow \
476      && (! defined __cplusplus \
477          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
478              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
479
480 /* A type that is properly aligned for any stack member.  */
481 union yyalloc
482 {
483   yytype_int16 yyss_alloc;
484   YYSTYPE yyvs_alloc;
485   YYLTYPE yyls_alloc;
486 };
487
488 /* The size of the maximum gap between one aligned stack and the next.  */
489 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
490
491 /* The size of an array large to enough to hold all stacks, each with
492    N elements.  */
493 # define YYSTACK_BYTES(N) \
494      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
495       + 2 * YYSTACK_GAP_MAXIMUM)
496
497 /* Copy COUNT objects from FROM to TO.  The source and destination do
498    not overlap.  */
499 # ifndef YYCOPY
500 #  if defined __GNUC__ && 1 < __GNUC__
501 #   define YYCOPY(To, From, Count) \
502       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
503 #  else
504 #   define YYCOPY(To, From, Count)              \
505       do                                        \
506         {                                       \
507           YYSIZE_T yyi;                         \
508           for (yyi = 0; yyi < (Count); yyi++)   \
509             (To)[yyi] = (From)[yyi];            \
510         }                                       \
511       while (YYID (0))
512 #  endif
513 # endif
514
515 /* Relocate STACK from its old location to the new one.  The
516    local variables YYSIZE and YYSTACKSIZE give the old and new number of
517    elements in the stack, and YYPTR gives the new location of the
518    stack.  Advance YYPTR to a properly aligned location for the next
519    stack.  */
520 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
521     do                                                                  \
522       {                                                                 \
523         YYSIZE_T yynewbytes;                                            \
524         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
525         Stack = &yyptr->Stack_alloc;                                    \
526         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
527         yyptr += yynewbytes / sizeof (*yyptr);                          \
528       }                                                                 \
529     while (YYID (0))
530
531 #endif
532
533 /* YYFINAL -- State number of the termination state.  */
534 #define YYFINAL  96
535 /* YYLAST -- Last index in YYTABLE.  */
536 #define YYLAST   8926
537
538 /* YYNTOKENS -- Number of terminals.  */
539 #define YYNTOKENS  137
540 /* YYNNTS -- Number of nonterminals.  */
541 #define YYNNTS  125
542 /* YYNRULES -- Number of rules.  */
543 #define YYNRULES  504
544 /* YYNRULES -- Number of states.  */
545 #define YYNSTATES  871
546
547 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
548 #define YYUNDEFTOK  2
549 #define YYMAXUTOK   366
550
551 #define YYTRANSLATE(YYX)                                                \
552   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
553
554 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
555 static const yytype_uint8 yytranslate[] =
556 {
557        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,   126,     2,     2,   118,   128,   123,     2,
561      115,   116,   112,   124,   122,   125,   119,   127,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
563      113,   133,   114,   131,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,   120,     2,   121,   129,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
569        2,     2,     2,   135,   130,   136,   117,     2,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
583        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
584       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
585       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
586       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
587       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
588       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
589       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
590       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
591       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
592       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
593      105,   106,   107,   108,   109,   110,   111
594 };
595
596 #if YYDEBUG
597 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
598    YYRHS.  */
599 static const yytype_uint16 yyprhs[] =
600 {
601        0,     0,     3,     6,     9,    12,    14,    17,    19,    21,
602       26,    31,    34,    36,    40,    45,    49,    52,    54,    56,
603       60,    62,    64,    66,    68,    71,    76,    79,    86,    92,
604       99,   105,   113,   120,   128,   135,   137,   139,   144,   148,
605      153,   157,   161,   164,   167,   169,   171,   176,   180,   185,
606      189,   193,   196,   199,   201,   203,   207,   211,   214,   217,
607      220,   225,   228,   233,   238,   241,   246,   248,   250,   252,
608      254,   256,   258,   260,   262,   264,   266,   268,   270,   275,
609      277,   281,   285,   289,   291,   295,   299,   301,   305,   309,
610      312,   314,   317,   321,   325,   329,   331,   335,   339,   341,
611      345,   347,   351,   353,   357,   359,   363,   365,   369,   371,
612      377,   379,   383,   387,   389,   391,   393,   395,   397,   399,
613      401,   403,   405,   407,   409,   411,   415,   417,   420,   424,
614      427,   433,   435,   438,   440,   443,   445,   448,   450,   453,
615      455,   458,   460,   463,   465,   468,   470,   473,   475,   478,
616      480,   483,   485,   488,   490,   493,   495,   498,   500,   503,
617      505,   508,   510,   513,   515,   518,   520,   523,   525,   528,
618      530,   533,   535,   537,   539,   542,   544,   547,   549,   552,
619      554,   557,   562,   568,   570,   573,   575,   578,   580,   583,
620      585,   588,   590,   593,   595,   598,   603,   609,   611,   615,
621      617,   621,   623,   625,   627,   629,   631,   633,   635,   637,
622      639,   641,   643,   645,   647,   649,   651,   653,   655,   660,
623      662,   665,   669,   676,   682,   684,   686,   688,   690,   692,
624      694,   696,   698,   700,   702,   704,   706,   708,   710,   712,
625      714,   716,   718,   720,   722,   727,   732,   737,   739,   741,
626      743,   745,   747,   749,   751,   753,   755,   757,   759,   761,
627      763,   765,   767,   769,   771,   773,   775,   780,   785,   790,
628      792,   798,   803,   808,   812,   818,   825,   831,   837,   842,
629      849,   852,   855,   859,   863,   865,   868,   870,   872,   874,
630      876,   880,   884,   888,   892,   894,   898,   900,   902,   904,
631      907,   911,   913,   917,   927,   937,   945,   953,   959,   970,
632      981,   990,   999,  1006,  1015,  1024,  1031,  1038,  1043,  1053,
633     1063,  1071,  1079,  1085,  1089,  1092,  1095,  1098,  1100,  1103,
634     1105,  1107,  1109,  1113,  1115,  1118,  1121,  1125,  1131,  1134,
635     1137,  1142,  1148,  1156,  1164,  1170,  1172,  1176,  1178,  1182,
636     1186,  1189,  1193,  1197,  1201,  1206,  1211,  1214,  1218,  1222,
637     1227,  1231,  1234,  1238,  1242,  1247,  1249,  1251,  1254,  1257,
638     1260,  1264,  1266,  1268,  1271,  1274,  1277,  1281,  1283,  1286,
639     1290,  1293,  1295,  1299,  1304,  1308,  1313,  1315,  1318,  1321,
640     1325,  1329,  1332,  1336,  1340,  1343,  1345,  1347,  1350,  1353,
641     1355,  1358,  1361,  1365,  1369,  1371,  1374,  1376,  1379,  1382,
642     1386,  1388,  1392,  1394,  1398,  1401,  1404,  1407,  1411,  1413,
643     1415,  1417,  1421,  1423,  1426,  1428,  1431,  1433,  1437,  1442,
644     1444,  1446,  1448,  1452,  1454,  1456,  1458,  1460,  1462,  1464,
645     1468,  1473,  1477,  1479,  1482,  1484,  1487,  1490,  1492,  1494,
646     1497,  1499,  1502,  1506,  1508,  1511,  1517,  1525,  1531,  1537,
647     1545,  1552,  1560,  1565,  1571,  1576,  1580,  1583,  1586,  1589,
648     1593,  1595,  1601,  1606,  1612,  1617,  1622,  1626,  1631,  1635,
649     1639,  1642,  1645,  1648,  1651,  1654,  1657,  1660,  1663,  1666,
650     1670,  1672,  1674,  1678,  1681,  1683,  1685,  1688,  1691,  1693,
651     1696,  1698,  1700,  1703,  1705
652 };
653
654 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
655 static const yytype_int16 yyrhs[] =
656 {
657      261,     0,    -1,   147,   112,    -1,   147,   113,    -1,   147,
658        1,    -1,   142,    -1,   147,   147,    -1,    28,    -1,   141,
659       -1,   141,   113,   202,   114,    -1,   141,   113,   202,    11,
660       -1,   179,   221,    -1,   221,    -1,   179,   115,   116,    -1,
661      117,   179,   115,   116,    -1,    78,   179,   221,    -1,    78,
662      221,    -1,     3,    -1,   149,    -1,   115,   173,   116,    -1,
663      147,    -1,   251,    -1,     4,    -1,   248,    -1,   118,   248,
664       -1,   118,   248,   119,   248,    -1,   115,   116,    -1,    71,
665      179,   218,   120,   174,   121,    -1,    71,   179,   120,   174,
666      121,    -1,   102,   179,   218,   120,   174,   121,    -1,   102,
667      179,   120,   174,   121,    -1,    72,   174,   182,   218,   120,
668      174,   121,    -1,    72,   174,   182,   120,   174,   121,    -1,
669      103,   174,   182,   218,   120,   174,   121,    -1,   103,   174,
670      182,   120,   174,   121,    -1,     1,    -1,   148,    -1,   150,
671      120,   173,   121,    -1,   150,   115,   116,    -1,   150,   115,
672      153,   116,    -1,   150,   119,   147,    -1,   150,     7,   147,
673       -1,   150,     8,    -1,   150,     9,    -1,   252,    -1,   149,
674       -1,   152,   120,   173,   121,    -1,   152,   115,   116,    -1,
675      152,   115,   153,   116,    -1,   152,   119,   147,    -1,   152,
676        7,   147,    -1,   152,     8,    -1,   152,     9,    -1,   171,
677       -1,   151,    -1,   153,   122,   171,    -1,   153,   122,   151,
678       -1,     8,   155,    -1,     9,   155,    -1,   157,   158,    -1,
679        6,   115,   155,   116,    -1,     6,   156,    -1,     6,   115,
680      233,   116,    -1,   109,   115,   155,   116,    -1,   109,   156,
681       -1,   109,   115,   233,   116,    -1,   154,    -1,   150,    -1,
682      154,    -1,   152,    -1,   123,    -1,   112,    -1,   124,    -1,
683      125,    -1,   117,    -1,   126,    -1,    73,    -1,   155,    -1,
684      115,   232,   116,   158,    -1,   158,    -1,   159,   112,   158,
685       -1,   159,   127,   158,    -1,   159,   128,   158,    -1,   159,
686       -1,   160,   124,   159,    -1,   160,   125,   159,    -1,   160,
687       -1,   161,    10,   160,    -1,   161,    11,   160,    -1,   163,
688      113,    -1,   161,    -1,   162,   161,    -1,   163,   114,   161,
689       -1,   163,    12,   161,    -1,   163,    13,   161,    -1,   163,
690       -1,   164,    14,   163,    -1,   164,    15,   163,    -1,   164,
691       -1,   165,   123,   164,    -1,   165,    -1,   166,   129,   165,
692       -1,   166,    -1,   167,   130,   166,    -1,   167,    -1,   168,
693       16,   167,    -1,   168,    -1,   169,    17,   168,    -1,   169,
694       -1,   169,   131,   173,   132,   170,    -1,   170,    -1,   155,
695      172,   171,    -1,   155,   172,   151,    -1,   133,    -1,    18,
696       -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,    23,
697       -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,   171,
698       -1,   173,   122,   171,    -1,   170,    -1,   178,   134,    -1,
699      178,   183,   134,    -1,   249,   134,    -1,    77,   147,   133,
700      174,   134,    -1,   193,    -1,   176,   193,    -1,   194,    -1,
701      176,   194,    -1,   212,    -1,   176,   212,    -1,   196,    -1,
702      176,   196,    -1,   193,    -1,   177,   193,    -1,   194,    -1,
703      177,   194,    -1,   138,    -1,   177,   138,    -1,   212,    -1,
704      177,   212,    -1,   196,    -1,   177,   196,    -1,   185,    -1,
705      178,   185,    -1,   193,    -1,   178,   193,    -1,   194,    -1,
706      178,   194,    -1,   212,    -1,   178,   212,    -1,   196,    -1,
707      178,   196,    -1,   185,    -1,   179,   185,    -1,   193,    -1,
708      179,   193,    -1,   194,    -1,   179,   194,    -1,   138,    -1,
709      179,   138,    -1,   196,    -1,   179,   196,    -1,   212,    -1,
710      179,   212,    -1,   179,    -1,   139,    -1,   185,    -1,   181,
711      185,    -1,   193,    -1,   181,   193,    -1,   195,    -1,   181,
712      195,    -1,   147,    -1,   181,   147,    -1,   147,   113,   202,
713      114,    -1,   181,   147,   113,   202,   114,    -1,   185,    -1,
714      182,   185,    -1,   193,    -1,   182,   193,    -1,   195,    -1,
715      182,   195,    -1,   196,    -1,   182,   196,    -1,   212,    -1,
716      182,   212,    -1,   147,    -1,   182,   147,    -1,   147,   113,
717      202,   114,    -1,   182,   147,   113,   202,   114,    -1,   184,
718       -1,   183,   122,   184,    -1,   219,    -1,   219,   133,   234,
719       -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,    33,
720       -1,    74,    -1,    75,    -1,   191,    -1,    79,    -1,   110,
721       -1,   111,    -1,     3,    -1,    28,    -1,    75,    -1,    74,
722       -1,    44,    -1,   188,    -1,   188,   115,   173,   116,    -1,
723      189,    -1,   190,   189,    -1,   190,   122,   189,    -1,   187,
724      115,   115,   190,   116,   116,    -1,   187,   115,   115,   116,
725      116,    -1,   186,    -1,    44,    -1,    45,    -1,   192,    -1,
726       46,    -1,    34,    -1,    35,    -1,    36,    -1,    37,    -1,
727       38,    -1,    47,    -1,    39,    -1,    42,    -1,    43,    -1,
728       40,    -1,    41,    -1,    85,    -1,   197,    -1,   211,    -1,
729      140,    -1,    87,   115,   171,   116,    -1,   100,   115,   140,
730      116,    -1,   100,   115,   147,   116,    -1,    66,    -1,    82,
731       -1,    83,    -1,    46,    -1,    34,    -1,    35,    -1,    36,
732       -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,
733       -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,   197,
734       -1,   211,    -1,   142,    -1,    87,   115,   171,   116,    -1,
735      100,   115,   140,   116,    -1,   100,   115,   147,   116,    -1,
736       66,    -1,   203,   147,   135,   204,   136,    -1,   203,   135,
737      204,   136,    -1,   203,   147,   135,   136,    -1,   203,   135,
738      136,    -1,   203,   141,   135,   204,   136,    -1,   203,   186,
739      147,   135,   204,   136,    -1,   203,   186,   135,   204,   136,
740       -1,   203,   186,   147,   135,   136,    -1,   203,   186,   135,
741      136,    -1,   203,   186,   142,   135,   204,   136,    -1,   203,
742      147,    -1,   203,   142,    -1,   203,   186,   147,    -1,   203,
743      186,   142,    -1,   178,    -1,   178,   217,    -1,   198,    -1,
744      161,    -1,   200,    -1,   199,    -1,   147,   133,   200,    -1,
745      147,   133,   199,    -1,   198,   133,   200,    -1,   198,   133,
746      199,    -1,   201,    -1,   202,   122,   201,    -1,    48,    -1,
747       49,    -1,   208,    -1,   204,   208,    -1,   150,   133,   235,
748       -1,   205,    -1,   206,   122,   205,    -1,    68,   181,   147,
749      135,    69,   243,    70,   243,   136,    -1,    68,   181,   147,
750      135,    70,   243,    69,   243,   136,    -1,    68,   181,   147,
751      135,    69,   243,   136,    -1,    68,   181,   147,   135,    70,
752      243,   136,    -1,    68,   181,   147,   135,   136,    -1,    68,
753      181,   217,   147,   135,    69,   243,    70,   243,   136,    -1,
754       68,   181,   217,   147,   135,    70,   243,    69,   243,   136,
755       -1,    68,   181,   217,   147,   135,    69,   243,   136,    -1,
756       68,   181,   217,   147,   135,    70,   243,   136,    -1,    68,
757      181,   217,   147,   135,   136,    -1,    68,   181,   135,    69,
758      243,    70,   243,   136,    -1,    68,   181,   135,    70,   243,
759       69,   243,   136,    -1,    68,   181,   135,    69,   243,   136,
760       -1,    68,   181,   135,    70,   243,   136,    -1,    68,   181,
761      135,   136,    -1,    68,   181,   217,   135,    69,   243,    70,
762      243,   136,    -1,    68,   181,   217,   135,    70,   243,    69,
763      243,   136,    -1,    68,   181,   217,   135,    69,   243,   136,
764       -1,    68,   181,   217,   135,    70,   243,   136,    -1,    68,
765      181,   217,   135,   136,    -1,   179,   209,   134,    -1,   179,
766      134,    -1,   251,   134,    -1,   250,   134,    -1,   253,    -1,
767      206,   134,    -1,   207,    -1,   134,    -1,   210,    -1,   209,
768      122,   210,    -1,   225,    -1,   225,   191,    -1,   132,   174,
769       -1,   225,   132,   174,    -1,   225,   132,   174,   132,   174,
770       -1,    50,   147,    -1,    50,   142,    -1,    50,   135,   213,
771      136,    -1,    50,   147,   135,   213,   136,    -1,    50,   147,
772      135,   213,   134,   204,   136,    -1,    50,   142,   135,   213,
773      134,   204,   136,    -1,    50,   142,   135,   213,   136,    -1,
774      214,    -1,   213,   122,   214,    -1,   147,    -1,   147,   133,
775      174,    -1,   115,   217,   116,    -1,   120,   121,    -1,   120,
776      174,   121,    -1,   120,   140,   121,    -1,   215,   120,   121,
777       -1,   215,   120,   174,   121,    -1,   215,   120,   140,   121,
778       -1,   115,   116,    -1,   115,   228,   116,    -1,   215,   115,
779      116,    -1,   215,   115,   228,   116,    -1,   115,   218,   116,
780       -1,   115,   116,    -1,   115,   228,   116,    -1,   216,   115,
781      116,    -1,   216,   115,   228,   116,    -1,   227,    -1,   215,
782       -1,   227,   215,    -1,   186,   227,    -1,   186,   215,    -1,
783      186,   227,   215,    -1,   227,    -1,   216,    -1,   227,   216,
784       -1,   186,   227,    -1,   186,   216,    -1,   186,   227,   216,
785       -1,   224,    -1,   227,   224,    -1,   186,   227,   224,    -1,
786      219,   186,    -1,   147,    -1,   115,   219,   116,    -1,   220,
787      120,   174,   121,    -1,   220,   120,   121,    -1,   220,   120,
788      140,   121,    -1,   223,    -1,   227,   223,    -1,   186,   223,
789       -1,   186,   227,   223,    -1,   227,   186,   223,    -1,   220,
790      115,    -1,   222,   228,   116,    -1,   222,   231,   116,    -1,
791      222,   116,    -1,   223,    -1,   220,    -1,   186,   223,    -1,
792      186,   220,    -1,   220,    -1,   227,   220,    -1,   186,   220,
793       -1,   186,   227,   220,    -1,   227,   186,   220,    -1,   193,
794       -1,   226,   193,    -1,   112,    -1,   112,   226,    -1,   112,
795      227,    -1,   112,   226,   227,    -1,   229,    -1,   229,   122,
796       51,    -1,   230,    -1,   229,   122,   230,    -1,   179,   219,
797       -1,   179,   217,    -1,   179,   123,    -1,   179,   123,   219,
798       -1,   180,    -1,    65,    -1,   147,    -1,   231,   122,   147,
799       -1,   176,    -1,   176,   217,    -1,   177,    -1,   177,   217,
800       -1,   171,    -1,   135,   236,   136,    -1,   135,   236,   122,
801      136,    -1,   170,    -1,   151,    -1,   234,    -1,   236,   122,
802      234,    -1,   238,    -1,   243,    -1,   244,    -1,   245,    -1,
803      246,    -1,   247,    -1,   147,   132,   237,    -1,    52,   174,
804      132,   237,    -1,    53,   132,   237,    -1,   175,    -1,   239,
805      175,    -1,   237,    -1,   240,   237,    -1,   240,   175,    -1,
806      240,    -1,   239,    -1,   239,   240,    -1,   135,    -1,   135,
807      136,    -1,   242,   241,   136,    -1,   134,    -1,   173,   134,
808       -1,    54,   115,   173,   116,   237,    -1,    54,   115,   173,
809      116,   237,    64,   237,    -1,    55,   115,   173,   116,   237,
810       -1,    56,   115,   173,   116,   237,    -1,    57,   237,    56,
811      115,   173,   116,   134,    -1,    58,   115,   244,   244,   116,
812      237,    -1,    58,   115,   244,   244,   173,   116,   237,    -1,
813       56,   115,   116,   237,    -1,    58,   115,   244,   116,   237,
814       -1,    58,   115,   116,   237,    -1,    59,   147,   134,    -1,
815       60,   134,    -1,    61,   134,    -1,    62,   134,    -1,    62,
816      173,   134,    -1,     5,    -1,   178,   147,   135,   260,   136,
817       -1,   178,   147,   135,   136,    -1,   179,   147,   135,   260,
818      136,    -1,   179,   147,   135,   136,    -1,   140,   135,   260,
819      136,    -1,   140,   135,   136,    -1,   147,   135,   260,   136,
820       -1,   147,   135,   136,    -1,   135,   260,   136,    -1,   135,
821      136,    -1,   143,   243,    -1,   146,   243,    -1,   146,   134,
822       -1,   144,   243,    -1,   145,   243,    -1,   178,   221,    -1,
823      178,   225,    -1,   254,   243,    -1,   150,   133,   235,    -1,
824      235,    -1,   256,    -1,   257,   122,   256,    -1,   257,   134,
825       -1,   258,    -1,   255,    -1,   259,   258,    -1,   259,   255,
826       -1,   134,    -1,   259,   134,    -1,   259,    -1,   257,    -1,
827      259,   257,    -1,   230,    -1,   230,   132,   174,    -1
828 };
829
830 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
831 static const yytype_uint16 yyrline[] =
832 {
833        0,   225,   225,   243,   277,   327,   328,   355,   359,   360,
834      361,   378,   380,   385,   390,   395,   397,   402,   407,   408,
835      413,   415,   417,   419,   421,   422,   423,   426,   427,   428,
836      429,   430,   431,   432,   433,   434,   438,   439,   440,   441,
837      442,   443,   444,   445,   449,   454,   455,   456,   457,   458,
838      459,   460,   461,   465,   466,   467,   468,   472,   473,   474,
839      475,   476,   477,   478,   479,   480,   484,   485,   489,   490,
840      494,   495,   496,   497,   498,   499,   500,   504,   505,   509,
841      510,   511,   512,   516,   517,   518,   522,   523,   524,   528,
842      536,   537,   538,   539,   540,   544,   545,   546,   550,   551,
843      555,   556,   560,   561,   565,   566,   570,   571,   575,   576,
844      580,   581,   582,   586,   587,   588,   589,   590,   591,   592,
845      593,   594,   595,   596,   600,   601,   605,   609,   610,   611,
846      612,   616,   617,   618,   619,   620,   621,   622,   623,   627,
847      628,   629,   630,   631,   632,   633,   634,   635,   636,   640,
848      641,   642,   643,   644,   645,   646,   647,   648,   649,   653,
849      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
850      664,   668,   669,   673,   674,   675,   676,   677,   678,   679,
851      680,   681,   699,   716,   717,   718,   719,   720,   721,   722,
852      723,   724,   725,   726,   727,   728,   746,   763,   764,   768,
853      769,   773,   774,   775,   776,   777,   781,   782,   783,   787,
854      788,   789,   794,   795,   796,   797,   798,   802,   803,   807,
855      808,   809,   813,   814,   818,   822,   823,   824,   829,   830,
856      831,   832,   833,   834,   835,   836,   837,   838,   839,   840,
857      841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
858      854,   855,   856,   857,   858,   859,   860,   861,   862,   863,
859      864,   865,   866,   867,   868,   869,   870,   871,   872,   873,
860      878,   879,   880,   881,   882,   885,   886,   887,   888,   889,
861      894,   895,   898,   900,   905,   906,   911,   921,   925,   927,
862      928,   930,   931,   955,   970,   971,   975,   976,   980,   981,
863      985,   989,   990,   994,   996,   998,  1000,  1002,  1005,  1007,
864     1009,  1011,  1013,  1016,  1018,  1020,  1022,  1024,  1027,  1029,
865     1031,  1033,  1035,  1040,  1041,  1042,  1043,  1044,  1045,  1046,
866     1047,  1051,  1053,  1058,  1060,  1062,  1064,  1066,  1071,  1072,
867     1076,  1078,  1079,  1080,  1081,  1085,  1087,  1092,  1094,  1100,
868     1102,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,  1120,
869     1125,  1127,  1129,  1131,  1133,  1138,  1139,  1140,  1141,  1142,
870     1143,  1147,  1148,  1149,  1150,  1151,  1152,  1198,  1199,  1201,
871     1203,  1208,  1210,  1212,  1214,  1216,  1221,  1222,  1225,  1227,
872     1229,  1235,  1239,  1241,  1243,  1248,  1249,  1250,  1252,  1257,
873     1258,  1259,  1260,  1261,  1265,  1266,  1270,  1271,  1272,  1273,
874     1277,  1278,  1282,  1283,  1287,  1288,  1289,  1290,  1291,  1302,
875     1327,  1328,  1332,  1333,  1337,  1338,  1342,  1344,  1346,  1362,
876     1364,  1386,  1388,  1393,  1394,  1395,  1396,  1397,  1398,  1402,
877     1404,  1406,  1411,  1412,  1416,  1417,  1420,  1424,  1425,  1426,
878     1430,  1434,  1442,  1447,  1448,  1452,  1453,  1454,  1458,  1459,
879     1460,  1461,  1463,  1464,  1465,  1469,  1470,  1471,  1472,  1473,
880     1477,  1481,  1483,  1488,  1490,  1515,  1517,  1519,  1521,  1526,
881     1528,  1532,  1534,  1536,  1538,  1540,  1546,  1548,  1553,  1558,
882     1559,  1563,  1565,  1570,  1575,  1576,  1577,  1578,  1579,  1580,
883     1584,  1585,  1586,  1590,  1591
884 };
885 #endif
886
887 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
888 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
889    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
890 static const char *const yytname[] =
891 {
892   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
893   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
894   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
895   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
896   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
897   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
898   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
899   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
900   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
901   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
902   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
903   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
904   "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT",
905   "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING",
906   "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION",
907   "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY",
908   "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS",
909   "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD",
910   "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "'*'",
911   "'<'", "'>'", "'('", "')'", "'~'", "'$'", "'.'", "'['", "']'", "','",
912   "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "':'",
913   "'='", "';'", "'{'", "'}'", "$accept", "guess_type", "real_guess_type",
914   "type", "base_strict_type", "strict_type",
915   "class_function_definition_start",
916   "constructor_function_definition_start",
917   "destructor_function_definition_start",
918   "virtual_class_function_definition_start", "identifier",
919   "primary_expression", "simple_primary_expression", "postfix_expression",
920   "anon_instantiation_expression", "simple_postfix_expression",
921   "argument_expression_list", "common_unary_expression",
922   "unary_expression", "simple_unary_expression", "unary_operator",
923   "cast_expression", "multiplicative_expression", "additive_expression",
924   "shift_expression", "relational_expression_smaller_than",
925   "relational_expression", "equality_expression", "and_expression",
926   "exclusive_or_expression", "inclusive_or_expression",
927   "logical_and_expression", "logical_or_expression",
928   "conditional_expression", "assignment_expression", "assignment_operator",
929   "expression", "constant_expression", "declaration",
930   "specifier_qualifier_list", "guess_specifier_qualifier_list",
931   "declaration_specifiers", "guess_declaration_specifiers",
932   "real_guess_declaration_specifiers", "property_specifiers",
933   "renew_specifiers", "init_declarator_list", "init_declarator",
934   "storage_class_specifier", "ext_decl", "_attrib", "attribute_word",
935   "attribute", "attribs_list", "attrib", "ext_storage", "type_qualifier",
936   "type_specifier", "strict_type_specifier",
937   "struct_or_union_specifier_compound",
938   "struct_or_union_specifier_nocompound", "template_datatype",
939   "template_type_argument", "template_expression_argument",
940   "template_argument", "template_arguments_list", "struct_or_union",
941   "struct_declaration_list", "default_property", "default_property_list",
942   "property", "struct_declaration", "struct_declarator_list",
943   "struct_declarator", "enum_specifier_nocompound",
944   "enum_specifier_compound", "enumerator_list", "enumerator",
945   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
946   "abstract_declarator", "abstract_declarator_noarray", "declarator",
947   "direct_declarator_nofunction", "declarator_function",
948   "direct_declarator_function_start", "direct_declarator_function",
949   "direct_declarator", "declarator_nofunction", "type_qualifier_list",
950   "pointer", "parameter_type_list", "parameter_list",
951   "parameter_declaration", "identifier_list", "type_name",
952   "guess_type_name", "initializer", "initializer_condition",
953   "initializer_list", "statement", "labeled_statement", "declaration_list",
954   "statement_list", "compound_inside", "compound_start",
955   "compound_statement", "expression_statement", "selection_statement",
956   "iteration_statement", "jump_statement", "string_literal",
957   "instantiation_named", "guess_instantiation_named",
958   "instantiation_unnamed", "instantiation_anon",
959   "class_function_definition", "instance_class_function_definition_start",
960   "instance_class_function_definition", "data_member_initialization",
961   "data_member_initialization_list",
962   "data_member_initialization_list_coloned",
963   "members_initialization_list_coloned", "members_initialization_list",
964   "type_unit", 0
965 };
966 #endif
967
968 # ifdef YYPRINT
969 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
970    token YYLEX-NUM.  */
971 static const yytype_uint16 yytoknum[] =
972 {
973        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
974      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
975      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
976      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
977      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
978      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
979      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
980      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
981      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
982      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
983      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
984      365,   366,    42,    60,    62,    40,    41,   126,    36,    46,
985       91,    93,    44,    38,    43,    45,    33,    47,    37,    94,
986      124,    63,    58,    61,    59,   123,   125
987 };
988 # endif
989
990 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
991 static const yytype_uint16 yyr1[] =
992 {
993        0,   137,   138,   138,   139,   140,   140,   141,   142,   142,
994      142,   143,   143,   144,   145,   146,   146,   147,   148,   148,
995      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
996      149,   149,   149,   149,   149,   149,   150,   150,   150,   150,
997      150,   150,   150,   150,   151,   152,   152,   152,   152,   152,
998      152,   152,   152,   153,   153,   153,   153,   154,   154,   154,
999      154,   154,   154,   154,   154,   154,   155,   155,   156,   156,
1000      157,   157,   157,   157,   157,   157,   157,   158,   158,   159,
1001      159,   159,   159,   160,   160,   160,   161,   161,   161,   162,
1002      163,   163,   163,   163,   163,   164,   164,   164,   165,   165,
1003      166,   166,   167,   167,   168,   168,   169,   169,   170,   170,
1004      171,   171,   171,   172,   172,   172,   172,   172,   172,   172,
1005      172,   172,   172,   172,   173,   173,   174,   175,   175,   175,
1006      175,   176,   176,   176,   176,   176,   176,   176,   176,   177,
1007      177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
1008      178,   178,   178,   178,   178,   178,   178,   178,   178,   179,
1009      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
1010      179,   180,   180,   181,   181,   181,   181,   181,   181,   181,
1011      181,   181,   181,   182,   182,   182,   182,   182,   182,   182,
1012      182,   182,   182,   182,   182,   182,   182,   183,   183,   184,
1013      184,   185,   185,   185,   185,   185,   186,   186,   186,   187,
1014      187,   187,   188,   188,   188,   188,   188,   189,   189,   190,
1015      190,   190,   191,   191,   192,   193,   193,   193,   194,   194,
1016      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
1017      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
1018      195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
1019      195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
1020      196,   196,   196,   196,   196,   196,   196,   196,   196,   196,
1021      197,   197,   197,   197,   198,   198,   199,   200,   201,   201,
1022      201,   201,   201,   201,   202,   202,   203,   203,   204,   204,
1023      205,   206,   206,   207,   207,   207,   207,   207,   207,   207,
1024      207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
1025      207,   207,   207,   208,   208,   208,   208,   208,   208,   208,
1026      208,   209,   209,   210,   210,   210,   210,   210,   211,   211,
1027      212,   212,   212,   212,   212,   213,   213,   214,   214,   215,
1028      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1029      216,   216,   216,   216,   216,   217,   217,   217,   217,   217,
1030      217,   218,   218,   218,   218,   218,   218,   219,   219,   219,
1031      219,   220,   220,   220,   220,   220,   221,   221,   221,   221,
1032      221,   222,   223,   223,   223,   224,   224,   224,   224,   225,
1033      225,   225,   225,   225,   226,   226,   227,   227,   227,   227,
1034      228,   228,   229,   229,   230,   230,   230,   230,   230,   230,
1035      231,   231,   232,   232,   233,   233,   234,   234,   234,   235,
1036      235,   236,   236,   237,   237,   237,   237,   237,   237,   238,
1037      238,   238,   239,   239,   240,   240,   240,   241,   241,   241,
1038      242,   243,   243,   244,   244,   245,   245,   245,   246,   246,
1039      246,   246,   246,   246,   246,   247,   247,   247,   247,   247,
1040      248,   249,   249,   250,   250,   251,   251,   251,   251,   252,
1041      252,   253,   253,   253,   253,   253,   254,   254,   255,   256,
1042      256,   257,   257,   258,   259,   259,   259,   259,   259,   259,
1043      260,   260,   260,   261,   261
1044 };
1045
1046 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1047 static const yytype_uint8 yyr2[] =
1048 {
1049        0,     2,     2,     2,     2,     1,     2,     1,     1,     4,
1050        4,     2,     1,     3,     4,     3,     2,     1,     1,     3,
1051        1,     1,     1,     1,     2,     4,     2,     6,     5,     6,
1052        5,     7,     6,     7,     6,     1,     1,     4,     3,     4,
1053        3,     3,     2,     2,     1,     1,     4,     3,     4,     3,
1054        3,     2,     2,     1,     1,     3,     3,     2,     2,     2,
1055        4,     2,     4,     4,     2,     4,     1,     1,     1,     1,
1056        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1057        3,     3,     3,     1,     3,     3,     1,     3,     3,     2,
1058        1,     2,     3,     3,     3,     1,     3,     3,     1,     3,
1059        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
1060        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1061        1,     1,     1,     1,     1,     3,     1,     2,     3,     2,
1062        5,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1063        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1064        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1065        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1066        2,     1,     1,     1,     2,     1,     2,     1,     2,     1,
1067        2,     4,     5,     1,     2,     1,     2,     1,     2,     1,
1068        2,     1,     2,     1,     2,     4,     5,     1,     3,     1,
1069        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1070        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1071        2,     3,     6,     5,     1,     1,     1,     1,     1,     1,
1072        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1073        1,     1,     1,     1,     4,     4,     4,     1,     1,     1,
1074        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1075        1,     1,     1,     1,     1,     1,     4,     4,     4,     1,
1076        5,     4,     4,     3,     5,     6,     5,     5,     4,     6,
1077        2,     2,     3,     3,     1,     2,     1,     1,     1,     1,
1078        3,     3,     3,     3,     1,     3,     1,     1,     1,     2,
1079        3,     1,     3,     9,     9,     7,     7,     5,    10,    10,
1080        8,     8,     6,     8,     8,     6,     6,     4,     9,     9,
1081        7,     7,     5,     3,     2,     2,     2,     1,     2,     1,
1082        1,     1,     3,     1,     2,     2,     3,     5,     2,     2,
1083        4,     5,     7,     7,     5,     1,     3,     1,     3,     3,
1084        2,     3,     3,     3,     4,     4,     2,     3,     3,     4,
1085        3,     2,     3,     3,     4,     1,     1,     2,     2,     2,
1086        3,     1,     1,     2,     2,     2,     3,     1,     2,     3,
1087        2,     1,     3,     4,     3,     4,     1,     2,     2,     3,
1088        3,     2,     3,     3,     2,     1,     1,     2,     2,     1,
1089        2,     2,     3,     3,     1,     2,     1,     2,     2,     3,
1090        1,     3,     1,     3,     2,     2,     2,     3,     1,     1,
1091        1,     3,     1,     2,     1,     2,     1,     3,     4,     1,
1092        1,     1,     3,     1,     1,     1,     1,     1,     1,     3,
1093        4,     3,     1,     2,     1,     2,     2,     1,     1,     2,
1094        1,     2,     3,     1,     2,     5,     7,     5,     5,     7,
1095        6,     7,     4,     5,     4,     3,     2,     2,     2,     3,
1096        1,     5,     4,     5,     4,     4,     3,     4,     3,     3,
1097        2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
1098        1,     1,     3,     2,     1,     1,     2,     2,     1,     2,
1099        1,     1,     2,     1,     3
1100 };
1101
1102 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1103    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1104    means the default is an error.  */
1105 static const yytype_uint16 yydefact[] =
1106 {
1107        0,    17,     7,   201,   202,   203,   204,   205,   229,   230,
1108      231,   232,   233,   235,   238,   239,   236,   237,   225,   226,
1109      228,   234,   296,   297,     0,   419,   247,   206,   207,   209,
1110      248,   249,   240,     0,     0,   210,   211,   165,   172,   243,
1111        8,     5,     0,   171,   418,   159,   224,     0,   208,   227,
1112      161,   163,   167,   241,     0,   242,   169,   503,     0,     0,
1113      339,   338,     0,     0,     0,     4,     2,     3,     6,   406,
1114        0,     0,   416,   166,   381,   160,   224,   162,   164,   168,
1115      170,   366,   415,   414,   396,     0,   395,   377,   365,     0,
1116        0,     8,   281,   280,     0,     0,     1,   347,     0,   345,
1117        0,     0,    35,    22,   470,     0,     0,     0,     0,     0,
1118       76,     0,     0,     0,    71,     0,    74,     0,    70,    72,
1119       73,    75,     0,    20,    36,    18,    67,    66,    77,     0,
1120       79,    83,    86,    90,     0,    95,    98,   100,   102,   104,
1121      106,   108,   110,     0,    23,    21,     0,     0,   243,    20,
1122       77,   287,   284,   149,   151,   153,   157,   286,   289,   288,
1123      294,     0,   155,   404,   407,   408,   356,     0,     0,     0,
1124        0,   410,   412,   350,     0,   126,     0,     0,   381,     0,
1125      417,     0,   369,   398,   397,   368,     0,     0,   380,   391,
1126        0,   394,     0,     0,     0,     0,   367,   378,     0,     0,
1127        0,     0,     0,   330,   273,     0,     0,     0,     0,    20,
1128        0,     0,   224,     0,   301,     0,   329,   298,     0,    12,
1129      386,     0,     0,    21,   327,     0,     0,     0,   283,   282,
1130      504,     0,     0,   340,     0,     0,     0,    45,    69,    68,
1131       61,     0,    57,    58,     0,     0,     0,     0,     0,     0,
1132       64,    26,   124,     0,   422,   131,   133,   137,   135,     0,
1133       24,     0,     0,     0,    42,    43,     0,     0,     0,   114,
1134      115,   116,   117,   118,   119,   120,   121,   122,   123,   113,
1135        0,    59,     0,     0,     0,     0,     0,     0,     0,    91,
1136        0,     0,    89,     0,     0,     0,     0,     0,     0,     0,
1137        0,     0,   244,   245,   246,     0,     0,     0,   150,   224,
1138      152,   154,   158,   156,   285,   365,     0,    10,     9,     0,
1139      405,   409,   349,   382,   357,     0,   352,   351,     0,   370,
1140      379,   358,     0,   353,     0,     0,   384,     0,     0,   392,
1141      393,     0,   212,   213,   216,   215,   214,     0,   217,   219,
1142        0,   251,   252,   253,   254,   255,   257,   260,   261,   258,
1143      259,   250,   256,     0,   269,   262,     0,     0,   265,   179,
1144        0,   173,   175,   177,   263,     0,   264,     0,    16,    71,
1145        0,    20,     0,   450,     0,   481,   484,   485,   483,   482,
1146        0,     0,     0,   324,   381,   224,     0,   331,   399,    11,
1147      333,     0,   388,     0,   271,   299,     0,   328,     0,   387,
1148      326,   325,     0,   272,     0,   278,     0,     0,     0,   348,
1149      346,     0,   344,     0,   341,   143,    20,     0,   424,   139,
1150      141,   147,   145,     0,     0,    51,    52,     0,     0,     0,
1151        0,     0,   224,   372,     0,   371,   193,     0,   183,   185,
1152      187,   189,   191,     0,     0,     0,     0,     0,    19,     0,
1153      132,   134,   138,   136,   423,     0,     0,   498,     0,   476,
1154       67,   430,   429,     0,   490,    44,     0,   495,   491,   501,
1155      494,     0,     0,   478,     0,    41,    38,    54,     0,    53,
1156       40,     0,   112,   111,    80,    81,    82,    84,    85,    87,
1157       88,    93,    94,    92,    96,    97,    99,   101,   103,   105,
1158      107,     0,   286,   291,   290,   368,   293,   292,   295,   411,
1159      413,   359,   355,   354,   385,   383,   421,   223,     0,     0,
1160        0,   220,   339,   338,     0,     0,     0,     0,   180,   174,
1161      176,   178,     0,   280,     0,    15,   224,     0,   451,     0,
1162        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1163        0,   453,    20,     0,   442,     0,   444,   433,     0,     0,
1164        0,   434,   435,   436,   437,   438,     0,   300,    13,   335,
1165        0,   401,     0,     0,   323,     0,   334,     0,   400,   389,
1166      302,   390,   274,   270,   276,     0,   277,     0,     0,     0,
1167       60,   144,   140,   142,   148,   146,   425,    62,    50,    47,
1168        0,    49,     0,   361,     0,     0,     0,   375,   374,     0,
1169        0,   373,     0,     0,   194,   184,   186,   188,   190,   192,
1170        0,     0,     0,     0,     0,    63,    65,   125,    78,    25,
1171      480,     0,     0,   381,   486,   487,   488,     0,   493,   499,
1172      497,   502,   496,   475,   477,    39,     0,    37,     0,     0,
1173      222,   221,     0,     0,     0,     0,     0,     0,   317,     0,
1174        0,     0,     0,   283,   282,    14,     0,     0,     0,     0,
1175        0,     0,     0,     0,   466,   467,   468,     0,     0,     0,
1176      454,   127,   381,     0,   197,   199,   443,     0,   446,   445,
1177      452,   129,   474,     0,   402,     0,   332,   399,     0,   336,
1178      403,   279,   275,   343,   342,    48,    46,   360,   362,    28,
1179      376,   363,     0,     0,     0,     0,     0,     0,    30,     0,
1180        0,     0,   479,   489,   492,    56,    55,   109,   218,   266,
1181      267,   268,   181,     0,     0,     0,     0,     0,   307,     0,
1182        0,   322,     0,     0,   441,     0,     0,     0,     0,     0,
1183        0,     0,   465,   469,     0,   439,     0,     0,   128,     0,
1184      473,   401,     0,     0,   400,     0,   364,    27,   195,    32,
1185        0,     0,    29,    34,     0,     0,   315,     0,   316,   182,
1186        0,     0,     0,     0,     0,     0,   312,   440,     0,     0,
1187      462,     0,     0,   464,     0,     0,     0,   472,     0,   198,
1188        0,   426,   200,   402,   403,   337,   196,    31,    33,     0,
1189        0,     0,   305,     0,   306,     0,   320,     0,   321,     0,
1190        0,   455,   457,   458,     0,   463,     0,     0,   130,   471,
1191      431,     0,   313,   314,     0,     0,     0,     0,     0,   310,
1192        0,   311,     0,     0,   460,     0,     0,   427,   303,   304,
1193      318,   319,     0,     0,   456,   459,   461,   428,   432,   308,
1194      309
1195 };
1196
1197 /* YYDEFGOTO[NTERM-NUM].  */
1198 static const yytype_int16 yydefgoto[] =
1199 {
1200       -1,    37,    38,   122,    40,    41,   205,   206,   207,   208,
1201      123,   124,   125,   126,   471,   238,   488,   127,   150,   240,
1202      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1203      139,   140,   141,   142,   252,   280,   563,   176,   698,   254,
1204      428,   152,   211,    44,   370,   447,   693,   694,    45,    46,
1205       47,   348,   349,   350,    48,    49,    50,    51,   450,    52,
1206       53,   157,   158,   159,   160,   161,    54,   213,   214,   215,
1207      216,   217,   396,   397,    55,    56,    98,    99,    81,   443,
1208      168,   444,   169,   218,   219,    85,   220,    87,   400,   164,
1209      221,   170,   171,   172,   194,   259,   433,   812,   474,   841,
1210      566,   567,   568,   569,   570,   384,   571,   572,   573,   574,
1211      575,   144,   576,   222,   145,   475,   224,   476,   477,   478,
1212      479,   480,   481,   482,    58
1213 };
1214
1215 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1216    STATE-NUM.  */
1217 #define YYPACT_NINF -761
1218 static const yytype_int16 yypact[] =
1219 {
1220     8560,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1221     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1222     -761,  -761,  -761,  -761,    52,  -761,  -761,  -761,  -761,  -761,
1223     -761,  -761,  -761,   -71,   -55,  -761,  -761,  -761,  -761,  -761,
1224       -4,  -761,   121,  7108,  -761,  -761,  -761,    10,  -761,  -761,
1225     -761,  -761,  -761,  -761,   358,  -761,  -761,    51,   269,   248,
1226      147,   160,  6858,    49,  6060,  -761,  -761,  -761,  -761,   913,
1227     7204,  6571,   839,  -761,    24,  -761,    33,  -761,  -761,  -761,
1228     -761,   232,  -761,   596,   430,  8032,  -761,  -761,   530,   201,
1229     3800,   -62,  -761,   183,    53,  6858,  -761,   210,    84,  -761,
1230      248,   248,  -761,  -761,  -761,  6931,  6949,  6949,  8645,  6858,
1231     -761,  8645,  6858,  7007,  -761,  6186,  -761,   401,  -761,  -761,
1232     -761,  -761,   284,    26,  -761,  -761,   330,  -761,   691,  6858,
1233     -761,   277,   328,   361,  6858,   344,   466,   222,   293,   313,
1234      440,     9,  -761,   368,  -761,  -761,   382,    58,   284,    29,
1235     -761,   361,  7390,  -761,  -761,  -761,  -761,   341,  -761,  -761,
1236     -761,   228,  -761,  -761,   913,  -761,  -761,   620,   394,   611,
1237      403,   355,  -761,  -761,   150,  -761,   400,   839,  -761,   153,
1238      596,   676,   232,   430,  -761,   530,  8121,  6627,  -761,  -761,
1239     6653,  -761,   560,   415,   -30,    81,   232,  -761,   774,  8730,
1240     8299,  6494,  8645,  -761,  -761,   406,   406,   406,   367,    16,
1241      458,  5947,   153,  3918,  -761,   251,  -761,  -761,   430,  -761,
1242     -761,   676,   421,   423,  -761,  5706,  4036,  4154,   439,   441,
1243     -761,  6858,   248,  -761,   140,   158,  6312,  -761,   651,  -761,
1244     -761,  6709,  -761,  -761,    24,  7483,  8815,  7576,  8815,  6312,
1245     -761,  -761,  -761,    28,  7850,  -761,  -761,  -761,  -761,   422,
1246      453,  2994,  3130,   248,  -761,  -761,  5374,   248,  6858,  -761,
1247     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1248     5507,  -761,  6858,  6858,  6858,  6858,  6858,  6858,  6858,   361,
1249     6858,  6858,  -761,  6858,  6858,  6858,  6858,  6858,  6858,  6858,
1250     6858,  6858,  -761,  -761,  -761,  6060,  7297,   248,  -761,   405,
1251     -761,  -761,  -761,  -761,  -761,   515,  6060,  -761,  -761,  6060,
1252     -761,  -761,  -761,  -761,  -761,  8475,  -761,  -761,   676,   232,
1253     -761,  -761,   468,  -761,   241,   473,  -761,   243,   487,  -761,
1254     -761,   248,  -761,  -761,  -761,  -761,  -761,   494,   503,  -761,
1255       38,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1256     -761,  -761,  -761,    49,  -761,  -761,   505,   509,  -761,   513,
1257     2150,  -761,  -761,  -761,  -761,   506,  -761,  8299,  -761,   913,
1258     6438,   404,  8387,   500,  5216,  -761,  -761,  -761,  -761,  -761,
1259     5507,   866,  6858,  -761,    20,   153,   265,  -761,   430,  -761,
1260      360,   676,  -761,    81,  -761,  -761,   585,  -761,    81,  -761,
1261     -761,  -761,  4272,  -761,  4390,  -761,  4508,  5706,  4626,  -761,
1262     -761,  5706,  -761,  5706,  -761,  -761,    16,   512,  7850,  -761,
1263     -761,  -761,  -761,   528,   248,  -761,  -761,  5447,   248,  6858,
1264     7943,  6858,   278,   531,   535,   559,   568,  7669,  -761,  -761,
1265     -761,  -761,  -761,  6858,   564,  7762,   575,   577,  -761,  6858,
1266     -761,  -761,  -761,  -761,  -761,  6858,   401,  -761,  3266,  -761,
1267      481,  -761,  -761,  8299,  -761,  -761,   406,  -761,  -761,   291,
1268     -761,  3402,   562,  -761,   588,  -761,  -761,  -761,    54,  -761,
1269     -761,   471,  -761,  -761,  -761,  -761,  -761,   277,   277,   328,
1270      328,   361,   361,   361,   344,   344,   466,   222,   293,   313,
1271      440,   -33,  -761,  -761,  -761,   515,  -761,  -761,  -761,  -761,
1272     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  6858,   580,
1273      285,  -761,  -761,  -761,  6858,    49,  6060,   154,   -48,  -761,
1274     -761,  -761,    30,  -761,    49,  -761,   153,   612,  -761,  6858,
1275      572,   624,   628,   629,  5301,   630,   248,   618,   622,  5840,
1276      248,  -761,    72,   307,  -761,  2459,  -761,  -761,  2586,  2722,
1277      623,  -761,  -761,  -761,  -761,  -761,   631,  -761,  -761,  -761,
1278     3538,   430,    81,    31,  -761,  6858,  -761,    81,   430,  -761,
1279     -761,  -761,  -761,  -761,  -761,  4744,  -761,  4862,  4980,  5098,
1280     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1281      189,  -761,   517,  -761,   646,   652,   648,   531,   559,  8210,
1282     6858,   531,  6060,  6858,   661,  -761,  -761,  -761,  -761,  -761,
1283      655,   657,  6858,  6858,   656,  -761,  -761,  -761,  -761,  -761,
1284     -761,   643,  5507,   248,  -761,  -761,  -761,  5507,  -761,  -761,
1285     -761,   291,  -761,  -761,  -761,  -761,  5507,  -761,  6858,   396,
1286     -761,  -761,   667,   673,    59,   108,   406,   406,  -761,  6060,
1287      230,   262,   659,  -761,  -761,  -761,   660,  5301,  6858,  6858,
1288     6782,   739,  5758,   663,  -761,  -761,  -761,   308,   670,  5301,
1289     -761,  -761,    36,   338,  -761,   492,  -761,  2858,  -761,  -761,
1290     -761,  -761,  -761,   669,   430,   153,  -761,   686,   676,   677,
1291      430,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1292      531,  -761,   695,   693,   340,   694,  6060,  6858,  -761,   696,
1293      698,  6858,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1294     -761,  -761,  -761,   -21,   -34,   372,   406,   406,  -761,   406,
1295      406,  -761,   279,  5301,  -761,   427,   436,  5301,   437,   697,
1296     5301,  5791,  -761,  -761,  6858,  -761,  3674,   839,  -761,  5580,
1297     -761,   686,    81,    81,   686,  6858,  -761,  -761,  -761,  -761,
1298      386,   700,  -761,  -761,   702,   406,  -761,   406,  -761,  -761,
1299      167,   -29,   185,   -16,   406,   406,  -761,  -761,  5301,  5301,
1300     -761,  5301,  6858,  -761,  5301,  6800,   692,  -761,   689,  -761,
1301     5580,  -761,  -761,   686,   686,  -761,  -761,  -761,  -761,   699,
1302      703,   406,  -761,   406,  -761,   406,  -761,   406,  -761,   190,
1303       -1,   763,  -761,  -761,   448,  -761,  5301,   490,  -761,  -761,
1304     -761,   247,  -761,  -761,   704,   705,   708,   709,   406,  -761,
1305      406,  -761,  5301,   712,  -761,  5301,  2348,  -761,  -761,  -761,
1306     -761,  -761,   714,   718,  -761,  -761,  -761,  -761,  -761,  -761,
1307     -761
1308 };
1309
1310 /* YYPGOTO[NTERM-NUM].  */
1311 static const yytype_int16 yypgoto[] =
1312 {
1313     -761,   -31,  -761,   816,   777,     4,  -761,  -761,  -761,  -761,
1314        0,  -761,   -22,   668,  -264,  -761,   391,    25,   195,   720,
1315     -761,  -125,   363,   364,    -7,  -761,   443,   538,   540,   563,
1316      539,   557,  -761,  1822,   -49,  -761,   -12,   701,  -370,  -761,
1317     -761,  -215,     8,  -761,  -761,   617,  -761,    99,  1677,  1091,
1318     -761,  -761,  -340,  -761,   467,  -761,  1380,  1846,  -132,  1400,
1319     -177,    95,   104,   130,   551,  -491,  -188,   109,   470,  -761,
1320     -761,   -92,  -761,   295,  -151,  1595,   641,   650,   -51,  -427,
1321      -26,  -168,   -42,   452,  -180,  -761,    96,   -67,   416,  -761,
1322     1146,   -82,  -761,     5,  -761,  -761,   647,  -760,  -383,  -761,
1323      111,  -761,  -761,   329,  -761,  -761,    35,  -644,  -761,  -761,
1324     -761,  -111,  -761,  -761,   521,  -761,  -761,  -761,   417,   252,
1325      419,   424,  -761,  -253,  -761
1326 };
1327
1328 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1329    positive, shift that token.  If negative, reduce the rule which
1330    number is the opposite.  If zero, do what YYDEFACT says.
1331    If YYTABLE_NINF, syntax error.  */
1332 #define YYTABLE_NINF -501
1333 static const yytype_int16 yytable[] =
1334 {
1335       42,    83,   487,   193,   281,    57,   260,   577,    43,   484,
1336      531,   375,    73,   143,   564,   617,   492,    82,   621,     1,
1337      378,   197,   374,     1,    61,   182,   300,     1,    60,     1,
1338      180,   399,     1,     1,     1,   787,     1,   196,   761,     1,
1339      823,   342,    68,    74,    62,   665,   473,   473,   376,   785,
1340      840,    64,     1,   827,    93,     1,     1,   151,    92,    97,
1341       63,     1,     1,   147,   149,   669,   343,   373,   850,   374,
1342      167,   374,   178,   225,    68,     1,   178,     2,    43,   454,
1343        2,     2,   344,   237,     1,   192,   340,   670,   178,   459,
1344      209,   237,   341,    43,   229,   376,   868,   376,   228,   658,
1345       97,    97,   788,   253,   332,    27,    28,   824,   244,    64,
1346       29,   244,   345,   346,   197,   786,   245,   805,   330,   247,
1347      828,   405,    65,    68,     1,    89,   314,   289,    66,    67,
1348      239,   724,    66,    67,   329,   851,    66,    67,   239,    86,
1349      301,    35,    36,    69,   458,    69,   177,    68,    70,    68,
1350      459,   262,   307,    71,   529,   580,     1,   494,   495,   496,
1351      530,   262,   305,   392,   262,   671,    86,    68,    86,   565,
1352      655,   766,   184,   487,   304,   741,   656,   178,   745,   178,
1353       73,   178,   375,    95,    86,   178,    42,    59,   227,   253,
1354      661,   720,    68,   374,    43,   178,   177,   545,   696,   369,
1355       74,   381,   244,   368,   689,   425,   232,   262,   377,    68,
1356      382,   394,   178,   209,    73,   641,    73,   489,   425,   376,
1357      233,   178,   742,   666,   667,   209,   209,   209,   464,   253,
1358      319,   493,    97,    66,    67,   780,   426,   821,   541,   317,
1359      385,   386,   387,   389,    68,   244,   446,   244,   446,   426,
1360      368,     1,   368,   473,   307,   825,   491,   128,   182,   733,
1361      848,   330,   232,   485,   196,    69,   473,   490,   177,    96,
1362      374,   326,   614,    86,   421,   184,   422,    86,   374,   630,
1363      232,    86,   100,   501,   502,   261,   503,   634,   342,   511,
1364      668,   184,   423,   644,   424,   101,   376,    86,   151,   746,
1365      747,   242,   243,   822,   376,   715,    42,    68,   402,   151,
1366      128,   656,   151,   343,    43,   627,   198,   409,   226,   149,
1367      405,   826,   405,   627,   405,    42,   849,   703,   178,   344,
1368      520,   749,   750,    43,   412,   414,   416,   263,   264,   265,
1369      638,   526,   318,   231,   542,   296,    73,   186,   794,   795,
1370      319,    73,   187,   565,   565,   639,   290,   291,   615,   345,
1371      346,     1,   522,   533,   524,   473,   748,   532,   253,   856,
1372      538,   287,   288,   406,   368,   543,   261,    74,   261,    92,
1373      381,    68,   244,   857,   562,   407,     2,   583,   489,   282,
1374       69,   178,   735,   440,    68,   178,   128,   601,   751,   584,
1375      512,   178,   606,   178,   283,   284,   104,     1,   178,   513,
1376      637,   512,   209,   647,   209,   796,   209,   209,   209,   261,
1377      516,   209,   297,   209,    86,   648,    68,   612,   244,   459,
1378      459,   427,    27,    28,   608,   514,   128,    29,   611,    29,
1379       42,   690,   763,   298,   456,   266,   517,   624,    43,   267,
1380      268,   368,   285,   286,   778,   624,   299,   292,   293,   368,
1381      767,   128,   319,   128,   329,   263,   264,   265,    35,    36,
1382       35,    36,   768,   643,   316,   128,    86,   325,  -381,  -381,
1383      294,   295,   565,  -381,   302,   662,   789,    86,   263,   264,
1384      265,   402,   585,    90,   319,    84,   128,   409,   303,   589,
1385      816,   388,   383,   405,   591,   405,   405,   405,   319,     1,
1386      322,   646,   738,   808,  -381,  -381,   659,    69,   459,   324,
1387      306,   327,    84,   695,    84,    71,   595,   597,   183,   151,
1388      598,   339,   599,     1,     2,   664,   149,   722,   465,   262,
1389       84,   383,   672,   798,   674,   189,   178,   687,   673,   459,
1390      190,   473,   799,   801,   562,   410,   683,   411,   459,   459,
1391      688,    65,    68,     1,   853,   692,    27,    28,   562,   562,
1392      459,    29,   466,   266,   417,   128,   418,   267,   268,   128,
1393       27,    28,   178,   178,   521,    29,   102,   178,     1,   103,
1394      104,   390,   657,   459,   523,   209,   266,   209,   209,   209,
1395      267,   268,    35,    36,    27,    28,   855,   736,   525,    29,
1396      527,   223,   459,     2,   642,   151,    35,    36,   528,    42,
1397      534,    65,   149,     1,   535,   769,   536,    43,   600,    84,
1398      306,   183,   128,    84,   128,    71,   548,    84,   716,   459,
1399       35,    36,   184,    68,   607,    70,   619,   183,   497,   498,
1400       71,   499,   500,    84,   128,   620,   108,   109,   434,   435,
1401      436,    86,   151,   398,    68,   681,   755,   756,   758,   149,
1402       27,    28,    66,    67,   440,    29,  -420,   562,   589,     1,
1403      699,   622,  -420,   591,   632,    27,    28,   111,   112,   562,
1404       29,   635,    68,   636,  -381,  -381,   660,   562,   653,  -381,
1405      241,   743,   744,   117,   677,   178,    35,    36,   178,   269,
1406      270,   271,   272,   273,   274,   275,   276,   277,   278,   151,
1407      811,    35,    36,   128,   654,   695,   149,   323,   675,   128,
1408     -381,  -381,    66,    67,   223,  -381,  -381,   504,   505,   678,
1409     -381,   234,   235,   679,   680,   682,   223,   223,   223,   128,
1410       27,    28,   684,   562,   128,    29,   685,   562,   210,   700,
1411      562,   811,   717,   128,   128,   701,   437,   178,   718,   719,
1412      438,   439,   178,   178,   726,   727,   731,   342,   728,   732,
1413       84,   790,   791,   739,   792,   793,    35,    36,   754,   740,
1414      834,   177,   753,   837,   752,   759,   230,   762,   562,   562,
1415      765,   562,   343,   764,   562,   770,   190,   811,   699,   775,
1416      246,   776,   802,   248,   777,   779,    39,   782,   344,   783,
1417      819,   817,   820,   818,   279,   839,   838,   852,   610,   829,
1418      830,    91,    84,   250,   506,   842,   562,   507,   509,   843,
1419      858,   859,     1,    84,   860,   861,   865,   581,   345,   346,
1420      869,   128,   562,   588,   870,   562,   844,   510,   845,    39,
1421      846,   508,   847,    86,   797,   455,   809,   586,   800,     1,
1422      518,   803,   128,   128,   128,   128,   590,   128,   706,   146,
1423      148,   210,   420,   862,   128,   863,    39,   174,   335,   645,
1424      347,   338,   128,   210,   210,   210,   457,   697,   650,   734,
1425      651,    39,     0,     0,     0,   652,   148,     0,     0,   831,
1426      832,     0,   833,    27,    28,   835,     0,     0,    29,     0,
1427        0,     0,     0,     0,    39,   398,     0,    39,     0,   470,
1428      470,   148,   419,   223,     0,   223,     0,   223,   223,   223,
1429       27,    28,   223,     0,   223,    29,     0,   854,   128,    35,
1430       36,    69,   128,     0,   177,   128,   128,    18,    19,     0,
1431        0,     0,     0,   864,   128,     0,   866,     0,    39,     0,
1432        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1433        0,   177,   578,     0,     0,     0,     0,    27,    28,     0,
1434        0,     0,    29,   128,   128,     0,   128,   128,   183,   128,
1435      128,     0,    39,   334,     0,   128,   337,     0,     0,     0,
1436        0,     0,     0,     0,     0,     0,    39,    84,    39,     0,
1437        0,     0,     0,    35,    36,    69,     0,    39,     0,   148,
1438        0,   128,     0,     0,   704,   707,     0,     0,     0,   710,
1439        0,   148,   148,   148,     0,     0,     0,   128,     0,     0,
1440      128,   128,   148,     0,     0,     0,     0,     0,     0,     0,
1441        0,    39,     0,    39,     0,   148,     0,     0,     0,     0,
1442       39,     0,     0,     0,   210,     0,     0,   148,   148,     0,
1443      210,     0,   210,     0,   210,   210,   210,     0,     0,   210,
1444        0,   210,     0,   579,     0,     0,     0,     0,     0,     0,
1445        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446        0,     0,     0,     0,     0,     0,   223,     0,   223,   223,
1447      223,   148,    39,     0,     0,     0,     0,     0,     0,     0,
1448        0,     0,   148,     0,    76,   148,   470,     0,     0,     0,
1449        0,    39,   616,     0,     0,    94,     0,     0,     0,   470,
1450        0,     0,     0,     0,   631,     0,     0,   771,     0,     0,
1451      774,    76,     0,   179,     0,     0,     0,     0,     0,     0,
1452        0,     0,     0,     0,   188,     0,     0,     0,     0,   195,
1453        0,   212,     0,     0,     0,     0,     0,     0,     0,    88,
1454        0,     0,     0,    39,     0,     0,   148,     0,    39,     0,
1455      148,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456        0,     0,     0,     0,     0,   165,    88,     0,   181,    84,
1457        0,     0,   185,     0,   813,   814,     0,     0,   148,     0,
1458      148,     0,   148,   148,   148,     0,     0,   148,     0,   148,
1459        0,     0,     0,   309,    39,     0,     0,     0,   470,     0,
1460      676,     0,     0,     0,     0,     0,    39,     0,     0,     0,
1461      188,     0,     0,   210,     0,   210,   210,   210,   179,     0,
1462        0,   188,   195,     0,     0,     0,   195,     0,     0,     0,
1463        0,     0,     0,     0,   148,     0,   709,     0,     0,    39,
1464        0,   212,   179,     0,     0,     0,     0,   148,   315,     0,
1465        0,     0,   395,     0,   212,     0,     0,     0,     0,     0,
1466      321,     0,   408,     0,     0,   470,   212,   212,   212,     0,
1467        0,   723,     0,   181,   725,   328,     0,     0,     0,     0,
1468        0,     0,     0,   729,   730,     0,   442,     0,   442,     0,
1469        0,     0,     0,     0,     0,   309,     0,   181,     0,     0,
1470        0,   663,   148,     0,     0,     0,     0,   401,   403,     0,
1471        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1472        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1473        0,    39,     0,     0,   148,   148,     0,     0,     0,     0,
1474        0,   445,     0,   445,     0,     0,   148,   309,     0,     0,
1475      315,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1476        0,   148,     0,   148,   148,   148,     0,     0,     0,   195,
1477        0,     0,     0,    77,     0,     0,     0,     0,   781,     0,
1478        0,     0,   784,     0,   470,    39,     0,     0,   148,     0,
1479        0,     0,     0,    79,   154,     0,     0,     0,     0,   163,
1480        0,     0,   315,     0,     0,   515,     0,     0,     0,     0,
1481        0,   309,     0,     0,   156,   806,   544,     0,   212,     0,
1482        0,   546,     0,     0,     0,     0,   815,     0,     0,     0,
1483        0,     0,   179,     0,     0,   148,     0,     0,     0,     0,
1484        0,     0,   587,     0,     0,   255,     0,     0,     0,     0,
1485        0,     0,     0,   212,     0,   212,     0,   212,   212,   212,
1486        0,     0,   212,   148,   212,   257,   315,     0,     0,   309,
1487        0,     0,     0,     0,     0,   165,   181,     0,     0,     0,
1488        0,   442,   310,     0,     0,     0,     0,   181,   442,     0,
1489        0,   582,   148,     0,   320,     0,   442,     0,     0,     0,
1490        0,     0,   312,     0,     0,     0,     0,     0,     0,     0,
1491        0,     0,     0,     0,   395,     0,     0,     0,     0,     0,
1492        0,     0,     0,     0,   315,     0,     0,     0,     0,   372,
1493        0,     0,   148,     0,     0,     0,   445,     0,   618,     0,
1494        0,    77,     0,   445,     0,     0,     0,     0,     0,     0,
1495        0,   445,     0,     0,     0,     0,     0,     0,     0,     0,
1496        0,    79,     0,     0,     0,     0,   429,     0,     0,   401,
1497        0,     0,     0,     0,     0,    77,   449,    77,   449,   429,
1498        0,     0,     0,     0,   460,     0,   431,     0,    80,     0,
1499        0,   154,   154,     0,     0,    79,   451,    79,   451,   431,
1500        0,     0,     0,     0,   462,     0,   546,     0,     0,   162,
1501        0,   156,   156,     0,     0,     0,     0,     0,     0,     0,
1502        0,     0,     0,     0,   705,     0,     0,     0,     0,     0,
1503        0,     0,     0,     0,     0,   154,   212,     0,   212,   212,
1504      212,     0,   328,     0,     0,     0,   154,     0,     0,   154,
1505        0,     0,     0,     0,     0,   156,     0,     0,     0,     0,
1506      258,   181,     0,     0,     0,     0,   156,     0,     0,   156,
1507       75,     0,     0,     0,     0,     0,     0,     0,     0,   708,
1508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1509        0,   153,     0,     0,     0,     0,     0,   313,     0,     0,
1510      540,     0,     0,     0,     0,     0,     0,    77,     0,   163,
1511      255,     0,    77,     0,   154,     0,     0,     0,     0,     0,
1512        0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
1513      257,     0,    79,     0,   156,     0,   188,     0,     0,     0,
1514        0,     0,     0,     0,     0,     0,     0,     0,     0,   773,
1515        0,     0,     0,     0,     0,     0,    80,     0,   602,     0,
1516        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1517        0,     0,     0,     0,     0,     0,     0,   626,   604,   308,
1518        0,   432,     0,     0,     0,   626,     0,     0,     0,     0,
1519       80,   452,    80,   452,   432,     0,     0,   628,   154,   463,
1520        0,   772,     0,   310,     0,   628,   162,   162,   179,     0,
1521        0,   154,     0,     0,     0,     0,     0,     0,   156,     0,
1522        0,     0,     0,   312,     0,     0,   371,     0,     0,     0,
1523        0,   156,     0,     0,     0,     0,     0,     0,    75,    78,
1524        0,     0,     0,   175,     0,     0,     0,     0,     0,     0,
1525      162,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1526      155,   162,     0,   181,   162,     0,   154,   175,     0,     0,
1527        0,     0,    75,   448,    75,   448,     0,     0,     0,     0,
1528        0,   175,     0,     0,   175,     0,   156,     0,   153,   153,
1529        0,     0,     0,     0,     0,   310,     0,     0,   154,   154,
1530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1531      154,   256,     0,     0,     0,   312,     0,     0,   156,   156,
1532        0,     0,    80,     0,     0,   258,     0,    80,     0,   162,
1533      156,     0,   153,     0,     0,     0,     0,     0,     0,     0,
1534        0,     0,     0,   153,     0,     0,   153,     0,   311,     0,
1535        0,     0,   154,     0,     0,     0,     0,     0,     0,   175,
1536        0,     0,   175,     0,     0,     0,     0,     0,     0,     0,
1537        0,     0,   156,   605,     0,     0,     0,     0,     0,     0,
1538        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1539        0,     0,   629,     0,     0,     0,     0,   539,     0,   154,
1540      629,     0,     0,   175,    75,     0,     0,    78,     0,    75,
1541        0,   153,     0,   162,     0,     0,     0,     0,   313,   156,
1542        0,     0,     0,     0,     0,     0,   162,   154,     0,     0,
1543        0,     0,   430,   472,   472,     0,     0,     0,     0,     0,
1544        0,    78,     0,    78,     0,   430,     0,   156,     0,     0,
1545      461,     0,     0,     0,     0,     0,   154,   155,   155,     0,
1546        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1547        0,     0,     0,     0,   625,     0,   156,     0,     0,     0,
1548        0,   162,   625,     0,     0,     0,     0,     0,     0,     0,
1549        0,     0,     0,     0,     0,   153,   154,     0,     0,     0,
1550      308,   155,     0,     1,     0,     0,     0,     0,   153,     0,
1551      313,     0,   155,   162,   162,   155,   156,     0,     0,     0,
1552        0,     0,     0,     0,     0,   162,     0,     0,     2,     3,
1553        4,     5,     6,     7,   351,   352,   353,   354,   355,   356,
1554      357,   358,   359,   360,    18,    19,   361,   362,    22,    23,
1555      363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1556        0,     0,   472,   153,   175,     0,   364,   162,     0,     0,
1557        0,     0,     0,    78,    27,    28,   256,     0,    78,    29,
1558      155,     0,     0,     0,     0,   365,     0,   366,     0,     0,
1559        0,     0,   308,     0,     0,   153,   153,     0,     0,     0,
1560      367,     0,     0,     0,     0,     0,     0,   153,     0,     0,
1561       35,    36,    69,   175,   162,   306,     0,     0,     0,     0,
1562       71,     0,     0,     0,   603,   175,     0,     0,     0,     0,
1563        0,     0,     0,     0,     0,   537,     0,     0,     0,     0,
1564      472,     0,   162,     0,     0,     0,     0,     0,     0,   153,
1565        0,     0,     0,   472,     0,     0,     0,     0,     0,     0,
1566        0,     0,     0,     0,   155,     0,     0,     0,     0,   311,
1567        0,   162,     0,     0,     0,     0,     0,   155,     0,     0,
1568        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1569        0,     0,     0,     0,     0,     0,   153,     0,     0,   102,
1570        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1571        0,   162,     0,     0,     0,     0,     0,     0,     0,     0,
1572        0,   175,     0,     0,   153,     0,     2,     0,     0,     0,
1573        0,     0,   155,     0,     0,     0,     0,     0,     0,     0,
1574        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1575        0,     0,   472,   153,     0,     0,     0,   175,     0,     0,
1576        0,   311,     0,     0,   155,   155,     0,     0,     0,   108,
1577      109,   110,     0,     0,     0,     0,   155,     0,     0,     0,
1578        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1579        0,     0,   175,   153,     0,   175,     0,     0,     0,     0,
1580      111,   112,     0,     0,   175,   175,     0,   113,     0,     0,
1581      114,     0,     1,   115,   472,   116,   117,     0,   155,   472,
1582        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1583      737,     0,     0,   810,   867,     0,     0,     2,     3,     4,
1584        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1585       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1586        0,     0,     0,     0,     0,   155,     0,     0,     0,     0,
1587        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1588        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
1589        0,    30,    31,   155,    32,     0,    33,     0,     0,   175,
1590        0,     0,     0,   175,     0,     0,     0,     0,     0,    34,
1591        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
1592       36,    69,   155,     0,   177,     0,     0,     0,     0,     0,
1593        0,     0,     0,     0,     0,     0,   175,   102,   472,     1,
1594      103,   104,   105,   691,   106,   107,     0,   175,     0,     0,
1595        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1596        0,     0,   155,     0,     2,     3,     4,     5,     6,     7,
1597        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1598       18,    19,    20,    21,    22,    23,    24,     0,   549,   550,
1599      551,   552,   553,   554,   555,   556,   557,   558,   559,     0,
1600        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1601       27,    28,     0,   560,     0,    29,     0,     0,    30,    31,
1602        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1603        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1604        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1605        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1606      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1607      561,   383,  -448,   102,     0,     1,   103,   104,   105,     0,
1608      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1609        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1610        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1611       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1612       22,    23,    24,     0,   549,   550,   551,   552,   553,   554,
1613      555,   556,   557,   558,   559,     0,     0,     0,    26,     0,
1614        0,     0,     0,   108,   109,   110,    27,    28,     0,   560,
1615        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1616        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1617        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1618        0,   113,    35,    36,   114,     0,     0,   115,     0,   116,
1619      117,     0,     0,     0,     0,   118,   119,   120,   121,     0,
1620        0,     0,     0,     0,     0,     0,   561,   383,  -447,   102,
1621        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1623        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1624        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1625       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1626      549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
1627      559,     0,     0,     0,    26,     0,     0,     0,     0,   108,
1628      109,   110,    27,    28,     0,   560,     0,    29,     0,     0,
1629       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1630        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1631      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1632      114,     0,     0,   115,     0,   116,   117,     0,     0,     0,
1633        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1634        0,     0,   561,   383,  -449,   102,     0,     1,   103,   104,
1635      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1636        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1638       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1639       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1640        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1641       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1642        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1643        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1644        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1645        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1646        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1647      121,     0,     0,     0,     0,     0,     0,     0,   467,   468,
1648      469,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1649        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1650        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1651        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1652       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1653       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1654        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1655        0,   108,   109,   110,    27,    28,     0,     0,     0,    29,
1656        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1657        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1658       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1659       35,    36,   114,     0,     0,   115,     0,   116,   117,     0,
1660        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1661        0,     0,     0,     0,   467,   468,   483,   102,     0,     1,
1662      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1663        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1665        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1666       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1669       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1670        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1671        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1672        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1673        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1674      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1675      467,   468,   640,   102,     0,     1,   103,   104,   105,     0,
1676      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1677        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1679       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1680       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1681        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1682        0,     0,     0,   108,   109,   110,    27,    28,     0,     0,
1683        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1684        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1686        0,   113,    35,    36,   114,     0,     0,   115,     0,   116,
1687      117,     0,     0,     0,     0,   118,   119,   120,   121,     0,
1688        0,     0,     0,     0,     0,     0,   649,   468,  -500,   102,
1689        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1690        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1691        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1692        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1693       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1694        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695        0,     0,     0,     0,    26,     0,     0,     0,     0,   108,
1696      109,   110,    27,    28,     0,     0,     0,    29,     0,     0,
1697       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1698        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1699      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1700      114,     0,     0,   115,     0,   116,   117,     0,     0,     0,
1701        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1702        0,     0,   467,   468,   702,   102,     0,     1,   103,   104,
1703      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1704        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1705        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1706       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1707       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1708        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1710        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1711        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1712        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1713        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1714        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1715      121,   102,     0,     1,   103,   104,     0,     0,   467,   468,
1716      807,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1717        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1718        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1719       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1720       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1721        0,     0,     0,     0,     0,     0,    26,     0,   199,     0,
1722        0,   108,   109,     0,    27,    28,     0,     0,   200,    29,
1723        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1724        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1725       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1726       35,    36,    69,     0,     0,   201,     0,   202,   117,   102,
1727        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1728        0,     0,     0,     0,   203,     0,   204,     0,     0,     0,
1729        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1730        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1731       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1732        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1733        0,     0,     0,     0,    26,     0,   199,     0,     0,   108,
1734      109,     0,    27,    28,     0,     0,   200,    29,     0,     0,
1735       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1736        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1737      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1738       69,     0,     0,   201,     0,   202,   117,   102,     0,     1,
1739      103,   104,     0,     0,     0,     0,     0,     0,     0,     0,
1740        0,     0,   203,     0,   404,     0,     0,     0,     0,     0,
1741        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1742        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1743       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1744        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1745        0,     0,    26,     0,   199,     0,     0,   108,   109,     0,
1746       27,    28,     0,     0,   200,    29,     0,     0,    30,    31,
1747        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1748        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1749        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1750        0,   201,     0,   202,   117,   102,     0,     1,   103,   104,
1751        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752      203,     0,   413,     0,     0,     0,     0,     0,     0,     0,
1753        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1754       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1755       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757       26,     0,   199,     0,     0,   108,   109,     0,    27,    28,
1758        0,     0,   200,    29,     0,     0,    30,    31,     0,    32,
1759        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1760        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1761        0,     0,     0,     0,    35,    36,    69,     0,     0,   201,
1762        0,   202,   117,   102,     0,     1,   103,   104,     0,     0,
1763        0,     0,     0,     0,     0,     0,     0,     0,   203,     0,
1764      415,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1766       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1767       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1768        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1769      199,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1770      200,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1771        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1773        0,     0,    35,    36,    69,     0,     0,   201,     0,   202,
1774      117,   102,     0,     1,   103,   104,     0,     0,     0,     0,
1775        0,     0,     0,     0,     0,     0,   203,     0,   592,     0,
1776        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1777        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1778       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1779       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780        0,     0,     0,     0,     0,     0,    26,     0,   199,     0,
1781        0,   108,   109,     0,    27,    28,     0,     0,   200,    29,
1782        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1785       35,    36,    69,     0,     0,   201,     0,   202,   117,   102,
1786        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1787        0,     0,     0,     0,   203,     0,   593,     0,     0,     0,
1788        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1789        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1790       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1791        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1792        0,     0,     0,     0,    26,     0,   199,     0,     0,   108,
1793      109,     0,    27,    28,     0,     0,   200,    29,     0,     0,
1794       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1795        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1796      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1797       69,     0,     0,   201,     0,   202,   117,   102,     0,     1,
1798      103,   104,     0,     0,     0,     0,     0,     0,     0,     0,
1799        0,     0,   203,     0,   594,     0,     0,     0,     0,     0,
1800        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1801        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1802       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1803        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1804        0,     0,    26,     0,   199,     0,     0,   108,   109,     0,
1805       27,    28,     0,     0,   200,    29,     0,     0,    30,    31,
1806        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1807        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1808        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1809        0,   201,     0,   202,   117,   102,     0,     1,   103,   104,
1810        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1811      203,     0,   596,     0,     0,     0,     0,     0,     0,     0,
1812        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1813       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1814       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1815        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816       26,     0,   199,     0,     0,   108,   109,     0,    27,    28,
1817        0,     0,   200,    29,     0,     0,    30,    31,     0,    32,
1818        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1819        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1820        0,     0,     0,     0,    35,    36,    69,     0,     0,   201,
1821        0,   202,   117,   102,     0,     1,   103,   104,     0,     0,
1822        0,     0,     0,     0,     0,     0,     0,     0,   203,     0,
1823      711,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1825       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1826       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1827        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1828      199,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1829      200,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1830        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1831        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1832        0,     0,    35,    36,    69,     0,     0,   201,     0,   202,
1833      117,   102,     0,     1,   103,   104,     0,     0,     0,     0,
1834        0,     0,     0,     0,     0,     0,   203,     0,   712,     0,
1835        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1836        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1837       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1838       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1839        0,     0,     0,     0,     0,     0,    26,     0,   199,     0,
1840        0,   108,   109,     0,    27,    28,     0,     0,   200,    29,
1841        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1842        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1843       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1844       35,    36,    69,     0,     0,   201,     0,   202,   117,   102,
1845        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1846        0,     0,     0,     0,   203,     0,   713,     0,     0,     0,
1847        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1848        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1849       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851        0,     0,     0,     0,    26,     0,   199,     0,     0,   108,
1852      109,     0,    27,    28,     0,     0,   200,    29,     0,     0,
1853       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1854        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1855      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1856       69,     0,     0,   201,     0,   202,   117,   102,     0,     1,
1857      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1858        0,     0,   203,     0,   714,     0,     0,     0,     0,     0,
1859        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1860        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1861       18,    19,    20,    21,    22,    23,    24,     0,   549,   550,
1862      551,   552,   553,   554,   555,   556,   557,   558,   559,     0,
1863        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1864       27,    28,     0,   560,     0,    29,     0,     0,    30,    31,
1865        0,    32,   102,    33,     1,   103,   104,   105,     0,   106,
1866      107,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1867        0,     0,     0,     0,     0,   113,    35,    36,   114,     2,
1868        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1869      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1870      561,   383,     0,   549,   550,   551,   552,   553,   554,   555,
1871      556,   557,   558,   559,     0,     0,     0,     0,     0,     0,
1872        0,     0,   108,   109,   110,   102,     0,     1,   103,   104,
1873      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1874        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1875        0,     0,     2,   111,   112,     0,     0,     0,     0,     0,
1876      113,     0,     0,   114,     0,     0,   115,     0,   116,   117,
1877        0,     0,     0,     0,   118,   119,   120,   121,     0,     0,
1878        0,     0,     0,     0,     0,   561,   383,     0,     0,     0,
1879        0,     0,     0,     0,     0,   108,   109,   110,   102,     0,
1880        1,   103,   104,   105,     0,   106,   107,     0,     0,     0,
1881        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1882        0,     0,     0,     0,     0,     2,   111,   112,     0,     0,
1883        0,     0,     0,   113,     0,     0,   114,     0,     0,   115,
1884      486,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1885      121,     0,     0,     0,     0,     0,     0,     0,   102,   468,
1886        1,   103,   104,   105,     0,   106,   107,     0,   108,   109,
1887      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1888        0,     0,     0,     0,     0,     2,     0,     0,     0,     0,
1889        0,     0,     0,     0,     0,     0,     0,     0,     0,   111,
1890      112,     0,     0,     0,     0,     0,   113,     0,     0,   114,
1891        0,     0,   115,   609,   116,   117,     0,     0,     0,     0,
1892      118,   119,   120,   121,     0,     0,     0,     0,   108,   109,
1893      110,   102,   468,     1,   103,   104,   105,     0,   106,   107,
1894        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1895        0,     0,     0,     0,     0,     0,     0,     0,     2,   111,
1896      112,     0,     0,     0,     0,     0,   113,     0,     0,   114,
1897        0,     0,   115,     0,   116,   117,     0,     0,     0,     0,
1898      118,   119,   120,   121,     0,     0,     0,     0,     0,     0,
1899        0,     0,   468,     0,     0,     0,     0,     0,     0,     0,
1900        0,   108,   109,   110,     0,     0,     0,     0,     0,     0,
1901        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1902        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1903        0,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1904        0,     0,   114,     0,     0,   115,     0,   116,   117,     0,
1905        0,     0,     0,   118,   119,   120,   121,   102,     0,     1,
1906      103,   104,     0,     0,     0,   810,     0,     0,     0,     0,
1907        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1908        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1909        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1910       18,    19,    20,    21,    22,    23,    24,     0,     0,   102,
1911        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1912        0,     0,    26,     0,   199,     0,     0,   108,   109,     0,
1913       27,    28,     0,     0,   200,    29,     2,     0,    30,    31,
1914        0,    32,   102,    33,     1,   103,   104,   105,     0,   106,
1915      107,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1916        0,     0,     0,     0,     0,     0,    35,    36,    69,     2,
1917        0,   201,     0,   202,   117,     0,     0,     0,     0,   108,
1918      109,   110,     0,     0,     0,     0,     0,     0,     0,     0,
1919      203,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1920        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1921      111,   112,   108,   109,   110,     0,     0,   113,     2,     0,
1922      114,     0,     0,   115,   760,   116,   117,     0,     0,     0,
1923        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1924        0,     0,   561,   111,   112,     0,     0,     0,     0,     0,
1925      113,     0,     0,   114,     0,     0,   115,   804,   116,   117,
1926        0,   108,   109,   110,   118,   119,   120,   121,     0,     0,
1927        0,     0,     0,     0,     0,   561,     0,     0,     0,     0,
1928        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1929        0,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1930        1,     0,   114,     0,     0,   115,     0,   116,   117,     0,
1931        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1932        0,     0,     0,     0,   686,     2,     3,     4,     5,     6,
1933        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1934       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
1935        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1936        0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
1937        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
1938       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1939        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
1940        0,     0,     0,     0,     0,     0,     0,    35,    36,    69,
1941        0,   102,   391,     1,   103,   104,   105,     0,   106,   107,
1942        0,     0,     0,     0,     0,     0,     0,     0,     0,   392,
1943        0,   393,     0,     0,     0,     0,     0,     0,     2,     3,
1944        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1945       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1946       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1947        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1948        0,   108,   109,   110,    27,    28,     0,     0,     0,    29,
1949        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1950        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1951       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1952       35,    36,   114,     0,     0,   115,     0,   116,   117,     0,
1953        0,     0,     0,   118,   119,   120,   121,   102,     0,     1,
1954      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1955        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1956        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
1957        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1958       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1959        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1960        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1961       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1962        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1963        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1964        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1965        0,   115,   251,   116,   117,     0,     0,     0,     0,   118,
1966      119,   120,   121,   102,     0,     1,   103,   104,   105,     0,
1967      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1968        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1969        2,     0,     0,     0,     0,     0,     8,     9,    10,    11,
1970       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1971       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1972        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1973        0,     0,     0,   108,   109,   110,    27,    28,     0,     0,
1974        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1975        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1976        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1977        0,   113,    35,    36,   114,     0,     0,   241,   251,   116,
1978      117,     0,     0,     0,     0,   118,   119,   120,   121,   102,
1979        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1980        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1981        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
1982        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
1983       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1984        0,     0,     0,     0,     0,   102,     0,     1,   103,   104,
1985      105,     0,   106,   107,    26,     0,     0,     0,     0,   108,
1986      109,   110,    27,    28,     0,     0,     0,    29,     0,     0,
1987       30,    31,     2,    32,     0,    33,     0,     0,     0,     0,
1988        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1989      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1990      379,     0,     0,   380,   251,   116,   117,     0,     0,     0,
1991        0,   118,   119,   120,   121,   108,   109,   110,    27,    28,
1992        0,     0,   102,    29,     1,   103,   104,   105,     0,   106,
1993      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1994        0,     0,     0,     0,     0,     0,   111,   112,     0,     2,
1995        0,     0,     0,   113,    35,    36,   379,     0,     0,   380,
1996      251,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1997      121,     0,     0,     0,     0,     0,     0,     0,   102,     0,
1998        1,   103,   104,   105,     0,   106,   107,     0,     0,     0,
1999        0,     0,   108,   109,   110,     0,     0,     0,     0,     0,
2000        0,     0,     0,     0,   102,     2,     1,   103,   104,   105,
2001        0,   106,   107,     0,     0,     0,     0,     0,     0,     0,
2002        0,     0,     0,   111,   112,     0,     0,     0,     0,     0,
2003      113,     2,     0,   114,     0,     0,   115,     0,   116,   117,
2004        0,     0,   173,     0,   118,   119,   120,   121,   108,   109,
2005      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2006      102,     0,     1,   103,   104,   105,     0,   106,   107,     0,
2007        0,     0,     0,     0,   108,   109,   110,     0,     0,   111,
2008      112,     0,     0,     0,     0,     0,   113,     2,     0,   114,
2009        0,     0,   115,     0,   116,   117,     0,     0,   333,     0,
2010      118,   119,   120,   121,     0,   111,   112,     0,     0,     0,
2011        0,     0,   113,     0,     0,   114,     0,     0,   115,     0,
2012      116,   117,     0,     0,   336,     0,   118,   119,   120,   121,
2013      108,   109,   110,   102,     0,     1,   103,   104,   105,     0,
2014      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
2015        0,   102,     0,     1,   103,   104,   105,     0,   106,   107,
2016        2,   111,   112,     0,     0,     0,     0,     0,   113,     0,
2017        0,   114,     0,     0,   115,   251,   116,   117,     2,     0,
2018        0,     0,   118,   119,   120,   121,     0,     0,     0,     0,
2019        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2020        0,     0,     0,   108,   109,   110,     0,     0,     0,   102,
2021        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
2022        0,   108,   109,   110,     0,     0,     0,     0,     0,     0,
2023        0,     0,     0,     0,   111,   112,     2,     0,     0,     0,
2024        0,   113,     0,     0,   114,     0,     0,   115,   757,   116,
2025      117,     0,   111,   112,     0,   118,   119,   120,   121,   113,
2026        0,     0,   114,     0,     0,   115,   836,   116,   117,     0,
2027        0,     0,     0,   118,   119,   120,   121,     0,     0,   108,
2028      109,   110,   102,     0,     1,   103,   104,   105,     0,   106,
2029      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2030      102,     0,     1,   103,   104,   105,     0,   106,   107,     2,
2031      111,   112,     0,     0,     0,     0,     0,   113,     0,     0,
2032      114,     0,     0,   115,     0,   116,   117,     2,     0,     0,
2033        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
2034        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2035        0,     0,   108,   109,   110,     0,     0,     0,   102,     0,
2036        1,   103,   104,   105,     0,   106,   107,     0,     0,     0,
2037      108,   109,   110,     0,     0,     0,     0,     0,     0,     0,
2038        0,     0,     0,   111,   112,     2,     0,     0,     0,     0,
2039      113,     0,     0,   114,     0,     0,   236,     0,   116,   117,
2040        0,   111,   112,     0,   118,   119,   120,   121,   113,     0,
2041        0,   114,     0,     0,   241,     0,   116,   117,     0,     0,
2042        0,     0,   118,   119,   120,   121,     0,     0,   108,   109,
2043      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2044        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2045        0,     0,     0,     0,     0,     0,     0,     0,     0,   111,
2046      112,     1,     0,     0,     0,     0,   113,     0,     0,   114,
2047        0,     0,   249,     0,   116,   117,     0,     0,     0,     0,
2048      118,   119,   120,   121,     0,     0,     2,     3,     4,     5,
2049        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2050       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
2051        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2052        0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
2053        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
2054       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
2055        0,     0,     0,     0,     0,     0,     0,     1,    34,     0,
2056        0,     0,     0,     0,     0,     0,     0,     0,    35,    36,
2057       69,     0,     0,    70,     0,     0,     0,     0,    71,     0,
2058        0,    72,     2,     3,     4,     5,     6,     7,     8,     9,
2059       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2060       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
2061        0,     0,     0,     0,     0,     0,     0,     0,     0,    25,
2062       26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2063        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
2064        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
2065        1,     0,     0,     0,    34,     0,     0,     0,     0,     0,
2066        0,     0,     0,     0,    35,    36,    69,     0,     0,    70,
2067      166,     0,     0,     0,    71,     2,     3,     4,     5,     6,
2068        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2069       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
2070        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2071        0,     0,    25,    26,     0,     0,     0,     0,     0,     0,
2072        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
2073       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
2074        0,     0,     0,     1,     0,     0,     0,    34,     0,     0,
2075        0,     0,     0,     0,     0,     0,     0,    35,    36,    69,
2076        0,     0,   306,   166,     0,     0,     0,    71,     2,     3,
2077        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2078       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2079       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2080        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2081        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2082        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2083        0,     0,     0,     0,     0,     0,     1,     0,     0,     0,
2084       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2085       35,    36,    69,     0,     0,   306,     0,     0,     0,     0,
2086       71,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2087       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2088       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
2089        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
2090        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
2091        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
2092       33,     0,     0,     0,     0,     0,     0,     0,     0,     1,
2093        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
2094        0,     0,     0,    35,    36,    69,     0,     0,   440,     0,
2095        0,     0,     0,   441,     2,     3,     4,     5,     6,     7,
2096        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2097       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2098        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2099        0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
2100       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2101        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
2102        0,     0,     1,     0,     0,     0,    34,     0,     0,     0,
2103        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
2104        0,   440,     0,     0,     0,     0,   453,     2,     3,     4,
2105        5,     6,     7,   351,   352,   353,   354,   355,   356,   357,
2106      358,   359,   360,    18,    19,   361,   362,    22,    23,    24,
2107        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2108        0,     0,     0,     0,     0,   364,     0,     0,     0,     0,
2109        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2110        0,     0,     0,     0,   365,     0,   366,     0,     0,     0,
2111        0,     0,     0,     0,     0,     1,     0,     0,     0,   367,
2112        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2113       36,    69,     0,     0,   440,     0,     0,     0,     0,   623,
2114        2,     3,     4,     5,     6,     7,   351,   352,   353,   354,
2115      355,   356,   357,   358,   359,   360,    18,    19,   361,   362,
2116       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2117        0,     0,     0,     0,     0,     0,     0,     0,   364,     0,
2118        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2119        0,    29,     0,     0,     0,     0,     0,   365,     0,   366,
2120        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2121        0,     0,   367,     0,     0,     0,     0,     0,     0,     0,
2122        0,     0,    35,    36,    69,     0,     0,   440,     2,     0,
2123        0,     0,   633,     0,     8,     9,    10,    11,    12,    13,
2124       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2125       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2126        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2127        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2128        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2129        0,     0,     0,     0,     0,     0,     1,     0,     0,     0,
2130       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2131       35,    36,    69,     0,     0,   306,     0,     0,     0,     0,
2132       71,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2133       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2134       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
2135        0,     0,     0,     0,     0,     0,     0,     0,    25,    26,
2136        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
2137        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
2138       33,     0,     0,     0,     0,     1,     0,     0,     0,     0,
2139        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
2140        0,     0,     0,    35,    36,    69,     0,     0,   440,   613,
2141        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2142       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2143       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2144        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2145        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2146        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2147        0,     0,     0,     0,     1,     0,     0,     0,     0,     0,
2148        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2149        0,     0,    35,    36,     0,     0,     0,     0,   191,     2,
2150        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2151       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2152       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2153        0,     0,     0,     0,     0,     0,    25,    26,     0,     0,
2154        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2155       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2156        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2157        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
2158        0,    35,    36,     0,     0,     0,     0,   331,     2,     3,
2159        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2160       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2161       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2162        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
2163        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2164        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2165        0,     0,     1,     0,     0,     0,     0,     0,     0,     0,
2166       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2167       35,    36,     0,     0,     0,     0,   721,     2,     3,     4,
2168        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2169       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2170        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2171        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
2172        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2173        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
2174        1,     0,     0,     0,     0,     0,     0,     0,     0,    34,
2175        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2176       36,    69,     0,     0,   177,     2,     3,     4,     5,     6,
2177        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2178       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
2179        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2180        0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
2181        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
2182       31,     0,    32,     0,    33,     0,     0,     0,     1,     0,
2183        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
2184        0,     0,     0,     0,     0,     0,     0,    35,    36,     0,
2185        0,     0,   547,     2,     3,     4,     5,     6,     7,     8,
2186        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2187       19,    20,    21,    22,    23,    24,   519,     0,     0,     0,
2188        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2189       25,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2190       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2191       32,     0,    33,     1,     0,     0,     0,     0,     0,     0,
2192        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
2193        0,     0,     0,     0,     0,    35,    36,     0,     2,     3,
2194        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2195       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2196       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2197        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
2198        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2199        0,     0,    30,    31,     0,    32,     0,    33,     1,     0,
2200        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2201       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2202       35,    36,     0,     2,     3,     4,     5,     6,     7,     8,
2203        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2204       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2205        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2206        0,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2207       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2208       32,     0,    33,     1,     0,     0,     0,     0,     0,     0,
2209        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
2210        0,     0,     0,     0,     0,    35,    36,     0,     2,     3,
2211        4,     5,     6,     7,   351,   352,   353,   354,   355,   356,
2212      357,   358,   359,   360,    18,    19,   361,   362,    22,    23,
2213      363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2214        0,     0,     0,     0,     0,     0,   364,     0,     0,     0,
2215        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2216        0,     0,     0,     0,     0,   365,     0,   366,     1,     0,
2217        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2218      367,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2219       35,    36,     0,     2,     3,     4,     5,     6,     7,   351,
2220      352,   353,   354,   355,   356,   357,   358,   359,   360,    18,
2221       19,   361,   362,    22,    23,    24,     0,     0,     0,     0,
2222        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2223        0,   364,     0,     0,     0,     0,     0,     0,     0,    27,
2224       28,     0,     0,     0,    29,     0,     0,     0,     0,     0,
2225      365,     0,   366,     0,     0,     0,     0,     0,     0,     0,
2226        0,     0,     0,     0,     0,   367,     0,     0,     0,     0,
2227        0,     0,     0,     0,     0,    35,    36
2228 };
2229
2230 static const yytype_int16 yycheck[] =
2231 {
2232        0,    43,   266,    85,   129,     0,   117,   390,     0,   262,
2233      350,   199,    43,    62,   384,   442,   280,    43,   445,     3,
2234      200,    88,   199,     3,    24,    76,    17,     3,    24,     3,
2235       72,   211,     3,     3,     3,    69,     3,    88,   682,     3,
2236       69,     3,    42,    43,   115,   536,   261,   262,   199,    70,
2237      810,   113,     3,    69,    54,     3,     3,    64,    54,    59,
2238      115,     3,     3,    63,    64,   113,    28,   199,    69,   246,
2239       70,   248,    72,   135,    74,     3,    76,    28,    70,   247,
2240       28,    28,    44,   105,     3,    85,   116,   135,    88,   122,
2241       90,   113,   122,    85,    94,   246,   856,   248,    94,   132,
2242      100,   101,   136,   115,   186,    74,    75,   136,   108,   113,
2243       79,   111,    74,    75,   181,   136,   108,   761,   185,   111,
2244      136,   213,     1,   123,     3,   115,   152,   134,   112,   113,
2245      105,   622,   112,   113,   185,   136,   112,   113,   113,    43,
2246      131,   110,   111,   112,   116,   112,   115,   147,   115,   149,
2247      122,   135,   152,   120,   116,   135,     3,   282,   283,   284,
2248      122,   135,   133,   132,   135,   135,    70,   167,    72,   384,
2249      116,   135,    76,   437,   116,   116,   122,   177,   669,   179,
2250      211,   181,   370,   132,    88,   185,   186,   135,   135,   201,
2251      530,   618,   192,   370,   186,   195,   115,   377,   568,   199,
2252      200,   201,   202,   199,   132,   236,   122,   135,   200,   209,
2253      202,   211,   212,   213,   245,   468,   247,   266,   249,   370,
2254      136,   221,   114,    69,    70,   225,   226,   227,   254,   241,
2255      122,   280,   232,   112,   113,   726,   236,    70,   370,    11,
2256      205,   206,   207,   208,   244,   245,   246,   247,   248,   249,
2257      246,     3,   248,   468,   254,    70,   268,    62,   309,   642,
2258       70,   328,   122,   263,   315,   112,   481,   267,   115,     0,
2259      447,   121,   440,   177,   134,   179,   136,   181,   455,   447,
2260      122,   185,   135,   290,   291,   135,   293,   455,     3,   301,
2261      136,   195,   134,   473,   136,   135,   447,   201,   305,    69,
2262       70,   106,   107,   136,   455,   116,   306,   307,   212,   316,
2263      115,   122,   319,    28,   306,   447,   115,   221,   135,   319,
2264      412,   136,   414,   455,   416,   325,   136,   580,   328,    44,
2265      325,    69,    70,   325,   225,   226,   227,     7,     8,     9,
2266      465,   341,   114,   133,   370,   123,   377,   115,    69,    70,
2267      122,   382,   120,   568,   569,   466,    12,    13,   440,    74,
2268       75,     3,   121,   363,   121,   580,   136,   363,   380,   122,
2269      370,    10,    11,   122,   370,   375,   135,   377,   135,   375,
2270      380,   381,   382,   136,   384,   134,    28,   122,   437,   112,
2271      112,   391,   656,   115,   394,   395,   201,   428,   136,   134,
2272      305,   401,   428,   403,   127,   128,     5,     3,   408,   305,
2273      459,   316,   412,   122,   414,   136,   416,   417,   418,   135,
2274      316,   421,   129,   423,   328,   134,   426,   439,   428,   122,
2275      122,   236,    74,    75,   434,   305,   241,    79,   438,    79,
2276      440,   134,   134,   130,   249,   115,   316,   447,   440,   119,
2277      120,   447,   124,   125,   114,   455,    16,   113,   114,   455,
2278      122,   266,   122,   268,   515,     7,     8,     9,   110,   111,
2279      110,   111,   134,   473,   133,   280,   380,   122,    74,    75,
2280       14,    15,   697,    79,   116,   534,   114,   391,     7,     8,
2281        9,   395,   132,   135,   122,    43,   301,   401,   116,   403,
2282      114,   134,   135,   595,   408,   597,   598,   599,   122,     3,
2283      116,   476,   116,   766,   110,   111,   528,   112,   122,   116,
2284      115,   121,    70,   565,    72,   120,   417,   418,    76,   536,
2285      421,   116,   423,     3,    28,   535,   536,   619,   116,   135,
2286       88,   135,   542,   116,   544,   115,   546,   559,   544,   122,
2287      120,   766,   116,   116,   554,   134,   556,   134,   122,   122,
2288      560,     1,   562,     3,   116,   565,    74,    75,   568,   569,
2289      122,    79,   119,   115,   135,   380,   135,   119,   120,   384,
2290       74,    75,   582,   583,   116,    79,     1,   587,     3,     4,
2291        5,   133,   121,   122,   121,   595,   115,   597,   598,   599,
2292      119,   120,   110,   111,    74,    75,   116,   656,   121,    79,
2293      116,    90,   122,    28,   133,   622,   110,   111,   115,   619,
2294      115,     1,   622,     3,   115,   133,   113,   619,   116,   177,
2295      115,   179,   437,   181,   439,   120,   136,   185,   121,   122,
2296      110,   111,   546,   643,   116,   115,   115,   195,   285,   286,
2297      120,   287,   288,   201,   459,   120,    71,    72,     7,     8,
2298        9,   565,   669,   211,   664,   554,   678,   679,   680,   669,
2299       74,    75,   112,   113,   115,    79,   116,   677,   582,     3,
2300      569,   113,   122,   587,   120,    74,    75,   102,   103,   689,
2301       79,   116,   692,   116,    74,    75,   116,   697,   136,    79,
2302      115,   666,   667,   118,   132,   705,   110,   111,   708,    18,
2303       19,    20,    21,    22,    23,    24,    25,    26,    27,   726,
2304      769,   110,   111,   528,   136,   767,   726,   116,   116,   534,
2305      110,   111,   112,   113,   213,   115,   116,   294,   295,   115,
2306      120,   100,   101,   115,   115,   115,   225,   226,   227,   554,
2307       74,    75,   134,   753,   559,    79,   134,   757,    90,   136,
2308      760,   810,   116,   568,   569,   134,   115,   767,   116,   121,
2309      119,   120,   772,   773,   113,   120,   120,     3,   121,   136,
2310      328,   746,   747,   116,   749,   750,   110,   111,   677,   116,
2311      802,   115,   132,   805,   135,    56,    95,   134,   798,   799,
2312      689,   801,    28,   133,   804,   136,   120,   856,   697,   132,
2313      109,   116,   115,   112,   121,   121,     0,   121,    44,   121,
2314      785,   121,   787,   121,   133,   136,   134,    64,   437,   794,
2315      795,    54,   380,   113,   296,   136,   836,   297,   299,   136,
2316      136,   136,     3,   391,   136,   136,   134,   395,    74,    75,
2317      136,   656,   852,   401,   136,   855,   821,   300,   823,    43,
2318      825,   298,   827,   767,   753,   248,   767,   400,   757,     3,
2319      319,   760,   677,   678,   679,   680,   406,   682,   583,    63,
2320       64,   213,   232,   848,   689,   850,    70,    71,   187,   473,
2321      116,   190,   697,   225,   226,   227,   249,   568,   481,   647,
2322      481,    85,    -1,    -1,    -1,   481,    90,    -1,    -1,   798,
2323      799,    -1,   801,    74,    75,   804,    -1,    -1,    79,    -1,
2324       -1,    -1,    -1,    -1,   108,   473,    -1,   111,    -1,   261,
2325      262,   115,   231,   412,    -1,   414,    -1,   416,   417,   418,
2326       74,    75,   421,    -1,   423,    79,    -1,   836,   753,   110,
2327      111,   112,   757,    -1,   115,   760,   761,    44,    45,    -1,
2328       -1,    -1,    -1,   852,   769,    -1,   855,    -1,   152,    -1,
2329       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2330       -1,   115,   116,    -1,    -1,    -1,    -1,    74,    75,    -1,
2331       -1,    -1,    79,   798,   799,    -1,   801,   802,   546,   804,
2332      805,    -1,   186,   187,    -1,   810,   190,    -1,    -1,    -1,
2333       -1,    -1,    -1,    -1,    -1,    -1,   200,   565,   202,    -1,
2334       -1,    -1,    -1,   110,   111,   112,    -1,   211,    -1,   213,
2335       -1,   836,    -1,    -1,   582,   583,    -1,    -1,    -1,   587,
2336       -1,   225,   226,   227,    -1,    -1,    -1,   852,    -1,    -1,
2337      855,   856,   236,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2338       -1,   245,    -1,   247,    -1,   249,    -1,    -1,    -1,    -1,
2339      254,    -1,    -1,    -1,   406,    -1,    -1,   261,   262,    -1,
2340      412,    -1,   414,    -1,   416,   417,   418,    -1,    -1,   421,
2341       -1,   423,    -1,   392,    -1,    -1,    -1,    -1,    -1,    -1,
2342       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2343       -1,    -1,    -1,    -1,    -1,    -1,   595,    -1,   597,   598,
2344      599,   305,   306,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2345       -1,    -1,   316,    -1,    43,   319,   468,    -1,    -1,    -1,
2346       -1,   325,   441,    -1,    -1,    54,    -1,    -1,    -1,   481,
2347       -1,    -1,    -1,    -1,   453,    -1,    -1,   705,    -1,    -1,
2348      708,    70,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,
2349       -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    88,
2350       -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
2351       -1,    -1,    -1,   377,    -1,    -1,   380,    -1,   382,    -1,
2352      384,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2353       -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    72,   767,
2354       -1,    -1,    76,    -1,   772,   773,    -1,    -1,   412,    -1,
2355      414,    -1,   416,   417,   418,    -1,    -1,   421,    -1,   423,
2356       -1,    -1,    -1,   152,   428,    -1,    -1,    -1,   580,    -1,
2357      549,    -1,    -1,    -1,    -1,    -1,   440,    -1,    -1,    -1,
2358      169,    -1,    -1,   595,    -1,   597,   598,   599,   177,    -1,
2359       -1,   180,   181,    -1,    -1,    -1,   185,    -1,    -1,    -1,
2360       -1,    -1,    -1,    -1,   468,    -1,   585,    -1,    -1,   473,
2361       -1,   200,   201,    -1,    -1,    -1,    -1,   481,   152,    -1,
2362       -1,    -1,   211,    -1,   213,    -1,    -1,    -1,    -1,    -1,
2363      164,    -1,   221,    -1,    -1,   647,   225,   226,   227,    -1,
2364       -1,   620,    -1,   177,   623,   179,    -1,    -1,    -1,    -1,
2365       -1,    -1,    -1,   632,   633,    -1,   245,    -1,   247,    -1,
2366       -1,    -1,    -1,    -1,    -1,   254,    -1,   201,    -1,    -1,
2367       -1,   535,   536,    -1,    -1,    -1,    -1,   211,   212,    -1,
2368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2369       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2370       -1,   565,    -1,    -1,   568,   569,    -1,    -1,    -1,    -1,
2371       -1,   245,    -1,   247,    -1,    -1,   580,   306,    -1,    -1,
2372      254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2373       -1,   595,    -1,   597,   598,   599,    -1,    -1,    -1,   328,
2374       -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,   727,    -1,
2375       -1,    -1,   731,    -1,   766,   619,    -1,    -1,   622,    -1,
2376       -1,    -1,    -1,    43,    64,    -1,    -1,    -1,    -1,    69,
2377       -1,    -1,   306,    -1,    -1,   309,    -1,    -1,    -1,    -1,
2378       -1,   370,    -1,    -1,    64,   764,   375,    -1,   377,    -1,
2379       -1,   380,    -1,    -1,    -1,    -1,   775,    -1,    -1,    -1,
2380       -1,    -1,   391,    -1,    -1,   669,    -1,    -1,    -1,    -1,
2381       -1,    -1,   401,    -1,    -1,   115,    -1,    -1,    -1,    -1,
2382       -1,    -1,    -1,   412,    -1,   414,    -1,   416,   417,   418,
2383       -1,    -1,   421,   697,   423,   115,   370,    -1,    -1,   428,
2384       -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
2385       -1,   440,   152,    -1,    -1,    -1,    -1,   391,   447,    -1,
2386       -1,   395,   726,    -1,   164,    -1,   455,    -1,    -1,    -1,
2387       -1,    -1,   152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2388       -1,    -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,
2389       -1,    -1,    -1,    -1,   428,    -1,    -1,    -1,    -1,   199,
2390       -1,    -1,   766,    -1,    -1,    -1,   440,    -1,   442,    -1,
2391       -1,   211,    -1,   447,    -1,    -1,    -1,    -1,    -1,    -1,
2392       -1,   455,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2393       -1,   211,    -1,    -1,    -1,    -1,   236,    -1,    -1,   473,
2394       -1,    -1,    -1,    -1,    -1,   245,   246,   247,   248,   249,
2395       -1,    -1,    -1,    -1,   254,    -1,   236,    -1,    43,    -1,
2396       -1,   261,   262,    -1,    -1,   245,   246,   247,   248,   249,
2397       -1,    -1,    -1,    -1,   254,    -1,   565,    -1,    -1,    64,
2398       -1,   261,   262,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2399       -1,    -1,    -1,    -1,   583,    -1,    -1,    -1,    -1,    -1,
2400       -1,    -1,    -1,    -1,    -1,   305,   595,    -1,   597,   598,
2401      599,    -1,   546,    -1,    -1,    -1,   316,    -1,    -1,   319,
2402       -1,    -1,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
2403      115,   565,    -1,    -1,    -1,    -1,   316,    -1,    -1,   319,
2404       43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   583,
2405       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2406       -1,    64,    -1,    -1,    -1,    -1,    -1,   152,    -1,    -1,
2407      370,    -1,    -1,    -1,    -1,    -1,    -1,   377,    -1,   379,
2408      380,    -1,   382,    -1,   384,    -1,    -1,    -1,    -1,    -1,
2409       -1,    -1,    -1,    -1,    -1,    -1,    -1,   377,    -1,    -1,
2410      380,    -1,   382,    -1,   384,    -1,   695,    -1,    -1,    -1,
2411       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   708,
2412       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,   428,    -1,
2413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2414       -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,   428,   152,
2415       -1,   236,    -1,    -1,    -1,   455,    -1,    -1,    -1,    -1,
2416      245,   246,   247,   248,   249,    -1,    -1,   447,   468,   254,
2417       -1,   705,    -1,   473,    -1,   455,   261,   262,   767,    -1,
2418       -1,   481,    -1,    -1,    -1,    -1,    -1,    -1,   468,    -1,
2419       -1,    -1,    -1,   473,    -1,    -1,   199,    -1,    -1,    -1,
2420       -1,   481,    -1,    -1,    -1,    -1,    -1,    -1,   211,    43,
2421       -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
2422      305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2423       64,   316,    -1,   767,   319,    -1,   536,    95,    -1,    -1,
2424       -1,    -1,   245,   246,   247,   248,    -1,    -1,    -1,    -1,
2425       -1,   109,    -1,    -1,   112,    -1,   536,    -1,   261,   262,
2426       -1,    -1,    -1,    -1,    -1,   565,    -1,    -1,   568,   569,
2427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2428      580,   115,    -1,    -1,    -1,   565,    -1,    -1,   568,   569,
2429       -1,    -1,   377,    -1,    -1,   380,    -1,   382,    -1,   384,
2430      580,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2431       -1,    -1,    -1,   316,    -1,    -1,   319,    -1,   152,    -1,
2432       -1,    -1,   622,    -1,    -1,    -1,    -1,    -1,    -1,   187,
2433       -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2434       -1,    -1,   622,   428,    -1,    -1,    -1,    -1,    -1,    -1,
2435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2436       -1,    -1,   447,    -1,    -1,    -1,    -1,   370,    -1,   669,
2437      455,    -1,    -1,   231,   377,    -1,    -1,   211,    -1,   382,
2438       -1,   384,    -1,   468,    -1,    -1,    -1,    -1,   473,   669,
2439       -1,    -1,    -1,    -1,    -1,    -1,   481,   697,    -1,    -1,
2440       -1,    -1,   236,   261,   262,    -1,    -1,    -1,    -1,    -1,
2441       -1,   245,    -1,   247,    -1,   249,    -1,   697,    -1,    -1,
2442      254,    -1,    -1,    -1,    -1,    -1,   726,   261,   262,    -1,
2443       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2444       -1,    -1,    -1,    -1,   447,    -1,   726,    -1,    -1,    -1,
2445       -1,   536,   455,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2446       -1,    -1,    -1,    -1,    -1,   468,   766,    -1,    -1,    -1,
2447      473,   305,    -1,     3,    -1,    -1,    -1,    -1,   481,    -1,
2448      565,    -1,   316,   568,   569,   319,   766,    -1,    -1,    -1,
2449       -1,    -1,    -1,    -1,    -1,   580,    -1,    -1,    28,    29,
2450       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2451       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2452       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2453       -1,    -1,   390,   536,   392,    -1,    66,   622,    -1,    -1,
2454       -1,    -1,    -1,   377,    74,    75,   380,    -1,   382,    79,
2455      384,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,    -1,
2456       -1,    -1,   565,    -1,    -1,   568,   569,    -1,    -1,    -1,
2457      100,    -1,    -1,    -1,    -1,    -1,    -1,   580,    -1,    -1,
2458      110,   111,   112,   441,   669,   115,    -1,    -1,    -1,    -1,
2459      120,    -1,    -1,    -1,   428,   453,    -1,    -1,    -1,    -1,
2460       -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,    -1,    -1,
2461      468,    -1,   697,    -1,    -1,    -1,    -1,    -1,    -1,   622,
2462       -1,    -1,    -1,   481,    -1,    -1,    -1,    -1,    -1,    -1,
2463       -1,    -1,    -1,    -1,   468,    -1,    -1,    -1,    -1,   473,
2464       -1,   726,    -1,    -1,    -1,    -1,    -1,   481,    -1,    -1,
2465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2466       -1,    -1,    -1,    -1,    -1,    -1,   669,    -1,    -1,     1,
2467       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2468       -1,   766,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2469       -1,   549,    -1,    -1,   697,    -1,    28,    -1,    -1,    -1,
2470       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2471       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2472       -1,    -1,   580,   726,    -1,    -1,    -1,   585,    -1,    -1,
2473       -1,   565,    -1,    -1,   568,   569,    -1,    -1,    -1,    71,
2474       72,    73,    -1,    -1,    -1,    -1,   580,    -1,    -1,    -1,
2475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2476       -1,    -1,   620,   766,    -1,   623,    -1,    -1,    -1,    -1,
2477      102,   103,    -1,    -1,   632,   633,    -1,   109,    -1,    -1,
2478      112,    -1,     3,   115,   642,   117,   118,    -1,   622,   647,
2479       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2480      658,    -1,    -1,   135,   136,    -1,    -1,    28,    29,    30,
2481       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2482       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2483       -1,    -1,    -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,
2484       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2485       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
2486       -1,    82,    83,   697,    85,    -1,    87,    -1,    -1,   727,
2487       -1,    -1,    -1,   731,    -1,    -1,    -1,    -1,    -1,   100,
2488       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2489      111,   112,   726,    -1,   115,    -1,    -1,    -1,    -1,    -1,
2490       -1,    -1,    -1,    -1,    -1,    -1,   764,     1,   766,     3,
2491        4,     5,     6,   134,     8,     9,    -1,   775,    -1,    -1,
2492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2493       -1,    -1,   766,    -1,    28,    29,    30,    31,    32,    33,
2494       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2495       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
2496       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
2497       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2498       74,    75,    -1,    77,    -1,    79,    -1,    -1,    82,    83,
2499       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2500       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2501       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2502       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2503      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2504      134,   135,   136,     1,    -1,     3,     4,     5,     6,    -1,
2505        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2506       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2507       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2508       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2509       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
2510       58,    59,    60,    61,    62,    -1,    -1,    -1,    66,    -1,
2511       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    77,
2512       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2513       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2514       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2515       -1,   109,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2516      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2517       -1,    -1,    -1,    -1,    -1,    -1,   134,   135,   136,     1,
2518       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2519       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2520       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2521       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2522       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2523       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2524       62,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2525       72,    73,    74,    75,    -1,    77,    -1,    79,    -1,    -1,
2526       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2528      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2529      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,
2530       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2531       -1,    -1,   134,   135,   136,     1,    -1,     3,     4,     5,
2532        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2534       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2535       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2536       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2537       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2538       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2539       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2540       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2541       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2542       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2543       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2544      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,   135,
2545      136,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2546       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2548       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2549       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2550       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2551       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2552       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2553       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2554       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2555      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2556      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2557       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2558       -1,    -1,    -1,    -1,   134,   135,   136,     1,    -1,     3,
2559        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2561       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2562       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2563       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2565       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2566       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2567       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2568       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2569       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2570       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2571      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2572      134,   135,   136,     1,    -1,     3,     4,     5,     6,    -1,
2573        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2575       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2576       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2577       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2579       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2580       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2581       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2582       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2583       -1,   109,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2584      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2585       -1,    -1,    -1,    -1,    -1,    -1,   134,   135,   136,     1,
2586       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2588       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2589       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2590       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2591       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2592       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2593       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2594       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2595       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2596      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2597      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,
2598       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2599       -1,    -1,   134,   135,   136,     1,    -1,     3,     4,     5,
2600        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2601       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2602       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2603       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2604       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2606       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2607       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2608       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2609       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2610       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2611       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2612      126,     1,    -1,     3,     4,     5,    -1,    -1,   134,   135,
2613      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2615       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2616       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2617       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2618       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2619       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2620       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2622      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2623      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2624       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2625       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2626       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2627       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2628       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2630       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2631       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2632       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2633       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2634      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2635      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2636        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2637       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2638       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2639       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2640       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2641       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2642       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2643       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2644       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2645       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2646       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2647       -1,   115,    -1,   117,   118,     1,    -1,     3,     4,     5,
2648       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2649      134,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2650       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2651       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2652       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2654       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2655       -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,
2656       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2657       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2658       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2659       -1,   117,   118,     1,    -1,     3,     4,     5,    -1,    -1,
2660       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2661      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2662       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2663       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2664       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2665       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2666       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2667       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2669       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2670       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2671      118,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2672       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2673       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2674       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2675       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2676       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2677       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2678       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2679       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2680       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2681      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2682      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2683       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2684       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2685       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2686       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2687       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2689       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2690       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2691       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2693      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2694      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2695        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2696       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2697       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2698       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2699       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2700       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2701       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2702       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2703       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2704       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2705       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2706       -1,   115,    -1,   117,   118,     1,    -1,     3,     4,     5,
2707       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2708      134,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2709       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2710       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2711       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2712       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2713       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2714       -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,
2715       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2716       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2717       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2718       -1,   117,   118,     1,    -1,     3,     4,     5,    -1,    -1,
2719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2720      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2721       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2722       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2723       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2724       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2725       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2726       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2727       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2728       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2729       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2730      118,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2731       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2733       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2734       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2735       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2736       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2737       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2738       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2739       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2740      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2741      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2742       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2743       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2744       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2745       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2746       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2748       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2749       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2750       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2751       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2752      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2753      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2754        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2755       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2756       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2757       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2758       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
2759       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
2760       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2761       74,    75,    -1,    77,    -1,    79,    -1,    -1,    82,    83,
2762       -1,    85,     1,    87,     3,     4,     5,     6,    -1,     8,
2763        9,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2764       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    28,
2765       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2766      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2767      134,   135,    -1,    52,    53,    54,    55,    56,    57,    58,
2768       59,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
2769       -1,    -1,    71,    72,    73,     1,    -1,     3,     4,     5,
2770        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2772       -1,    -1,    28,   102,   103,    -1,    -1,    -1,    -1,    -1,
2773      109,    -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2774       -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,
2775       -1,    -1,    -1,    -1,    -1,   134,   135,    -1,    -1,    -1,
2776       -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,
2777        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,    -1,    -1,    -1,    -1,    28,   102,   103,    -1,    -1,
2780       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,
2781      116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2782      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,   135,
2783        3,     4,     5,     6,    -1,     8,     9,    -1,    71,    72,
2784       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2785       -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,
2786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2787      103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
2788       -1,    -1,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
2789      123,   124,   125,   126,    -1,    -1,    -1,    -1,    71,    72,
2790       73,     1,   135,     3,     4,     5,     6,    -1,     8,     9,
2791       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2792       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   102,
2793      103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
2794       -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,
2795      123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,
2796       -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2797       -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
2798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2799       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2800       -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2801       -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2802       -1,    -1,    -1,   123,   124,   125,   126,     1,    -1,     3,
2803        4,     5,    -1,    -1,    -1,   135,    -1,    -1,    -1,    -1,
2804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2805       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2806       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2807       44,    45,    46,    47,    48,    49,    50,    -1,    -1,     1,
2808       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2809       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2810       74,    75,    -1,    -1,    78,    79,    28,    -1,    82,    83,
2811       -1,    85,     1,    87,     3,     4,     5,     6,    -1,     8,
2812        9,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2813       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    28,
2814       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,    71,
2815       72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2816      134,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2817       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2818      102,   103,    71,    72,    73,    -1,    -1,   109,    28,    -1,
2819      112,    -1,    -1,   115,   116,   117,   118,    -1,    -1,    -1,
2820       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2821       -1,    -1,   134,   102,   103,    -1,    -1,    -1,    -1,    -1,
2822      109,    -1,    -1,   112,    -1,    -1,   115,   116,   117,   118,
2823       -1,    71,    72,    73,   123,   124,   125,   126,    -1,    -1,
2824       -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    -1,
2825       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2826       -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2827        3,    -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2828       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2829       -1,    -1,    -1,    -1,   134,    28,    29,    30,    31,    32,
2830       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2831       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2832       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2833       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
2834       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
2835       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2836       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
2837       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
2838       -1,     1,   115,     3,     4,     5,     6,    -1,     8,     9,
2839       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
2840       -1,   134,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2841       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2842       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2843       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2844       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2845       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2846       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2848      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2849      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2850       -1,    -1,    -1,   123,   124,   125,   126,     1,    -1,     3,
2851        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2853       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
2854       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2855       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2857       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2858       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2859       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2860       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2861       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2862       -1,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
2863      124,   125,   126,     1,    -1,     3,     4,     5,     6,    -1,
2864        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2866       28,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
2867       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2868       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2870       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2871       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2873       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2874       -1,   109,   110,   111,   112,    -1,    -1,   115,   116,   117,
2875      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,     1,
2876       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2878       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
2879       -1,    -1,    34,    35,    36,    37,    38,    39,    40,    41,
2880       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2881       -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2882        6,    -1,     8,     9,    66,    -1,    -1,    -1,    -1,    71,
2883       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2884       82,    83,    28,    85,    -1,    87,    -1,    -1,    -1,    -1,
2885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2886      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2887      112,    -1,    -1,   115,   116,   117,   118,    -1,    -1,    -1,
2888       -1,   123,   124,   125,   126,    71,    72,    73,    74,    75,
2889       -1,    -1,     1,    79,     3,     4,     5,     6,    -1,     8,
2890        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2891       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    28,
2892       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2893      116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2894      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
2895        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2896       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2897       -1,    -1,    -1,    -1,     1,    28,     3,     4,     5,     6,
2898       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2899       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2900      109,    28,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2901       -1,    -1,   121,    -1,   123,   124,   125,   126,    71,    72,
2902       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2903        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2904       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,   102,
2905      103,    -1,    -1,    -1,    -1,    -1,   109,    28,    -1,   112,
2906       -1,    -1,   115,    -1,   117,   118,    -1,    -1,   121,    -1,
2907      123,   124,   125,   126,    -1,   102,   103,    -1,    -1,    -1,
2908       -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,    -1,
2909      117,   118,    -1,    -1,   121,    -1,   123,   124,   125,   126,
2910       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
2911        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2912       -1,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2913       28,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,
2914       -1,   112,    -1,    -1,   115,   116,   117,   118,    28,    -1,
2915       -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,
2916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2917       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,     1,
2918       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2919       -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
2920       -1,    -1,    -1,    -1,   102,   103,    28,    -1,    -1,    -1,
2921       -1,   109,    -1,    -1,   112,    -1,    -1,   115,   116,   117,
2922      118,    -1,   102,   103,    -1,   123,   124,   125,   126,   109,
2923       -1,    -1,   112,    -1,    -1,   115,   116,   117,   118,    -1,
2924       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    71,
2925       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
2926        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2927        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    28,
2928      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2929      112,    -1,    -1,   115,    -1,   117,   118,    28,    -1,    -1,
2930       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2931       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2932       -1,    -1,    71,    72,    73,    -1,    -1,    -1,     1,    -1,
2933        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2934       71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2935       -1,    -1,    -1,   102,   103,    28,    -1,    -1,    -1,    -1,
2936      109,    -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2937       -1,   102,   103,    -1,   123,   124,   125,   126,   109,    -1,
2938       -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,
2939       -1,    -1,   123,   124,   125,   126,    -1,    -1,    71,    72,
2940       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2942       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2943      103,     3,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
2944       -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,
2945      123,   124,   125,   126,    -1,    -1,    28,    29,    30,    31,
2946       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2947       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2948       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2949       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2950       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2951       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2952       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,   100,    -1,
2953       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2954      112,    -1,    -1,   115,    -1,    -1,    -1,    -1,   120,    -1,
2955       -1,   123,    28,    29,    30,    31,    32,    33,    34,    35,
2956       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2957       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2958       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
2959       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
2960       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2961       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2962        3,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
2963       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2964      116,    -1,    -1,    -1,   120,    28,    29,    30,    31,    32,
2965       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2966       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2967       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2968       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
2969       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
2970       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2971       -1,    -1,    -1,     3,    -1,    -1,    -1,   100,    -1,    -1,
2972       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
2973       -1,    -1,   115,   116,    -1,    -1,    -1,   120,    28,    29,
2974       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2975       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2976       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2977       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2978       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
2979       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2980       -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,
2981      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2982      110,   111,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
2983      120,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2984       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2985       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2986       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
2988       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2989       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
2990       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
2991       -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,
2992       -1,    -1,    -1,   120,    28,    29,    30,    31,    32,    33,
2993       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2994       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2995       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2996       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2997       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2998       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2999       -1,    -1,     3,    -1,    -1,    -1,   100,    -1,    -1,    -1,
3000       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
3001       -1,   115,    -1,    -1,    -1,    -1,   120,    28,    29,    30,
3002       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3003       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3005       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
3006       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
3007       -1,    -1,    -1,    -1,    85,    -1,    87,    -1,    -1,    -1,
3008       -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   100,
3009       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
3010      111,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,   120,
3011       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3012       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3013       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
3015       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3016       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,
3017       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3018       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3019       -1,    -1,   110,   111,   112,    -1,    -1,   115,    28,    -1,
3020       -1,    -1,   120,    -1,    34,    35,    36,    37,    38,    39,
3021       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3022       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3023       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3024       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3025       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3026       -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,
3027      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3028      110,   111,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
3029      120,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3030       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3031       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
3032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
3033       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
3034       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
3035       87,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
3036       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
3037       -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,   116,
3038       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3039       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3040       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3041       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3042       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3043       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3044       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3045       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3046       -1,    -1,   110,   111,    -1,    -1,    -1,    -1,   116,    28,
3047       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3048       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3049       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3050       -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,
3051       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3052       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3053       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3054       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3055       -1,   110,   111,    -1,    -1,    -1,    -1,   116,    28,    29,
3056       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3057       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3058       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3059       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
3060       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3061       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3062       -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3063      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3064      110,   111,    -1,    -1,    -1,    -1,   116,    28,    29,    30,
3065       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3066       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3067       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3068       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
3069       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
3070       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
3071        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
3072       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
3073      111,   112,    -1,    -1,   115,    28,    29,    30,    31,    32,
3074       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3075       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
3076       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3077       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3078       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
3079       83,    -1,    85,    -1,    87,    -1,    -1,    -1,     3,    -1,
3080       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3081       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,
3082       -1,    -1,   115,    28,    29,    30,    31,    32,    33,    34,
3083       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3084       45,    46,    47,    48,    49,    50,    51,    -1,    -1,    -1,
3085       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3086       65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
3087       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
3088       85,    -1,    87,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3089       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
3090       -1,    -1,    -1,    -1,    -1,   110,   111,    -1,    28,    29,
3091       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3092       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3093       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3094       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
3095       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3096       -1,    -1,    82,    83,    -1,    85,    -1,    87,     3,    -1,
3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3098      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3099      110,   111,    -1,    28,    29,    30,    31,    32,    33,    34,
3100       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3101       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
3102       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3103       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
3104       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
3105       85,    -1,    87,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3106       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
3107       -1,    -1,    -1,    -1,    -1,   110,   111,    -1,    28,    29,
3108       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3109       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3110       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3111       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3112       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3113       -1,    -1,    -1,    -1,    -1,    85,    -1,    87,     3,    -1,
3114       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3115      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3116      110,   111,    -1,    28,    29,    30,    31,    32,    33,    34,
3117       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3118       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
3119       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3120       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
3121       75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
3122       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3123       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
3124       -1,    -1,    -1,    -1,    -1,   110,   111
3125 };
3126
3127 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3128    symbol of state STATE-NUM.  */
3129 static const yytype_uint16 yystos[] =
3130 {
3131        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
3132       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3133       46,    47,    48,    49,    50,    65,    66,    74,    75,    79,
3134       82,    83,    85,    87,   100,   110,   111,   138,   139,   140,
3135      141,   142,   147,   179,   180,   185,   186,   187,   191,   192,
3136      193,   194,   196,   197,   203,   211,   212,   230,   261,   135,
3137      142,   147,   115,   115,   113,     1,   112,   113,   147,   112,
3138      115,   120,   123,   138,   147,   185,   186,   193,   194,   196,
3139      212,   215,   217,   219,   220,   222,   223,   224,   227,   115,
3140      135,   141,   142,   147,   186,   132,     0,   147,   213,   214,
3141      135,   135,     1,     4,     5,     6,     8,     9,    71,    72,
3142       73,   102,   103,   109,   112,   115,   117,   118,   123,   124,
3143      125,   126,   140,   147,   148,   149,   150,   154,   155,   157,
3144      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3145      168,   169,   170,   171,   248,   251,   140,   147,   140,   147,
3146      155,   161,   178,   185,   193,   194,   196,   198,   199,   200,
3147      201,   202,   212,   193,   226,   227,   116,   147,   217,   219,
3148      228,   229,   230,   121,   140,   170,   174,   115,   147,   186,
3149      219,   227,   215,   220,   223,   227,   115,   120,   186,   115,
3150      120,   116,   147,   228,   231,   186,   215,   224,   115,    68,
3151       78,   115,   117,   134,   136,   143,   144,   145,   146,   147,
3152      150,   179,   186,   204,   205,   206,   207,   208,   220,   221,
3153      223,   227,   250,   251,   253,   135,   135,   135,   142,   147,
3154      174,   133,   122,   136,   213,   213,   115,   149,   152,   154,
3155      156,   115,   155,   155,   147,   179,   174,   179,   174,   115,
3156      156,   116,   171,   173,   176,   193,   194,   196,   212,   232,
3157      248,   135,   135,     7,     8,     9,   115,   119,   120,    18,
3158       19,    20,    21,    22,    23,    24,    25,    26,    27,   133,
3159      172,   158,   112,   127,   128,   124,   125,    10,    11,   161,
3160       12,    13,   113,   114,    14,    15,   123,   129,   130,    16,
3161       17,   131,   116,   116,   116,   133,   115,   147,   185,   186,
3162      193,   194,   196,   212,   217,   227,   133,    11,   114,   122,
3163      193,   227,   116,   116,   116,   122,   121,   121,   227,   215,
3164      224,   116,   228,   121,   140,   174,   121,   140,   174,   116,
3165      116,   122,     3,    28,    44,    74,    75,   116,   188,   189,
3166      190,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3167       43,    46,    47,    50,    66,    85,    87,   100,   142,   147,
3168      181,   185,   193,   195,   197,   203,   211,   179,   221,   112,
3169      115,   147,   179,   135,   242,   243,   243,   243,   134,   243,
3170      133,   115,   132,   134,   147,   186,   209,   210,   220,   221,
3171      225,   227,   223,   227,   136,   208,   122,   134,   186,   223,
3172      134,   134,   204,   136,   204,   136,   204,   135,   135,   174,
3173      214,   134,   136,   134,   136,   138,   147,   155,   177,   193,
3174      194,   196,   212,   233,     7,     8,     9,   115,   119,   120,
3175      115,   120,   186,   216,   218,   227,   147,   182,   185,   193,
3176      195,   196,   212,   120,   218,   182,   155,   233,   116,   122,
3177      193,   194,   196,   212,   217,   116,   119,   134,   135,   136,
3178      150,   151,   170,   178,   235,   252,   254,   255,   256,   257,
3179      258,   259,   260,   136,   260,   147,   116,   151,   153,   171,
3180      147,   173,   151,   171,   158,   158,   158,   159,   159,   160,
3181      160,   161,   161,   161,   163,   163,   164,   165,   166,   167,
3182      168,   173,   198,   199,   200,   227,   199,   200,   201,    51,
3183      230,   116,   121,   121,   121,   121,   147,   116,   115,   116,
3184      122,   189,   142,   147,   115,   115,   113,   135,   147,   185,
3185      193,   195,   217,   147,   186,   221,   186,   115,   136,    52,
3186       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3187       77,   134,   147,   173,   175,   178,   237,   238,   239,   240,
3188      241,   243,   244,   245,   246,   247,   249,   235,   116,   174,
3189      135,   220,   227,   122,   134,   132,   191,   186,   220,   223,
3190      205,   223,   136,   136,   136,   204,   136,   204,   204,   204,
3191      116,   138,   193,   194,   196,   212,   217,   116,   147,   116,
3192      153,   147,   173,   116,   218,   228,   174,   216,   227,   115,
3193      120,   216,   113,   120,   147,   185,   193,   195,   196,   212,
3194      218,   174,   120,   120,   218,   116,   116,   171,   158,   248,
3195      136,   260,   133,   147,   221,   225,   243,   122,   134,   134,
3196      255,   257,   258,   136,   136,   116,   122,   121,   132,   173,
3197      116,   189,   171,   140,   147,   202,    69,    70,   136,   113,
3198      135,   135,   147,   142,   147,   116,   174,   132,   115,   115,
3199      115,   237,   115,   147,   134,   134,   134,   173,   147,   132,
3200      134,   134,   147,   183,   184,   219,   175,   240,   175,   237,
3201      136,   134,   136,   260,   220,   186,   210,   220,   227,   174,
3202      220,   136,   136,   136,   136,   116,   121,   116,   116,   121,
3203      216,   116,   228,   174,   202,   174,   113,   120,   121,   174,
3204      174,   120,   136,   235,   256,   151,   171,   170,   116,   116,
3205      116,   116,   114,   243,   243,   202,    69,    70,   136,    69,
3206       70,   136,   135,   132,   237,   173,   173,   116,   173,    56,
3207      116,   244,   134,   134,   133,   237,   135,   122,   134,   133,
3208      136,   220,   227,   186,   220,   132,   116,   121,   114,   121,
3209      202,   174,   121,   121,   174,    70,   136,    69,   136,   114,
3210      243,   243,   243,   243,    69,    70,   136,   237,   116,   116,
3211      237,   116,   115,   237,   116,   244,   174,   136,   260,   184,
3212      135,   171,   234,   220,   220,   174,   114,   121,   121,   243,
3213      243,    70,   136,    69,   136,    70,   136,    69,   136,   243,
3214      243,   237,   237,   237,   173,   237,   116,   173,   134,   136,
3215      234,   236,   136,   136,   243,   243,   243,   243,    70,   136,
3216       69,   136,    64,   116,   237,   116,   122,   136,   136,   136,
3217      136,   136,   243,   243,   237,   134,   237,   136,   234,   136,
3218      136
3219 };
3220
3221 #define yyerrok         (yyerrstatus = 0)
3222 #define yyclearin       (yychar = YYEMPTY)
3223 #define YYEMPTY         (-2)
3224 #define YYEOF           0
3225
3226 #define YYACCEPT        goto yyacceptlab
3227 #define YYABORT         goto yyabortlab
3228 #define YYERROR         goto yyerrorlab
3229
3230
3231 /* Like YYERROR except do call yyerror.  This remains here temporarily
3232    to ease the transition to the new meaning of YYERROR, for GCC.
3233    Once GCC version 2 has supplanted version 1, this can go.  However,
3234    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
3235    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
3236    discussed.  */
3237
3238 #define YYFAIL          goto yyerrlab
3239 #if defined YYFAIL
3240   /* This is here to suppress warnings from the GCC cpp's
3241      -Wunused-macros.  Normally we don't worry about that warning, but
3242      some users do, and we want to make it easy for users to remove
3243      YYFAIL uses, which will produce warnings from Bison 2.5.  */
3244 #endif
3245
3246 #define YYRECOVERING()  (!!yyerrstatus)
3247
3248 #define YYBACKUP(Token, Value)                                  \
3249 do                                                              \
3250   if (yychar == YYEMPTY && yylen == 1)                          \
3251     {                                                           \
3252       yychar = (Token);                                         \
3253       yylval = (Value);                                         \
3254       yytoken = YYTRANSLATE (yychar);                           \
3255       YYPOPSTACK (1);                                           \
3256       goto yybackup;                                            \
3257     }                                                           \
3258   else                                                          \
3259     {                                                           \
3260       yyerror (YY_("syntax error: cannot back up")); \
3261       YYERROR;                                                  \
3262     }                                                           \
3263 while (YYID (0))
3264
3265
3266 #define YYTERROR        1
3267 #define YYERRCODE       256
3268
3269
3270 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3271    If N is 0, then set CURRENT to the empty location which ends
3272    the previous symbol: RHS[0] (always defined).  */
3273
3274 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3275 #ifndef YYLLOC_DEFAULT
3276 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
3277     do                                                                  \
3278       if (YYID (N))                                                    \
3279         {                                                               \
3280           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
3281           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
3282           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
3283           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
3284         }                                                               \
3285       else                                                              \
3286         {                                                               \
3287           (Current).first_line   = (Current).last_line   =              \
3288             YYRHSLOC (Rhs, 0).last_line;                                \
3289           (Current).first_column = (Current).last_column =              \
3290             YYRHSLOC (Rhs, 0).last_column;                              \
3291         }                                                               \
3292     while (YYID (0))
3293 #endif
3294
3295
3296 /* YY_LOCATION_PRINT -- Print the location on the stream.
3297    This macro was not mandated originally: define only if we know
3298    we won't break user code: when these are the locations we know.  */
3299
3300 #ifndef YY_LOCATION_PRINT
3301 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3302 #  define YY_LOCATION_PRINT(File, Loc)                  \
3303      fprintf (File, "%d.%d-%d.%d",                      \
3304               (Loc).first_line, (Loc).first_column,     \
3305               (Loc).last_line,  (Loc).last_column)
3306 # else
3307 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3308 # endif
3309 #endif
3310
3311
3312 /* YYLEX -- calling `yylex' with the right arguments.  */
3313
3314 #ifdef YYLEX_PARAM
3315 # define YYLEX yylex (YYLEX_PARAM)
3316 #else
3317 # define YYLEX yylex ()
3318 #endif
3319
3320 /* Enable debugging if requested.  */
3321 #if YYDEBUG
3322
3323 # ifndef YYFPRINTF
3324 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3325 #  define YYFPRINTF fprintf
3326 # endif
3327
3328 # define YYDPRINTF(Args)                        \
3329 do {                                            \
3330   if (yydebug)                                  \
3331     YYFPRINTF Args;                             \
3332 } while (YYID (0))
3333
3334 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3335 do {                                                                      \
3336   if (yydebug)                                                            \
3337     {                                                                     \
3338       YYFPRINTF (stderr, "%s ", Title);                                   \
3339       yy_symbol_print (stderr,                                            \
3340                   Type, Value, Location); \
3341       YYFPRINTF (stderr, "\n");                                           \
3342     }                                                                     \
3343 } while (YYID (0))
3344
3345
3346 /*--------------------------------.
3347 | Print this symbol on YYOUTPUT.  |
3348 `--------------------------------*/
3349
3350 /*ARGSUSED*/
3351 #if (defined __STDC__ || defined __C99__FUNC__ \
3352      || defined __cplusplus || defined _MSC_VER)
3353 static void
3354 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3355 #else
3356 static void
3357 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
3358     FILE *yyoutput;
3359     int yytype;
3360     YYSTYPE const * const yyvaluep;
3361     YYLTYPE const * const yylocationp;
3362 #endif
3363 {
3364   if (!yyvaluep)
3365     return;
3366   YYUSE (yylocationp);
3367 # ifdef YYPRINT
3368   if (yytype < YYNTOKENS)
3369     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3370 # else
3371   YYUSE (yyoutput);
3372 # endif
3373   switch (yytype)
3374     {
3375       default:
3376         break;
3377     }
3378 }
3379
3380
3381 /*--------------------------------.
3382 | Print this symbol on YYOUTPUT.  |
3383 `--------------------------------*/
3384
3385 #if (defined __STDC__ || defined __C99__FUNC__ \
3386      || defined __cplusplus || defined _MSC_VER)
3387 static void
3388 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3389 #else
3390 static void
3391 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
3392     FILE *yyoutput;
3393     int yytype;
3394     YYSTYPE const * const yyvaluep;
3395     YYLTYPE const * const yylocationp;
3396 #endif
3397 {
3398   if (yytype < YYNTOKENS)
3399     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3400   else
3401     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3402
3403   YY_LOCATION_PRINT (yyoutput, *yylocationp);
3404   YYFPRINTF (yyoutput, ": ");
3405   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
3406   YYFPRINTF (yyoutput, ")");
3407 }
3408
3409 /*------------------------------------------------------------------.
3410 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3411 | TOP (included).                                                   |
3412 `------------------------------------------------------------------*/
3413
3414 #if (defined __STDC__ || defined __C99__FUNC__ \
3415      || defined __cplusplus || defined _MSC_VER)
3416 static void
3417 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3418 #else
3419 static void
3420 yy_stack_print (yybottom, yytop)
3421     yytype_int16 *yybottom;
3422     yytype_int16 *yytop;
3423 #endif
3424 {
3425   YYFPRINTF (stderr, "Stack now");
3426   for (; yybottom <= yytop; yybottom++)
3427     {
3428       int yybot = *yybottom;
3429       YYFPRINTF (stderr, " %d", yybot);
3430     }
3431   YYFPRINTF (stderr, "\n");
3432 }
3433
3434 # define YY_STACK_PRINT(Bottom, Top)                            \
3435 do {                                                            \
3436   if (yydebug)                                                  \
3437     yy_stack_print ((Bottom), (Top));                           \
3438 } while (YYID (0))
3439
3440
3441 /*------------------------------------------------.
3442 | Report that the YYRULE is going to be reduced.  |
3443 `------------------------------------------------*/
3444
3445 #if (defined __STDC__ || defined __C99__FUNC__ \
3446      || defined __cplusplus || defined _MSC_VER)
3447 static void
3448 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3449 #else
3450 static void
3451 yy_reduce_print (yyvsp, yylsp, yyrule)
3452     YYSTYPE *yyvsp;
3453     YYLTYPE *yylsp;
3454     int yyrule;
3455 #endif
3456 {
3457   int yynrhs = yyr2[yyrule];
3458   int yyi;
3459   unsigned long int yylno = yyrline[yyrule];
3460   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3461              yyrule - 1, yylno);
3462   /* The symbols being reduced.  */
3463   for (yyi = 0; yyi < yynrhs; yyi++)
3464     {
3465       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3466       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3467                        &(yyvsp[(yyi + 1) - (yynrhs)])
3468                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3469       YYFPRINTF (stderr, "\n");
3470     }
3471 }
3472
3473 # define YY_REDUCE_PRINT(Rule)          \
3474 do {                                    \
3475   if (yydebug)                          \
3476     yy_reduce_print (yyvsp, yylsp, Rule); \
3477 } while (YYID (0))
3478
3479 /* Nonzero means print parse trace.  It is left uninitialized so that
3480    multiple parsers can coexist.  */
3481 int yydebug;
3482 #else /* !YYDEBUG */
3483 # define YYDPRINTF(Args)
3484 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3485 # define YY_STACK_PRINT(Bottom, Top)
3486 # define YY_REDUCE_PRINT(Rule)
3487 #endif /* !YYDEBUG */
3488
3489
3490 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3491 #ifndef YYINITDEPTH
3492 # define YYINITDEPTH 200
3493 #endif
3494
3495 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3496    if the built-in stack extension method is used).
3497
3498    Do not make this value too large; the results are undefined if
3499    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3500    evaluated with infinite-precision integer arithmetic.  */
3501
3502 #ifndef YYMAXDEPTH
3503 # define YYMAXDEPTH 10000
3504 #endif
3505
3506 \f
3507
3508 #if YYERROR_VERBOSE
3509
3510 # ifndef yystrlen
3511 #  if defined __GLIBC__ && defined _STRING_H
3512 #   define yystrlen strlen
3513 #  else
3514 /* Return the length of YYSTR.  */
3515 #if (defined __STDC__ || defined __C99__FUNC__ \
3516      || defined __cplusplus || defined _MSC_VER)
3517 static YYSIZE_T
3518 yystrlen (const char *yystr)
3519 #else
3520 static YYSIZE_T
3521 yystrlen (yystr)
3522     const char *yystr;
3523 #endif
3524 {
3525   YYSIZE_T yylen;
3526   for (yylen = 0; yystr[yylen]; yylen++)
3527     continue;
3528   return yylen;
3529 }
3530 #  endif
3531 # endif
3532
3533 # ifndef yystpcpy
3534 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3535 #   define yystpcpy stpcpy
3536 #  else
3537 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3538    YYDEST.  */
3539 #if (defined __STDC__ || defined __C99__FUNC__ \
3540      || defined __cplusplus || defined _MSC_VER)
3541 static char *
3542 yystpcpy (char *yydest, const char *yysrc)
3543 #else
3544 static char *
3545 yystpcpy (yydest, yysrc)
3546     char *yydest;
3547     const char *yysrc;
3548 #endif
3549 {
3550   char *yyd = yydest;
3551   const char *yys = yysrc;
3552
3553   while ((*yyd++ = *yys++) != '\0')
3554     continue;
3555
3556   return yyd - 1;
3557 }
3558 #  endif
3559 # endif
3560
3561 # ifndef yytnamerr
3562 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3563    quotes and backslashes, so that it's suitable for yyerror.  The
3564    heuristic is that double-quoting is unnecessary unless the string
3565    contains an apostrophe, a comma, or backslash (other than
3566    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3567    null, do not copy; instead, return the length of what the result
3568    would have been.  */
3569 static YYSIZE_T
3570 yytnamerr (char *yyres, const char *yystr)
3571 {
3572   if (*yystr == '"')
3573     {
3574       YYSIZE_T yyn = 0;
3575       char const *yyp = yystr;
3576
3577       for (;;)
3578         switch (*++yyp)
3579           {
3580           case '\'':
3581           case ',':
3582             goto do_not_strip_quotes;
3583
3584           case '\\':
3585             if (*++yyp != '\\')
3586               goto do_not_strip_quotes;
3587             /* Fall through.  */
3588           default:
3589             if (yyres)
3590               yyres[yyn] = *yyp;
3591             yyn++;
3592             break;
3593
3594           case '"':
3595             if (yyres)
3596               yyres[yyn] = '\0';
3597             return yyn;
3598           }
3599     do_not_strip_quotes: ;
3600     }
3601
3602   if (! yyres)
3603     return yystrlen (yystr);
3604
3605   return yystpcpy (yyres, yystr) - yyres;
3606 }
3607 # endif
3608
3609 /* Copy into YYRESULT an error message about the unexpected token
3610    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3611    including the terminating null byte.  If YYRESULT is null, do not
3612    copy anything; just return the number of bytes that would be
3613    copied.  As a special case, return 0 if an ordinary "syntax error"
3614    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3615    size calculation.  */
3616 static YYSIZE_T
3617 yysyntax_error (char *yyresult, int yystate, int yychar)
3618 {
3619   int yyn = yypact[yystate];
3620
3621   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3622     return 0;
3623   else
3624     {
3625       int yytype = YYTRANSLATE (yychar);
3626       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3627       YYSIZE_T yysize = yysize0;
3628       YYSIZE_T yysize1;
3629       int yysize_overflow = 0;
3630       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3631       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3632       int yyx;
3633
3634 # if 0
3635       /* This is so xgettext sees the translatable formats that are
3636          constructed on the fly.  */
3637       YY_("syntax error, unexpected %s");
3638       YY_("syntax error, unexpected %s, expecting %s");
3639       YY_("syntax error, unexpected %s, expecting %s or %s");
3640       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3641       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3642 # endif
3643       char *yyfmt;
3644       char const *yyf;
3645       static char const yyunexpected[] = "syntax error, unexpected %s";
3646       static char const yyexpecting[] = ", expecting %s";
3647       static char const yyor[] = " or %s";
3648       char yyformat[sizeof yyunexpected
3649                     + sizeof yyexpecting - 1
3650                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3651                        * (sizeof yyor - 1))];
3652       char const *yyprefix = yyexpecting;
3653
3654       /* Start YYX at -YYN if negative to avoid negative indexes in
3655          YYCHECK.  */
3656       int yyxbegin = yyn < 0 ? -yyn : 0;
3657
3658       /* Stay within bounds of both yycheck and yytname.  */
3659       int yychecklim = YYLAST - yyn + 1;
3660       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3661       int yycount = 1;
3662
3663       yyarg[0] = yytname[yytype];
3664       yyfmt = yystpcpy (yyformat, yyunexpected);
3665
3666       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3667         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3668           {
3669             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3670               {
3671                 yycount = 1;
3672                 yysize = yysize0;
3673                 yyformat[sizeof yyunexpected - 1] = '\0';
3674                 break;
3675               }
3676             yyarg[yycount++] = yytname[yyx];
3677             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3678             yysize_overflow |= (yysize1 < yysize);
3679             yysize = yysize1;
3680             yyfmt = yystpcpy (yyfmt, yyprefix);
3681             yyprefix = yyor;
3682           }
3683
3684       yyf = YY_(yyformat);
3685       yysize1 = yysize + yystrlen (yyf);
3686       yysize_overflow |= (yysize1 < yysize);
3687       yysize = yysize1;
3688
3689       if (yysize_overflow)
3690         return YYSIZE_MAXIMUM;
3691
3692       if (yyresult)
3693         {
3694           /* Avoid sprintf, as that infringes on the user's name space.
3695              Don't have undefined behavior even if the translation
3696              produced a string with the wrong number of "%s"s.  */
3697           char *yyp = yyresult;
3698           int yyi = 0;
3699           while ((*yyp = *yyf) != '\0')
3700             {
3701               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3702                 {
3703                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3704                   yyf += 2;
3705                 }
3706               else
3707                 {
3708                   yyp++;
3709                   yyf++;
3710                 }
3711             }
3712         }
3713       return yysize;
3714     }
3715 }
3716 #endif /* YYERROR_VERBOSE */
3717 \f
3718
3719 /*-----------------------------------------------.
3720 | Release the memory associated to this symbol.  |
3721 `-----------------------------------------------*/
3722
3723 /*ARGSUSED*/
3724 #if (defined __STDC__ || defined __C99__FUNC__ \
3725      || defined __cplusplus || defined _MSC_VER)
3726 static void
3727 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3728 #else
3729 static void
3730 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3731     const char *yymsg;
3732     int yytype;
3733     YYSTYPE *yyvaluep;
3734     YYLTYPE *yylocationp;
3735 #endif
3736 {
3737   YYUSE (yyvaluep);
3738   YYUSE (yylocationp);
3739
3740   if (!yymsg)
3741     yymsg = "Deleting";
3742   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3743
3744   switch (yytype)
3745     {
3746       case 138: /* "guess_type" */
3747
3748 /* Line 1009 of yacc.c  */
3749 #line 170 "type.y"
3750         { FreeSpecifier((yyvaluep->specifier)); };
3751
3752 /* Line 1009 of yacc.c  */
3753 #line 3753 "type.ec"
3754         break;
3755       case 140: /* "type" */
3756
3757 /* Line 1009 of yacc.c  */
3758 #line 170 "type.y"
3759         { FreeSpecifier((yyvaluep->specifier)); };
3760
3761 /* Line 1009 of yacc.c  */
3762 #line 3762 "type.ec"
3763         break;
3764       case 141: /* "base_strict_type" */
3765
3766 /* Line 1009 of yacc.c  */
3767 #line 170 "type.y"
3768         { FreeSpecifier((yyvaluep->specifier)); };
3769
3770 /* Line 1009 of yacc.c  */
3771 #line 3771 "type.ec"
3772         break;
3773       case 142: /* "strict_type" */
3774
3775 /* Line 1009 of yacc.c  */
3776 #line 170 "type.y"
3777         { FreeSpecifier((yyvaluep->specifier)); };
3778
3779 /* Line 1009 of yacc.c  */
3780 #line 3780 "type.ec"
3781         break;
3782       case 143: /* "class_function_definition_start" */
3783
3784 /* Line 1009 of yacc.c  */
3785 #line 191 "type.y"
3786         { FreeClassFunction((yyvaluep->classFunction)); };
3787
3788 /* Line 1009 of yacc.c  */
3789 #line 3789 "type.ec"
3790         break;
3791       case 144: /* "constructor_function_definition_start" */
3792
3793 /* Line 1009 of yacc.c  */
3794 #line 191 "type.y"
3795         { FreeClassFunction((yyvaluep->classFunction)); };
3796
3797 /* Line 1009 of yacc.c  */
3798 #line 3798 "type.ec"
3799         break;
3800       case 145: /* "destructor_function_definition_start" */
3801
3802 /* Line 1009 of yacc.c  */
3803 #line 191 "type.y"
3804         { FreeClassFunction((yyvaluep->classFunction)); };
3805
3806 /* Line 1009 of yacc.c  */
3807 #line 3807 "type.ec"
3808         break;
3809       case 146: /* "virtual_class_function_definition_start" */
3810
3811 /* Line 1009 of yacc.c  */
3812 #line 191 "type.y"
3813         { FreeClassFunction((yyvaluep->classFunction)); };
3814
3815 /* Line 1009 of yacc.c  */
3816 #line 3816 "type.ec"
3817         break;
3818       case 147: /* "identifier" */
3819
3820 /* Line 1009 of yacc.c  */
3821 #line 162 "type.y"
3822         { FreeIdentifier((yyvaluep->id)); };
3823
3824 /* Line 1009 of yacc.c  */
3825 #line 3825 "type.ec"
3826         break;
3827       case 148: /* "primary_expression" */
3828
3829 /* Line 1009 of yacc.c  */
3830 #line 164 "type.y"
3831         { FreeExpression((yyvaluep->exp)); };
3832
3833 /* Line 1009 of yacc.c  */
3834 #line 3834 "type.ec"
3835         break;
3836       case 150: /* "postfix_expression" */
3837
3838 /* Line 1009 of yacc.c  */
3839 #line 164 "type.y"
3840         { FreeExpression((yyvaluep->exp)); };
3841
3842 /* Line 1009 of yacc.c  */
3843 #line 3843 "type.ec"
3844         break;
3845       case 153: /* "argument_expression_list" */
3846
3847 /* Line 1009 of yacc.c  */
3848 #line 199 "type.y"
3849         { FreeList((yyvaluep->list), FreeExpression); };
3850
3851 /* Line 1009 of yacc.c  */
3852 #line 3852 "type.ec"
3853         break;
3854       case 155: /* "unary_expression" */
3855
3856 /* Line 1009 of yacc.c  */
3857 #line 164 "type.y"
3858         { FreeExpression((yyvaluep->exp)); };
3859
3860 /* Line 1009 of yacc.c  */
3861 #line 3861 "type.ec"
3862         break;
3863       case 158: /* "cast_expression" */
3864
3865 /* Line 1009 of yacc.c  */
3866 #line 164 "type.y"
3867         { FreeExpression((yyvaluep->exp)); };
3868
3869 /* Line 1009 of yacc.c  */
3870 #line 3870 "type.ec"
3871         break;
3872       case 159: /* "multiplicative_expression" */
3873
3874 /* Line 1009 of yacc.c  */
3875 #line 164 "type.y"
3876         { FreeExpression((yyvaluep->exp)); };
3877
3878 /* Line 1009 of yacc.c  */
3879 #line 3879 "type.ec"
3880         break;
3881       case 160: /* "additive_expression" */
3882
3883 /* Line 1009 of yacc.c  */
3884 #line 164 "type.y"
3885         { FreeExpression((yyvaluep->exp)); };
3886
3887 /* Line 1009 of yacc.c  */
3888 #line 3888 "type.ec"
3889         break;
3890       case 161: /* "shift_expression" */
3891
3892 /* Line 1009 of yacc.c  */
3893 #line 164 "type.y"
3894         { FreeExpression((yyvaluep->exp)); };
3895
3896 /* Line 1009 of yacc.c  */
3897 #line 3897 "type.ec"
3898         break;
3899       case 163: /* "relational_expression" */
3900
3901 /* Line 1009 of yacc.c  */
3902 #line 164 "type.y"
3903         { FreeExpression((yyvaluep->exp)); };
3904
3905 /* Line 1009 of yacc.c  */
3906 #line 3906 "type.ec"
3907         break;
3908       case 164: /* "equality_expression" */
3909
3910 /* Line 1009 of yacc.c  */
3911 #line 164 "type.y"
3912         { FreeExpression((yyvaluep->exp)); };
3913
3914 /* Line 1009 of yacc.c  */
3915 #line 3915 "type.ec"
3916         break;
3917       case 165: /* "and_expression" */
3918
3919 /* Line 1009 of yacc.c  */
3920 #line 164 "type.y"
3921         { FreeExpression((yyvaluep->exp)); };
3922
3923 /* Line 1009 of yacc.c  */
3924 #line 3924 "type.ec"
3925         break;
3926       case 166: /* "exclusive_or_expression" */
3927
3928 /* Line 1009 of yacc.c  */
3929 #line 164 "type.y"
3930         { FreeExpression((yyvaluep->exp)); };
3931
3932 /* Line 1009 of yacc.c  */
3933 #line 3933 "type.ec"
3934         break;
3935       case 167: /* "inclusive_or_expression" */
3936
3937 /* Line 1009 of yacc.c  */
3938 #line 164 "type.y"
3939         { FreeExpression((yyvaluep->exp)); };
3940
3941 /* Line 1009 of yacc.c  */
3942 #line 3942 "type.ec"
3943         break;
3944       case 168: /* "logical_and_expression" */
3945
3946 /* Line 1009 of yacc.c  */
3947 #line 164 "type.y"
3948         { FreeExpression((yyvaluep->exp)); };
3949
3950 /* Line 1009 of yacc.c  */
3951 #line 3951 "type.ec"
3952         break;
3953       case 169: /* "logical_or_expression" */
3954
3955 /* Line 1009 of yacc.c  */
3956 #line 164 "type.y"
3957         { FreeExpression((yyvaluep->exp)); };
3958
3959 /* Line 1009 of yacc.c  */
3960 #line 3960 "type.ec"
3961         break;
3962       case 170: /* "conditional_expression" */
3963
3964 /* Line 1009 of yacc.c  */
3965 #line 164 "type.y"
3966         { FreeExpression((yyvaluep->exp)); };
3967
3968 /* Line 1009 of yacc.c  */
3969 #line 3969 "type.ec"
3970         break;
3971       case 171: /* "assignment_expression" */
3972
3973 /* Line 1009 of yacc.c  */
3974 #line 164 "type.y"
3975         { FreeExpression((yyvaluep->exp)); };
3976
3977 /* Line 1009 of yacc.c  */
3978 #line 3978 "type.ec"
3979         break;
3980       case 173: /* "expression" */
3981
3982 /* Line 1009 of yacc.c  */
3983 #line 199 "type.y"
3984         { FreeList((yyvaluep->list), FreeExpression); };
3985
3986 /* Line 1009 of yacc.c  */
3987 #line 3987 "type.ec"
3988         break;
3989       case 174: /* "constant_expression" */
3990
3991 /* Line 1009 of yacc.c  */
3992 #line 164 "type.y"
3993         { FreeExpression((yyvaluep->exp)); };
3994
3995 /* Line 1009 of yacc.c  */
3996 #line 3996 "type.ec"
3997         break;
3998       case 175: /* "declaration" */
3999
4000 /* Line 1009 of yacc.c  */
4001 #line 185 "type.y"
4002         { FreeDeclaration((yyvaluep->declaration)); };
4003
4004 /* Line 1009 of yacc.c  */
4005 #line 4005 "type.ec"
4006         break;
4007       case 176: /* "specifier_qualifier_list" */
4008
4009 /* Line 1009 of yacc.c  */
4010 #line 201 "type.y"
4011         { FreeList((yyvaluep->list), FreeSpecifier); };
4012
4013 /* Line 1009 of yacc.c  */
4014 #line 4014 "type.ec"
4015         break;
4016       case 177: /* "guess_specifier_qualifier_list" */
4017
4018 /* Line 1009 of yacc.c  */
4019 #line 201 "type.y"
4020         { FreeList((yyvaluep->list), FreeSpecifier); };
4021
4022 /* Line 1009 of yacc.c  */
4023 #line 4023 "type.ec"
4024         break;
4025       case 178: /* "declaration_specifiers" */
4026
4027 /* Line 1009 of yacc.c  */
4028 #line 201 "type.y"
4029         { FreeList((yyvaluep->list), FreeSpecifier); };
4030
4031 /* Line 1009 of yacc.c  */
4032 #line 4032 "type.ec"
4033         break;
4034       case 179: /* "guess_declaration_specifiers" */
4035
4036 /* Line 1009 of yacc.c  */
4037 #line 201 "type.y"
4038         { FreeList((yyvaluep->list), FreeSpecifier); };
4039
4040 /* Line 1009 of yacc.c  */
4041 #line 4041 "type.ec"
4042         break;
4043       case 183: /* "init_declarator_list" */
4044
4045 /* Line 1009 of yacc.c  */
4046 #line 206 "type.y"
4047         { FreeList((yyvaluep->list), FreeInitDeclarator); };
4048
4049 /* Line 1009 of yacc.c  */
4050 #line 4050 "type.ec"
4051         break;
4052       case 184: /* "init_declarator" */
4053
4054 /* Line 1009 of yacc.c  */
4055 #line 180 "type.y"
4056         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
4057
4058 /* Line 1009 of yacc.c  */
4059 #line 4059 "type.ec"
4060         break;
4061       case 185: /* "storage_class_specifier" */
4062
4063 /* Line 1009 of yacc.c  */
4064 #line 170 "type.y"
4065         { FreeSpecifier((yyvaluep->specifier)); };
4066
4067 /* Line 1009 of yacc.c  */
4068 #line 4068 "type.ec"
4069         break;
4070       case 186: /* "ext_decl" */
4071
4072 /* Line 1009 of yacc.c  */
4073 #line 216 "type.y"
4074         { FreeExtDecl((yyvaluep->extDecl)); };
4075
4076 /* Line 1009 of yacc.c  */
4077 #line 4077 "type.ec"
4078         break;
4079       case 188: /* "attribute_word" */
4080
4081 /* Line 1009 of yacc.c  */
4082 #line 196 "type.y"
4083         { delete (yyvaluep->string); };
4084
4085 /* Line 1009 of yacc.c  */
4086 #line 4086 "type.ec"
4087         break;
4088       case 189: /* "attribute" */
4089
4090 /* Line 1009 of yacc.c  */
4091 #line 217 "type.y"
4092         { FreeAttribute((yyvaluep->attribute)); };
4093
4094 /* Line 1009 of yacc.c  */
4095 #line 4095 "type.ec"
4096         break;
4097       case 190: /* "attribs_list" */
4098
4099 /* Line 1009 of yacc.c  */
4100 #line 218 "type.y"
4101         { FreeList((yyvaluep->list), FreeAttribute); };
4102
4103 /* Line 1009 of yacc.c  */
4104 #line 4104 "type.ec"
4105         break;
4106       case 191: /* "attrib" */
4107
4108 /* Line 1009 of yacc.c  */
4109 #line 215 "type.y"
4110         { FreeAttrib((yyvaluep->attrib)); };
4111
4112 /* Line 1009 of yacc.c  */
4113 #line 4113 "type.ec"
4114         break;
4115       case 192: /* "ext_storage" */
4116
4117 /* Line 1009 of yacc.c  */
4118 #line 170 "type.y"
4119         { FreeSpecifier((yyvaluep->specifier)); };
4120
4121 /* Line 1009 of yacc.c  */
4122 #line 4122 "type.ec"
4123         break;
4124       case 193: /* "type_qualifier" */
4125
4126 /* Line 1009 of yacc.c  */
4127 #line 170 "type.y"
4128         { FreeSpecifier((yyvaluep->specifier)); };
4129
4130 /* Line 1009 of yacc.c  */
4131 #line 4131 "type.ec"
4132         break;
4133       case 194: /* "type_specifier" */
4134
4135 /* Line 1009 of yacc.c  */
4136 #line 170 "type.y"
4137         { FreeSpecifier((yyvaluep->specifier)); };
4138
4139 /* Line 1009 of yacc.c  */
4140 #line 4140 "type.ec"
4141         break;
4142       case 195: /* "strict_type_specifier" */
4143
4144 /* Line 1009 of yacc.c  */
4145 #line 170 "type.y"
4146         { FreeSpecifier((yyvaluep->specifier)); };
4147
4148 /* Line 1009 of yacc.c  */
4149 #line 4149 "type.ec"
4150         break;
4151       case 196: /* "struct_or_union_specifier_compound" */
4152
4153 /* Line 1009 of yacc.c  */
4154 #line 170 "type.y"
4155         { FreeSpecifier((yyvaluep->specifier)); };
4156
4157 /* Line 1009 of yacc.c  */
4158 #line 4158 "type.ec"
4159         break;
4160       case 197: /* "struct_or_union_specifier_nocompound" */
4161
4162 /* Line 1009 of yacc.c  */
4163 #line 170 "type.y"
4164         { FreeSpecifier((yyvaluep->specifier)); };
4165
4166 /* Line 1009 of yacc.c  */
4167 #line 4167 "type.ec"
4168         break;
4169       case 198: /* "template_datatype" */
4170
4171 /* Line 1009 of yacc.c  */
4172 #line 214 "type.y"
4173         { FreeTemplateDataType((yyvaluep->templateDatatype)); };
4174
4175 /* Line 1009 of yacc.c  */
4176 #line 4176 "type.ec"
4177         break;
4178       case 199: /* "template_type_argument" */
4179
4180 /* Line 1009 of yacc.c  */
4181 #line 213 "type.y"
4182         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4183
4184 /* Line 1009 of yacc.c  */
4185 #line 4185 "type.ec"
4186         break;
4187       case 200: /* "template_expression_argument" */
4188
4189 /* Line 1009 of yacc.c  */
4190 #line 213 "type.y"
4191         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4192
4193 /* Line 1009 of yacc.c  */
4194 #line 4194 "type.ec"
4195         break;
4196       case 201: /* "template_argument" */
4197
4198 /* Line 1009 of yacc.c  */
4199 #line 213 "type.y"
4200         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4201
4202 /* Line 1009 of yacc.c  */
4203 #line 4203 "type.ec"
4204         break;
4205       case 204: /* "struct_declaration_list" */
4206
4207 /* Line 1009 of yacc.c  */
4208 #line 209 "type.y"
4209         { FreeList((yyvaluep->list), FreeClassDef); };
4210
4211 /* Line 1009 of yacc.c  */
4212 #line 4212 "type.ec"
4213         break;
4214       case 205: /* "default_property" */
4215
4216 /* Line 1009 of yacc.c  */
4217 #line 189 "type.y"
4218         { FreeMemberInit((yyvaluep->memberInit)); };
4219
4220 /* Line 1009 of yacc.c  */
4221 #line 4221 "type.ec"
4222         break;
4223       case 206: /* "default_property_list" */
4224
4225 /* Line 1009 of yacc.c  */
4226 #line 210 "type.y"
4227         { FreeList((yyvaluep->list), FreeMemberInit); };
4228
4229 /* Line 1009 of yacc.c  */
4230 #line 4230 "type.ec"
4231         break;
4232       case 207: /* "property" */
4233
4234 /* Line 1009 of yacc.c  */
4235 #line 197 "type.y"
4236         { FreeProperty((yyvaluep->prop)); };
4237
4238 /* Line 1009 of yacc.c  */
4239 #line 4239 "type.ec"
4240         break;
4241       case 208: /* "struct_declaration" */
4242
4243 /* Line 1009 of yacc.c  */
4244 #line 195 "type.y"
4245         { FreeClassDef((yyvaluep->classDef)); };
4246
4247 /* Line 1009 of yacc.c  */
4248 #line 4248 "type.ec"
4249         break;
4250       case 209: /* "struct_declarator_list" */
4251
4252 /* Line 1009 of yacc.c  */
4253 #line 203 "type.y"
4254         { FreeList((yyvaluep->list), FreeDeclarator); };
4255
4256 /* Line 1009 of yacc.c  */
4257 #line 4257 "type.ec"
4258         break;
4259       case 210: /* "struct_declarator" */
4260
4261 /* Line 1009 of yacc.c  */
4262 #line 174 "type.y"
4263         { FreeDeclarator((yyvaluep->declarator)); };
4264
4265 /* Line 1009 of yacc.c  */
4266 #line 4266 "type.ec"
4267         break;
4268       case 211: /* "enum_specifier_nocompound" */
4269
4270 /* Line 1009 of yacc.c  */
4271 #line 170 "type.y"
4272         { FreeSpecifier((yyvaluep->specifier)); };
4273
4274 /* Line 1009 of yacc.c  */
4275 #line 4275 "type.ec"
4276         break;
4277       case 212: /* "enum_specifier_compound" */
4278
4279 /* Line 1009 of yacc.c  */
4280 #line 170 "type.y"
4281         { FreeSpecifier((yyvaluep->specifier)); };
4282
4283 /* Line 1009 of yacc.c  */
4284 #line 4284 "type.ec"
4285         break;
4286       case 213: /* "enumerator_list" */
4287
4288 /* Line 1009 of yacc.c  */
4289 #line 200 "type.y"
4290         { FreeList((yyvaluep->list), FreeEnumerator); };
4291
4292 /* Line 1009 of yacc.c  */
4293 #line 4293 "type.ec"
4294         break;
4295       case 214: /* "enumerator" */
4296
4297 /* Line 1009 of yacc.c  */
4298 #line 173 "type.y"
4299         { FreeEnumerator((yyvaluep->enumerator)); };
4300
4301 /* Line 1009 of yacc.c  */
4302 #line 4302 "type.ec"
4303         break;
4304       case 215: /* "direct_abstract_declarator" */
4305
4306 /* Line 1009 of yacc.c  */
4307 #line 174 "type.y"
4308         { FreeDeclarator((yyvaluep->declarator)); };
4309
4310 /* Line 1009 of yacc.c  */
4311 #line 4311 "type.ec"
4312         break;
4313       case 216: /* "direct_abstract_declarator_noarray" */
4314
4315 /* Line 1009 of yacc.c  */
4316 #line 174 "type.y"
4317         { FreeDeclarator((yyvaluep->declarator)); };
4318
4319 /* Line 1009 of yacc.c  */
4320 #line 4320 "type.ec"
4321         break;
4322       case 217: /* "abstract_declarator" */
4323
4324 /* Line 1009 of yacc.c  */
4325 #line 174 "type.y"
4326         { FreeDeclarator((yyvaluep->declarator)); };
4327
4328 /* Line 1009 of yacc.c  */
4329 #line 4329 "type.ec"
4330         break;
4331       case 218: /* "abstract_declarator_noarray" */
4332
4333 /* Line 1009 of yacc.c  */
4334 #line 174 "type.y"
4335         { FreeDeclarator((yyvaluep->declarator)); };
4336
4337 /* Line 1009 of yacc.c  */
4338 #line 4338 "type.ec"
4339         break;
4340       case 219: /* "declarator" */
4341
4342 /* Line 1009 of yacc.c  */
4343 #line 174 "type.y"
4344         { FreeDeclarator((yyvaluep->declarator)); };
4345
4346 /* Line 1009 of yacc.c  */
4347 #line 4347 "type.ec"
4348         break;
4349       case 220: /* "direct_declarator_nofunction" */
4350
4351 /* Line 1009 of yacc.c  */
4352 #line 174 "type.y"
4353         { FreeDeclarator((yyvaluep->declarator)); };
4354
4355 /* Line 1009 of yacc.c  */
4356 #line 4356 "type.ec"
4357         break;
4358       case 221: /* "declarator_function" */
4359
4360 /* Line 1009 of yacc.c  */
4361 #line 174 "type.y"
4362         { FreeDeclarator((yyvaluep->declarator)); };
4363
4364 /* Line 1009 of yacc.c  */
4365 #line 4365 "type.ec"
4366         break;
4367       case 222: /* "direct_declarator_function_start" */
4368
4369 /* Line 1009 of yacc.c  */
4370 #line 174 "type.y"
4371         { FreeDeclarator((yyvaluep->declarator)); };
4372
4373 /* Line 1009 of yacc.c  */
4374 #line 4374 "type.ec"
4375         break;
4376       case 223: /* "direct_declarator_function" */
4377
4378 /* Line 1009 of yacc.c  */
4379 #line 174 "type.y"
4380         { FreeDeclarator((yyvaluep->declarator)); };
4381
4382 /* Line 1009 of yacc.c  */
4383 #line 4383 "type.ec"
4384         break;
4385       case 224: /* "direct_declarator" */
4386
4387 /* Line 1009 of yacc.c  */
4388 #line 174 "type.y"
4389         { FreeDeclarator((yyvaluep->declarator)); };
4390
4391 /* Line 1009 of yacc.c  */
4392 #line 4392 "type.ec"
4393         break;
4394       case 225: /* "declarator_nofunction" */
4395
4396 /* Line 1009 of yacc.c  */
4397 #line 174 "type.y"
4398         { FreeDeclarator((yyvaluep->declarator)); };
4399
4400 /* Line 1009 of yacc.c  */
4401 #line 4401 "type.ec"
4402         break;
4403       case 226: /* "type_qualifier_list" */
4404
4405 /* Line 1009 of yacc.c  */
4406 #line 201 "type.y"
4407         { FreeList((yyvaluep->list), FreeSpecifier); };
4408
4409 /* Line 1009 of yacc.c  */
4410 #line 4410 "type.ec"
4411         break;
4412       case 227: /* "pointer" */
4413
4414 /* Line 1009 of yacc.c  */
4415 #line 163 "type.y"
4416         { FreePointer((yyvaluep->pointer)); };
4417
4418 /* Line 1009 of yacc.c  */
4419 #line 4419 "type.ec"
4420         break;
4421       case 228: /* "parameter_type_list" */
4422
4423 /* Line 1009 of yacc.c  */
4424 #line 207 "type.y"
4425         { FreeList((yyvaluep->list), FreeTypeName); };
4426
4427 /* Line 1009 of yacc.c  */
4428 #line 4428 "type.ec"
4429         break;
4430       case 229: /* "parameter_list" */
4431
4432 /* Line 1009 of yacc.c  */
4433 #line 207 "type.y"
4434         { FreeList((yyvaluep->list), FreeTypeName); };
4435
4436 /* Line 1009 of yacc.c  */
4437 #line 4437 "type.ec"
4438         break;
4439       case 230: /* "parameter_declaration" */
4440
4441 /* Line 1009 of yacc.c  */
4442 #line 181 "type.y"
4443         { FreeTypeName((yyvaluep->typeName)); };
4444
4445 /* Line 1009 of yacc.c  */
4446 #line 4446 "type.ec"
4447         break;
4448       case 231: /* "identifier_list" */
4449
4450 /* Line 1009 of yacc.c  */
4451 #line 207 "type.y"
4452         { FreeList((yyvaluep->list), FreeTypeName); };
4453
4454 /* Line 1009 of yacc.c  */
4455 #line 4455 "type.ec"
4456         break;
4457       case 232: /* "type_name" */
4458
4459 /* Line 1009 of yacc.c  */
4460 #line 181 "type.y"
4461         { FreeTypeName((yyvaluep->typeName)); };
4462
4463 /* Line 1009 of yacc.c  */
4464 #line 4464 "type.ec"
4465         break;
4466       case 233: /* "guess_type_name" */
4467
4468 /* Line 1009 of yacc.c  */
4469 #line 181 "type.y"
4470         { FreeTypeName((yyvaluep->typeName)); };
4471
4472 /* Line 1009 of yacc.c  */
4473 #line 4473 "type.ec"
4474         break;
4475       case 234: /* "initializer" */
4476
4477 /* Line 1009 of yacc.c  */
4478 #line 179 "type.y"
4479         { FreeInitializer((yyvaluep->initializer)); };
4480
4481 /* Line 1009 of yacc.c  */
4482 #line 4482 "type.ec"
4483         break;
4484       case 235: /* "initializer_condition" */
4485
4486 /* Line 1009 of yacc.c  */
4487 #line 179 "type.y"
4488         { FreeInitializer((yyvaluep->initializer)); };
4489
4490 /* Line 1009 of yacc.c  */
4491 #line 4491 "type.ec"
4492         break;
4493       case 236: /* "initializer_list" */
4494
4495 /* Line 1009 of yacc.c  */
4496 #line 205 "type.y"
4497         { FreeList((yyvaluep->list), FreeInitializer); };
4498
4499 /* Line 1009 of yacc.c  */
4500 #line 4500 "type.ec"
4501         break;
4502       case 237: /* "statement" */
4503
4504 /* Line 1009 of yacc.c  */
4505 #line 182 "type.y"
4506         { FreeStatement((yyvaluep->stmt)); };
4507
4508 /* Line 1009 of yacc.c  */
4509 #line 4509 "type.ec"
4510         break;
4511       case 238: /* "labeled_statement" */
4512
4513 /* Line 1009 of yacc.c  */
4514 #line 182 "type.y"
4515         { FreeStatement((yyvaluep->stmt)); };
4516
4517 /* Line 1009 of yacc.c  */
4518 #line 4518 "type.ec"
4519         break;
4520       case 239: /* "declaration_list" */
4521
4522 /* Line 1009 of yacc.c  */
4523 #line 204 "type.y"
4524         { FreeList((yyvaluep->list), FreeDeclaration); };
4525
4526 /* Line 1009 of yacc.c  */
4527 #line 4527 "type.ec"
4528         break;
4529       case 240: /* "statement_list" */
4530
4531 /* Line 1009 of yacc.c  */
4532 #line 208 "type.y"
4533         { FreeList((yyvaluep->list), FreeStatement); };
4534
4535 /* Line 1009 of yacc.c  */
4536 #line 4536 "type.ec"
4537         break;
4538       case 241: /* "compound_inside" */
4539
4540 /* Line 1009 of yacc.c  */
4541 #line 182 "type.y"
4542         { FreeStatement((yyvaluep->stmt)); };
4543
4544 /* Line 1009 of yacc.c  */
4545 #line 4545 "type.ec"
4546         break;
4547       case 242: /* "compound_start" */
4548
4549 /* Line 1009 of yacc.c  */
4550 #line 212 "type.y"
4551         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
4552
4553 /* Line 1009 of yacc.c  */
4554 #line 4554 "type.ec"
4555         break;
4556       case 243: /* "compound_statement" */
4557
4558 /* Line 1009 of yacc.c  */
4559 #line 182 "type.y"
4560         { FreeStatement((yyvaluep->stmt)); };
4561
4562 /* Line 1009 of yacc.c  */
4563 #line 4563 "type.ec"
4564         break;
4565       case 244: /* "expression_statement" */
4566
4567 /* Line 1009 of yacc.c  */
4568 #line 182 "type.y"
4569         { FreeStatement((yyvaluep->stmt)); };
4570
4571 /* Line 1009 of yacc.c  */
4572 #line 4572 "type.ec"
4573         break;
4574       case 245: /* "selection_statement" */
4575
4576 /* Line 1009 of yacc.c  */
4577 #line 182 "type.y"
4578         { FreeStatement((yyvaluep->stmt)); };
4579
4580 /* Line 1009 of yacc.c  */
4581 #line 4581 "type.ec"
4582         break;
4583       case 246: /* "iteration_statement" */
4584
4585 /* Line 1009 of yacc.c  */
4586 #line 182 "type.y"
4587         { FreeStatement((yyvaluep->stmt)); };
4588
4589 /* Line 1009 of yacc.c  */
4590 #line 4590 "type.ec"
4591         break;
4592       case 247: /* "jump_statement" */
4593
4594 /* Line 1009 of yacc.c  */
4595 #line 182 "type.y"
4596         { FreeStatement((yyvaluep->stmt)); };
4597
4598 /* Line 1009 of yacc.c  */
4599 #line 4599 "type.ec"
4600         break;
4601       case 248: /* "string_literal" */
4602
4603 /* Line 1009 of yacc.c  */
4604 #line 196 "type.y"
4605         { delete (yyvaluep->string); };
4606
4607 /* Line 1009 of yacc.c  */
4608 #line 4608 "type.ec"
4609         break;
4610       case 249: /* "instantiation_named" */
4611
4612 /* Line 1009 of yacc.c  */
4613 #line 187 "type.y"
4614         { FreeInstance((yyvaluep->instance)); };
4615
4616 /* Line 1009 of yacc.c  */
4617 #line 4617 "type.ec"
4618         break;
4619       case 251: /* "instantiation_unnamed" */
4620
4621 /* Line 1009 of yacc.c  */
4622 #line 187 "type.y"
4623         { FreeInstance((yyvaluep->instance)); };
4624
4625 /* Line 1009 of yacc.c  */
4626 #line 4626 "type.ec"
4627         break;
4628       case 253: /* "class_function_definition" */
4629
4630 /* Line 1009 of yacc.c  */
4631 #line 191 "type.y"
4632         { FreeClassFunction((yyvaluep->classFunction)); };
4633
4634 /* Line 1009 of yacc.c  */
4635 #line 4635 "type.ec"
4636         break;
4637       case 254: /* "instance_class_function_definition_start" */
4638
4639 /* Line 1009 of yacc.c  */
4640 #line 191 "type.y"
4641         { FreeClassFunction((yyvaluep->classFunction)); };
4642
4643 /* Line 1009 of yacc.c  */
4644 #line 4644 "type.ec"
4645         break;
4646       case 255: /* "instance_class_function_definition" */
4647
4648 /* Line 1009 of yacc.c  */
4649 #line 191 "type.y"
4650         { FreeClassFunction((yyvaluep->classFunction)); };
4651
4652 /* Line 1009 of yacc.c  */
4653 #line 4653 "type.ec"
4654         break;
4655       case 256: /* "data_member_initialization" */
4656
4657 /* Line 1009 of yacc.c  */
4658 #line 189 "type.y"
4659         { FreeMemberInit((yyvaluep->memberInit)); };
4660
4661 /* Line 1009 of yacc.c  */
4662 #line 4662 "type.ec"
4663         break;
4664       case 257: /* "data_member_initialization_list" */
4665
4666 /* Line 1009 of yacc.c  */
4667 #line 210 "type.y"
4668         { FreeList((yyvaluep->list), FreeMemberInit); };
4669
4670 /* Line 1009 of yacc.c  */
4671 #line 4671 "type.ec"
4672         break;
4673       case 258: /* "data_member_initialization_list_coloned" */
4674
4675 /* Line 1009 of yacc.c  */
4676 #line 210 "type.y"
4677         { FreeList((yyvaluep->list), FreeMemberInit); };
4678
4679 /* Line 1009 of yacc.c  */
4680 #line 4680 "type.ec"
4681         break;
4682       case 259: /* "members_initialization_list_coloned" */
4683
4684 /* Line 1009 of yacc.c  */
4685 #line 211 "type.y"
4686         { FreeList((yyvaluep->list), FreeMembersInit); };
4687
4688 /* Line 1009 of yacc.c  */
4689 #line 4689 "type.ec"
4690         break;
4691       case 260: /* "members_initialization_list" */
4692
4693 /* Line 1009 of yacc.c  */
4694 #line 211 "type.y"
4695         { FreeList((yyvaluep->list), FreeMembersInit); };
4696
4697 /* Line 1009 of yacc.c  */
4698 #line 4698 "type.ec"
4699         break;
4700
4701       default:
4702         break;
4703     }
4704 }
4705
4706 /* Prevent warnings from -Wmissing-prototypes.  */
4707 #ifdef YYPARSE_PARAM
4708 #if defined __STDC__ || defined __cplusplus
4709 int yyparse (void *YYPARSE_PARAM);
4710 #else
4711 int yyparse ();
4712 #endif
4713 #else /* ! YYPARSE_PARAM */
4714 #if defined __STDC__ || defined __cplusplus
4715 int yyparse (void);
4716 #else
4717 int yyparse ();
4718 #endif
4719 #endif /* ! YYPARSE_PARAM */
4720
4721
4722 /* The lookahead symbol.  */
4723 int yychar;
4724
4725 /* The semantic value of the lookahead symbol.  */
4726 YYSTYPE yylval;
4727
4728 /* Location data for the lookahead symbol.  */
4729 YYLTYPE yylloc;
4730
4731 /* Number of syntax errors so far.  */
4732 int yynerrs;
4733
4734
4735
4736 /*-------------------------.
4737 | yyparse or yypush_parse.  |
4738 `-------------------------*/
4739
4740 #ifdef YYPARSE_PARAM
4741 #if (defined __STDC__ || defined __C99__FUNC__ \
4742      || defined __cplusplus || defined _MSC_VER)
4743 int
4744 yyparse (void *YYPARSE_PARAM)
4745 #else
4746 int
4747 yyparse (YYPARSE_PARAM)
4748     void *YYPARSE_PARAM;
4749 #endif
4750 #else /* ! YYPARSE_PARAM */
4751 #if (defined __STDC__ || defined __C99__FUNC__ \
4752      || defined __cplusplus || defined _MSC_VER)
4753 int
4754 yyparse (void)
4755 #else
4756 int
4757 yyparse ()
4758
4759 #endif
4760 #endif
4761 {
4762
4763
4764     int yystate;
4765     /* Number of tokens to shift before error messages enabled.  */
4766     int yyerrstatus;
4767
4768     /* The stacks and their tools:
4769        `yyss': related to states.
4770        `yyvs': related to semantic values.
4771        `yyls': related to locations.
4772
4773        Refer to the stacks thru separate pointers, to allow yyoverflow
4774        to reallocate them elsewhere.  */
4775
4776     /* The state stack.  */
4777     yytype_int16 yyssa[YYINITDEPTH];
4778     yytype_int16 *yyss;
4779     yytype_int16 *yyssp;
4780
4781     /* The semantic value stack.  */
4782     YYSTYPE yyvsa[YYINITDEPTH];
4783     YYSTYPE *yyvs;
4784     YYSTYPE *yyvsp;
4785
4786     /* The location stack.  */
4787     YYLTYPE yylsa[YYINITDEPTH];
4788     YYLTYPE *yyls;
4789     YYLTYPE *yylsp;
4790
4791     /* The locations where the error started and ended.  */
4792     YYLTYPE yyerror_range[2];
4793
4794     YYSIZE_T yystacksize;
4795
4796   int yyn;
4797   int yyresult;
4798   /* Lookahead token as an internal (translated) token number.  */
4799   int yytoken;
4800   /* The variables used to return semantic value and location from the
4801      action routines.  */
4802   YYSTYPE yyval;
4803   YYLTYPE yyloc;
4804
4805 #if YYERROR_VERBOSE
4806   /* Buffer for error messages, and its allocated size.  */
4807   char yymsgbuf[128];
4808   char *yymsg = yymsgbuf;
4809   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4810 #endif
4811
4812 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4813
4814   /* The number of symbols on the RHS of the reduced rule.
4815      Keep to zero when no symbol should be popped.  */
4816   int yylen = 0;
4817
4818   yytoken = 0;
4819   yyss = yyssa;
4820   yyvs = yyvsa;
4821   yyls = yylsa;
4822   yystacksize = YYINITDEPTH;
4823
4824   YYDPRINTF ((stderr, "Starting parse\n"));
4825
4826   yystate = 0;
4827   yyerrstatus = 0;
4828   yynerrs = 0;
4829   yychar = YYEMPTY; /* Cause a token to be read.  */
4830
4831   /* Initialize stack pointers.
4832      Waste one element of value and location stack
4833      so that they stay on the same level as the state stack.
4834      The wasted elements are never initialized.  */
4835   yyssp = yyss;
4836   yyvsp = yyvs;
4837   yylsp = yyls;
4838
4839 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4840   /* Initialize the default location before parsing starts.  */
4841   yylloc.first_line   = yylloc.last_line   = 1;
4842   yylloc.first_column = yylloc.last_column = 1;
4843 #endif
4844
4845   goto yysetstate;
4846
4847 /*------------------------------------------------------------.
4848 | yynewstate -- Push a new state, which is found in yystate.  |
4849 `------------------------------------------------------------*/
4850  yynewstate:
4851   /* In all cases, when you get here, the value and location stacks
4852      have just been pushed.  So pushing a state here evens the stacks.  */
4853   yyssp++;
4854
4855  yysetstate:
4856   *yyssp = yystate;
4857
4858   if (yyss + yystacksize - 1 <= yyssp)
4859     {
4860       /* Get the current used size of the three stacks, in elements.  */
4861       YYSIZE_T yysize = yyssp - yyss + 1;
4862
4863 #ifdef yyoverflow
4864       {
4865         /* Give user a chance to reallocate the stack.  Use copies of
4866            these so that the &'s don't force the real ones into
4867            memory.  */
4868         YYSTYPE *yyvs1 = yyvs;
4869         yytype_int16 *yyss1 = yyss;
4870         YYLTYPE *yyls1 = yyls;
4871
4872         /* Each stack pointer address is followed by the size of the
4873            data in use in that stack, in bytes.  This used to be a
4874            conditional around just the two extra args, but that might
4875            be undefined if yyoverflow is a macro.  */
4876         yyoverflow (YY_("memory exhausted"),
4877                     &yyss1, yysize * sizeof (*yyssp),
4878                     &yyvs1, yysize * sizeof (*yyvsp),
4879                     &yyls1, yysize * sizeof (*yylsp),
4880                     &yystacksize);
4881
4882         yyls = yyls1;
4883         yyss = yyss1;
4884         yyvs = yyvs1;
4885       }
4886 #else /* no yyoverflow */
4887 # ifndef YYSTACK_RELOCATE
4888       goto yyexhaustedlab;
4889 # else
4890       /* Extend the stack our own way.  */
4891       if (YYMAXDEPTH <= yystacksize)
4892         goto yyexhaustedlab;
4893       yystacksize *= 2;
4894       if (YYMAXDEPTH < yystacksize)
4895         yystacksize = YYMAXDEPTH;
4896
4897       {
4898         yytype_int16 *yyss1 = yyss;
4899         union yyalloc *yyptr =
4900           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4901         if (! yyptr)
4902           goto yyexhaustedlab;
4903         YYSTACK_RELOCATE (yyss_alloc, yyss);
4904         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4905         YYSTACK_RELOCATE (yyls_alloc, yyls);
4906 #  undef YYSTACK_RELOCATE
4907         if (yyss1 != yyssa)
4908           YYSTACK_FREE (yyss1);
4909       }
4910 # endif
4911 #endif /* no yyoverflow */
4912
4913       yyssp = yyss + yysize - 1;
4914       yyvsp = yyvs + yysize - 1;
4915       yylsp = yyls + yysize - 1;
4916
4917       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4918                   (unsigned long int) yystacksize));
4919
4920       if (yyss + yystacksize - 1 <= yyssp)
4921         YYABORT;
4922     }
4923
4924   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4925
4926   if (yystate == YYFINAL)
4927     YYACCEPT;
4928
4929   goto yybackup;
4930
4931 /*-----------.
4932 | yybackup.  |
4933 `-----------*/
4934 yybackup:
4935
4936   /* Do appropriate processing given the current state.  Read a
4937      lookahead token if we need one and don't already have one.  */
4938
4939   /* First try to decide what to do without reference to lookahead token.  */
4940   yyn = yypact[yystate];
4941   if (yyn == YYPACT_NINF)
4942     goto yydefault;
4943
4944   /* Not known => get a lookahead token if don't already have one.  */
4945
4946   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4947   if (yychar == YYEMPTY)
4948     {
4949       YYDPRINTF ((stderr, "Reading a token: "));
4950       yychar = YYLEX;
4951     }
4952
4953   if (yychar <= YYEOF)
4954     {
4955       yychar = yytoken = YYEOF;
4956       YYDPRINTF ((stderr, "Now at end of input.\n"));
4957     }
4958   else
4959     {
4960       yytoken = YYTRANSLATE (yychar);
4961       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4962     }
4963
4964   /* If the proper action on seeing token YYTOKEN is to reduce or to
4965      detect an error, take that action.  */
4966   yyn += yytoken;
4967   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4968     goto yydefault;
4969   yyn = yytable[yyn];
4970   if (yyn <= 0)
4971     {
4972       if (yyn == 0 || yyn == YYTABLE_NINF)
4973         goto yyerrlab;
4974       yyn = -yyn;
4975       goto yyreduce;
4976     }
4977
4978   /* Count tokens shifted since error; after three, turn off error
4979      status.  */
4980   if (yyerrstatus)
4981     yyerrstatus--;
4982
4983   /* Shift the lookahead token.  */
4984   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4985
4986   /* Discard the shifted token.  */
4987   yychar = YYEMPTY;
4988
4989   yystate = yyn;
4990   *++yyvsp = yylval;
4991   *++yylsp = yylloc;
4992   goto yynewstate;
4993
4994
4995 /*-----------------------------------------------------------.
4996 | yydefault -- do the default action for the current state.  |
4997 `-----------------------------------------------------------*/
4998 yydefault:
4999   yyn = yydefact[yystate];
5000   if (yyn == 0)
5001     goto yyerrlab;
5002   goto yyreduce;
5003
5004
5005 /*-----------------------------.
5006 | yyreduce -- Do a reduction.  |
5007 `-----------------------------*/
5008 yyreduce:
5009   /* yyn is the number of a rule to reduce with.  */
5010   yylen = yyr2[yyn];
5011
5012   /* If YYLEN is nonzero, implement the default value of the action:
5013      `$$ = $1'.
5014
5015      Otherwise, the following line sets YYVAL to garbage.
5016      This behavior is undocumented and Bison
5017      users should not rely upon it.  Assigning to YYVAL
5018      unconditionally makes the parser a bit smaller, and it avoids a
5019      GCC warning that YYVAL may be used uninitialized.  */
5020   yyval = yyvsp[1-yylen];
5021
5022   /* Default location.  */
5023   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
5024   YY_REDUCE_PRINT (yyn);
5025   switch (yyn)
5026     {
5027         case 2:
5028
5029 /* Line 1464 of yacc.c  */
5030 #line 226 "type.y"
5031     {
5032       (yyval.specifier) = null;
5033       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5034       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5035       resetScannerPos(&(yylsp[(1) - (2)]).start);
5036       yyclearin;
5037       
5038       FreeIdentifier((yyvsp[(1) - (2)].id));
5039
5040       YYPOPSTACK(1);
5041       yystate = *yyssp;
5042       YY_STACK_PRINT (yyss, yyssp);
5043       YYPOPSTACK(1);
5044       yystate = *yyssp;
5045       YY_STACK_PRINT (yyss, yyssp);
5046       goto yysetstate;
5047    ;}
5048     break;
5049
5050   case 3:
5051
5052 /* Line 1464 of yacc.c  */
5053 #line 244 "type.y"
5054     {
5055       (yyval.specifier) = null;
5056    #ifdef PRECOMPILER
5057       // if($1._class && !$1._class.name)
5058       if((yyvsp[(1) - (2)].id)._class)
5059       {
5060          char name[1024];
5061          strcpy(name,  (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
5062          strcat(name, "::");
5063          strcat(name, (yyvsp[(1) - (2)].id).string);
5064          _DeclClass(0, name);
5065       }
5066       else
5067          _DeclClass(0, (yyvsp[(1) - (2)].id).string);
5068
5069       FreeIdentifier((yyvsp[(1) - (2)].id));
5070
5071       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5072       resetScannerPos(&(yylsp[(1) - (2)]).start);
5073       yyclearin;
5074
5075       YYPOPSTACK(1);
5076       yystate = *yyssp;
5077       YY_STACK_PRINT (yyss, yyssp);
5078       YYPOPSTACK(1);
5079       yystate = *yyssp;
5080       YY_STACK_PRINT (yyss, yyssp);
5081       goto yysetstate;
5082    #endif
5083    ;}
5084     break;
5085
5086   case 4:
5087
5088 /* Line 1464 of yacc.c  */
5089 #line 278 "type.y"
5090     {
5091       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5092       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5093       parseTypeError = 0;
5094       resetScannerPos(&(yylsp[(1) - (2)]).start);
5095       yyclearin;
5096       FreeIdentifier((yyvsp[(1) - (2)].id));
5097
5098       YYPOPSTACK(1);
5099       yystate = *yyssp;
5100       YY_STACK_PRINT (yyss, yyssp);
5101       YYPOPSTACK(1);
5102       yystate = *yyssp;
5103       YY_STACK_PRINT (yyss, yyssp);
5104       goto yysetstate;
5105    ;}
5106     break;
5107
5108   case 5:
5109
5110 /* Line 1464 of yacc.c  */
5111 #line 327 "type.y"
5112     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5113     break;
5114
5115   case 6:
5116
5117 /* Line 1464 of yacc.c  */
5118 #line 329 "type.y"
5119     {
5120    #ifdef PRECOMPILER
5121       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5122       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5123       resetScannerPos(&(yylsp[(1) - (2)]).start);
5124       yyclearin;
5125
5126       FreeIdentifier((yyvsp[(1) - (2)].id));
5127       FreeIdentifier((yyvsp[(2) - (2)].id));
5128
5129       YYPOPSTACK(1);
5130       yystate = *yyssp;
5131       YY_STACK_PRINT (yyss, yyssp);
5132       YYPOPSTACK(1);
5133       yystate = *yyssp;
5134       YY_STACK_PRINT (yyss, yyssp);
5135       goto yysetstate;
5136    #else
5137       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[(2) - (2)].id); yylloc = (yylsp[(1) - (2)]); 
5138       Compiler_Error($"Not a type: %s\n", (yyvsp[(1) - (2)].id).string);      
5139       yylloc = tmpLoc; (yyvsp[(2) - (2)].id).badID = (yyvsp[(1) - (2)].id); // FreeIdentifier($1);
5140    #endif
5141    ;}
5142     break;
5143
5144   case 7:
5145
5146 /* Line 1464 of yacc.c  */
5147 #line 355 "type.y"
5148     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5149     break;
5150
5151   case 9:
5152
5153 /* Line 1464 of yacc.c  */
5154 #line 360 "type.y"
5155     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
5156     break;
5157
5158   case 10:
5159
5160 /* Line 1464 of yacc.c  */
5161 #line 362 "type.y"
5162     {
5163       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
5164       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
5165       (yyval.specifier).loc = (yyloc);
5166
5167       (yylsp[(4) - (4)]).end.pos--;
5168       fileInput.Seek((yylsp[(4) - (4)]).end.pos, start); 
5169       resetScannerPos(&(yylsp[(4) - (4)]).end);
5170       yyclearin;
5171     ;}
5172     break;
5173
5174   case 11:
5175
5176 /* Line 1464 of yacc.c  */
5177 #line 379 "type.y"
5178     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5179     break;
5180
5181   case 12:
5182
5183 /* Line 1464 of yacc.c  */
5184 #line 381 "type.y"
5185     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5186     break;
5187
5188   case 13:
5189
5190 /* Line 1464 of yacc.c  */
5191 #line 386 "type.y"
5192     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
5193     break;
5194
5195   case 14:
5196
5197 /* Line 1464 of yacc.c  */
5198 #line 391 "type.y"
5199     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
5200     break;
5201
5202   case 15:
5203
5204 /* Line 1464 of yacc.c  */
5205 #line 396 "type.y"
5206     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5207     break;
5208
5209   case 16:
5210
5211 /* Line 1464 of yacc.c  */
5212 #line 398 "type.y"
5213     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5214     break;
5215
5216   case 17:
5217
5218 /* Line 1464 of yacc.c  */
5219 #line 403 "type.y"
5220     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
5221     break;
5222
5223   case 19:
5224
5225 /* Line 1464 of yacc.c  */
5226 #line 409 "type.y"
5227     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
5228     break;
5229
5230   case 20:
5231
5232 /* Line 1464 of yacc.c  */
5233 #line 414 "type.y"
5234     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
5235     break;
5236
5237   case 21:
5238
5239 /* Line 1464 of yacc.c  */
5240 #line 416 "type.y"
5241     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5242     break;
5243
5244   case 22:
5245
5246 /* Line 1464 of yacc.c  */
5247 #line 418 "type.y"
5248     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
5249     break;
5250
5251   case 23:
5252
5253 /* Line 1464 of yacc.c  */
5254 #line 420 "type.y"
5255     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
5256     break;
5257
5258   case 24:
5259
5260 /* Line 1464 of yacc.c  */
5261 #line 421 "type.y"
5262     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
5263     break;
5264
5265   case 25:
5266
5267 /* Line 1464 of yacc.c  */
5268 #line 422 "type.y"
5269     { (yyval.exp) = MkExpIntlString((yyvsp[(4) - (4)].string), (yyvsp[(2) - (4)].string)); delete (yyvsp[(2) - (4)].string); delete (yyvsp[(4) - (4)].string); (yyval.exp).loc = (yyloc); ;}
5270     break;
5271
5272   case 26:
5273
5274 /* Line 1464 of yacc.c  */
5275 #line 424 "type.y"
5276     { Expression exp = MkExpDummy(); exp.loc.start = (yylsp[(1) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).start; (yyval.exp) = MkExpBrackets(MkListOne(exp)); (yyval.exp).loc = (yyloc); yyerror(); ;}
5277     break;
5278
5279   case 27:
5280
5281 /* Line 1464 of yacc.c  */
5282 #line 426 "type.y"
5283     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5284     break;
5285
5286   case 28:
5287
5288 /* Line 1464 of yacc.c  */
5289 #line 427 "type.y"
5290     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5291     break;
5292
5293   case 29:
5294
5295 /* Line 1464 of yacc.c  */
5296 #line 428 "type.y"
5297     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5298     break;
5299
5300   case 30:
5301
5302 /* Line 1464 of yacc.c  */
5303 #line 429 "type.y"
5304     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5305     break;
5306
5307   case 31:
5308
5309 /* Line 1464 of yacc.c  */
5310 #line 430 "type.y"
5311     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5312     break;
5313
5314   case 32:
5315
5316 /* Line 1464 of yacc.c  */
5317 #line 431 "type.y"
5318     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5319     break;
5320
5321   case 33:
5322
5323 /* Line 1464 of yacc.c  */
5324 #line 432 "type.y"
5325     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5326     break;
5327
5328   case 34:
5329
5330 /* Line 1464 of yacc.c  */
5331 #line 433 "type.y"
5332     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5333     break;
5334
5335   case 35:
5336
5337 /* Line 1464 of yacc.c  */
5338 #line 434 "type.y"
5339     { (yyval.exp) = MkExpDummy(); ;}
5340     break;
5341
5342   case 37:
5343
5344 /* Line 1464 of yacc.c  */
5345 #line 439 "type.y"
5346     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5347     break;
5348
5349   case 38:
5350
5351 /* Line 1464 of yacc.c  */
5352 #line 440 "type.y"
5353     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
5354     break;
5355
5356   case 39:
5357
5358 /* Line 1464 of yacc.c  */
5359 #line 441 "type.y"
5360     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); ;}
5361     break;
5362
5363   case 40:
5364
5365 /* Line 1464 of yacc.c  */
5366 #line 442 "type.y"
5367     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5368     break;
5369
5370   case 41:
5371
5372 /* Line 1464 of yacc.c  */
5373 #line 443 "type.y"
5374     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5375     break;
5376
5377   case 42:
5378
5379 /* Line 1464 of yacc.c  */
5380 #line 444 "type.y"
5381     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5382     break;
5383
5384   case 43:
5385
5386 /* Line 1464 of yacc.c  */
5387 #line 445 "type.y"
5388     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5389     break;
5390
5391   case 44:
5392
5393 /* Line 1464 of yacc.c  */
5394 #line 449 "type.y"
5395     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5396     break;
5397
5398   case 46:
5399
5400 /* Line 1464 of yacc.c  */
5401 #line 455 "type.y"
5402     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5403     break;
5404
5405   case 47:
5406
5407 /* Line 1464 of yacc.c  */
5408 #line 456 "type.y"
5409     { (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
5410     break;
5411
5412   case 48:
5413
5414 /* Line 1464 of yacc.c  */
5415 #line 457 "type.y"
5416     { (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); ;}
5417     break;
5418
5419   case 49:
5420
5421 /* Line 1464 of yacc.c  */
5422 #line 458 "type.y"
5423     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5424     break;
5425
5426   case 50:
5427
5428 /* Line 1464 of yacc.c  */
5429 #line 459 "type.y"
5430     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5431     break;
5432
5433   case 51:
5434
5435 /* Line 1464 of yacc.c  */
5436 #line 460 "type.y"
5437     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5438     break;
5439
5440   case 52:
5441
5442 /* Line 1464 of yacc.c  */
5443 #line 461 "type.y"
5444     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5445     break;
5446
5447   case 53:
5448
5449 /* Line 1464 of yacc.c  */
5450 #line 465 "type.y"
5451     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5452     break;
5453
5454   case 54:
5455
5456 /* Line 1464 of yacc.c  */
5457 #line 466 "type.y"
5458     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5459     break;
5460
5461   case 55:
5462
5463 /* Line 1464 of yacc.c  */
5464 #line 467 "type.y"
5465     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5466     break;
5467
5468   case 56:
5469
5470 /* Line 1464 of yacc.c  */
5471 #line 468 "type.y"
5472     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5473     break;
5474
5475   case 57:
5476
5477 /* Line 1464 of yacc.c  */
5478 #line 472 "type.y"
5479     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5480     break;
5481
5482   case 58:
5483
5484 /* Line 1464 of yacc.c  */
5485 #line 473 "type.y"
5486     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5487     break;
5488
5489   case 59:
5490
5491 /* Line 1464 of yacc.c  */
5492 #line 474 "type.y"
5493     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5494     break;
5495
5496   case 60:
5497
5498 /* Line 1464 of yacc.c  */
5499 #line 475 "type.y"
5500     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5501     break;
5502
5503   case 61:
5504
5505 /* Line 1464 of yacc.c  */
5506 #line 476 "type.y"
5507     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5508     break;
5509
5510   case 62:
5511
5512 /* Line 1464 of yacc.c  */
5513 #line 477 "type.y"
5514     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5515     break;
5516
5517   case 63:
5518
5519 /* Line 1464 of yacc.c  */
5520 #line 478 "type.y"
5521     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5522     break;
5523
5524   case 64:
5525
5526 /* Line 1464 of yacc.c  */
5527 #line 479 "type.y"
5528     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5529     break;
5530
5531   case 65:
5532
5533 /* Line 1464 of yacc.c  */
5534 #line 480 "type.y"
5535     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5536     break;
5537
5538   case 70:
5539
5540 /* Line 1464 of yacc.c  */
5541 #line 494 "type.y"
5542     { (yyval.i) = '&'; ;}
5543     break;
5544
5545   case 71:
5546
5547 /* Line 1464 of yacc.c  */
5548 #line 495 "type.y"
5549     { (yyval.i) = '*'; ;}
5550     break;
5551
5552   case 72:
5553
5554 /* Line 1464 of yacc.c  */
5555 #line 496 "type.y"
5556     { (yyval.i) = '+'; ;}
5557     break;
5558
5559   case 73:
5560
5561 /* Line 1464 of yacc.c  */
5562 #line 497 "type.y"
5563     { (yyval.i) = '-'; ;}
5564     break;
5565
5566   case 74:
5567
5568 /* Line 1464 of yacc.c  */
5569 #line 498 "type.y"
5570     { (yyval.i) = '~'; ;}
5571     break;
5572
5573   case 75:
5574
5575 /* Line 1464 of yacc.c  */
5576 #line 499 "type.y"
5577     { (yyval.i) = '!'; ;}
5578     break;
5579
5580   case 76:
5581
5582 /* Line 1464 of yacc.c  */
5583 #line 500 "type.y"
5584     { (yyval.i) = DELETE; ;}
5585     break;
5586
5587   case 78:
5588
5589 /* Line 1464 of yacc.c  */
5590 #line 505 "type.y"
5591     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5592     break;
5593
5594   case 80:
5595
5596 /* Line 1464 of yacc.c  */
5597 #line 510 "type.y"
5598     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5599     break;
5600
5601   case 81:
5602
5603 /* Line 1464 of yacc.c  */
5604 #line 511 "type.y"
5605     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5606     break;
5607
5608   case 82:
5609
5610 /* Line 1464 of yacc.c  */
5611 #line 512 "type.y"
5612     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5613     break;
5614
5615   case 84:
5616
5617 /* Line 1464 of yacc.c  */
5618 #line 517 "type.y"
5619     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5620     break;
5621
5622   case 85:
5623
5624 /* Line 1464 of yacc.c  */
5625 #line 518 "type.y"
5626     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5627     break;
5628
5629   case 87:
5630
5631 /* Line 1464 of yacc.c  */
5632 #line 523 "type.y"
5633     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5634     break;
5635
5636   case 88:
5637
5638 /* Line 1464 of yacc.c  */
5639 #line 524 "type.y"
5640     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5641     break;
5642
5643   case 89:
5644
5645 /* Line 1464 of yacc.c  */
5646 #line 529 "type.y"
5647     {
5648       (yyval.exp) = (yyvsp[(1) - (2)].exp);
5649       skipErrors = true;
5650    ;}
5651     break;
5652
5653   case 91:
5654
5655 /* Line 1464 of yacc.c  */
5656 #line 537 "type.y"
5657     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
5658     break;
5659
5660   case 92:
5661
5662 /* Line 1464 of yacc.c  */
5663 #line 538 "type.y"
5664     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5665     break;
5666
5667   case 93:
5668
5669 /* Line 1464 of yacc.c  */
5670 #line 539 "type.y"
5671     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5672     break;
5673
5674   case 94:
5675
5676 /* Line 1464 of yacc.c  */
5677 #line 540 "type.y"
5678     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5679     break;
5680
5681   case 96:
5682
5683 /* Line 1464 of yacc.c  */
5684 #line 545 "type.y"
5685     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5686     break;
5687
5688   case 97:
5689
5690 /* Line 1464 of yacc.c  */
5691 #line 546 "type.y"
5692     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5693     break;
5694
5695   case 99:
5696
5697 /* Line 1464 of yacc.c  */
5698 #line 551 "type.y"
5699     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5700     break;
5701
5702   case 101:
5703
5704 /* Line 1464 of yacc.c  */
5705 #line 556 "type.y"
5706     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5707     break;
5708
5709   case 103:
5710
5711 /* Line 1464 of yacc.c  */
5712 #line 561 "type.y"
5713     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5714     break;
5715
5716   case 105:
5717
5718 /* Line 1464 of yacc.c  */
5719 #line 566 "type.y"
5720     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5721     break;
5722
5723   case 107:
5724
5725 /* Line 1464 of yacc.c  */
5726 #line 571 "type.y"
5727     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5728     break;
5729
5730   case 109:
5731
5732 /* Line 1464 of yacc.c  */
5733 #line 576 "type.y"
5734     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5735     break;
5736
5737   case 111:
5738
5739 /* Line 1464 of yacc.c  */
5740 #line 581 "type.y"
5741     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5742     break;
5743
5744   case 112:
5745
5746 /* Line 1464 of yacc.c  */
5747 #line 582 "type.y"
5748     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5749     break;
5750
5751   case 113:
5752
5753 /* Line 1464 of yacc.c  */
5754 #line 586 "type.y"
5755     { (yyval.i) = '='; ;}
5756     break;
5757
5758   case 114:
5759
5760 /* Line 1464 of yacc.c  */
5761 #line 587 "type.y"
5762     { (yyval.i) = MUL_ASSIGN; ;}
5763     break;
5764
5765   case 115:
5766
5767 /* Line 1464 of yacc.c  */
5768 #line 588 "type.y"
5769     { (yyval.i) = DIV_ASSIGN; ;}
5770     break;
5771
5772   case 116:
5773
5774 /* Line 1464 of yacc.c  */
5775 #line 589 "type.y"
5776     { (yyval.i) = MOD_ASSIGN; ;}
5777     break;
5778
5779   case 117:
5780
5781 /* Line 1464 of yacc.c  */
5782 #line 590 "type.y"
5783     { (yyval.i) = ADD_ASSIGN; ;}
5784     break;
5785
5786   case 118:
5787
5788 /* Line 1464 of yacc.c  */
5789 #line 591 "type.y"
5790     { (yyval.i) = SUB_ASSIGN; ;}
5791     break;
5792
5793   case 119:
5794
5795 /* Line 1464 of yacc.c  */
5796 #line 592 "type.y"
5797     { (yyval.i) = LEFT_ASSIGN; ;}
5798     break;
5799
5800   case 120:
5801
5802 /* Line 1464 of yacc.c  */
5803 #line 593 "type.y"
5804     { (yyval.i) = RIGHT_ASSIGN; ;}
5805     break;
5806
5807   case 121:
5808
5809 /* Line 1464 of yacc.c  */
5810 #line 594 "type.y"
5811     { (yyval.i) = AND_ASSIGN; ;}
5812     break;
5813
5814   case 122:
5815
5816 /* Line 1464 of yacc.c  */
5817 #line 595 "type.y"
5818     { (yyval.i) = XOR_ASSIGN; ;}
5819     break;
5820
5821   case 123:
5822
5823 /* Line 1464 of yacc.c  */
5824 #line 596 "type.y"
5825     { (yyval.i) = OR_ASSIGN; ;}
5826     break;
5827
5828   case 124:
5829
5830 /* Line 1464 of yacc.c  */
5831 #line 600 "type.y"
5832     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5833     break;
5834
5835   case 125:
5836
5837 /* Line 1464 of yacc.c  */
5838 #line 601 "type.y"
5839     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5840     break;
5841
5842   case 127:
5843
5844 /* Line 1464 of yacc.c  */
5845 #line 609 "type.y"
5846     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5847     break;
5848
5849   case 128:
5850
5851 /* Line 1464 of yacc.c  */
5852 #line 610 "type.y"
5853     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5854     break;
5855
5856   case 129:
5857
5858 /* Line 1464 of yacc.c  */
5859 #line 611 "type.y"
5860     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5861     break;
5862
5863   case 130:
5864
5865 /* Line 1464 of yacc.c  */
5866 #line 612 "type.y"
5867     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5868     break;
5869
5870   case 131:
5871
5872 /* Line 1464 of yacc.c  */
5873 #line 616 "type.y"
5874     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5875     break;
5876
5877   case 132:
5878
5879 /* Line 1464 of yacc.c  */
5880 #line 617 "type.y"
5881     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5882     break;
5883
5884   case 133:
5885
5886 /* Line 1464 of yacc.c  */
5887 #line 618 "type.y"
5888     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5889     break;
5890
5891   case 134:
5892
5893 /* Line 1464 of yacc.c  */
5894 #line 619 "type.y"
5895     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5896     break;
5897
5898   case 135:
5899
5900 /* Line 1464 of yacc.c  */
5901 #line 620 "type.y"
5902     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5903     break;
5904
5905   case 136:
5906
5907 /* Line 1464 of yacc.c  */
5908 #line 621 "type.y"
5909     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5910     break;
5911
5912   case 137:
5913
5914 /* Line 1464 of yacc.c  */
5915 #line 622 "type.y"
5916     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5917     break;
5918
5919   case 138:
5920
5921 /* Line 1464 of yacc.c  */
5922 #line 623 "type.y"
5923     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5924     break;
5925
5926   case 139:
5927
5928 /* Line 1464 of yacc.c  */
5929 #line 627 "type.y"
5930     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5931     break;
5932
5933   case 140:
5934
5935 /* Line 1464 of yacc.c  */
5936 #line 628 "type.y"
5937     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5938     break;
5939
5940   case 141:
5941
5942 /* Line 1464 of yacc.c  */
5943 #line 629 "type.y"
5944     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5945     break;
5946
5947   case 142:
5948
5949 /* Line 1464 of yacc.c  */
5950 #line 630 "type.y"
5951     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5952     break;
5953
5954   case 143:
5955
5956 /* Line 1464 of yacc.c  */
5957 #line 631 "type.y"
5958     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5959     break;
5960
5961   case 144:
5962
5963 /* Line 1464 of yacc.c  */
5964 #line 632 "type.y"
5965     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5966     break;
5967
5968   case 145:
5969
5970 /* Line 1464 of yacc.c  */
5971 #line 633 "type.y"
5972     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5973     break;
5974
5975   case 146:
5976
5977 /* Line 1464 of yacc.c  */
5978 #line 634 "type.y"
5979     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5980     break;
5981
5982   case 147:
5983
5984 /* Line 1464 of yacc.c  */
5985 #line 635 "type.y"
5986     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5987     break;
5988
5989   case 148:
5990
5991 /* Line 1464 of yacc.c  */
5992 #line 636 "type.y"
5993     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5994     break;
5995
5996   case 149:
5997
5998 /* Line 1464 of yacc.c  */
5999 #line 640 "type.y"
6000     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6001     break;
6002
6003   case 150:
6004
6005 /* Line 1464 of yacc.c  */
6006 #line 641 "type.y"
6007     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6008     break;
6009
6010   case 151:
6011
6012 /* Line 1464 of yacc.c  */
6013 #line 642 "type.y"
6014     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6015     break;
6016
6017   case 152:
6018
6019 /* Line 1464 of yacc.c  */
6020 #line 643 "type.y"
6021     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6022     break;
6023
6024   case 153:
6025
6026 /* Line 1464 of yacc.c  */
6027 #line 644 "type.y"
6028     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6029     break;
6030
6031   case 154:
6032
6033 /* Line 1464 of yacc.c  */
6034 #line 645 "type.y"
6035     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6036     break;
6037
6038   case 155:
6039
6040 /* Line 1464 of yacc.c  */
6041 #line 646 "type.y"
6042     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6043     break;
6044
6045   case 156:
6046
6047 /* Line 1464 of yacc.c  */
6048 #line 647 "type.y"
6049     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6050     break;
6051
6052   case 157:
6053
6054 /* Line 1464 of yacc.c  */
6055 #line 648 "type.y"
6056     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6057     break;
6058
6059   case 158:
6060
6061 /* Line 1464 of yacc.c  */
6062 #line 649 "type.y"
6063     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6064     break;
6065
6066   case 159:
6067
6068 /* Line 1464 of yacc.c  */
6069 #line 653 "type.y"
6070     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6071     break;
6072
6073   case 160:
6074
6075 /* Line 1464 of yacc.c  */
6076 #line 654 "type.y"
6077     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6078     break;
6079
6080   case 161:
6081
6082 /* Line 1464 of yacc.c  */
6083 #line 655 "type.y"
6084     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6085     break;
6086
6087   case 162:
6088
6089 /* Line 1464 of yacc.c  */
6090 #line 656 "type.y"
6091     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6092     break;
6093
6094   case 163:
6095
6096 /* Line 1464 of yacc.c  */
6097 #line 657 "type.y"
6098     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6099     break;
6100
6101   case 164:
6102
6103 /* Line 1464 of yacc.c  */
6104 #line 658 "type.y"
6105     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6106     break;
6107
6108   case 165:
6109
6110 /* Line 1464 of yacc.c  */
6111 #line 659 "type.y"
6112     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6113     break;
6114
6115   case 166:
6116
6117 /* Line 1464 of yacc.c  */
6118 #line 660 "type.y"
6119     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6120     break;
6121
6122   case 167:
6123
6124 /* Line 1464 of yacc.c  */
6125 #line 661 "type.y"
6126     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6127     break;
6128
6129   case 168:
6130
6131 /* Line 1464 of yacc.c  */
6132 #line 662 "type.y"
6133     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6134     break;
6135
6136   case 169:
6137
6138 /* Line 1464 of yacc.c  */
6139 #line 663 "type.y"
6140     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6141     break;
6142
6143   case 170:
6144
6145 /* Line 1464 of yacc.c  */
6146 #line 664 "type.y"
6147     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6148     break;
6149
6150   case 171:
6151
6152 /* Line 1464 of yacc.c  */
6153 #line 668 "type.y"
6154     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
6155     break;
6156
6157   case 172:
6158
6159 /* Line 1464 of yacc.c  */
6160 #line 669 "type.y"
6161     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6162     break;
6163
6164   case 173:
6165
6166 /* Line 1464 of yacc.c  */
6167 #line 673 "type.y"
6168     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6169     break;
6170
6171   case 174:
6172
6173 /* Line 1464 of yacc.c  */
6174 #line 674 "type.y"
6175     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6176     break;
6177
6178   case 175:
6179
6180 /* Line 1464 of yacc.c  */
6181 #line 675 "type.y"
6182     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6183     break;
6184
6185   case 176:
6186
6187 /* Line 1464 of yacc.c  */
6188 #line 676 "type.y"
6189     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6190     break;
6191
6192   case 177:
6193
6194 /* Line 1464 of yacc.c  */
6195 #line 677 "type.y"
6196     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6197     break;
6198
6199   case 178:
6200
6201 /* Line 1464 of yacc.c  */
6202 #line 678 "type.y"
6203     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6204     break;
6205
6206   case 179:
6207
6208 /* Line 1464 of yacc.c  */
6209 #line 679 "type.y"
6210     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6211     break;
6212
6213   case 180:
6214
6215 /* Line 1464 of yacc.c  */
6216 #line 680 "type.y"
6217     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
6218     break;
6219
6220   case 181:
6221
6222 /* Line 1464 of yacc.c  */
6223 #line 682 "type.y"
6224     {
6225          // if($1._class && !$1._class.name)
6226          if((yyvsp[(1) - (4)].id)._class)
6227          {
6228             char name[1024];
6229             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6230             strcat(name, "::");
6231             strcat(name, (yyvsp[(1) - (4)].id).string);
6232             _DeclClass(0, name);
6233          }
6234          else
6235             _DeclClass(0, (yyvsp[(1) - (4)].id).string);
6236
6237          (yyval.list) = MkList();
6238          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6239          FreeIdentifier((yyvsp[(1) - (4)].id));
6240       ;}
6241     break;
6242
6243   case 182:
6244
6245 /* Line 1464 of yacc.c  */
6246 #line 700 "type.y"
6247     {
6248          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6249          {
6250             char name[1024];
6251             strcpy(name, "::");
6252             strcat(name, (yyvsp[(2) - (5)].id).string);
6253             _DeclClass(0, name);
6254          }
6255          else
6256             _DeclClass(0, (yyvsp[(2) - (5)].id).string);
6257          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6258          FreeIdentifier((yyvsp[(2) - (5)].id));
6259       ;}
6260     break;
6261
6262   case 183:
6263
6264 /* Line 1464 of yacc.c  */
6265 #line 716 "type.y"
6266     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6267     break;
6268
6269   case 184:
6270
6271 /* Line 1464 of yacc.c  */
6272 #line 717 "type.y"
6273     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6274     break;
6275
6276   case 185:
6277
6278 /* Line 1464 of yacc.c  */
6279 #line 718 "type.y"
6280     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6281     break;
6282
6283   case 186:
6284
6285 /* Line 1464 of yacc.c  */
6286 #line 719 "type.y"
6287     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6288     break;
6289
6290   case 187:
6291
6292 /* Line 1464 of yacc.c  */
6293 #line 720 "type.y"
6294     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6295     break;
6296
6297   case 188:
6298
6299 /* Line 1464 of yacc.c  */
6300 #line 721 "type.y"
6301     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6302     break;
6303
6304   case 189:
6305
6306 /* Line 1464 of yacc.c  */
6307 #line 722 "type.y"
6308     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6309     break;
6310
6311   case 190:
6312
6313 /* Line 1464 of yacc.c  */
6314 #line 723 "type.y"
6315     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6316     break;
6317
6318   case 191:
6319
6320 /* Line 1464 of yacc.c  */
6321 #line 724 "type.y"
6322     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6323     break;
6324
6325   case 192:
6326
6327 /* Line 1464 of yacc.c  */
6328 #line 725 "type.y"
6329     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6330     break;
6331
6332   case 193:
6333
6334 /* Line 1464 of yacc.c  */
6335 #line 726 "type.y"
6336     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6337     break;
6338
6339   case 194:
6340
6341 /* Line 1464 of yacc.c  */
6342 #line 727 "type.y"
6343     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
6344     break;
6345
6346   case 195:
6347
6348 /* Line 1464 of yacc.c  */
6349 #line 729 "type.y"
6350     {
6351          // if($1._class && !$1._class.name)
6352          if((yyvsp[(1) - (4)].id)._class)
6353          {
6354             char name[1024];
6355             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6356             strcat(name, "::");
6357             strcat(name, (yyvsp[(1) - (4)].id).string);
6358             _DeclClass(0, name);
6359          }
6360          else
6361             _DeclClass(0, (yyvsp[(1) - (4)].id).string);
6362
6363          (yyval.list) = MkList();
6364          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6365          FreeIdentifier((yyvsp[(1) - (4)].id));
6366       ;}
6367     break;
6368
6369   case 196:
6370
6371 /* Line 1464 of yacc.c  */
6372 #line 747 "type.y"
6373     {
6374          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6375          {
6376             char name[1024];
6377             strcpy(name, "::");
6378             strcat(name, (yyvsp[(2) - (5)].id).string);
6379             _DeclClass(0, name);
6380          }
6381          else
6382             _DeclClass(0, (yyvsp[(2) - (5)].id).string);
6383          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6384          FreeIdentifier((yyvsp[(2) - (5)].id));
6385       ;}
6386     break;
6387
6388   case 197:
6389
6390 /* Line 1464 of yacc.c  */
6391 #line 763 "type.y"
6392     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
6393     break;
6394
6395   case 198:
6396
6397 /* Line 1464 of yacc.c  */
6398 #line 764 "type.y"
6399     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
6400     break;
6401
6402   case 199:
6403
6404 /* Line 1464 of yacc.c  */
6405 #line 768 "type.y"
6406     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
6407     break;
6408
6409   case 200:
6410
6411 /* Line 1464 of yacc.c  */
6412 #line 769 "type.y"
6413     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
6414     break;
6415
6416   case 201:
6417
6418 /* Line 1464 of yacc.c  */
6419 #line 773 "type.y"
6420     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
6421     break;
6422
6423   case 202:
6424
6425 /* Line 1464 of yacc.c  */
6426 #line 774 "type.y"
6427     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
6428     break;
6429
6430   case 203:
6431
6432 /* Line 1464 of yacc.c  */
6433 #line 775 "type.y"
6434     { (yyval.specifier) = MkSpecifier(STATIC); ;}
6435     break;
6436
6437   case 204:
6438
6439 /* Line 1464 of yacc.c  */
6440 #line 776 "type.y"
6441     { (yyval.specifier) = MkSpecifier(AUTO); ;}
6442     break;
6443
6444   case 205:
6445
6446 /* Line 1464 of yacc.c  */
6447 #line 777 "type.y"
6448     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
6449     break;
6450
6451   case 206:
6452
6453 /* Line 1464 of yacc.c  */
6454 #line 781 "type.y"
6455     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6456     break;
6457
6458   case 207:
6459
6460 /* Line 1464 of yacc.c  */
6461 #line 782 "type.y"
6462     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6463     break;
6464
6465   case 208:
6466
6467 /* Line 1464 of yacc.c  */
6468 #line 783 "type.y"
6469     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
6470     break;
6471
6472   case 209:
6473
6474 /* Line 1464 of yacc.c  */
6475 #line 787 "type.y"
6476     { (yyval.i) = ATTRIB; ;}
6477     break;
6478
6479   case 210:
6480
6481 /* Line 1464 of yacc.c  */
6482 #line 788 "type.y"
6483     { (yyval.i) = ATTRIB_DEP; ;}
6484     break;
6485
6486   case 211:
6487
6488 /* Line 1464 of yacc.c  */
6489 #line 789 "type.y"
6490     { (yyval.i) = __ATTRIB; ;}
6491     break;
6492
6493   case 212:
6494
6495 /* Line 1464 of yacc.c  */
6496 #line 794 "type.y"
6497     { (yyval.string)  = CopyString(yytext); ;}
6498     break;
6499
6500   case 213:
6501
6502 /* Line 1464 of yacc.c  */
6503 #line 795 "type.y"
6504     { (yyval.string)  = CopyString(yytext); ;}
6505     break;
6506
6507   case 214:
6508
6509 /* Line 1464 of yacc.c  */
6510 #line 796 "type.y"
6511     { (yyval.string)  = CopyString(yytext); ;}
6512     break;
6513
6514   case 215:
6515
6516 /* Line 1464 of yacc.c  */
6517 #line 797 "type.y"
6518     { (yyval.string)  = CopyString(yytext); ;}
6519     break;
6520
6521   case 216:
6522
6523 /* Line 1464 of yacc.c  */
6524 #line 798 "type.y"
6525     { (yyval.string)  = CopyString(yytext); ;}
6526     break;
6527
6528   case 217:
6529
6530 /* Line 1464 of yacc.c  */
6531 #line 802 "type.y"
6532     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
6533     break;
6534
6535   case 218:
6536
6537 /* Line 1464 of yacc.c  */
6538 #line 803 "type.y"
6539     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
6540     break;
6541
6542   case 219:
6543
6544 /* Line 1464 of yacc.c  */
6545 #line 807 "type.y"
6546     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
6547     break;
6548
6549   case 220:
6550
6551 /* Line 1464 of yacc.c  */
6552 #line 808 "type.y"
6553     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
6554     break;
6555
6556   case 221:
6557
6558 /* Line 1464 of yacc.c  */
6559 #line 809 "type.y"
6560     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
6561     break;
6562
6563   case 222:
6564
6565 /* Line 1464 of yacc.c  */
6566 #line 813 "type.y"
6567     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
6568     break;
6569
6570   case 223:
6571
6572 /* Line 1464 of yacc.c  */
6573 #line 814 "type.y"
6574     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
6575     break;
6576
6577   case 224:
6578
6579 /* Line 1464 of yacc.c  */
6580 #line 818 "type.y"
6581     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
6582     break;
6583
6584   case 225:
6585
6586 /* Line 1464 of yacc.c  */
6587 #line 822 "type.y"
6588     { (yyval.specifier) = MkSpecifier(CONST); ;}
6589     break;
6590
6591   case 226:
6592
6593 /* Line 1464 of yacc.c  */
6594 #line 823 "type.y"
6595     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
6596     break;
6597
6598   case 227:
6599
6600 /* Line 1464 of yacc.c  */
6601 #line 824 "type.y"
6602     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
6603     break;
6604
6605   case 228:
6606
6607 /* Line 1464 of yacc.c  */
6608 #line 829 "type.y"
6609     { (yyval.specifier) = MkSpecifier(VOID); ;}
6610     break;
6611
6612   case 229:
6613
6614 /* Line 1464 of yacc.c  */
6615 #line 830 "type.y"
6616     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6617     break;
6618
6619   case 230:
6620
6621 /* Line 1464 of yacc.c  */
6622 #line 831 "type.y"
6623     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6624     break;
6625
6626   case 231:
6627
6628 /* Line 1464 of yacc.c  */
6629 #line 832 "type.y"
6630     { (yyval.specifier) = MkSpecifier(INT); ;}
6631     break;
6632
6633   case 232:
6634
6635 /* Line 1464 of yacc.c  */
6636 #line 833 "type.y"
6637     { (yyval.specifier) = MkSpecifier(UINT); ;}
6638     break;
6639
6640   case 233:
6641
6642 /* Line 1464 of yacc.c  */
6643 #line 834 "type.y"
6644     { (yyval.specifier) = MkSpecifier(INT64); ;}
6645     break;
6646
6647   case 234:
6648
6649 /* Line 1464 of yacc.c  */
6650 #line 835 "type.y"
6651     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6652     break;
6653
6654   case 235:
6655
6656 /* Line 1464 of yacc.c  */
6657 #line 836 "type.y"
6658     { (yyval.specifier) = MkSpecifier(LONG); ;}
6659     break;
6660
6661   case 236:
6662
6663 /* Line 1464 of yacc.c  */
6664 #line 837 "type.y"
6665     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6666     break;
6667
6668   case 237:
6669
6670 /* Line 1464 of yacc.c  */
6671 #line 838 "type.y"
6672     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6673     break;
6674
6675   case 238:
6676
6677 /* Line 1464 of yacc.c  */
6678 #line 839 "type.y"
6679     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6680     break;
6681
6682   case 239:
6683
6684 /* Line 1464 of yacc.c  */
6685 #line 840 "type.y"
6686     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6687     break;
6688
6689   case 240:
6690
6691 /* Line 1464 of yacc.c  */
6692 #line 841 "type.y"
6693     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6694     break;
6695
6696   case 244:
6697
6698 /* Line 1464 of yacc.c  */
6699 #line 845 "type.y"
6700     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6701     break;
6702
6703   case 245:
6704
6705 /* Line 1464 of yacc.c  */
6706 #line 846 "type.y"
6707     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6708     break;
6709
6710   case 246:
6711
6712 /* Line 1464 of yacc.c  */
6713 #line 847 "type.y"
6714     { _DeclClass(0, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6715     break;
6716
6717   case 247:
6718
6719 /* Line 1464 of yacc.c  */
6720 #line 848 "type.y"
6721     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6722     break;
6723
6724   case 248:
6725
6726 /* Line 1464 of yacc.c  */
6727 #line 849 "type.y"
6728     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
6729     break;
6730
6731   case 249:
6732
6733 /* Line 1464 of yacc.c  */
6734 #line 850 "type.y"
6735     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
6736     break;
6737
6738   case 250:
6739
6740 /* Line 1464 of yacc.c  */
6741 #line 854 "type.y"
6742     { (yyval.specifier) = MkSpecifier(VOID); ;}
6743     break;
6744
6745   case 251:
6746
6747 /* Line 1464 of yacc.c  */
6748 #line 855 "type.y"
6749     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6750     break;
6751
6752   case 252:
6753
6754 /* Line 1464 of yacc.c  */
6755 #line 856 "type.y"
6756     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6757     break;
6758
6759   case 253:
6760
6761 /* Line 1464 of yacc.c  */
6762 #line 857 "type.y"
6763     { (yyval.specifier) = MkSpecifier(INT); ;}
6764     break;
6765
6766   case 254:
6767
6768 /* Line 1464 of yacc.c  */
6769 #line 858 "type.y"
6770     { (yyval.specifier) = MkSpecifier(UINT); ;}
6771     break;
6772
6773   case 255:
6774
6775 /* Line 1464 of yacc.c  */
6776 #line 859 "type.y"
6777     { (yyval.specifier) = MkSpecifier(INT64); ;}
6778     break;
6779
6780   case 256:
6781
6782 /* Line 1464 of yacc.c  */
6783 #line 860 "type.y"
6784     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6785     break;
6786
6787   case 257:
6788
6789 /* Line 1464 of yacc.c  */
6790 #line 861 "type.y"
6791     { (yyval.specifier) = MkSpecifier(LONG); ;}
6792     break;
6793
6794   case 258:
6795
6796 /* Line 1464 of yacc.c  */
6797 #line 862 "type.y"
6798     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6799     break;
6800
6801   case 259:
6802
6803 /* Line 1464 of yacc.c  */
6804 #line 863 "type.y"
6805     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6806     break;
6807
6808   case 260:
6809
6810 /* Line 1464 of yacc.c  */
6811 #line 864 "type.y"
6812     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6813     break;
6814
6815   case 261:
6816
6817 /* Line 1464 of yacc.c  */
6818 #line 865 "type.y"
6819     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6820     break;
6821
6822   case 262:
6823
6824 /* Line 1464 of yacc.c  */
6825 #line 866 "type.y"
6826     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6827     break;
6828
6829   case 266:
6830
6831 /* Line 1464 of yacc.c  */
6832 #line 870 "type.y"
6833     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6834     break;
6835
6836   case 267:
6837
6838 /* Line 1464 of yacc.c  */
6839 #line 871 "type.y"
6840     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6841     break;
6842
6843   case 268:
6844
6845 /* Line 1464 of yacc.c  */
6846 #line 872 "type.y"
6847     { _DeclClass(0, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6848     break;
6849
6850   case 269:
6851
6852 /* Line 1464 of yacc.c  */
6853 #line 873 "type.y"
6854     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6855     break;
6856
6857   case 270:
6858
6859 /* Line 1464 of yacc.c  */
6860 #line 878 "type.y"
6861     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); ;}
6862     break;
6863
6864   case 271:
6865
6866 /* Line 1464 of yacc.c  */
6867 #line 879 "type.y"
6868     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
6869     break;
6870
6871   case 272:
6872
6873 /* Line 1464 of yacc.c  */
6874 #line 880 "type.y"
6875     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (4)].id).string); ;}
6876     break;
6877
6878   case 273:
6879
6880 /* Line 1464 of yacc.c  */
6881 #line 881 "type.y"
6882     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
6883     break;
6884
6885   case 274:
6886
6887 /* Line 1464 of yacc.c  */
6888 #line 883 "type.y"
6889     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
6890     break;
6891
6892   case 275:
6893
6894 /* Line 1464 of yacc.c  */
6895 #line 885 "type.y"
6896     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].id).string); ;}
6897     break;
6898
6899   case 276:
6900
6901 /* Line 1464 of yacc.c  */
6902 #line 886 "type.y"
6903     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
6904     break;
6905
6906   case 277:
6907
6908 /* Line 1464 of yacc.c  */
6909 #line 887 "type.y"
6910     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(3) - (5)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(3) - (5)].id).string); ;}
6911     break;
6912
6913   case 278:
6914
6915 /* Line 1464 of yacc.c  */
6916 #line 888 "type.y"
6917     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
6918     break;
6919
6920   case 279:
6921
6922 /* Line 1464 of yacc.c  */
6923 #line 890 "type.y"
6924     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), MkIdentifier((yyvsp[(3) - (6)].specifier).name), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); ;}
6925     break;
6926
6927   case 280:
6928
6929 /* Line 1464 of yacc.c  */
6930 #line 894 "type.y"
6931     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
6932     break;
6933
6934   case 281:
6935
6936 /* Line 1464 of yacc.c  */
6937 #line 896 "type.y"
6938     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
6939     break;
6940
6941   case 282:
6942
6943 /* Line 1464 of yacc.c  */
6944 #line 899 "type.y"
6945     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);if(declMode) DeclClass(0, (yyvsp[(3) - (3)].id).string); ;}
6946     break;
6947
6948   case 283:
6949
6950 /* Line 1464 of yacc.c  */
6951 #line 901 "type.y"
6952     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl); if(declMode) DeclClass(0, (yyvsp[(3) - (3)].specifier).name); FreeSpecifier((yyvsp[(3) - (3)].specifier)); ;}
6953     break;
6954
6955   case 284:
6956
6957 /* Line 1464 of yacc.c  */
6958 #line 905 "type.y"
6959     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
6960     break;
6961
6962   case 285:
6963
6964 /* Line 1464 of yacc.c  */
6965 #line 906 "type.y"
6966     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6967     break;
6968
6969   case 286:
6970
6971 /* Line 1464 of yacc.c  */
6972 #line 911 "type.y"
6973     { (yyval.templateArgument) = MkTemplateTypeArgument((yyvsp[(1) - (1)].templateDatatype)); ;}
6974     break;
6975
6976   case 287:
6977
6978 /* Line 1464 of yacc.c  */
6979 #line 921 "type.y"
6980     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
6981     break;
6982
6983   case 290:
6984
6985 /* Line 1464 of yacc.c  */
6986 #line 928 "type.y"
6987     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
6988     break;
6989
6990   case 291:
6991
6992 /* Line 1464 of yacc.c  */
6993 #line 930 "type.y"
6994     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
6995     break;
6996
6997   case 292:
6998
6999 /* Line 1464 of yacc.c  */
7000 #line 932 "type.y"
7001     {
7002       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); 
7003       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7004       {
7005          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7006          if(spec.type == nameSpecifier)
7007             (yyval.templateArgument).name = MkIdentifier(spec.name);
7008       }
7009       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7010       (yyval.templateArgument).loc = (yyloc);
7011    ;}
7012     break;
7013
7014   case 293:
7015
7016 /* Line 1464 of yacc.c  */
7017 #line 956 "type.y"
7018     {
7019       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); 
7020       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7021       {
7022          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7023          if(spec.type == nameSpecifier)
7024             (yyval.templateArgument).name = MkIdentifier(spec.name);
7025       }
7026       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7027       (yyval.templateArgument).loc = (yyloc);
7028    ;}
7029     break;
7030
7031   case 294:
7032
7033 /* Line 1464 of yacc.c  */
7034 #line 970 "type.y"
7035     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
7036     break;
7037
7038   case 295:
7039
7040 /* Line 1464 of yacc.c  */
7041 #line 971 "type.y"
7042     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
7043     break;
7044
7045   case 296:
7046
7047 /* Line 1464 of yacc.c  */
7048 #line 975 "type.y"
7049     { (yyval.specifierType) = structSpecifier; ;}
7050     break;
7051
7052   case 297:
7053
7054 /* Line 1464 of yacc.c  */
7055 #line 976 "type.y"
7056     { (yyval.specifierType) = unionSpecifier; ;}
7057     break;
7058
7059   case 298:
7060
7061 /* Line 1464 of yacc.c  */
7062 #line 980 "type.y"
7063     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
7064     break;
7065
7066   case 299:
7067
7068 /* Line 1464 of yacc.c  */
7069 #line 981 "type.y"
7070     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
7071     break;
7072
7073   case 300:
7074
7075 /* Line 1464 of yacc.c  */
7076 #line 985 "type.y"
7077     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
7078     break;
7079
7080   case 301:
7081
7082 /* Line 1464 of yacc.c  */
7083 #line 989 "type.y"
7084     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
7085     break;
7086
7087   case 302:
7088
7089 /* Line 1464 of yacc.c  */
7090 #line 990 "type.y"
7091     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
7092     break;
7093
7094   case 303:
7095
7096 /* Line 1464 of yacc.c  */
7097 #line 995 "type.y"
7098     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7099     break;
7100
7101   case 304:
7102
7103 /* Line 1464 of yacc.c  */
7104 #line 997 "type.y"
7105     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7106     break;
7107
7108   case 305:
7109
7110 /* Line 1464 of yacc.c  */
7111 #line 999 "type.y"
7112     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7113     break;
7114
7115   case 306:
7116
7117 /* Line 1464 of yacc.c  */
7118 #line 1001 "type.y"
7119     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7120     break;
7121
7122   case 307:
7123
7124 /* Line 1464 of yacc.c  */
7125 #line 1003 "type.y"
7126     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7127     break;
7128
7129   case 308:
7130
7131 /* Line 1464 of yacc.c  */
7132 #line 1006 "type.y"
7133     { (yyval.prop) = MkProperty((yyvsp[(2) - (10)].list), (yyvsp[(3) - (10)].declarator), (yyvsp[(4) - (10)].id), (yyvsp[(7) - (10)].stmt), (yyvsp[(9) - (10)].stmt)); (yyval.prop).loc = (yyloc); ;}
7134     break;
7135
7136   case 309:
7137
7138 /* Line 1464 of yacc.c  */
7139 #line 1008 "type.y"
7140     { (yyval.prop) = MkProperty((yyvsp[(2) - (10)].list), (yyvsp[(3) - (10)].declarator), (yyvsp[(4) - (10)].id), (yyvsp[(9) - (10)].stmt), (yyvsp[(7) - (10)].stmt)); (yyval.prop).loc = (yyloc); ;}
7141     break;
7142
7143   case 310:
7144
7145 /* Line 1464 of yacc.c  */
7146 #line 1010 "type.y"
7147     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7148     break;
7149
7150   case 311:
7151
7152 /* Line 1464 of yacc.c  */
7153 #line 1012 "type.y"
7154     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7155     break;
7156
7157   case 312:
7158
7159 /* Line 1464 of yacc.c  */
7160 #line 1014 "type.y"
7161     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7162     break;
7163
7164   case 313:
7165
7166 /* Line 1464 of yacc.c  */
7167 #line 1017 "type.y"
7168     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7169     break;
7170
7171   case 314:
7172
7173 /* Line 1464 of yacc.c  */
7174 #line 1019 "type.y"
7175     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7176     break;
7177
7178   case 315:
7179
7180 /* Line 1464 of yacc.c  */
7181 #line 1021 "type.y"
7182     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7183     break;
7184
7185   case 316:
7186
7187 /* Line 1464 of yacc.c  */
7188 #line 1023 "type.y"
7189     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
7190     break;
7191
7192   case 317:
7193
7194 /* Line 1464 of yacc.c  */
7195 #line 1025 "type.y"
7196     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
7197     break;
7198
7199   case 318:
7200
7201 /* Line 1464 of yacc.c  */
7202 #line 1028 "type.y"
7203     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7204     break;
7205
7206   case 319:
7207
7208 /* Line 1464 of yacc.c  */
7209 #line 1030 "type.y"
7210     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7211     break;
7212
7213   case 320:
7214
7215 /* Line 1464 of yacc.c  */
7216 #line 1032 "type.y"
7217     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7218     break;
7219
7220   case 321:
7221
7222 /* Line 1464 of yacc.c  */
7223 #line 1034 "type.y"
7224     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7225     break;
7226
7227   case 322:
7228
7229 /* Line 1464 of yacc.c  */
7230 #line 1036 "type.y"
7231     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
7232     break;
7233
7234   case 323:
7235
7236 /* Line 1464 of yacc.c  */
7237 #line 1040 "type.y"
7238     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7239     break;
7240
7241   case 324:
7242
7243 /* Line 1464 of yacc.c  */
7244 #line 1041 "type.y"
7245     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7246     break;
7247
7248   case 325:
7249
7250 /* Line 1464 of yacc.c  */
7251 #line 1042 "type.y"
7252     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7253     break;
7254
7255   case 326:
7256
7257 /* Line 1464 of yacc.c  */
7258 #line 1043 "type.y"
7259     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7260     break;
7261
7262   case 327:
7263
7264 /* Line 1464 of yacc.c  */
7265 #line 1044 "type.y"
7266     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
7267     break;
7268
7269   case 328:
7270
7271 /* Line 1464 of yacc.c  */
7272 #line 1045 "type.y"
7273     { (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (2)].list)); if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).start; (yyval.classDef).loc = (yyloc); ;}
7274     break;
7275
7276   case 329:
7277
7278 /* Line 1464 of yacc.c  */
7279 #line 1046 "type.y"
7280     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; ;}
7281     break;
7282
7283   case 330:
7284
7285 /* Line 1464 of yacc.c  */
7286 #line 1047 "type.y"
7287     { (yyval.classDef) = null; ;}
7288     break;
7289
7290   case 331:
7291
7292 /* Line 1464 of yacc.c  */
7293 #line 1052 "type.y"
7294     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
7295     break;
7296
7297   case 332:
7298
7299 /* Line 1464 of yacc.c  */
7300 #line 1054 "type.y"
7301     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
7302     break;
7303
7304   case 333:
7305
7306 /* Line 1464 of yacc.c  */
7307 #line 1059 "type.y"
7308     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
7309     break;
7310
7311   case 334:
7312
7313 /* Line 1464 of yacc.c  */
7314 #line 1061 "type.y"
7315     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
7316     break;
7317
7318   case 335:
7319
7320 /* Line 1464 of yacc.c  */
7321 #line 1063 "type.y"
7322     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
7323     break;
7324
7325   case 336:
7326
7327 /* Line 1464 of yacc.c  */
7328 #line 1065 "type.y"
7329     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
7330     break;
7331
7332   case 337:
7333
7334 /* Line 1464 of yacc.c  */
7335 #line 1067 "type.y"
7336     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
7337     break;
7338
7339   case 338:
7340
7341 /* Line 1464 of yacc.c  */
7342 #line 1071 "type.y"
7343     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
7344     break;
7345
7346   case 339:
7347
7348 /* Line 1464 of yacc.c  */
7349 #line 1072 "type.y"
7350     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
7351     break;
7352
7353   case 340:
7354
7355 /* Line 1464 of yacc.c  */
7356 #line 1077 "type.y"
7357     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
7358     break;
7359
7360   case 341:
7361
7362 /* Line 1464 of yacc.c  */
7363 #line 1078 "type.y"
7364     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); ;}
7365     break;
7366
7367   case 342:
7368
7369 /* Line 1464 of yacc.c  */
7370 #line 1079 "type.y"
7371     { (yyval.specifier) = MkEnum((yyvsp[(2) - (7)].id), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (7)].id).string); ;}
7372     break;
7373
7374   case 343:
7375
7376 /* Line 1464 of yacc.c  */
7377 #line 1080 "type.y"
7378     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (7)].specifier).name), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (7)].specifier).name); FreeSpecifier((yyvsp[(2) - (7)].specifier)); ;}
7379     break;
7380
7381   case 344:
7382
7383 /* Line 1464 of yacc.c  */
7384 #line 1081 "type.y"
7385     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
7386     break;
7387
7388   case 345:
7389
7390 /* Line 1464 of yacc.c  */
7391 #line 1086 "type.y"
7392     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
7393     break;
7394
7395   case 346:
7396
7397 /* Line 1464 of yacc.c  */
7398 #line 1088 "type.y"
7399     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
7400     break;
7401
7402   case 347:
7403
7404 /* Line 1464 of yacc.c  */
7405 #line 1093 "type.y"
7406     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
7407     break;
7408
7409   case 348:
7410
7411 /* Line 1464 of yacc.c  */
7412 #line 1095 "type.y"
7413     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
7414     break;
7415
7416   case 349:
7417
7418 /* Line 1464 of yacc.c  */
7419 #line 1101 "type.y"
7420     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7421     break;
7422
7423   case 350:
7424
7425 /* Line 1464 of yacc.c  */
7426 #line 1103 "type.y"
7427     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
7428     break;
7429
7430   case 351:
7431
7432 /* Line 1464 of yacc.c  */
7433 #line 1105 "type.y"
7434     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
7435     break;
7436
7437   case 352:
7438
7439 /* Line 1464 of yacc.c  */
7440 #line 1107 "type.y"
7441     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
7442     break;
7443
7444   case 353:
7445
7446 /* Line 1464 of yacc.c  */
7447 #line 1109 "type.y"
7448     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7449     break;
7450
7451   case 354:
7452
7453 /* Line 1464 of yacc.c  */
7454 #line 1111 "type.y"
7455     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7456     break;
7457
7458   case 355:
7459
7460 /* Line 1464 of yacc.c  */
7461 #line 1113 "type.y"
7462     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7463     break;
7464
7465   case 356:
7466
7467 /* Line 1464 of yacc.c  */
7468 #line 1115 "type.y"
7469     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7470     break;
7471
7472   case 357:
7473
7474 /* Line 1464 of yacc.c  */
7475 #line 1117 "type.y"
7476     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7477     break;
7478
7479   case 358:
7480
7481 /* Line 1464 of yacc.c  */
7482 #line 1119 "type.y"
7483     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7484     break;
7485
7486   case 359:
7487
7488 /* Line 1464 of yacc.c  */
7489 #line 1121 "type.y"
7490     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7491     break;
7492
7493   case 360:
7494
7495 /* Line 1464 of yacc.c  */
7496 #line 1126 "type.y"
7497     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7498     break;
7499
7500   case 361:
7501
7502 /* Line 1464 of yacc.c  */
7503 #line 1128 "type.y"
7504     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7505     break;
7506
7507   case 362:
7508
7509 /* Line 1464 of yacc.c  */
7510 #line 1130 "type.y"
7511     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7512     break;
7513
7514   case 363:
7515
7516 /* Line 1464 of yacc.c  */
7517 #line 1132 "type.y"
7518     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7519     break;
7520
7521   case 364:
7522
7523 /* Line 1464 of yacc.c  */
7524 #line 1134 "type.y"
7525     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7526     break;
7527
7528   case 365:
7529
7530 /* Line 1464 of yacc.c  */
7531 #line 1138 "type.y"
7532     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7533     break;
7534
7535   case 367:
7536
7537 /* Line 1464 of yacc.c  */
7538 #line 1140 "type.y"
7539     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7540     break;
7541
7542   case 368:
7543
7544 /* Line 1464 of yacc.c  */
7545 #line 1141 "type.y"
7546     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7547     break;
7548
7549   case 369:
7550
7551 /* Line 1464 of yacc.c  */
7552 #line 1142 "type.y"
7553     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7554     break;
7555
7556   case 370:
7557
7558 /* Line 1464 of yacc.c  */
7559 #line 1143 "type.y"
7560     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7561     break;
7562
7563   case 371:
7564
7565 /* Line 1464 of yacc.c  */
7566 #line 1147 "type.y"
7567     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7568     break;
7569
7570   case 373:
7571
7572 /* Line 1464 of yacc.c  */
7573 #line 1149 "type.y"
7574     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7575     break;
7576
7577   case 374:
7578
7579 /* Line 1464 of yacc.c  */
7580 #line 1150 "type.y"
7581     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7582     break;
7583
7584   case 375:
7585
7586 /* Line 1464 of yacc.c  */
7587 #line 1151 "type.y"
7588     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7589     break;
7590
7591   case 376:
7592
7593 /* Line 1464 of yacc.c  */
7594 #line 1152 "type.y"
7595     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7596     break;
7597
7598   case 378:
7599
7600 /* Line 1464 of yacc.c  */
7601 #line 1200 "type.y"
7602     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7603     break;
7604
7605   case 379:
7606
7607 /* Line 1464 of yacc.c  */
7608 #line 1202 "type.y"
7609     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7610     break;
7611
7612   case 380:
7613
7614 /* Line 1464 of yacc.c  */
7615 #line 1204 "type.y"
7616     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
7617     break;
7618
7619   case 381:
7620
7621 /* Line 1464 of yacc.c  */
7622 #line 1209 "type.y"
7623     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
7624     break;
7625
7626   case 382:
7627
7628 /* Line 1464 of yacc.c  */
7629 #line 1211 "type.y"
7630     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7631     break;
7632
7633   case 383:
7634
7635 /* Line 1464 of yacc.c  */
7636 #line 1213 "type.y"
7637     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7638     break;
7639
7640   case 384:
7641
7642 /* Line 1464 of yacc.c  */
7643 #line 1215 "type.y"
7644     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7645     break;
7646
7647   case 385:
7648
7649 /* Line 1464 of yacc.c  */
7650 #line 1217 "type.y"
7651     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7652     break;
7653
7654   case 387:
7655
7656 /* Line 1464 of yacc.c  */
7657 #line 1223 "type.y"
7658     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7659     break;
7660
7661   case 388:
7662
7663 /* Line 1464 of yacc.c  */
7664 #line 1226 "type.y"
7665     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7666     break;
7667
7668   case 389:
7669
7670 /* Line 1464 of yacc.c  */
7671 #line 1228 "type.y"
7672     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7673     break;
7674
7675   case 390:
7676
7677 /* Line 1464 of yacc.c  */
7678 #line 1230 "type.y"
7679     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7680     break;
7681
7682   case 392:
7683
7684 /* Line 1464 of yacc.c  */
7685 #line 1240 "type.y"
7686     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7687     break;
7688
7689   case 393:
7690
7691 /* Line 1464 of yacc.c  */
7692 #line 1242 "type.y"
7693     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7694     break;
7695
7696   case 394:
7697
7698 /* Line 1464 of yacc.c  */
7699 #line 1244 "type.y"
7700     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
7701     break;
7702
7703   case 397:
7704
7705 /* Line 1464 of yacc.c  */
7706 #line 1251 "type.y"
7707     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7708     break;
7709
7710   case 398:
7711
7712 /* Line 1464 of yacc.c  */
7713 #line 1253 "type.y"
7714     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7715     break;
7716
7717   case 400:
7718
7719 /* Line 1464 of yacc.c  */
7720 #line 1258 "type.y"
7721     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7722     break;
7723
7724   case 401:
7725
7726 /* Line 1464 of yacc.c  */
7727 #line 1259 "type.y"
7728     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7729     break;
7730
7731   case 402:
7732
7733 /* Line 1464 of yacc.c  */
7734 #line 1260 "type.y"
7735     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7736     break;
7737
7738   case 403:
7739
7740 /* Line 1464 of yacc.c  */
7741 #line 1261 "type.y"
7742     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7743     break;
7744
7745   case 404:
7746
7747 /* Line 1464 of yacc.c  */
7748 #line 1265 "type.y"
7749     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
7750     break;
7751
7752   case 405:
7753
7754 /* Line 1464 of yacc.c  */
7755 #line 1266 "type.y"
7756     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
7757     break;
7758
7759   case 406:
7760
7761 /* Line 1464 of yacc.c  */
7762 #line 1270 "type.y"
7763     { (yyval.pointer) = MkPointer(null, null); ;}
7764     break;
7765
7766   case 407:
7767
7768 /* Line 1464 of yacc.c  */
7769 #line 1271 "type.y"
7770     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
7771     break;
7772
7773   case 408:
7774
7775 /* Line 1464 of yacc.c  */
7776 #line 1272 "type.y"
7777     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
7778     break;
7779
7780   case 409:
7781
7782 /* Line 1464 of yacc.c  */
7783 #line 1273 "type.y"
7784     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
7785     break;
7786
7787   case 411:
7788
7789 /* Line 1464 of yacc.c  */
7790 #line 1278 "type.y"
7791     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
7792     break;
7793
7794   case 412:
7795
7796 /* Line 1464 of yacc.c  */
7797 #line 1282 "type.y"
7798     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
7799     break;
7800
7801   case 413:
7802
7803 /* Line 1464 of yacc.c  */
7804 #line 1283 "type.y"
7805     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
7806     break;
7807
7808   case 414:
7809
7810 /* Line 1464 of yacc.c  */
7811 #line 1287 "type.y"
7812     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7813     break;
7814
7815   case 415:
7816
7817 /* Line 1464 of yacc.c  */
7818 #line 1288 "type.y"
7819     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7820     break;
7821
7822   case 416:
7823
7824 /* Line 1464 of yacc.c  */
7825 #line 1289 "type.y"
7826     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
7827     break;
7828
7829   case 417:
7830
7831 /* Line 1464 of yacc.c  */
7832 #line 1290 "type.y"
7833     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
7834     break;
7835
7836   case 418:
7837
7838 /* Line 1464 of yacc.c  */
7839 #line 1291 "type.y"
7840     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7841     break;
7842
7843   case 419:
7844
7845 /* Line 1464 of yacc.c  */
7846 #line 1303 "type.y"
7847     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
7848     break;
7849
7850   case 420:
7851
7852 /* Line 1464 of yacc.c  */
7853 #line 1327 "type.y"
7854     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
7855     break;
7856
7857   case 421:
7858
7859 /* Line 1464 of yacc.c  */
7860 #line 1328 "type.y"
7861     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
7862     break;
7863
7864   case 422:
7865
7866 /* Line 1464 of yacc.c  */
7867 #line 1332 "type.y"
7868     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7869     break;
7870
7871   case 423:
7872
7873 /* Line 1464 of yacc.c  */
7874 #line 1333 "type.y"
7875     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7876     break;
7877
7878   case 424:
7879
7880 /* Line 1464 of yacc.c  */
7881 #line 1337 "type.y"
7882     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7883     break;
7884
7885   case 425:
7886
7887 /* Line 1464 of yacc.c  */
7888 #line 1338 "type.y"
7889     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7890     break;
7891
7892   case 426:
7893
7894 /* Line 1464 of yacc.c  */
7895 #line 1343 "type.y"
7896     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7897     break;
7898
7899   case 427:
7900
7901 /* Line 1464 of yacc.c  */
7902 #line 1345 "type.y"
7903     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
7904     break;
7905
7906   case 428:
7907
7908 /* Line 1464 of yacc.c  */
7909 #line 1347 "type.y"
7910     { 
7911          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); 
7912          (yyval.initializer).loc = (yyloc); 
7913
7914          {
7915             Expression exp = MkExpDummy();
7916             Initializer init = MkInitializerAssignment(exp);
7917             init.loc = (yylsp[(3) - (4)]);
7918             exp.loc = (yylsp[(3) - (4)]);
7919             ListAdd((yyvsp[(2) - (4)].list), init); 
7920          }
7921       ;}
7922     break;
7923
7924   case 429:
7925
7926 /* Line 1464 of yacc.c  */
7927 #line 1363 "type.y"
7928     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7929     break;
7930
7931   case 430:
7932
7933 /* Line 1464 of yacc.c  */
7934 #line 1365 "type.y"
7935     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7936     break;
7937
7938   case 431:
7939
7940 /* Line 1464 of yacc.c  */
7941 #line 1387 "type.y"
7942     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
7943     break;
7944
7945   case 432:
7946
7947 /* Line 1464 of yacc.c  */
7948 #line 1389 "type.y"
7949     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
7950     break;
7951
7952   case 439:
7953
7954 /* Line 1464 of yacc.c  */
7955 #line 1403 "type.y"
7956     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7957     break;
7958
7959   case 440:
7960
7961 /* Line 1464 of yacc.c  */
7962 #line 1405 "type.y"
7963     { (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
7964     break;
7965
7966   case 441:
7967
7968 /* Line 1464 of yacc.c  */
7969 #line 1407 "type.y"
7970     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7971     break;
7972
7973   case 442:
7974
7975 /* Line 1464 of yacc.c  */
7976 #line 1411 "type.y"
7977     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
7978     break;
7979
7980   case 443:
7981
7982 /* Line 1464 of yacc.c  */
7983 #line 1412 "type.y"
7984     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
7985     break;
7986
7987   case 444:
7988
7989 /* Line 1464 of yacc.c  */
7990 #line 1416 "type.y"
7991     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
7992     break;
7993
7994   case 445:
7995
7996 /* Line 1464 of yacc.c  */
7997 #line 1417 "type.y"
7998     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
7999     break;
8000
8001   case 446:
8002
8003 /* Line 1464 of yacc.c  */
8004 #line 1420 "type.y"
8005     { Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); /*yyerror(); */ ListAdd((yyvsp[(1) - (2)].list), stmt); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8006     break;
8007
8008   case 447:
8009
8010 /* Line 1464 of yacc.c  */
8011 #line 1424 "type.y"
8012     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
8013     break;
8014
8015   case 448:
8016
8017 /* Line 1464 of yacc.c  */
8018 #line 1425 "type.y"
8019     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
8020     break;
8021
8022   case 449:
8023
8024 /* Line 1464 of yacc.c  */
8025 #line 1426 "type.y"
8026     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
8027     break;
8028
8029   case 450:
8030
8031 /* Line 1464 of yacc.c  */
8032 #line 1430 "type.y"
8033     { (yyval.context) = PushContext(); ;}
8034     break;
8035
8036   case 451:
8037
8038 /* Line 1464 of yacc.c  */
8039 #line 1435 "type.y"
8040     { 
8041       (yyval.stmt) = MkCompoundStmt(null, null); 
8042       (yyval.stmt).compound.context = PushContext(); 
8043       PopContext((yyval.stmt).compound.context);
8044       (yyval.stmt).loc = (yyloc); 
8045    ;}
8046     break;
8047
8048   case 452:
8049
8050 /* Line 1464 of yacc.c  */
8051 #line 1443 "type.y"
8052     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
8053     break;
8054
8055   case 453:
8056
8057 /* Line 1464 of yacc.c  */
8058 #line 1447 "type.y"
8059     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
8060     break;
8061
8062   case 454:
8063
8064 /* Line 1464 of yacc.c  */
8065 #line 1448 "type.y"
8066     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
8067     break;
8068
8069   case 455:
8070
8071 /* Line 1464 of yacc.c  */
8072 #line 1452 "type.y"
8073     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
8074     break;
8075
8076   case 456:
8077
8078 /* Line 1464 of yacc.c  */
8079 #line 1453 "type.y"
8080     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8081     break;
8082
8083   case 457:
8084
8085 /* Line 1464 of yacc.c  */
8086 #line 1454 "type.y"
8087     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8088     break;
8089
8090   case 458:
8091
8092 /* Line 1464 of yacc.c  */
8093 #line 1458 "type.y"
8094     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8095     break;
8096
8097   case 459:
8098
8099 /* Line 1464 of yacc.c  */
8100 #line 1459 "type.y"
8101     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
8102     break;
8103
8104   case 460:
8105
8106 /* Line 1464 of yacc.c  */
8107 #line 1460 "type.y"
8108     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8109     break;
8110
8111   case 461:
8112
8113 /* Line 1464 of yacc.c  */
8114 #line 1461 "type.y"
8115     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8116     break;
8117
8118   case 462:
8119
8120 /* Line 1464 of yacc.c  */
8121 #line 1463 "type.y"
8122     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8123     break;
8124
8125   case 463:
8126
8127 /* Line 1464 of yacc.c  */
8128 #line 1464 "type.y"
8129     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8130     break;
8131
8132   case 464:
8133
8134 /* Line 1464 of yacc.c  */
8135 #line 1465 "type.y"
8136     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8137     break;
8138
8139   case 465:
8140
8141 /* Line 1464 of yacc.c  */
8142 #line 1469 "type.y"
8143     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
8144     break;
8145
8146   case 466:
8147
8148 /* Line 1464 of yacc.c  */
8149 #line 1470 "type.y"
8150     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
8151     break;
8152
8153   case 467:
8154
8155 /* Line 1464 of yacc.c  */
8156 #line 1471 "type.y"
8157     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
8158     break;
8159
8160   case 468:
8161
8162 /* Line 1464 of yacc.c  */
8163 #line 1472 "type.y"
8164     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
8165     break;
8166
8167   case 469:
8168
8169 /* Line 1464 of yacc.c  */
8170 #line 1473 "type.y"
8171     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
8172     break;
8173
8174   case 470:
8175
8176 /* Line 1464 of yacc.c  */
8177 #line 1477 "type.y"
8178     { (yyval.string) = CopyString(yytext); ;}
8179     break;
8180
8181   case 471:
8182
8183 /* Line 1464 of yacc.c  */
8184 #line 1482 "type.y"
8185     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
8186     break;
8187
8188   case 472:
8189
8190 /* Line 1464 of yacc.c  */
8191 #line 1484 "type.y"
8192     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
8193     break;
8194
8195   case 473:
8196
8197 /* Line 1464 of yacc.c  */
8198 #line 1489 "type.y"
8199     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
8200     break;
8201
8202   case 474:
8203
8204 /* Line 1464 of yacc.c  */
8205 #line 1491 "type.y"
8206     { (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
8207     break;
8208
8209   case 475:
8210
8211 /* Line 1464 of yacc.c  */
8212 #line 1516 "type.y"
8213     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (4)].specifier), null, (yyvsp[(3) - (4)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start; ;}
8214     break;
8215
8216   case 476:
8217
8218 /* Line 1464 of yacc.c  */
8219 #line 1518 "type.y"
8220     { (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start;;}
8221     break;
8222
8223   case 477:
8224
8225 /* Line 1464 of yacc.c  */
8226 #line 1520 "type.y"
8227     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (4)]); yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (4)].id).string), null, (yyvsp[(3) - (4)].list));(yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start; FreeIdentifier((yyvsp[(1) - (4)].id)); ;}
8228     break;
8229
8230   case 478:
8231
8232 /* Line 1464 of yacc.c  */
8233 #line 1522 "type.y"
8234     { Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]); yylloc = tmpLoc;  (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
8235     break;
8236
8237   case 479:
8238
8239 /* Line 1464 of yacc.c  */
8240 #line 1527 "type.y"
8241     { (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (3)].list));  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).start; ;}
8242     break;
8243
8244   case 480:
8245
8246 /* Line 1464 of yacc.c  */
8247 #line 1529 "type.y"
8248     { (yyval.instance) = MkInstantiation(null, null, MkList());  (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start;;}
8249     break;
8250
8251   case 481:
8252
8253 /* Line 1464 of yacc.c  */
8254 #line 1533 "type.y"
8255     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8256     break;
8257
8258   case 482:
8259
8260 /* Line 1464 of yacc.c  */
8261 #line 1535 "type.y"
8262     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8263     break;
8264
8265   case 483:
8266
8267 /* Line 1464 of yacc.c  */
8268 #line 1537 "type.y"
8269     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
8270     break;
8271
8272   case 484:
8273
8274 /* Line 1464 of yacc.c  */
8275 #line 1539 "type.y"
8276     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8277     break;
8278
8279   case 485:
8280
8281 /* Line 1464 of yacc.c  */
8282 #line 1541 "type.y"
8283     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8284     break;
8285
8286   case 486:
8287
8288 /* Line 1464 of yacc.c  */
8289 #line 1547 "type.y"
8290     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
8291     break;
8292
8293   case 487:
8294
8295 /* Line 1464 of yacc.c  */
8296 #line 1549 "type.y"
8297     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
8298     break;
8299
8300   case 488:
8301
8302 /* Line 1464 of yacc.c  */
8303 #line 1554 "type.y"
8304     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8305     break;
8306
8307   case 489:
8308
8309 /* Line 1464 of yacc.c  */
8310 #line 1558 "type.y"
8311     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
8312     break;
8313
8314   case 490:
8315
8316 /* Line 1464 of yacc.c  */
8317 #line 1559 "type.y"
8318     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
8319     break;
8320
8321   case 491:
8322
8323 /* Line 1464 of yacc.c  */
8324 #line 1564 "type.y"
8325     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
8326     break;
8327
8328   case 492:
8329
8330 /* Line 1464 of yacc.c  */
8331 #line 1566 "type.y"
8332     { ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
8333     break;
8334
8335   case 493:
8336
8337 /* Line 1464 of yacc.c  */
8338 #line 1571 "type.y"
8339     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8340     break;
8341
8342   case 494:
8343
8344 /* Line 1464 of yacc.c  */
8345 #line 1575 "type.y"
8346     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
8347     break;
8348
8349   case 495:
8350
8351 /* Line 1464 of yacc.c  */
8352 #line 1576 "type.y"
8353     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8354     break;
8355
8356   case 496:
8357
8358 /* Line 1464 of yacc.c  */
8359 #line 1577 "type.y"
8360     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8361     break;
8362
8363   case 497:
8364
8365 /* Line 1464 of yacc.c  */
8366 #line 1578 "type.y"
8367     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8368     break;
8369
8370   case 498:
8371
8372 /* Line 1464 of yacc.c  */
8373 #line 1579 "type.y"
8374     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
8375     break;
8376
8377   case 499:
8378
8379 /* Line 1464 of yacc.c  */
8380 #line 1580 "type.y"
8381     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8382     break;
8383
8384   case 501:
8385
8386 /* Line 1464 of yacc.c  */
8387 #line 1585 "type.y"
8388     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8389     break;
8390
8391   case 502:
8392
8393 /* Line 1464 of yacc.c  */
8394 #line 1586 "type.y"
8395     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
8396     break;
8397
8398   case 503:
8399
8400 /* Line 1464 of yacc.c  */
8401 #line 1590 "type.y"
8402     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
8403     break;
8404
8405   case 504:
8406
8407 /* Line 1464 of yacc.c  */
8408 #line 1591 "type.y"
8409     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
8410     break;
8411
8412
8413
8414 /* Line 1464 of yacc.c  */
8415 #line 8415 "type.ec"
8416       default: break;
8417     }
8418   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
8419
8420   YYPOPSTACK (yylen);
8421   yylen = 0;
8422   YY_STACK_PRINT (yyss, yyssp);
8423
8424   *++yyvsp = yyval;
8425   *++yylsp = yyloc;
8426
8427   /* Now `shift' the result of the reduction.  Determine what state
8428      that goes to, based on the state we popped back to and the rule
8429      number reduced by.  */
8430
8431   yyn = yyr1[yyn];
8432
8433   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
8434   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8435     yystate = yytable[yystate];
8436   else
8437     yystate = yydefgoto[yyn - YYNTOKENS];
8438
8439   goto yynewstate;
8440
8441
8442 /*------------------------------------.
8443 | yyerrlab -- here on detecting error |
8444 `------------------------------------*/
8445 yyerrlab:
8446   /* If not already recovering from an error, report this error.  */
8447   if (!yyerrstatus)
8448     {
8449       ++yynerrs;
8450 #if ! YYERROR_VERBOSE
8451       yyerror (YY_("syntax error"));
8452 #else
8453       {
8454         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
8455         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
8456           {
8457             YYSIZE_T yyalloc = 2 * yysize;
8458             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
8459               yyalloc = YYSTACK_ALLOC_MAXIMUM;
8460             if (yymsg != yymsgbuf)
8461               YYSTACK_FREE (yymsg);
8462             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
8463             if (yymsg)
8464               yymsg_alloc = yyalloc;
8465             else
8466               {
8467                 yymsg = yymsgbuf;
8468                 yymsg_alloc = sizeof yymsgbuf;
8469               }
8470           }
8471
8472         if (0 < yysize && yysize <= yymsg_alloc)
8473           {
8474             (void) yysyntax_error (yymsg, yystate, yychar);
8475             yyerror (yymsg);
8476           }
8477         else
8478           {
8479             yyerror (YY_("syntax error"));
8480             if (yysize != 0)
8481               goto yyexhaustedlab;
8482           }
8483       }
8484 #endif
8485     }
8486
8487   yyerror_range[0] = yylloc;
8488
8489   if (yyerrstatus == 3)
8490     {
8491       /* If just tried and failed to reuse lookahead token after an
8492          error, discard it.  */
8493
8494       if (yychar <= YYEOF)
8495         {
8496           /* Return failure if at end of input.  */
8497           if (yychar == YYEOF)
8498             YYABORT;
8499         }
8500       else
8501         {
8502           yydestruct ("Error: discarding",
8503                       yytoken, &yylval, &yylloc);
8504           yychar = YYEMPTY;
8505         }
8506     }
8507
8508   /* Else will try to reuse lookahead token after shifting the error
8509      token.  */
8510   goto yyerrlab1;
8511
8512
8513 /*---------------------------------------------------.
8514 | yyerrorlab -- error raised explicitly by YYERROR.  |
8515 `---------------------------------------------------*/
8516 yyerrorlab:
8517
8518   /* Pacify compilers like GCC when the user code never invokes
8519      YYERROR and the label yyerrorlab therefore never appears in user
8520      code.  */
8521   if (/*CONSTCOND*/ 0)
8522      goto yyerrorlab;
8523
8524   yyerror_range[0] = yylsp[1-yylen];
8525   /* Do not reclaim the symbols of the rule which action triggered
8526      this YYERROR.  */
8527   YYPOPSTACK (yylen);
8528   yylen = 0;
8529   YY_STACK_PRINT (yyss, yyssp);
8530   yystate = *yyssp;
8531   goto yyerrlab1;
8532
8533
8534 /*-------------------------------------------------------------.
8535 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
8536 `-------------------------------------------------------------*/
8537 yyerrlab1:
8538   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
8539
8540   for (;;)
8541     {
8542       yyn = yypact[yystate];
8543       if (yyn != YYPACT_NINF)
8544         {
8545           yyn += YYTERROR;
8546           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8547             {
8548               yyn = yytable[yyn];
8549               if (0 < yyn)
8550                 break;
8551             }
8552         }
8553
8554       /* Pop the current state because it cannot handle the error token.  */
8555       if (yyssp == yyss)
8556         YYABORT;
8557
8558       yyerror_range[0] = *yylsp;
8559       yydestruct ("Error: popping",
8560                   yystos[yystate], yyvsp, yylsp);
8561       YYPOPSTACK (1);
8562       yystate = *yyssp;
8563       YY_STACK_PRINT (yyss, yyssp);
8564     }
8565
8566   *++yyvsp = yylval;
8567
8568   yyerror_range[1] = yylloc;
8569   /* Using YYLLOC is tempting, but would change the location of
8570      the lookahead.  YYLOC is available though.  */
8571   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
8572   *++yylsp = yyloc;
8573
8574   /* Shift the error token.  */
8575   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8576
8577   yystate = yyn;
8578   goto yynewstate;
8579
8580
8581 /*-------------------------------------.
8582 | yyacceptlab -- YYACCEPT comes here.  |
8583 `-------------------------------------*/
8584 yyacceptlab:
8585   yyresult = 0;
8586   goto yyreturn;
8587
8588 /*-----------------------------------.
8589 | yyabortlab -- YYABORT comes here.  |
8590 `-----------------------------------*/
8591 yyabortlab:
8592   yyresult = 1;
8593   goto yyreturn;
8594
8595 #if !defined(yyoverflow) || YYERROR_VERBOSE
8596 /*-------------------------------------------------.
8597 | yyexhaustedlab -- memory exhaustion comes here.  |
8598 `-------------------------------------------------*/
8599 yyexhaustedlab:
8600   yyerror (YY_("memory exhausted"));
8601   yyresult = 2;
8602   /* Fall through.  */
8603 #endif
8604
8605 yyreturn:
8606   if (yychar != YYEMPTY)
8607      yydestruct ("Cleanup: discarding lookahead",
8608                  yytoken, &yylval, &yylloc);
8609   /* Do not reclaim the symbols of the rule which action triggered
8610      this YYABORT or YYACCEPT.  */
8611   YYPOPSTACK (yylen);
8612   YY_STACK_PRINT (yyss, yyssp);
8613   while (yyssp != yyss)
8614     {
8615       yydestruct ("Cleanup: popping",
8616                   yystos[*yyssp], yyvsp, yylsp);
8617       YYPOPSTACK (1);
8618     }
8619 #ifndef yyoverflow
8620   if (yyss != yyssa)
8621     YYSTACK_FREE (yyss);
8622 #endif
8623 #if YYERROR_VERBOSE
8624   if (yymsg != yymsgbuf)
8625     YYSTACK_FREE (yymsg);
8626 #endif
8627   /* Make sure YYID is used.  */
8628   return YYID (yyresult);
8629 }
8630
8631
8632
8633 /* Line 1684 of yacc.c  */
8634 #line 1594 "type.y"
8635
8636