compiler: (WIP) Fixes for MinGW/GCC 5
[sdk] / compiler / libec / src / type.ec
1 /* A Bison parser, made by GNU Bison 2.4.2.  */
2
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
4    
5       Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
6    Foundation, Inc.
7    
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12    
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17    
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30    
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
36
37 /* All symbols defined below should begin with yy or YY, to avoid
38    infringing on user name space.  This should be done even for local
39    variables, as they might otherwise be expanded by user macros.
40    There are some unavoidable exceptions within include files to
41    define necessary library symbols; they are noted "INFRINGES ON
42    USER NAME SPACE" below.  */
43
44 /* Identify Bison output.  */
45 #define YYBISON 1
46
47 /* Bison version.  */
48 #define YYBISON_VERSION "2.4.2"
49
50 /* Skeleton name.  */
51 #define YYSKELETON_NAME "yacc.c"
52
53 /* Pure parsers.  */
54 #define YYPURE 0
55
56 /* Push parsers.  */
57 #define YYPUSH 0
58
59 /* Pull parsers.  */
60 #define YYPULL 1
61
62 /* Using locations.  */
63 #define YYLSP_NEEDED 1
64
65
66
67 /* Copy the first part of user declarations.  */
68
69 /* Line 189 of yacc.c  */
70 #line 1 "type.y"
71
72
73 import "ecdefs"
74
75 #define YYSIZE_T size_t
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 110 "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      INT128 = 294,
173      LONG = 295,
174      SIGNED = 296,
175      UNSIGNED = 297,
176      FLOAT = 298,
177      DOUBLE = 299,
178      CONST = 300,
179      VOLATILE = 301,
180      VOID = 302,
181      VALIST = 303,
182      STRUCT = 304,
183      UNION = 305,
184      ENUM = 306,
185      ELLIPSIS = 307,
186      CASE = 308,
187      DEFAULT = 309,
188      IF = 310,
189      SWITCH = 311,
190      WHILE = 312,
191      DO = 313,
192      FOR = 314,
193      GOTO = 315,
194      CONTINUE = 316,
195      BREAK = 317,
196      RETURN = 318,
197      IFX = 319,
198      ELSE = 320,
199      CLASS = 321,
200      THISCLASS = 322,
201      CLASS_NAME = 323,
202      PROPERTY = 324,
203      SETPROP = 325,
204      GETPROP = 326,
205      NEWOP = 327,
206      RENEW = 328,
207      DELETE = 329,
208      EXT_DECL = 330,
209      EXT_STORAGE = 331,
210      IMPORT = 332,
211      DEFINE = 333,
212      VIRTUAL = 334,
213      ATTRIB = 335,
214      PUBLIC = 336,
215      PRIVATE = 337,
216      TYPED_OBJECT = 338,
217      ANY_OBJECT = 339,
218      _INCREF = 340,
219      EXTENSION = 341,
220      ASM = 342,
221      TYPEOF = 343,
222      WATCH = 344,
223      STOPWATCHING = 345,
224      FIREWATCHERS = 346,
225      WATCHABLE = 347,
226      CLASS_DESIGNER = 348,
227      CLASS_NO_EXPANSION = 349,
228      CLASS_FIXED = 350,
229      ISPROPSET = 351,
230      CLASS_DEFAULT_PROPERTY = 352,
231      PROPERTY_CATEGORY = 353,
232      CLASS_DATA = 354,
233      CLASS_PROPERTY = 355,
234      SUBCLASS = 356,
235      NAMESPACE = 357,
236      NEW0OP = 358,
237      RENEW0 = 359,
238      VAARG = 360,
239      DBTABLE = 361,
240      DBFIELD = 362,
241      DBINDEX = 363,
242      DATABASE_OPEN = 364,
243      ALIGNOF = 365,
244      ATTRIB_DEP = 366,
245      __ATTRIB = 367,
246      BOOL = 368,
247      _BOOL = 369,
248      _COMPLEX = 370,
249      _IMAGINARY = 371,
250      RESTRICT = 372,
251      THREAD = 373,
252      WIDE_STRING_LITERAL = 374,
253      BUILTIN_OFFSETOF = 375
254    };
255 #endif
256
257
258
259 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
260 typedef union YYSTYPE
261 {
262
263 /* Line 214 of yacc.c  */
264 #line 40 "type.y"
265
266    int i;
267    SpecifierType specifierType;
268    Identifier id;
269    Expression exp;
270    Specifier specifier;
271    OldList * list;
272    Enumerator enumerator;
273    Declarator declarator;
274    Pointer pointer;
275    Initializer initializer;
276    InitDeclarator initDeclarator;
277    TypeName typeName;
278    Declaration declaration;
279    Statement stmt;
280    FunctionDefinition function;
281    External external;
282    Context context;
283    Attrib attrib;
284    ExtDecl extDecl;
285    Attribute attribute;
286
287    Instantiation instance;
288    MembersInit membersInit;
289    MemberInit memberInit;
290    ClassFunction classFunction;
291    ClassDefinition _class;
292    ClassDef classDef;
293    PropertyDef prop;
294    char * string;
295    Symbol symbol;
296    TemplateParameter templateParameter;
297    TemplateArgument templateArgument;
298    TemplateDatatype templateDatatype;
299
300
301
302 /* Line 214 of yacc.c  */
303 #line 304 "type.ec"
304 } YYSTYPE;
305 # define YYSTYPE_IS_TRIVIAL 1
306 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
307 # define YYSTYPE_IS_DECLARED 1
308 #endif
309
310 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
311 typedef struct YYLTYPE
312 {
313   int first_line;
314   int first_column;
315   int last_line;
316   int last_column;
317 } YYLTYPE;
318 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
319 # define YYLTYPE_IS_DECLARED 1
320 # define YYLTYPE_IS_TRIVIAL 1
321 #endif
322
323
324 /* Copy the second part of user declarations.  */
325
326
327 /* Line 264 of yacc.c  */
328 #line 329 "type.ec"
329
330 #ifdef short
331 # undef short
332 #endif
333
334 #ifdef YYTYPE_UINT8
335 typedef YYTYPE_UINT8 yytype_uint8;
336 #else
337 typedef unsigned char yytype_uint8;
338 #endif
339
340 #ifdef YYTYPE_INT8
341 typedef YYTYPE_INT8 yytype_int8;
342 #elif (defined __STDC__ || defined __C99__FUNC__ \
343      || defined __cplusplus || defined _MSC_VER)
344 typedef signed char yytype_int8;
345 #else
346 typedef short int yytype_int8;
347 #endif
348
349 #ifdef YYTYPE_UINT16
350 typedef YYTYPE_UINT16 yytype_uint16;
351 #else
352 typedef unsigned short int yytype_uint16;
353 #endif
354
355 #ifdef YYTYPE_INT16
356 typedef YYTYPE_INT16 yytype_int16;
357 #else
358 typedef short int yytype_int16;
359 #endif
360
361 #ifndef YYSIZE_T
362 # ifdef __SIZE_TYPE__
363 #  define YYSIZE_T __SIZE_TYPE__
364 # elif defined size_t
365 #  define YYSIZE_T size_t
366 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
367      || defined __cplusplus || defined _MSC_VER)
368 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
369 #  define YYSIZE_T size_t
370 # else
371 #  define YYSIZE_T unsigned int
372 # endif
373 #endif
374
375 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
376
377 #ifndef YY_
378 # if defined YYENABLE_NLS && YYENABLE_NLS
379 #  if ENABLE_NLS
380 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
381 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
382 #  endif
383 # endif
384 # ifndef YY_
385 #  define YY_(msgid) msgid
386 # endif
387 #endif
388
389 /* Suppress unused-variable warnings by "using" E.  */
390 #if ! defined lint || defined __GNUC__
391 # define YYUSE(e) ((void) (e))
392 #else
393 # define YYUSE(e) /* empty */
394 #endif
395
396 /* Identity function, used to suppress warnings about constant conditions.  */
397 #ifndef lint
398 # define YYID(n) (n)
399 #else
400 #if (defined __STDC__ || defined __C99__FUNC__ \
401      || defined __cplusplus || defined _MSC_VER)
402 static int
403 YYID (int yyi)
404 #else
405 static int
406 YYID (yyi)
407     int yyi;
408 #endif
409 {
410   return yyi;
411 }
412 #endif
413
414 #if ! defined yyoverflow || YYERROR_VERBOSE
415
416 /* The parser invokes alloca or malloc; define the necessary symbols.  */
417
418 # ifdef YYSTACK_USE_ALLOCA
419 #  if YYSTACK_USE_ALLOCA
420 #   ifdef __GNUC__
421 #    define YYSTACK_ALLOC __builtin_alloca
422 #   elif defined __BUILTIN_VA_ARG_INCR
423 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
424 #   elif defined _AIX
425 #    define YYSTACK_ALLOC __alloca
426 #   elif defined _MSC_VER
427 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
428 #    define alloca _alloca
429 #   else
430 #    define YYSTACK_ALLOC alloca
431 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
432      || defined __cplusplus || defined _MSC_VER)
433 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
434 #     ifndef _STDLIB_H
435 #      define _STDLIB_H 1
436 #     endif
437 #    endif
438 #   endif
439 #  endif
440 # endif
441
442 # ifdef YYSTACK_ALLOC
443    /* Pacify GCC's `empty if-body' warning.  */
444 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
445 #  ifndef YYSTACK_ALLOC_MAXIMUM
446     /* The OS might guarantee only one guard page at the bottom of the stack,
447        and a page size can be as small as 4096 bytes.  So we cannot safely
448        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
449        to allow for a few compiler-allocated temporary stack slots.  */
450 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
451 #  endif
452 # else
453 #  define YYSTACK_ALLOC YYMALLOC
454 #  define YYSTACK_FREE YYFREE
455 #  ifndef YYSTACK_ALLOC_MAXIMUM
456 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
457 #  endif
458 #  if (defined __cplusplus && ! defined _STDLIB_H \
459        && ! ((defined YYMALLOC || defined malloc) \
460              && (defined YYFREE || defined free)))
461 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
462 #   ifndef _STDLIB_H
463 #    define _STDLIB_H 1
464 #   endif
465 #  endif
466 #  ifndef YYMALLOC
467 #   define YYMALLOC malloc
468 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
469      || defined __cplusplus || defined _MSC_VER)
470 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
471 #   endif
472 #  endif
473 #  ifndef YYFREE
474 #   define YYFREE free
475 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
476      || defined __cplusplus || defined _MSC_VER)
477 void free (void *); /* INFRINGES ON USER NAME SPACE */
478 #   endif
479 #  endif
480 # endif
481 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
482
483
484 #if (! defined yyoverflow \
485      && (! defined __cplusplus \
486          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
487              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
488
489 /* A type that is properly aligned for any stack member.  */
490 union yyalloc
491 {
492   yytype_int16 yyss_alloc;
493   YYSTYPE yyvs_alloc;
494   YYLTYPE yyls_alloc;
495 };
496
497 /* The size of the maximum gap between one aligned stack and the next.  */
498 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
499
500 /* The size of an array large to enough to hold all stacks, each with
501    N elements.  */
502 # define YYSTACK_BYTES(N) \
503      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
504       + 2 * YYSTACK_GAP_MAXIMUM)
505
506 /* Copy COUNT objects from FROM to TO.  The source and destination do
507    not overlap.  */
508 # ifndef YYCOPY
509 #  if defined __GNUC__ && 1 < __GNUC__
510 #   define YYCOPY(To, From, Count) \
511       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
512 #  else
513 #   define YYCOPY(To, From, Count)              \
514       do                                        \
515         {                                       \
516           YYSIZE_T yyi;                         \
517           for (yyi = 0; yyi < (Count); yyi++)   \
518             (To)[yyi] = (From)[yyi];            \
519         }                                       \
520       while (YYID (0))
521 #  endif
522 # endif
523
524 /* Relocate STACK from its old location to the new one.  The
525    local variables YYSIZE and YYSTACKSIZE give the old and new number of
526    elements in the stack, and YYPTR gives the new location of the
527    stack.  Advance YYPTR to a properly aligned location for the next
528    stack.  */
529 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
530     do                                                                  \
531       {                                                                 \
532         YYSIZE_T yynewbytes;                                            \
533         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
534         Stack = &yyptr->Stack_alloc;                                    \
535         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
536         yyptr += yynewbytes / sizeof (*yyptr);                          \
537       }                                                                 \
538     while (YYID (0))
539
540 #endif
541
542 /* YYFINAL -- State number of the termination state.  */
543 #define YYFINAL  100
544 /* YYLAST -- Last index in YYTABLE.  */
545 #define YYLAST   9339
546
547 /* YYNTOKENS -- Number of terminals.  */
548 #define YYNTOKENS  146
549 /* YYNNTS -- Number of nonterminals.  */
550 #define YYNNTS  123
551 /* YYNRULES -- Number of rules.  */
552 #define YYNRULES  502
553 /* YYNRULES -- Number of states.  */
554 #define YYNSTATES  861
555
556 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
557 #define YYUNDEFTOK  2
558 #define YYMAXUTOK   375
559
560 #define YYTRANSLATE(YYX)                                                \
561   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
562
563 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
564 static const yytype_uint8 yytranslate[] =
565 {
566        0,     2,     2,     2,     2,     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,     2,     2,   127,   137,   132,     2,
570      124,   125,   121,   133,   131,   134,   128,   136,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,   141,   143,
572      122,   142,   123,   140,     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,   129,     2,   130,   138,     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,   144,   139,   145,   126,     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,     2,     2,     2,     2,
583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
584        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
585        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
588        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
589        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
590        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
591        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
592        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
593       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
594       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
595       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
596       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
597       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
598       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
599       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
600       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
601       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
602      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
603      115,   116,   117,   118,   119,   120
604 };
605
606 #if YYDEBUG
607 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
608    YYRHS.  */
609 static const yytype_uint16 yyprhs[] =
610 {
611        0,     0,     3,     6,     9,    12,    14,    17,    19,    21,
612       26,    31,    34,    36,    40,    45,    49,    52,    54,    56,
613       60,    62,    64,    66,    68,    70,    73,    78,    81,    88,
614       94,   101,   107,   115,   122,   130,   137,   139,   141,   146,
615      150,   155,   159,   162,   166,   169,   172,   174,   176,   178,
616      182,   186,   189,   192,   195,   198,   203,   206,   211,   213,
617      215,   217,   219,   221,   223,   225,   227,   229,   231,   236,
618      238,   242,   246,   250,   252,   256,   260,   262,   266,   270,
619      273,   275,   278,   282,   286,   290,   292,   296,   300,   302,
620      306,   308,   312,   314,   318,   320,   324,   326,   330,   332,
621      338,   340,   344,   348,   350,   352,   354,   356,   358,   360,
622      362,   364,   366,   368,   370,   372,   376,   378,   381,   385,
623      388,   394,   396,   399,   401,   404,   406,   409,   411,   414,
624      416,   419,   421,   424,   426,   429,   431,   434,   436,   439,
625      441,   444,   446,   449,   451,   454,   456,   459,   461,   464,
626      466,   469,   471,   474,   476,   479,   481,   484,   486,   489,
627      491,   494,   496,   498,   500,   503,   505,   508,   510,   513,
628      515,   518,   523,   529,   531,   534,   536,   539,   541,   544,
629      546,   549,   551,   554,   556,   559,   564,   570,   572,   576,
630      578,   582,   584,   586,   588,   590,   592,   594,   596,   598,
631      600,   602,   604,   606,   608,   610,   612,   614,   616,   618,
632      623,   625,   628,   632,   639,   645,   647,   649,   651,   653,
633      655,   657,   659,   661,   663,   665,   667,   669,   671,   673,
634      675,   677,   679,   681,   683,   685,   687,   689,   691,   696,
635      701,   706,   708,   710,   712,   714,   716,   718,   720,   722,
636      724,   726,   728,   730,   732,   734,   736,   738,   740,   742,
637      744,   746,   748,   750,   755,   760,   765,   767,   773,   778,
638      783,   787,   793,   800,   806,   812,   817,   824,   827,   830,
639      834,   838,   840,   843,   845,   848,   850,   852,   854,   858,
640      862,   866,   870,   872,   876,   878,   880,   882,   885,   889,
641      891,   895,   905,   915,   923,   931,   937,   948,   959,   968,
642      977,   984,   993,  1002,  1009,  1016,  1021,  1031,  1041,  1049,
643     1057,  1063,  1067,  1070,  1073,  1076,  1078,  1081,  1083,  1085,
644     1087,  1091,  1093,  1096,  1099,  1103,  1109,  1112,  1115,  1120,
645     1126,  1134,  1142,  1148,  1150,  1154,  1156,  1160,  1164,  1167,
646     1171,  1175,  1179,  1184,  1189,  1192,  1196,  1200,  1205,  1209,
647     1212,  1216,  1220,  1225,  1227,  1229,  1232,  1235,  1238,  1242,
648     1244,  1246,  1249,  1252,  1255,  1259,  1261,  1264,  1268,  1271,
649     1273,  1277,  1282,  1286,  1291,  1293,  1296,  1299,  1303,  1307,
650     1310,  1314,  1318,  1321,  1323,  1325,  1328,  1331,  1333,  1336,
651     1339,  1343,  1347,  1349,  1352,  1354,  1357,  1360,  1364,  1366,
652     1370,  1372,  1376,  1379,  1382,  1385,  1389,  1391,  1393,  1395,
653     1399,  1401,  1404,  1406,  1409,  1411,  1415,  1420,  1422,  1424,
654     1426,  1430,  1432,  1434,  1436,  1438,  1440,  1442,  1446,  1451,
655     1455,  1457,  1460,  1462,  1465,  1468,  1470,  1472,  1475,  1477,
656     1480,  1484,  1486,  1489,  1495,  1503,  1509,  1515,  1523,  1530,
657     1538,  1543,  1549,  1554,  1558,  1561,  1564,  1567,  1571,  1573,
658     1579,  1584,  1590,  1595,  1600,  1604,  1609,  1613,  1617,  1620,
659     1623,  1626,  1629,  1632,  1635,  1638,  1641,  1644,  1648,  1650,
660     1652,  1656,  1659,  1661,  1663,  1666,  1669,  1671,  1674,  1676,
661     1678,  1681,  1683
662 };
663
664 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
665 static const yytype_int16 yyrhs[] =
666 {
667      268,     0,    -1,   156,   121,    -1,   156,   122,    -1,   156,
668        1,    -1,   151,    -1,   156,   156,    -1,    28,    -1,   150,
669       -1,   150,   122,   209,   123,    -1,   150,   122,   209,    11,
670       -1,   186,   228,    -1,   228,    -1,   186,   124,   125,    -1,
671      126,   186,   124,   125,    -1,    79,   186,   228,    -1,    79,
672      228,    -1,     3,    -1,   158,    -1,   124,   180,   125,    -1,
673      156,    -1,   258,    -1,     4,    -1,   119,    -1,   255,    -1,
674      127,   255,    -1,   127,   255,   128,   255,    -1,   124,   125,
675       -1,    72,   186,   225,   129,   181,   130,    -1,    72,   186,
676      129,   181,   130,    -1,   103,   186,   225,   129,   181,   130,
677       -1,   103,   186,   129,   181,   130,    -1,    73,   181,   189,
678      225,   129,   181,   130,    -1,    73,   181,   189,   129,   181,
679      130,    -1,   104,   181,   189,   225,   129,   181,   130,    -1,
680      104,   181,   189,   129,   181,   130,    -1,     1,    -1,   157,
681       -1,   159,   129,   180,   130,    -1,   159,   124,   125,    -1,
682      159,   124,   161,   125,    -1,   159,   128,   156,    -1,   159,
683      156,    -1,   159,     7,   156,    -1,   159,     8,    -1,   159,
684        9,    -1,   259,    -1,   178,    -1,   160,    -1,   161,   131,
685      178,    -1,   161,   131,   160,    -1,     8,   163,    -1,     9,
686      163,    -1,   164,   165,    -1,     6,   163,    -1,     6,   124,
687      240,   125,    -1,   110,   163,    -1,   110,   124,   240,   125,
688       -1,   162,    -1,   159,    -1,   132,    -1,   121,    -1,   133,
689       -1,   134,    -1,   126,    -1,   135,    -1,    74,    -1,   163,
690       -1,   124,   239,   125,   165,    -1,   165,    -1,   166,   121,
691      165,    -1,   166,   136,   165,    -1,   166,   137,   165,    -1,
692      166,    -1,   167,   133,   166,    -1,   167,   134,   166,    -1,
693      167,    -1,   168,    10,   167,    -1,   168,    11,   167,    -1,
694      170,   122,    -1,   168,    -1,   169,   168,    -1,   170,   123,
695      168,    -1,   170,    12,   168,    -1,   170,    13,   168,    -1,
696      170,    -1,   171,    14,   170,    -1,   171,    15,   170,    -1,
697      171,    -1,   172,   132,   171,    -1,   172,    -1,   173,   138,
698      172,    -1,   173,    -1,   174,   139,   173,    -1,   174,    -1,
699      175,    16,   174,    -1,   175,    -1,   176,    17,   175,    -1,
700      176,    -1,   176,   140,   180,   141,   177,    -1,   177,    -1,
701      163,   179,   178,    -1,   163,   179,   160,    -1,   142,    -1,
702       18,    -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,
703       23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,
704      178,    -1,   180,   131,   178,    -1,   177,    -1,   185,   143,
705       -1,   185,   190,   143,    -1,   256,   143,    -1,    78,   156,
706      142,   181,   143,    -1,   200,    -1,   183,   200,    -1,   201,
707       -1,   183,   201,    -1,   219,    -1,   183,   219,    -1,   203,
708       -1,   183,   203,    -1,   200,    -1,   184,   200,    -1,   201,
709       -1,   184,   201,    -1,   147,    -1,   184,   147,    -1,   219,
710       -1,   184,   219,    -1,   203,    -1,   184,   203,    -1,   192,
711       -1,   185,   192,    -1,   200,    -1,   185,   200,    -1,   201,
712       -1,   185,   201,    -1,   219,    -1,   185,   219,    -1,   203,
713       -1,   185,   203,    -1,   192,    -1,   186,   192,    -1,   200,
714       -1,   186,   200,    -1,   201,    -1,   186,   201,    -1,   147,
715       -1,   186,   147,    -1,   203,    -1,   186,   203,    -1,   219,
716       -1,   186,   219,    -1,   186,    -1,   148,    -1,   192,    -1,
717      188,   192,    -1,   200,    -1,   188,   200,    -1,   202,    -1,
718      188,   202,    -1,   156,    -1,   188,   156,    -1,   156,   122,
719      209,   123,    -1,   188,   156,   122,   209,   123,    -1,   192,
720       -1,   189,   192,    -1,   200,    -1,   189,   200,    -1,   202,
721       -1,   189,   202,    -1,   203,    -1,   189,   203,    -1,   219,
722       -1,   189,   219,    -1,   156,    -1,   189,   156,    -1,   156,
723      122,   209,   123,    -1,   189,   156,   122,   209,   123,    -1,
724      191,    -1,   190,   131,   191,    -1,   226,    -1,   226,   142,
725      241,    -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,
726       33,    -1,   118,    -1,    75,    -1,    76,    -1,   198,    -1,
727       80,    -1,   111,    -1,   112,    -1,     3,    -1,    28,    -1,
728       76,    -1,    75,    -1,    45,    -1,   195,    -1,   195,   124,
729      180,   125,    -1,   196,    -1,   197,   196,    -1,   197,   131,
730      196,    -1,   194,   124,   124,   197,   125,   125,    -1,   194,
731      124,   124,   125,   125,    -1,   193,    -1,    45,    -1,    46,
732       -1,   199,    -1,    47,    -1,    34,    -1,    35,    -1,    36,
733       -1,    37,    -1,    38,    -1,    39,    -1,    48,    -1,    40,
734       -1,    43,    -1,    44,    -1,    41,    -1,    42,    -1,    86,
735       -1,   114,    -1,   113,    -1,   204,    -1,   218,    -1,   149,
736       -1,    88,   124,   178,   125,    -1,   101,   124,   149,   125,
737       -1,   101,   124,   156,   125,    -1,    67,    -1,    83,    -1,
738       84,    -1,    47,    -1,    34,    -1,    35,    -1,    36,    -1,
739       37,    -1,    38,    -1,    39,    -1,    48,    -1,    40,    -1,
740       43,    -1,    44,    -1,    41,    -1,    42,    -1,    86,    -1,
741      114,    -1,   113,    -1,   204,    -1,   218,    -1,   151,    -1,
742       88,   124,   178,   125,    -1,   101,   124,   149,   125,    -1,
743      101,   124,   156,   125,    -1,    67,    -1,   210,   156,   144,
744      211,   145,    -1,   210,   144,   211,   145,    -1,   210,   156,
745      144,   145,    -1,   210,   144,   145,    -1,   210,   150,   144,
746      211,   145,    -1,   210,   193,   156,   144,   211,   145,    -1,
747      210,   193,   144,   211,   145,    -1,   210,   193,   156,   144,
748      145,    -1,   210,   193,   144,   145,    -1,   210,   193,   151,
749      144,   211,   145,    -1,   210,   156,    -1,   210,   151,    -1,
750      210,   193,   156,    -1,   210,   193,   151,    -1,   186,    -1,
751      186,   224,    -1,   186,    -1,   186,   224,    -1,   168,    -1,
752      207,    -1,   206,    -1,   156,   142,   207,    -1,   156,   142,
753      206,    -1,   205,   142,   207,    -1,   205,   142,   206,    -1,
754      208,    -1,   209,   131,   208,    -1,    49,    -1,    50,    -1,
755      215,    -1,   211,   215,    -1,   159,   142,   242,    -1,   212,
756       -1,   213,   131,   212,    -1,    69,   188,   156,   144,    70,
757      250,    71,   250,   145,    -1,    69,   188,   156,   144,    71,
758      250,    70,   250,   145,    -1,    69,   188,   156,   144,    70,
759      250,   145,    -1,    69,   188,   156,   144,    71,   250,   145,
760       -1,    69,   188,   156,   144,   145,    -1,    69,   188,   224,
761      156,   144,    70,   250,    71,   250,   145,    -1,    69,   188,
762      224,   156,   144,    71,   250,    70,   250,   145,    -1,    69,
763      188,   224,   156,   144,    70,   250,   145,    -1,    69,   188,
764      224,   156,   144,    71,   250,   145,    -1,    69,   188,   224,
765      156,   144,   145,    -1,    69,   188,   144,    70,   250,    71,
766      250,   145,    -1,    69,   188,   144,    71,   250,    70,   250,
767      145,    -1,    69,   188,   144,    70,   250,   145,    -1,    69,
768      188,   144,    71,   250,   145,    -1,    69,   188,   144,   145,
769       -1,    69,   188,   224,   144,    70,   250,    71,   250,   145,
770       -1,    69,   188,   224,   144,    71,   250,    70,   250,   145,
771       -1,    69,   188,   224,   144,    70,   250,   145,    -1,    69,
772      188,   224,   144,    71,   250,   145,    -1,    69,   188,   224,
773      144,   145,    -1,   186,   216,   143,    -1,   186,   143,    -1,
774      258,   143,    -1,   257,   143,    -1,   260,    -1,   213,   143,
775       -1,   214,    -1,   143,    -1,   217,    -1,   216,   131,   217,
776       -1,   232,    -1,   232,   198,    -1,   141,   181,    -1,   232,
777      141,   181,    -1,   232,   141,   181,   141,   181,    -1,    51,
778      156,    -1,    51,   151,    -1,    51,   144,   220,   145,    -1,
779       51,   156,   144,   220,   145,    -1,    51,   156,   144,   220,
780      143,   211,   145,    -1,    51,   151,   144,   220,   143,   211,
781      145,    -1,    51,   151,   144,   220,   145,    -1,   221,    -1,
782      220,   131,   221,    -1,   156,    -1,   156,   142,   181,    -1,
783      124,   224,   125,    -1,   129,   130,    -1,   129,   181,   130,
784       -1,   129,   149,   130,    -1,   222,   129,   130,    -1,   222,
785      129,   181,   130,    -1,   222,   129,   149,   130,    -1,   124,
786      125,    -1,   124,   235,   125,    -1,   222,   124,   125,    -1,
787      222,   124,   235,   125,    -1,   124,   225,   125,    -1,   124,
788      125,    -1,   124,   235,   125,    -1,   223,   124,   125,    -1,
789      223,   124,   235,   125,    -1,   234,    -1,   222,    -1,   234,
790      222,    -1,   193,   234,    -1,   193,   222,    -1,   193,   234,
791      222,    -1,   234,    -1,   223,    -1,   234,   223,    -1,   193,
792      234,    -1,   193,   223,    -1,   193,   234,   223,    -1,   231,
793       -1,   234,   231,    -1,   193,   234,   231,    -1,   226,   193,
794       -1,   156,    -1,   124,   226,   125,    -1,   227,   129,   181,
795      130,    -1,   227,   129,   130,    -1,   227,   129,   149,   130,
796       -1,   230,    -1,   234,   230,    -1,   193,   230,    -1,   193,
797      234,   230,    -1,   234,   193,   230,    -1,   227,   124,    -1,
798      229,   235,   125,    -1,   229,   238,   125,    -1,   229,   125,
799       -1,   230,    -1,   227,    -1,   193,   230,    -1,   193,   227,
800       -1,   227,    -1,   234,   227,    -1,   193,   227,    -1,   193,
801      234,   227,    -1,   234,   193,   227,    -1,   200,    -1,   233,
802      200,    -1,   121,    -1,   121,   233,    -1,   121,   234,    -1,
803      121,   233,   234,    -1,   236,    -1,   236,   131,    52,    -1,
804      237,    -1,   236,   131,   237,    -1,   186,   226,    -1,   186,
805      224,    -1,   186,   132,    -1,   186,   132,   226,    -1,   187,
806       -1,    66,    -1,   156,    -1,   238,   131,   156,    -1,   183,
807       -1,   183,   224,    -1,   184,    -1,   184,   224,    -1,   178,
808       -1,   144,   243,   145,    -1,   144,   243,   131,   145,    -1,
809      177,    -1,   160,    -1,   241,    -1,   243,   131,   241,    -1,
810      245,    -1,   250,    -1,   251,    -1,   252,    -1,   253,    -1,
811      254,    -1,   156,   141,   244,    -1,    53,   181,   141,   244,
812       -1,    54,   141,   244,    -1,   182,    -1,   246,   182,    -1,
813      244,    -1,   247,   244,    -1,   247,   182,    -1,   247,    -1,
814      246,    -1,   246,   247,    -1,   144,    -1,   144,   145,    -1,
815      249,   248,   145,    -1,   143,    -1,   180,   143,    -1,    55,
816      124,   180,   125,   244,    -1,    55,   124,   180,   125,   244,
817       65,   244,    -1,    56,   124,   180,   125,   244,    -1,    57,
818      124,   180,   125,   244,    -1,    58,   244,    57,   124,   180,
819      125,   143,    -1,    59,   124,   251,   251,   125,   244,    -1,
820       59,   124,   251,   251,   180,   125,   244,    -1,    57,   124,
821      125,   244,    -1,    59,   124,   251,   125,   244,    -1,    59,
822      124,   125,   244,    -1,    60,   156,   143,    -1,    61,   143,
823       -1,    62,   143,    -1,    63,   143,    -1,    63,   180,   143,
824       -1,     5,    -1,   185,   156,   144,   267,   145,    -1,   185,
825      156,   144,   145,    -1,   186,   156,   144,   267,   145,    -1,
826      186,   156,   144,   145,    -1,   149,   144,   267,   145,    -1,
827      149,   144,   145,    -1,   156,   144,   267,   145,    -1,   156,
828      144,   145,    -1,   144,   267,   145,    -1,   144,   145,    -1,
829      152,   250,    -1,   155,   250,    -1,   155,   143,    -1,   153,
830      250,    -1,   154,   250,    -1,   185,   228,    -1,   185,   232,
831       -1,   261,   250,    -1,   159,   142,   242,    -1,   242,    -1,
832      263,    -1,   264,   131,   263,    -1,   264,   143,    -1,   265,
833       -1,   262,    -1,   266,   265,    -1,   266,   262,    -1,   143,
834       -1,   266,   143,    -1,   266,    -1,   264,    -1,   266,   264,
835       -1,   237,    -1,   237,   141,   181,    -1
836 };
837
838 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
839 static const yytype_uint16 yyrline[] =
840 {
841        0,   231,   231,   249,   273,   313,   314,   341,   345,   346,
842      347,   364,   366,   371,   376,   381,   383,   388,   393,   394,
843      399,   401,   403,   405,   406,   408,   409,   410,   413,   414,
844      415,   416,   417,   418,   419,   420,   421,   425,   426,   427,
845      428,   429,   430,   443,   444,   445,   449,   478,   479,   480,
846      481,   485,   486,   487,   489,   490,   492,   493,   497,   498,
847      507,   508,   509,   510,   511,   512,   513,   517,   518,   522,
848      523,   524,   525,   529,   530,   531,   535,   536,   537,   541,
849      549,   550,   551,   552,   553,   557,   558,   559,   563,   564,
850      568,   569,   573,   574,   578,   579,   583,   584,   588,   589,
851      593,   594,   595,   599,   600,   601,   602,   603,   604,   605,
852      606,   607,   608,   609,   613,   614,   618,   622,   623,   624,
853      625,   629,   630,   631,   632,   633,   634,   635,   636,   640,
854      641,   642,   643,   644,   645,   646,   647,   648,   649,   653,
855      654,   655,   656,   657,   658,   659,   660,   661,   662,   666,
856      667,   668,   669,   670,   671,   672,   673,   674,   675,   676,
857      677,   681,   682,   686,   687,   688,   689,   690,   691,   692,
858      693,   694,   702,   711,   712,   713,   714,   715,   716,   717,
859      718,   719,   720,   721,   722,   723,   731,   740,   741,   745,
860      746,   750,   751,   752,   753,   754,   755,   759,   760,   761,
861      765,   766,   767,   772,   773,   774,   775,   776,   780,   781,
862      785,   786,   787,   791,   792,   796,   800,   801,   802,   807,
863      808,   809,   810,   811,   812,   813,   814,   815,   816,   817,
864      818,   819,   820,   821,   822,   823,   824,   825,   826,   827,
865      828,   829,   830,   831,   835,   836,   837,   838,   839,   840,
866      841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
867      851,   852,   853,   854,   855,   856,   857,   862,   863,   864,
868      865,   866,   869,   870,   871,   872,   873,   878,   879,   882,
869      884,   889,   890,   895,   896,   907,   911,   913,   914,   916,
870      917,   941,   956,   957,   961,   962,   966,   967,   971,   975,
871      976,   980,   982,   984,   986,   988,   991,   993,   995,   997,
872      999,  1002,  1004,  1006,  1008,  1010,  1013,  1015,  1017,  1019,
873     1021,  1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,  1037,
874     1039,  1044,  1046,  1048,  1050,  1052,  1057,  1058,  1062,  1064,
875     1065,  1066,  1067,  1071,  1073,  1078,  1080,  1086,  1088,  1090,
876     1092,  1094,  1096,  1098,  1100,  1102,  1104,  1106,  1111,  1113,
877     1115,  1117,  1119,  1124,  1125,  1126,  1127,  1128,  1129,  1133,
878     1134,  1135,  1136,  1137,  1138,  1184,  1185,  1187,  1189,  1194,
879     1196,  1198,  1200,  1202,  1207,  1208,  1211,  1213,  1215,  1221,
880     1225,  1227,  1229,  1234,  1235,  1236,  1238,  1243,  1244,  1245,
881     1246,  1247,  1251,  1252,  1256,  1257,  1258,  1259,  1263,  1264,
882     1268,  1269,  1273,  1274,  1275,  1276,  1277,  1288,  1313,  1314,
883     1318,  1319,  1323,  1324,  1328,  1330,  1332,  1348,  1350,  1372,
884     1374,  1379,  1380,  1381,  1382,  1383,  1384,  1388,  1390,  1392,
885     1397,  1398,  1402,  1403,  1406,  1410,  1411,  1412,  1416,  1420,
886     1428,  1433,  1434,  1438,  1439,  1440,  1444,  1445,  1446,  1447,
887     1449,  1450,  1451,  1455,  1456,  1457,  1458,  1459,  1463,  1467,
888     1469,  1474,  1476,  1501,  1503,  1505,  1507,  1512,  1514,  1518,
889     1520,  1522,  1524,  1526,  1532,  1534,  1539,  1544,  1545,  1549,
890     1551,  1556,  1561,  1562,  1563,  1564,  1565,  1566,  1570,  1571,
891     1572,  1576,  1577
892 };
893 #endif
894
895 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
896 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
897    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
898 static const char *const yytname[] =
899 {
900   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
901   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
902   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
903   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
904   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
905   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
906   "SHORT", "INT", "UINT", "INT64", "INT128", "LONG", "SIGNED", "UNSIGNED",
907   "FLOAT", "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT",
908   "UNION", "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE",
909   "DO", "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE",
910   "CLASS", "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP",
911   "NEWOP", "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT",
912   "DEFINE", "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT",
913   "ANY_OBJECT", "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH",
914   "STOPWATCHING", "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER",
915   "CLASS_NO_EXPANSION", "CLASS_FIXED", "ISPROPSET",
916   "CLASS_DEFAULT_PROPERTY", "PROPERTY_CATEGORY", "CLASS_DATA",
917   "CLASS_PROPERTY", "SUBCLASS", "NAMESPACE", "NEW0OP", "RENEW0", "VAARG",
918   "DBTABLE", "DBFIELD", "DBINDEX", "DATABASE_OPEN", "ALIGNOF",
919   "ATTRIB_DEP", "__ATTRIB", "BOOL", "_BOOL", "_COMPLEX", "_IMAGINARY",
920   "RESTRICT", "THREAD", "WIDE_STRING_LITERAL", "BUILTIN_OFFSETOF", "'*'",
921   "'<'", "'>'", "'('", "')'", "'~'", "'$'", "'.'", "'['", "']'", "','",
922   "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "':'",
923   "'='", "';'", "'{'", "'}'", "$accept", "guess_type", "real_guess_type",
924   "type", "base_strict_type", "strict_type",
925   "class_function_definition_start",
926   "constructor_function_definition_start",
927   "destructor_function_definition_start",
928   "virtual_class_function_definition_start", "identifier",
929   "primary_expression", "simple_primary_expression", "postfix_expression",
930   "anon_instantiation_expression", "argument_expression_list",
931   "common_unary_expression", "unary_expression", "unary_operator",
932   "cast_expression", "multiplicative_expression", "additive_expression",
933   "shift_expression", "relational_expression_smaller_than",
934   "relational_expression", "equality_expression", "and_expression",
935   "exclusive_or_expression", "inclusive_or_expression",
936   "logical_and_expression", "logical_or_expression",
937   "conditional_expression", "assignment_expression", "assignment_operator",
938   "expression", "constant_expression", "declaration",
939   "specifier_qualifier_list", "guess_specifier_qualifier_list",
940   "declaration_specifiers", "guess_declaration_specifiers",
941   "real_guess_declaration_specifiers", "property_specifiers",
942   "renew_specifiers", "init_declarator_list", "init_declarator",
943   "storage_class_specifier", "ext_decl", "_attrib", "attribute_word",
944   "attribute", "attribs_list", "attrib", "ext_storage", "type_qualifier",
945   "type_specifier", "strict_type_specifier",
946   "struct_or_union_specifier_compound",
947   "struct_or_union_specifier_nocompound", "template_datatype",
948   "template_type_argument", "template_expression_argument",
949   "template_argument", "template_arguments_list", "struct_or_union",
950   "struct_declaration_list", "default_property", "default_property_list",
951   "property", "struct_declaration", "struct_declarator_list",
952   "struct_declarator", "enum_specifier_nocompound",
953   "enum_specifier_compound", "enumerator_list", "enumerator",
954   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
955   "abstract_declarator", "abstract_declarator_noarray", "declarator",
956   "direct_declarator_nofunction", "declarator_function",
957   "direct_declarator_function_start", "direct_declarator_function",
958   "direct_declarator", "declarator_nofunction", "type_qualifier_list",
959   "pointer", "parameter_type_list", "parameter_list",
960   "parameter_declaration", "identifier_list", "type_name",
961   "guess_type_name", "initializer", "initializer_condition",
962   "initializer_list", "statement", "labeled_statement", "declaration_list",
963   "statement_list", "compound_inside", "compound_start",
964   "compound_statement", "expression_statement", "selection_statement",
965   "iteration_statement", "jump_statement", "string_literal",
966   "instantiation_named", "guess_instantiation_named",
967   "instantiation_unnamed", "instantiation_anon",
968   "class_function_definition", "instance_class_function_definition_start",
969   "instance_class_function_definition", "data_member_initialization",
970   "data_member_initialization_list",
971   "data_member_initialization_list_coloned",
972   "members_initialization_list_coloned", "members_initialization_list",
973   "type_unit", 0
974 };
975 #endif
976
977 # ifdef YYPRINT
978 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
979    token YYLEX-NUM.  */
980 static const yytype_uint16 yytoknum[] =
981 {
982        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
983      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
984      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
985      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
986      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
987      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
988      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
989      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
990      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
991      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
992      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
993      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
994      375,    42,    60,    62,    40,    41,   126,    36,    46,    91,
995       93,    44,    38,    43,    45,    33,    47,    37,    94,   124,
996       63,    58,    61,    59,   123,   125
997 };
998 # endif
999
1000 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1001 static const yytype_uint16 yyr1[] =
1002 {
1003        0,   146,   147,   147,   148,   149,   149,   150,   151,   151,
1004      151,   152,   152,   153,   154,   155,   155,   156,   157,   157,
1005      158,   158,   158,   158,   158,   158,   158,   158,   158,   158,
1006      158,   158,   158,   158,   158,   158,   158,   159,   159,   159,
1007      159,   159,   159,   159,   159,   159,   160,   161,   161,   161,
1008      161,   162,   162,   162,   162,   162,   162,   162,   163,   163,
1009      164,   164,   164,   164,   164,   164,   164,   165,   165,   166,
1010      166,   166,   166,   167,   167,   167,   168,   168,   168,   169,
1011      170,   170,   170,   170,   170,   171,   171,   171,   172,   172,
1012      173,   173,   174,   174,   175,   175,   176,   176,   177,   177,
1013      178,   178,   178,   179,   179,   179,   179,   179,   179,   179,
1014      179,   179,   179,   179,   180,   180,   181,   182,   182,   182,
1015      182,   183,   183,   183,   183,   183,   183,   183,   183,   184,
1016      184,   184,   184,   184,   184,   184,   184,   184,   184,   185,
1017      185,   185,   185,   185,   185,   185,   185,   185,   185,   186,
1018      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
1019      186,   187,   187,   188,   188,   188,   188,   188,   188,   188,
1020      188,   188,   188,   189,   189,   189,   189,   189,   189,   189,
1021      189,   189,   189,   189,   189,   189,   189,   190,   190,   191,
1022      191,   192,   192,   192,   192,   192,   192,   193,   193,   193,
1023      194,   194,   194,   195,   195,   195,   195,   195,   196,   196,
1024      197,   197,   197,   198,   198,   199,   200,   200,   200,   201,
1025      201,   201,   201,   201,   201,   201,   201,   201,   201,   201,
1026      201,   201,   201,   201,   201,   201,   201,   201,   201,   201,
1027      201,   201,   201,   201,   202,   202,   202,   202,   202,   202,
1028      202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
1029      202,   202,   202,   202,   202,   202,   202,   203,   203,   203,
1030      203,   203,   203,   203,   203,   203,   203,   204,   204,   204,
1031      204,   205,   205,   206,   206,   207,   208,   208,   208,   208,
1032      208,   208,   209,   209,   210,   210,   211,   211,   212,   213,
1033      213,   214,   214,   214,   214,   214,   214,   214,   214,   214,
1034      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
1035      214,   215,   215,   215,   215,   215,   215,   215,   215,   216,
1036      216,   217,   217,   217,   217,   217,   218,   218,   219,   219,
1037      219,   219,   219,   220,   220,   221,   221,   222,   222,   222,
1038      222,   222,   222,   222,   222,   222,   222,   222,   223,   223,
1039      223,   223,   223,   224,   224,   224,   224,   224,   224,   225,
1040      225,   225,   225,   225,   225,   226,   226,   226,   226,   227,
1041      227,   227,   227,   227,   228,   228,   228,   228,   228,   229,
1042      230,   230,   230,   231,   231,   231,   231,   232,   232,   232,
1043      232,   232,   233,   233,   234,   234,   234,   234,   235,   235,
1044      236,   236,   237,   237,   237,   237,   237,   237,   238,   238,
1045      239,   239,   240,   240,   241,   241,   241,   242,   242,   243,
1046      243,   244,   244,   244,   244,   244,   244,   245,   245,   245,
1047      246,   246,   247,   247,   247,   248,   248,   248,   249,   250,
1048      250,   251,   251,   252,   252,   252,   253,   253,   253,   253,
1049      253,   253,   253,   254,   254,   254,   254,   254,   255,   256,
1050      256,   257,   257,   258,   258,   258,   258,   259,   259,   260,
1051      260,   260,   260,   260,   261,   261,   262,   263,   263,   264,
1052      264,   265,   266,   266,   266,   266,   266,   266,   267,   267,
1053      267,   268,   268
1054 };
1055
1056 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1057 static const yytype_uint8 yyr2[] =
1058 {
1059        0,     2,     2,     2,     2,     1,     2,     1,     1,     4,
1060        4,     2,     1,     3,     4,     3,     2,     1,     1,     3,
1061        1,     1,     1,     1,     1,     2,     4,     2,     6,     5,
1062        6,     5,     7,     6,     7,     6,     1,     1,     4,     3,
1063        4,     3,     2,     3,     2,     2,     1,     1,     1,     3,
1064        3,     2,     2,     2,     2,     4,     2,     4,     1,     1,
1065        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1066        3,     3,     3,     1,     3,     3,     1,     3,     3,     2,
1067        1,     2,     3,     3,     3,     1,     3,     3,     1,     3,
1068        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
1069        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1070        1,     1,     1,     1,     1,     3,     1,     2,     3,     2,
1071        5,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1072        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1073        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1074        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1075        2,     1,     1,     1,     2,     1,     2,     1,     2,     1,
1076        2,     4,     5,     1,     2,     1,     2,     1,     2,     1,
1077        2,     1,     2,     1,     2,     4,     5,     1,     3,     1,
1078        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1079        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1080        1,     2,     3,     6,     5,     1,     1,     1,     1,     1,
1081        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1082        1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1083        4,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1084        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1085        1,     1,     1,     4,     4,     4,     1,     5,     4,     4,
1086        3,     5,     6,     5,     5,     4,     6,     2,     2,     3,
1087        3,     1,     2,     1,     2,     1,     1,     1,     3,     3,
1088        3,     3,     1,     3,     1,     1,     1,     2,     3,     1,
1089        3,     9,     9,     7,     7,     5,    10,    10,     8,     8,
1090        6,     8,     8,     6,     6,     4,     9,     9,     7,     7,
1091        5,     3,     2,     2,     2,     1,     2,     1,     1,     1,
1092        3,     1,     2,     2,     3,     5,     2,     2,     4,     5,
1093        7,     7,     5,     1,     3,     1,     3,     3,     2,     3,
1094        3,     3,     4,     4,     2,     3,     3,     4,     3,     2,
1095        3,     3,     4,     1,     1,     2,     2,     2,     3,     1,
1096        1,     2,     2,     2,     3,     1,     2,     3,     2,     1,
1097        3,     4,     3,     4,     1,     2,     2,     3,     3,     2,
1098        3,     3,     2,     1,     1,     2,     2,     1,     2,     2,
1099        3,     3,     1,     2,     1,     2,     2,     3,     1,     3,
1100        1,     3,     2,     2,     2,     3,     1,     1,     1,     3,
1101        1,     2,     1,     2,     1,     3,     4,     1,     1,     1,
1102        3,     1,     1,     1,     1,     1,     1,     3,     4,     3,
1103        1,     2,     1,     2,     2,     1,     1,     2,     1,     2,
1104        3,     1,     2,     5,     7,     5,     5,     7,     6,     7,
1105        4,     5,     4,     3,     2,     2,     2,     3,     1,     5,
1106        4,     5,     4,     4,     3,     4,     3,     3,     2,     2,
1107        2,     2,     2,     2,     2,     2,     2,     3,     1,     1,
1108        3,     2,     1,     1,     2,     2,     1,     2,     1,     1,
1109        2,     1,     3
1110 };
1111
1112 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1113    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1114    means the default is an error.  */
1115 static const yytype_uint16 yydefact[] =
1116 {
1117        0,    17,     7,   191,   192,   193,   194,   195,   220,   221,
1118      222,   223,   224,   225,   227,   230,   231,   228,   229,   216,
1119      217,   219,   226,   294,   295,     0,   417,   241,   197,   198,
1120      200,   242,   243,   232,     0,     0,   201,   202,   234,   233,
1121      196,   155,   162,   237,     8,     5,     0,   161,   416,   149,
1122      215,     0,   199,   218,   151,   153,   157,   235,     0,   236,
1123      159,   501,     0,     0,   337,   336,     0,     0,     0,     4,
1124        2,     3,     6,   404,     0,     0,   414,   156,   379,   150,
1125      215,   152,   154,   158,   160,   364,   413,   412,   394,     0,
1126      393,   375,   363,     0,     0,     8,   278,   277,     0,     0,
1127        1,   345,     0,   343,     0,     0,    36,    22,   468,     0,
1128        0,     0,     0,     0,    66,     0,     0,     0,    23,    61,
1129        0,    64,     0,    60,    62,    63,    65,     0,    20,    37,
1130       18,    59,    58,    67,     0,    69,    73,    76,    80,     0,
1131       85,    88,    90,    92,    94,    96,    98,   100,     0,    24,
1132       21,     0,     0,   237,    20,    67,   285,   283,     0,   287,
1133      286,   292,     0,   402,   405,   406,   354,     0,     0,     0,
1134        0,   408,   410,   348,     0,   116,     0,     0,   379,     0,
1135      415,     0,   367,   396,   395,   366,     0,     0,   378,   389,
1136        0,   392,     0,     0,     0,     0,   365,   376,     0,     0,
1137        0,     0,     0,   328,   270,     0,     0,     0,     0,    20,
1138        0,     0,   215,     0,   299,     0,   327,   296,     0,    12,
1139      384,     0,     0,    21,   325,     0,     0,     0,   280,   279,
1140      502,     0,     0,   338,     0,     0,     0,    54,     0,    51,
1141       52,     0,     0,     0,     0,     0,     0,    56,    27,   114,
1142        0,   420,   121,   123,   127,   125,     0,    25,     0,     0,
1143        0,    44,    45,     0,     0,     0,    42,   104,   105,   106,
1144      107,   108,   109,   110,   111,   112,   113,   103,     0,    53,
1145        0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
1146       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1147      238,   239,   240,     0,     0,   215,   284,   363,     0,    10,
1148        9,     0,   403,   407,   347,   380,   355,     0,   350,   349,
1149        0,   368,   377,   356,     0,   351,     0,     0,   382,     0,
1150        0,   390,   391,     0,   203,   204,   207,   206,   205,     0,
1151      208,   210,     0,   245,   246,   247,   248,   249,   250,   252,
1152      255,   256,   253,   254,   244,   251,     0,   266,   257,     0,
1153        0,   259,   258,   262,   169,     0,   163,   165,   167,   260,
1154        0,   261,     0,    16,    61,     0,    20,     0,   448,     0,
1155      479,   482,   483,   481,   480,     0,     0,     0,   322,   379,
1156      215,     0,   329,   397,    11,   331,     0,   386,     0,   268,
1157      297,     0,   326,     0,   385,   324,   323,     0,   269,     0,
1158      275,     0,     0,     0,   346,   344,     0,   342,     0,   339,
1159      133,    20,   422,   129,   131,   137,   135,     0,     0,     0,
1160      215,   370,     0,   369,   183,     0,   173,   175,   177,   179,
1161      181,     0,     0,     0,     0,    19,     0,     0,   122,   124,
1162      128,   126,   421,     0,     0,   496,     0,   474,    59,   428,
1163      427,     0,   139,   141,   143,   147,   145,   488,    46,     0,
1164      493,   489,   499,   492,     0,     0,   476,     0,    43,    39,
1165       48,     0,    47,    41,     0,   102,   101,    70,    71,    72,
1166       74,    75,    77,    78,    83,    84,    82,    86,    87,    89,
1167       91,    93,    95,    97,     0,   283,   289,   288,   366,   291,
1168      290,   293,   409,   411,   357,   353,   352,   383,   381,   419,
1169      214,     0,     0,     0,   211,   337,   336,     0,     0,     0,
1170        0,   170,   164,   166,   168,     0,   277,     0,    15,   215,
1171        0,   449,     0,     0,     0,     0,     0,     0,     0,     0,
1172        0,     0,     0,     0,   451,    20,     0,   440,     0,   442,
1173      431,     0,     0,     0,   432,   433,   434,   435,   436,     0,
1174      298,    13,   333,     0,   399,     0,     0,   321,     0,   332,
1175        0,   398,   387,   300,   388,   271,   267,   273,     0,   274,
1176        0,     0,     0,   134,   130,   132,   138,   136,   423,    55,
1177      359,     0,     0,     0,   373,   372,     0,     0,   371,     0,
1178        0,   184,   174,   176,   178,   180,   182,     0,     0,     0,
1179        0,     0,    57,   115,    68,    26,   478,     0,     0,   379,
1180      140,   142,   144,   148,   146,   484,   485,   486,     0,   491,
1181      497,   495,   500,   494,   473,   475,    40,     0,    38,     0,
1182      284,     0,   213,   212,     0,     0,     0,     0,     0,     0,
1183      315,     0,     0,     0,     0,   280,   279,    14,     0,     0,
1184        0,     0,     0,     0,     0,     0,   464,   465,   466,     0,
1185        0,     0,   452,   117,   379,     0,   187,   189,   441,     0,
1186      444,   443,   450,   119,   472,     0,   400,     0,   330,   397,
1187        0,   334,   401,   276,   272,   341,   340,   358,   360,    29,
1188      374,   361,     0,     0,     0,     0,     0,     0,    31,     0,
1189        0,     0,   477,   487,   490,    50,    49,    99,   209,   263,
1190      264,   265,   171,     0,     0,     0,     0,     0,   305,     0,
1191        0,   320,     0,     0,   439,     0,     0,     0,     0,     0,
1192        0,     0,   463,   467,     0,   437,     0,     0,   118,     0,
1193      471,   399,     0,     0,   398,     0,   362,    28,   185,    33,
1194        0,     0,    30,    35,     0,     0,   313,     0,   314,   172,
1195        0,     0,     0,     0,     0,     0,   310,   438,     0,     0,
1196      460,     0,     0,   462,     0,     0,     0,   470,     0,   188,
1197        0,   424,   190,   400,   401,   335,   186,    32,    34,     0,
1198        0,     0,   303,     0,   304,     0,   318,     0,   319,     0,
1199        0,   453,   455,   456,     0,   461,     0,     0,   120,   469,
1200      429,     0,   311,   312,     0,     0,     0,     0,     0,   308,
1201        0,   309,     0,     0,   458,     0,     0,   425,   301,   302,
1202      316,   317,     0,     0,   454,   457,   459,   426,   430,   306,
1203      307
1204 };
1205
1206 /* YYDEFGOTO[NTERM-NUM].  */
1207 static const yytype_int16 yydefgoto[] =
1208 {
1209       -1,    41,    42,   127,    44,    45,   205,   206,   207,   208,
1210      128,   129,   130,   131,   459,   481,   132,   155,   134,   135,
1211      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1212      146,   147,   249,   278,   556,   176,   690,   251,   422,   461,
1213      211,    48,   365,   435,   685,   686,    49,    50,    51,   340,
1214      341,   342,    52,    53,    54,    55,   438,    56,    57,   158,
1215      159,   160,   161,   162,    58,   213,   214,   215,   216,   217,
1216      391,   392,    59,    60,   102,   103,    85,   431,   168,   432,
1217      169,   218,   219,    89,   220,    91,   395,   164,   221,   170,
1218      171,   172,   194,   256,   427,   802,   467,   831,   559,   560,
1219      561,   562,   563,   379,   564,   565,   566,   567,   568,   149,
1220      569,   222,   150,   468,   224,   469,   470,   471,   472,   473,
1221      474,   475,    62
1222 };
1223
1224 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1225    STATE-NUM.  */
1226 #define YYPACT_NINF -765
1227 static const yytype_int16 yypact[] =
1228 {
1229     8948,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1230     -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1231     -765,  -765,  -765,  -765,  -765,    53,  -765,  -765,  -765,  -765,
1232     -765,  -765,  -765,  -765,   -84,   -17,  -765,  -765,  -765,  -765,
1233     -765,  -765,  -765,  -765,    11,  -765,    69,  7351,  -765,  -765,
1234     -765,    24,  -765,  -765,  -765,  -765,  -765,  -765,    15,  -765,
1235     -765,    -6,   141,   166,    21,    34,  7061,    81,  6291,  -765,
1236     -765,  -765,  -765,   618,  7456,  6705,   837,  -765,   259,  -765,
1237      165,  -765,  -765,  -765,  -765,   396,  -765,   399,   427,  8366,
1238     -765,  -765,   717,   173,  3521,   -69,  -765,   155,    74,  7061,
1239     -765,   177,   -62,  -765,   166,   166,  -765,  -765,  -765,  7102,
1240     7210,  7210,  9039,  7061,  -765,  9039,  7061,  7243,  -765,  -765,
1241     6426,  -765,   323,  -765,  -765,  -765,  -765,   200,    76,  -765,
1242     -765,   846,  -765,  1068,  7061,  -765,   -15,   383,   490,  7061,
1243      278,    72,   255,   268,   258,   416,     5,  -765,   309,  -765,
1244     -765,   332,    26,   200,   117,  -765,   490,  6169,   294,  -765,
1245     -765,  -765,   126,  -765,   618,  -765,  -765,   566,   341,   419,
1246      345,   366,  -765,  -765,   -14,  -765,   388,   837,  -765,    98,
1247      399,   987,   396,   427,  -765,   717,  8465,  6738,  -765,  -765,
1248     6846,  -765,   365,   425,    -7,    32,   396,  -765,   298,  9130,
1249     8663,  6649,  9039,  -765,  -765,   410,   410,   410,   443,    61,
1250      469,  5937,    98,  3648,  -765,   135,  -765,  -765,   427,  -765,
1251     -765,   987,   420,   423,  -765,  5538,  3775,  3902,   424,   426,
1252     -765,  7061,   166,  -765,   226,   403,  6426,  -765,  6879,  -765,
1253     -765,   259,  7660,  9221,  7762,  9221,  6426,  -765,  -765,  -765,
1254      151,  8165,  -765,  -765,  -765,  -765,   447,   446,  2661,  2806,
1255      166,  -765,  -765,  5231,   166,  7061,  -765,  -765,  -765,  -765,
1256     -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  5266,  -765,
1257     7061,  7061,  7061,  7061,  7061,  7061,  7061,   490,  7061,  7061,
1258     -765,  7061,  7061,  7061,  7061,  7061,  7061,  7061,  7061,  7061,
1259     -765,  -765,  -765,  6291,  7558,   225,   435,   428,  6291,  -765,
1260     -765,  6291,  -765,  -765,  -765,  -765,  -765,  8857,  -765,  -765,
1261      987,   396,  -765,  -765,   457,  -765,   154,   459,  -765,   195,
1262      466,  -765,  -765,   166,  -765,  -765,  -765,  -765,  -765,   474,
1263      484,  -765,   277,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1264     -765,  -765,  -765,  -765,  -765,  -765,    81,  -765,  -765,   486,
1265      491,  -765,  -765,  -765,   492,  5820,  -765,  -765,  -765,  -765,
1266      556,  -765,  8663,  -765,   618,  6561,    63,  8760,   473,  5045,
1267     -765,  -765,  -765,  -765,  -765,  5266,   634,  7061,  -765,   152,
1268       98,   207,  -765,   427,  -765,   303,   987,  -765,    32,  -765,
1269     -765,   819,  -765,    32,  -765,  -765,  -765,  4029,  -765,  4156,
1270     -765,  4283,  5538,  4410,  -765,  -765,  5538,  -765,  5538,  -765,
1271     -765,    61,  8165,  -765,  -765,  -765,  -765,   497,  8267,  7061,
1272      224,   499,   495,   503,   511,  7966,  -765,  -765,  -765,  -765,
1273     -765,  7061,   509,  8068,   518,  -765,  7061,   166,  -765,  -765,
1274     -765,  -765,  -765,  7061,   323,  -765,  2951,  -765,   506,  -765,
1275     -765,  8663,  -765,  -765,  -765,  -765,  -765,  -765,  -765,   410,
1276     -765,  -765,   251,  -765,  3096,   512,  -765,   513,  -765,  -765,
1277     -765,   187,  -765,  -765,   412,  -765,  -765,  -765,  -765,  -765,
1278      -15,   -15,   383,   383,   490,   490,   490,   278,   278,    72,
1279      255,   268,   258,   416,   106,  7864,  -765,  -765,   428,  -765,
1280     -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1281     -765,  7061,   526,   600,  -765,  -765,  -765,  7061,    81,  6291,
1282      -16,   -12,  -765,  -765,  -765,    85,  -765,    81,  -765,    98,
1283      535,  -765,  7061,   525,   546,   548,   549,  5189,   550,   166,
1284      536,   539,  5703,   166,  -765,    17,   286,  -765,  6053,  -765,
1285     -765,  2226,  2371,   538,  -765,  -765,  -765,  -765,  -765,   542,
1286     -765,  -765,  -765,  3241,   427,    32,   344,  -765,  7061,  -765,
1287       32,   427,  -765,  -765,  -765,  -765,  -765,  -765,  4537,  -765,
1288     4664,  4791,  4918,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1289     -765,   561,   567,   569,   499,   503,  8564,  7061,   499,  6291,
1290     7061,   579,  -765,  -765,  -765,  -765,  -765,   577,   578,  7061,
1291     7061,   584,  -765,  -765,  -765,  -765,  -765,   562,  5266,   166,
1292     -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  5266,  -765,
1293     -765,  -765,   251,  -765,  -765,  -765,  -765,  5266,  -765,  7061,
1294     -765,   253,  -765,  -765,   590,   592,    28,   146,   410,   410,
1295     -765,  6291,   -11,    -9,   580,  -765,  -765,  -765,   582,  5189,
1296     7061,  7061,  6920,   664,  5595,   583,  -765,  -765,  -765,   306,
1297      591,  5189,  -765,  -765,    90,   310,  -765,   662,  -765,  2516,
1298     -765,  -765,  -765,  -765,  -765,   587,   427,    98,  -765,   611,
1299      987,   603,   427,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1300      499,  -765,   616,   619,   307,   622,  6291,  7061,  -765,   624,
1301      630,  7061,  -765,  -765,  -765,  -765,  -765,  -765,  -765,  -765,
1302     -765,  -765,  -765,   -20,   -32,   350,   410,   410,  -765,   410,
1303      410,  -765,   222,  5189,  -765,   302,   321,  5189,   367,   637,
1304     5189,  5669,  -765,  -765,  7061,  -765,  3386,   837,  -765,  5403,
1305     -765,   611,    32,    32,   611,  7061,  -765,  -765,  -765,  -765,
1306      360,   639,  -765,  -765,   640,   410,  -765,   410,  -765,  -765,
1307      162,   -28,   185,   -26,   410,   410,  -765,  -765,  5189,  5189,
1308     -765,  5189,  7061,  -765,  5189,  7028,   605,  -765,   626,  -765,
1309     5403,  -765,  -765,   611,   611,  -765,  -765,  -765,  -765,   627,
1310      631,   410,  -765,   410,  -765,   410,  -765,   410,  -765,   197,
1311       -5,   702,  -765,  -765,   377,  -765,  5189,   402,  -765,  -765,
1312     -765,   164,  -765,  -765,   632,   633,   638,   641,   410,  -765,
1313      410,  -765,  5189,   636,  -765,  5189,  2042,  -765,  -765,  -765,
1314     -765,  -765,   642,   645,  -765,  -765,  -765,  -765,  -765,  -765,
1315     -765
1316 };
1317
1318 /* YYPGOTO[NTERM-NUM].  */
1319 static const yytype_int16 yypgoto[] =
1320 {
1321     -765,   149,  -765,   815,   726,    89,  -765,  -765,  -765,  -765,
1322        0,  -765,  -765,   555,  -255,  -765,  -765,   204,  -765,  -118,
1323      311,   316,   -36,  -765,   312,   481,   500,   489,   501,   498,
1324     -765,  1461,   -47,  -765,    64,   465,  -358,  -765,  -765,  -373,
1325      336,  -765,  -765,   557,  -765,    43,   460,  1077,  -765,  -765,
1326     -309,  -765,   413,  -765,  1310,  1539,  -185,  1351,  -195,  -765,
1327      181,   257,   505,  -512,  -171,   -54,   408,  -765,  -765,  -128,
1328     -765,   235,  -172,  1559,   508,   585,   -77,  -381,   -34,  -220,
1329      -46,   -35,  -174,  -765,  1280,   -85,   357,  -765,  1339,   -87,
1330     -765,    10,  -765,  -765,   573,  -764,  -374,  -765,   288,  -765,
1331     -765,   260,  -765,  -765,  1318,  -640,  -765,  -765,  -765,  -117,
1332     -765,  -765,   394,  -765,  -765,  -765,   353,   192,   359,   362,
1333     -765,  -250,  -765
1334 };
1335
1336 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1337    positive, shift that token.  If negative, reduce the rule which
1338    number is the opposite.  If zero, do what YYDEFACT says.
1339    If YYTABLE_NINF, syntax error.  */
1340 #define YYTABLE_NINF -499
1341 static const yytype_int16 yytable[] =
1342 {
1343       46,    87,   193,   182,   369,   257,   558,   197,   480,   477,
1344       61,   570,    88,    86,   368,   196,   279,   657,     1,   148,
1345        1,   557,   298,   485,   442,    65,   373,   371,   370,     1,
1346      180,     1,   156,   524,   751,     1,   830,   394,   777,    88,
1347       66,    88,   813,     2,   817,   183,    72,    78,   369,   604,
1348      369,   775,   608,    68,   658,   659,     1,    88,    97,   736,
1349      737,   739,   740,   101,     1,   840,     1,   152,   154,   232,
1350       69,   371,     1,   371,   167,   225,   178,     1,    72,     1,
1351      178,     2,   858,   233,     1,   400,   292,   293,     1,   192,
1352       28,    29,   178,     1,   209,    30,   197,   714,   229,   324,
1353      322,     1,     2,   287,   101,   101,   280,    67,   321,     2,
1354      661,   795,   241,   778,    64,   241,   318,   814,   332,   818,
1355        1,   281,   282,   306,   333,   776,    36,    37,    72,   660,
1356      258,   266,   662,    68,   738,    99,   741,   309,  -379,  -379,
1357      841,   100,    88,  -379,   183,   299,    88,    96,    93,   735,
1358       88,   302,    72,   731,    72,     1,   177,   241,   681,    94,
1359      183,   259,   487,   488,   489,   104,    88,    72,     1,     1,
1360      369,   407,   409,   411,  -379,  -379,   393,   178,   105,   178,
1361      534,   178,    70,    71,   250,   178,    46,   228,   558,   558,
1362       70,    71,    72,   371,   370,   178,    77,    63,   538,   364,
1363       78,   376,   241,   688,   770,   259,   627,   259,   601,    72,
1364      266,   389,   178,   209,   653,   617,   482,   452,   227,    73,
1365      259,   178,   177,   621,   710,   209,   209,   209,   182,   663,
1366      196,   486,   101,   811,   756,   322,   421,   446,    70,    71,
1367      369,    72,   241,   434,   241,   434,   421,   649,   369,   310,
1368      614,   447,   494,   495,   723,   496,   815,   311,   614,   303,
1369      478,   259,     1,   371,   483,   250,   401,   156,   838,   732,
1370      133,   371,   156,    70,    71,   156,   445,   311,   402,   400,
1371      334,   400,   446,   400,   515,    88,    73,   635,   363,    74,
1372      288,   289,   784,   785,    75,   846,   573,   198,   258,   226,
1373      250,   334,   250,   421,    46,   335,    77,   812,   421,   847,
1374      250,   154,   646,   237,   239,   240,   558,    46,   647,   231,
1375      178,   247,   336,   695,   133,   517,   335,   513,   108,   484,
1376      816,   535,   363,   519,   363,   624,    47,   625,   576,   258,
1377       88,   602,   839,   336,   258,    73,    73,     1,   428,   304,
1378      577,    88,   337,   338,    75,   574,   526,   232,   588,   590,
1379       77,   581,   591,   504,   592,   531,    69,   786,     1,   416,
1380      536,   417,    78,   337,   338,   376,    72,   241,   728,   555,
1381       70,    71,   638,    30,   446,   420,   178,   294,   598,    72,
1382      178,    77,   725,    77,   639,   420,   178,   296,   178,   623,
1383      290,   291,   522,   178,   157,   133,   295,   209,   523,   209,
1384       47,   209,   209,   209,    36,    37,   209,   446,   209,    28,
1385       29,    72,   241,   339,    30,    47,   393,   788,    46,   682,
1386      768,   321,   297,   446,   300,   611,   308,   446,   311,   250,
1387      133,   757,   133,   611,   578,   525,   789,    72,   242,   753,
1388      133,   244,   446,   758,   363,    36,    37,   301,   266,    96,
1389      400,   629,   400,   400,   400,    73,   314,   133,   177,   133,
1390      316,   650,     1,   779,    28,    29,   260,   261,   262,    30,
1391      654,   311,   133,   806,   506,   387,    70,    71,   223,   509,
1392     -418,   311,   791,   156,    28,    29,  -418,   317,   446,    30,
1393      285,   286,   843,   133,   183,   241,   798,    79,   446,     1,
1394       36,    37,   687,   260,   261,   262,   283,   284,   319,   712,
1395      186,    77,    47,    88,   363,   187,    77,   845,   656,   154,
1396       36,    37,   363,   446,   232,   664,   372,   666,   377,   178,
1397      696,   699,   648,   446,   315,   702,   418,   555,   419,   675,
1398      331,   189,   304,   680,   378,    72,   190,    75,   684,     1,
1399      507,   555,   555,   405,   230,   510,   406,    69,   412,     1,
1400      413,   593,   453,   156,   454,   178,   178,  -282,   243,   133,
1401      178,   245,   514,   133,     2,   651,   383,   378,   209,   516,
1402      209,   209,   209,   263,   490,   491,   518,   264,   265,   520,
1403      726,   492,   493,   334,   497,   498,    46,   223,   521,   154,
1404      527,   385,   234,   235,   529,   528,   679,    79,   541,   223,
1405      223,   223,   599,   606,   607,   156,   665,   428,   335,    72,
1406      263,    28,    29,   609,   264,   265,    30,     1,   619,   505,
1407       47,  -379,  -379,   622,   505,   336,  -379,   157,   628,   210,
1408      133,   652,   327,    47,    77,   330,    72,   644,   645,   366,
1409      667,   154,   761,    19,    20,   764,   669,    36,    37,   555,
1410      670,    79,   671,   672,   674,   337,   338,  -379,  -379,   676,
1411      156,   555,   677,   692,    72,   693,   707,    70,    71,   555,
1412     -379,  -379,   708,    28,    29,  -379,   414,   178,    30,   709,
1413      178,   716,    79,   436,    79,   436,   717,   722,   718,    28,
1414       29,   687,   801,   721,    30,   729,   154,   730,   462,   462,
1415        1,   749,    88,   743,   742,   133,   752,   803,   804,    36,
1416       37,   133,   760,   754,   745,   746,   748,    28,    29,    73,
1417      190,   766,    30,   555,   765,    36,    37,   555,   828,   767,
1418      555,   133,   769,   801,   772,    73,   133,   178,   177,   571,
1419      773,   792,   178,   178,    47,   133,   133,   842,   210,   807,
1420      808,   829,   832,    36,    37,   499,   833,   848,   849,   855,
1421      210,   210,   210,   850,    95,   501,   851,   859,   555,   555,
1422      860,   555,    28,    29,   555,   500,   503,    30,   502,   801,
1423      799,   223,   443,   223,   759,   223,   223,   223,   579,   583,
1424      223,   698,   223,   458,   458,    43,   511,   415,   636,   444,
1425      106,   689,     1,   107,   108,   532,   555,   641,    36,    37,
1426      724,     0,    79,   642,     0,   673,   643,    79,     0,   462,
1427        1,    74,   555,     0,     0,   555,    75,     2,     0,     1,
1428      691,   133,   572,   260,   261,   262,   824,     0,     0,   827,
1429        0,     0,    43,     0,     0,   157,     0,     0,     0,     0,
1430        0,     0,     0,   133,   133,   133,   133,     0,   133,     0,
1431        0,     0,   151,   153,     0,   133,     0,     0,     0,    43,
1432      174,   112,   113,   133,   603,   612,     0,     0,     0,     0,
1433        0,     0,     0,   612,    43,     0,   618,     0,     0,   153,
1434        0,     0,    28,    29,     0,     0,   462,    30,     0,     0,
1435        0,   630,   115,   116,     0,     0,     0,    43,     0,     0,
1436       43,     0,     0,     0,   462,   153,     0,     0,   118,     0,
1437        0,     0,    47,   238,     0,   157,   122,   133,    36,    37,
1438        0,   133,     0,     0,   133,   133,   210,   744,    73,     0,
1439        0,   177,   210,   133,   210,    79,   210,   210,   210,   755,
1440      263,   210,    43,   210,   264,   265,     0,   691,     0,     0,
1441        0,     0,   223,     0,   223,   223,   223,     0,     0,     0,
1442        1,     0,   133,   133,     0,   133,   133,   157,   133,   133,
1443        0,    43,   326,     0,   133,   329,     0,   668,     0,     0,
1444        0,   458,     0,     0,     0,    43,     0,    43,   630,     0,
1445        0,   462,   462,     0,     0,     0,    43,     0,   153,   458,
1446      133,   787,     0,   462,     0,   790,     0,     0,   793,     0,
1447      153,   153,   153,   701,     0,     0,   133,     0,     0,   133,
1448      133,   153,   157,     0,     0,     0,     0,    43,     0,    43,
1449        0,   153,    28,    29,     0,     0,    43,    30,     0,     0,
1450        0,     0,   713,   153,   153,   715,   821,   822,     0,   823,
1451        0,     0,   825,     0,   719,   720,   267,   268,   269,   270,
1452      271,   272,   273,   274,   275,   276,     0,     0,    36,    37,
1453        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1454        0,   177,     0,     0,   844,     0,     0,     0,   153,    43,
1455        0,     0,     0,   153,    80,     0,   153,     0,   458,     0,
1456      854,     0,    43,   856,     0,    98,     0,     0,     0,     0,
1457        0,     0,     0,   210,     0,   210,   210,   210,     0,   462,
1458        0,    80,     0,   179,     0,     0,     0,     0,     0,     0,
1459        0,     0,     0,     0,   188,     0,     0,     0,     0,   195,
1460        0,   212,     0,     0,     0,     0,     0,     0,     0,     0,
1461        0,     0,   771,     0,     0,     0,   774,    43,     0,     0,
1462      153,     0,    43,   458,   153,     0,     0,     0,     0,     0,
1463        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464      277,     0,     0,     0,     0,     0,   462,     0,     0,   796,
1465        0,     0,   153,     0,   153,     0,   153,   153,   153,     0,
1466      805,   153,     0,   153,   305,     0,     0,    43,     0,     0,
1467        0,     0,     0,    43,     0,     0,   188,     0,     0,     0,
1468        0,     0,     0,     0,   179,     0,     0,   188,   195,     0,
1469        0,     0,   195,     0,     0,     0,     0,     0,     0,     0,
1470        0,   153,     0,     0,     0,     0,    43,   212,   179,     0,
1471        0,     0,     0,     0,     0,     0,     0,     0,   390,   153,
1472      212,     0,     0,     0,     0,     0,     0,     0,   403,     0,
1473        0,     0,   212,   212,   212,     0,     0,     0,     0,     0,
1474        0,   458,     0,     0,     0,     0,     0,     0,     0,   430,
1475       43,   430,     0,     0,     0,     0,     0,    90,   305,     0,
1476        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477        0,     0,     0,   655,   153,     0,     0,     0,     0,     0,
1478        0,     0,     0,     0,    90,     0,    90,    81,     0,     0,
1479      184,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480        0,     0,    90,    43,     0,     0,   153,   153,     0,     0,
1481        0,   305,     0,   163,     0,     0,    92,     0,   153,     0,
1482        0,     0,     0,     0,     0,     0,     0,   195,    83,     0,
1483        0,     0,     0,   153,     0,   153,   153,   153,     0,     0,
1484        0,     0,   165,    92,     0,   181,     0,     0,     0,   185,
1485        0,    43,     0,     0,   153,     0,     0,     0,     0,     0,
1486      252,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487        0,     0,   305,     0,     0,     0,     0,   537,     0,   212,
1488        0,     0,   539,     0,     0,     0,     0,    90,     0,   184,
1489        0,    90,     0,   179,     0,    90,     0,    81,     0,     0,
1490        0,   254,     0,   580,   312,   184,   153,     0,     0,     0,
1491        0,    90,     0,     0,   212,     0,   212,     0,   212,   212,
1492      212,     0,   397,   212,     0,   212,   307,     0,     0,   305,
1493        0,   404,     0,   313,   153,   430,     0,     0,    83,   367,
1494        0,     0,   430,     0,     0,     0,   181,     0,   320,     0,
1495      430,    81,     0,   380,   381,   382,   384,     0,     0,     0,
1496        0,   153,     0,     0,     0,     0,   175,     0,   390,     0,
1497      181,     0,     0,     0,     0,     0,   423,     0,     0,     0,
1498      396,   398,    81,   437,    81,   437,   423,     0,     0,     0,
1499      175,   448,    83,     0,     0,     0,     0,     0,   463,   463,
1500        0,   153,     0,     0,   175,     0,     0,   175,     0,     0,
1501        0,   433,   305,   433,     0,     0,    82,   425,     0,     0,
1502      307,     0,     0,    83,   439,    83,   439,   425,     0,     0,
1503       90,     0,   450,     0,     0,     0,    84,     0,     0,   465,
1504      465,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506        0,     0,     0,     0,     0,   539,     0,     0,     0,     0,
1507        0,     0,     0,   307,   508,     0,     0,     0,   175,     0,
1508        0,   175,     0,   697,     0,    90,     0,     0,     0,   253,
1509        0,     0,     0,     0,     0,   212,    90,   212,   212,   212,
1510      397,     0,     0,     0,     0,   533,   404,     0,   582,   255,
1511        0,     0,    81,   584,   163,   252,     0,    81,     0,   463,
1512        0,     0,   175,     0,     0,     0,    82,     0,     0,     0,
1513        0,     0,     0,     0,   307,     0,     0,     0,     0,     0,
1514        0,     0,     0,   165,   181,     0,    84,     0,     0,   460,
1515      460,     0,     0,    83,     0,   181,   254,     0,    83,   575,
1516      465,     0,   594,     0,     0,     0,     0,     0,     0,     0,
1517        0,     0,     0,     0,     0,   613,     0,     0,     0,     0,
1518       82,     0,     0,   613,     0,     0,     0,     0,     0,     0,
1519        0,   307,     0,     0,   188,     0,   463,   433,     0,   605,
1520       84,   631,     0,   596,   433,   424,     0,   763,     0,     0,
1521        0,    82,   433,    82,   463,   424,   615,   637,     0,     0,
1522      449,     0,     0,     0,   615,   426,     0,   464,   464,     0,
1523      396,    84,   440,    84,   440,   426,     0,   465,     0,     0,
1524      451,     0,   633,     0,     0,    81,     0,   466,   466,   184,
1525        0,     0,     0,     0,     0,   465,     0,     0,     0,     0,
1526        0,     0,     0,     0,   179,     0,     0,     0,    90,     0,
1527        0,     0,     0,     0,   307,     0,   460,     0,   175,     0,
1528        0,     0,     0,     0,     0,   582,    83,     0,     0,     0,
1529      584,     0,     0,     0,     0,     0,     0,     0,   631,     0,
1530        0,   463,   463,     0,     0,     0,     0,     0,   320,     0,
1531        0,     0,     0,   463,     0,     0,     0,     0,     0,     0,
1532      175,     0,     0,     0,     0,     0,     0,   181,     0,     0,
1533        0,     0,   175,     0,     0,     0,     0,     0,     0,   633,
1534        0,    82,   465,   465,   253,   700,    82,   460,   464,     0,
1535        0,     0,     0,     0,   465,     0,     0,     0,     0,     0,
1536        0,    84,     0,     0,   255,   460,    84,     0,   466,     0,
1537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1538        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1539        0,   595,     0,     0,     0,     0,     0,     0,     0,     0,
1540        0,     0,     0,     0,     0,     0,   733,   734,     0,     0,
1541        0,   597,     0,     0,     0,     0,     0,     0,     0,     0,
1542        0,     0,     0,     0,   616,   464,     0,     0,     0,   463,
1543      632,     0,   616,   175,     0,     0,     0,     0,     0,     0,
1544        0,     0,     0,   464,     0,   466,     0,     0,     0,     0,
1545      634,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1546        0,     0,     0,   466,   460,     0,   762,    90,     0,   175,
1547      465,     0,     0,   106,    82,     1,   107,   108,   109,     0,
1548      110,   111,     0,     0,   780,   781,     0,   782,   783,     0,
1549        0,     0,     0,     0,    84,     0,   463,     0,   175,     0,
1550        2,   175,     0,     0,     0,     0,     0,     0,     0,     0,
1551      175,   175,     0,     0,     0,     0,     0,     0,     0,   460,
1552        0,     0,     0,   809,     0,   810,   181,   632,     0,   460,
1553      464,   464,   819,   820,     0,     0,     0,   465,     0,     0,
1554      727,     0,   464,     0,   112,   113,   114,   634,     0,     0,
1555      466,   466,     0,     0,     0,     0,     0,     0,     0,   834,
1556        0,   835,   466,   836,     0,   837,     0,     0,     0,     0,
1557        0,     0,     0,     0,     0,   115,   116,     0,     0,     0,
1558        0,     0,   117,     0,     0,     0,   852,     0,   853,     0,
1559        0,   118,     0,   119,     0,     0,   120,     0,   121,   122,
1560        0,     0,     0,     0,   123,   124,   125,   126,   175,     0,
1561        0,     0,   175,     0,     0,     0,   800,   857,     0,     0,
1562        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1563        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1564        0,     0,     0,     0,     0,   175,     0,   460,     0,     0,
1565        0,     0,     0,     0,     0,     0,   175,   106,   464,     1,
1566      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1567        0,     0,     0,     0,     0,     0,     0,     0,   466,     0,
1568        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1569        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1570       18,    19,    20,    21,    22,    23,    24,    25,     0,   542,
1571      543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
1572        0,     0,     0,    27,     0,   464,     0,     0,   112,   113,
1573      114,    28,    29,     0,   553,     0,    30,     0,     0,    31,
1574       32,     0,    33,     0,    34,   466,     0,     0,     0,     0,
1575        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1576      116,     0,     0,     0,     0,     0,   117,    36,    37,    38,
1577       39,     0,     0,     0,    40,   118,     0,   119,     0,     0,
1578      120,     0,   121,   122,     0,     0,     0,     0,   123,   124,
1579      125,   126,     0,     0,     0,     0,     0,     0,     0,   554,
1580      378,  -446,   106,     0,     1,   107,   108,   109,     0,   110,
1581      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1582        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1583        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1584       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1585       23,    24,    25,     0,   542,   543,   544,   545,   546,   547,
1586      548,   549,   550,   551,   552,     0,     0,     0,    27,     0,
1587        0,     0,     0,   112,   113,   114,    28,    29,     0,   553,
1588        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1589        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1590        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1591        0,   117,    36,    37,    38,    39,     0,     0,     0,    40,
1592      118,     0,   119,     0,     0,   120,     0,   121,   122,     0,
1593        0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
1594        0,     0,     0,     0,   554,   378,  -445,   106,     0,     1,
1595      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1596        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1597        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1598        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1599       18,    19,    20,    21,    22,    23,    24,    25,     0,   542,
1600      543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
1601        0,     0,     0,    27,     0,     0,     0,     0,   112,   113,
1602      114,    28,    29,     0,   553,     0,    30,     0,     0,    31,
1603       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
1604        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1605      116,     0,     0,     0,     0,     0,   117,    36,    37,    38,
1606       39,     0,     0,     0,    40,   118,     0,   119,     0,     0,
1607      120,     0,   121,   122,     0,     0,     0,     0,   123,   124,
1608      125,   126,     0,     0,     0,     0,     0,     0,     0,   554,
1609      378,  -447,   106,     0,     1,   107,   108,   109,     0,   110,
1610      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1611        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1612        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1613       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1614       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
1615        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
1616        0,     0,     0,   112,   113,   114,    28,    29,     0,     0,
1617        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1618        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1619        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1620        0,   117,    36,    37,    38,    39,     0,     0,     0,    40,
1621      118,     0,   119,     0,     0,   120,     0,   121,   122,     0,
1622        0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
1623        0,     0,     0,     0,   455,   456,   457,   106,     0,     1,
1624      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1625        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1626        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1627        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1628       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
1629        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630        0,     0,     0,    27,     0,     0,     0,     0,   112,   113,
1631      114,    28,    29,     0,     0,     0,    30,     0,     0,    31,
1632       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
1633        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1634      116,     0,     0,     0,     0,     0,   117,    36,    37,    38,
1635       39,     0,     0,     0,    40,   118,     0,   119,     0,     0,
1636      120,     0,   121,   122,     0,     0,     0,     0,   123,   124,
1637      125,   126,     0,     0,     0,     0,     0,     0,     0,   455,
1638      456,   476,   106,     0,     1,   107,   108,   109,     0,   110,
1639      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1641        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1642       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1643       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
1644        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
1645        0,     0,     0,   112,   113,   114,    28,    29,     0,     0,
1646        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1647        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1648        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1649        0,   117,    36,    37,    38,    39,     0,     0,     0,    40,
1650      118,     0,   119,     0,     0,   120,     0,   121,   122,     0,
1651        0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
1652        0,     0,     0,     0,   455,   456,   626,   106,     0,     1,
1653      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1654        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1655        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1656        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1657       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
1658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1659        0,     0,     0,    27,     0,     0,     0,     0,   112,   113,
1660      114,    28,    29,     0,     0,     0,    30,     0,     0,    31,
1661       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
1662        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1663      116,     0,     0,     0,     0,     0,   117,    36,    37,    38,
1664       39,     0,     0,     0,    40,   118,     0,   119,     0,     0,
1665      120,     0,   121,   122,     0,     0,     0,     0,   123,   124,
1666      125,   126,     0,     0,     0,     0,     0,     0,     0,   640,
1667      456,  -498,   106,     0,     1,   107,   108,   109,     0,   110,
1668      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1669        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1670        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1671       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1672       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
1673        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
1674        0,     0,     0,   112,   113,   114,    28,    29,     0,     0,
1675        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1677        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1678        0,   117,    36,    37,    38,    39,     0,     0,     0,    40,
1679      118,     0,   119,     0,     0,   120,     0,   121,   122,     0,
1680        0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
1681        0,     0,     0,     0,   455,   456,   694,   106,     0,     1,
1682      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1683        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1684        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1685        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1686       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
1687        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688        0,     0,     0,    27,     0,     0,     0,     0,   112,   113,
1689      114,    28,    29,     0,     0,     0,    30,     0,     0,    31,
1690       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
1691        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1692      116,     0,     0,     0,     0,     0,   117,    36,    37,    38,
1693       39,     0,     0,     0,    40,   118,     0,   119,     0,     0,
1694      120,     0,   121,   122,     0,     0,     0,     0,   123,   124,
1695      125,   126,   106,     0,     1,   107,   108,     0,     0,   455,
1696      456,   797,     0,     0,     0,     0,     0,     0,     0,     0,
1697        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1698        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1699       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1700       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
1701        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
1702      199,     0,     0,   112,   113,     0,    28,    29,     0,     0,
1703      200,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1704        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1705        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1706        0,     0,    36,    37,    38,    39,     0,     0,     0,    40,
1707      118,     0,    73,     0,     0,   201,     0,   202,   122,   106,
1708        0,     1,   107,   108,     0,     0,     0,     0,     0,     0,
1709        0,     0,     0,     0,   203,     0,   204,     0,     0,     0,
1710        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1711        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1712       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1713        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1714        0,     0,     0,     0,     0,    27,     0,   199,     0,     0,
1715      112,   113,     0,    28,    29,     0,     0,   200,    30,     0,
1716        0,    31,    32,     0,    33,     0,    34,     0,     0,     0,
1717        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
1718        0,   115,   116,     0,     0,     0,     0,     0,     0,    36,
1719       37,    38,    39,     0,     0,     0,    40,   118,     0,    73,
1720        0,     0,   201,     0,   202,   122,   106,     0,     1,   107,
1721      108,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1722        0,   203,     0,   399,     0,     0,     0,     0,     0,     0,
1723        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1724        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1725       19,    20,    21,    22,    23,    24,    25,     0,     0,     0,
1726        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1727        0,     0,    27,     0,   199,     0,     0,   112,   113,     0,
1728       28,    29,     0,     0,   200,    30,     0,     0,    31,    32,
1729        0,    33,     0,    34,     0,     0,     0,     0,     0,     0,
1730        0,     0,     0,     0,     0,     0,    35,     0,   115,   116,
1731        0,     0,     0,     0,     0,     0,    36,    37,    38,    39,
1732        0,     0,     0,    40,   118,     0,    73,     0,     0,   201,
1733        0,   202,   122,   106,     0,     1,   107,   108,     0,     0,
1734        0,     0,     0,     0,     0,     0,     0,     0,   203,     0,
1735      408,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1736        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1737       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1738       22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
1739        0,     0,     0,     0,     0,     0,     0,     0,     0,    27,
1740        0,   199,     0,     0,   112,   113,     0,    28,    29,     0,
1741        0,   200,    30,     0,     0,    31,    32,     0,    33,     0,
1742       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1743        0,     0,     0,    35,     0,   115,   116,     0,     0,     0,
1744        0,     0,     0,    36,    37,    38,    39,     0,     0,     0,
1745       40,   118,     0,    73,     0,     0,   201,     0,   202,   122,
1746      106,     0,     1,   107,   108,     0,     0,     0,     0,     0,
1747        0,     0,     0,     0,     0,   203,     0,   410,     0,     0,
1748        0,     0,     0,     0,     0,     0,     0,     2,     3,     4,
1749        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1750       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1751       25,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752        0,     0,     0,     0,     0,     0,    27,     0,   199,     0,
1753        0,   112,   113,     0,    28,    29,     0,     0,   200,    30,
1754        0,     0,    31,    32,     0,    33,     0,    34,     0,     0,
1755        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1756       35,     0,   115,   116,     0,     0,     0,     0,     0,     0,
1757       36,    37,    38,    39,     0,     0,     0,    40,   118,     0,
1758       73,     0,     0,   201,     0,   202,   122,   106,     0,     1,
1759      107,   108,     0,     0,     0,     0,     0,     0,     0,     0,
1760        0,     0,   203,     0,   585,     0,     0,     0,     0,     0,
1761        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1762        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1763       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
1764        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,     0,     0,    27,     0,   199,     0,     0,   112,   113,
1766        0,    28,    29,     0,     0,   200,    30,     0,     0,    31,
1767       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
1768        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1769      116,     0,     0,     0,     0,     0,     0,    36,    37,    38,
1770       39,     0,     0,     0,    40,   118,     0,    73,     0,     0,
1771      201,     0,   202,   122,   106,     0,     1,   107,   108,     0,
1772        0,     0,     0,     0,     0,     0,     0,     0,     0,   203,
1773        0,   586,     0,     0,     0,     0,     0,     0,     0,     0,
1774        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1775       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1776       21,    22,    23,    24,    25,     0,     0,     0,     0,     0,
1777        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778       27,     0,   199,     0,     0,   112,   113,     0,    28,    29,
1779        0,     0,   200,    30,     0,     0,    31,    32,     0,    33,
1780        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1781        0,     0,     0,     0,    35,     0,   115,   116,     0,     0,
1782        0,     0,     0,     0,    36,    37,    38,    39,     0,     0,
1783        0,    40,   118,     0,    73,     0,     0,   201,     0,   202,
1784      122,   106,     0,     1,   107,   108,     0,     0,     0,     0,
1785        0,     0,     0,     0,     0,     0,   203,     0,   587,     0,
1786        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1787        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1788       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1789       24,    25,     0,     0,     0,     0,     0,     0,     0,     0,
1790        0,     0,     0,     0,     0,     0,     0,    27,     0,   199,
1791        0,     0,   112,   113,     0,    28,    29,     0,     0,   200,
1792       30,     0,     0,    31,    32,     0,    33,     0,    34,     0,
1793        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1794        0,    35,     0,   115,   116,     0,     0,     0,     0,     0,
1795        0,    36,    37,    38,    39,     0,     0,     0,    40,   118,
1796        0,    73,     0,     0,   201,     0,   202,   122,   106,     0,
1797        1,   107,   108,     0,     0,     0,     0,     0,     0,     0,
1798        0,     0,     0,   203,     0,   589,     0,     0,     0,     0,
1799        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1800        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1801       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
1802        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1803        0,     0,     0,     0,    27,     0,   199,     0,     0,   112,
1804      113,     0,    28,    29,     0,     0,   200,    30,     0,     0,
1805       31,    32,     0,    33,     0,    34,     0,     0,     0,     0,
1806        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
1807      115,   116,     0,     0,     0,     0,     0,     0,    36,    37,
1808       38,    39,     0,     0,     0,    40,   118,     0,    73,     0,
1809        0,   201,     0,   202,   122,   106,     0,     1,   107,   108,
1810        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1811      203,     0,   703,     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,    25,     0,     0,     0,     0,
1815        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816        0,    27,     0,   199,     0,     0,   112,   113,     0,    28,
1817       29,     0,     0,   200,    30,     0,     0,    31,    32,     0,
1818       33,     0,    34,     0,     0,     0,     0,     0,     0,     0,
1819        0,     0,     0,     0,     0,    35,     0,   115,   116,     0,
1820        0,     0,     0,     0,     0,    36,    37,    38,    39,     0,
1821        0,     0,    40,   118,     0,    73,     0,     0,   201,     0,
1822      202,   122,   106,     0,     1,   107,   108,     0,     0,     0,
1823        0,     0,     0,     0,     0,     0,     0,   203,     0,   704,
1824        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1825        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1826       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1827       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
1828        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
1829      199,     0,     0,   112,   113,     0,    28,    29,     0,     0,
1830      200,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1831        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1832        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1833        0,     0,    36,    37,    38,    39,     0,     0,     0,    40,
1834      118,     0,    73,     0,     0,   201,     0,   202,   122,   106,
1835        0,     1,   107,   108,     0,     0,     0,     0,     0,     0,
1836        0,     0,     0,     0,   203,     0,   705,     0,     0,     0,
1837        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1838        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1839       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1840        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1841        0,     0,     0,     0,     0,    27,     0,   199,     0,     0,
1842      112,   113,     0,    28,    29,     0,     0,   200,    30,     0,
1843        0,    31,    32,     0,    33,     0,    34,     0,     0,     0,
1844        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
1845        0,   115,   116,     0,     0,     0,     0,     0,     0,    36,
1846       37,    38,    39,     0,     0,     0,    40,   118,     0,    73,
1847        0,     0,   201,     0,   202,   122,   106,     0,     1,   107,
1848      108,   109,     0,   110,   111,     0,     0,     0,     0,     0,
1849        0,   203,     0,   706,     0,     0,     0,     0,     0,     0,
1850        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1851        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1852       19,    20,    21,    22,    23,    24,    25,     0,   542,   543,
1853      544,   545,   546,   547,   548,   549,   550,   551,   552,     0,
1854        0,     0,    27,     0,     0,     0,     0,   112,   113,   114,
1855       28,    29,     0,   553,     0,    30,     0,     0,    31,    32,
1856        0,    33,     0,    34,     0,     0,     0,     0,     0,     0,
1857        0,     0,     0,     0,     0,     0,    35,     0,   115,   116,
1858        0,     0,     0,     0,     0,   117,    36,    37,    38,    39,
1859        0,     0,     0,    40,   118,     0,   119,     0,     0,   120,
1860        0,   121,   122,     0,     0,     0,     0,   123,   124,   125,
1861      126,     0,     0,     0,     0,     0,     0,     0,   554,   378,
1862      106,     0,     1,   107,   108,   109,     0,   110,   111,     0,
1863        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1864        0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
1865        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1866        0,     0,   106,     0,     1,   107,   108,   109,     0,   110,
1867      111,     0,   542,   543,   544,   545,   546,   547,   548,   549,
1868      550,   551,   552,     0,     0,     0,     0,     0,     0,     2,
1869        0,   112,   113,   114,     0,     0,     0,   106,     0,     1,
1870      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1871        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1872        0,     0,   115,   116,     2,     0,     0,     0,     0,   117,
1873        0,     0,     0,   112,   113,   114,     0,     0,   118,     0,
1874      119,     0,     0,   120,     0,   121,   122,     0,     0,     0,
1875        0,   123,   124,   125,   126,     0,     0,     0,     0,     0,
1876        0,     0,   554,   378,   115,   116,     0,     0,   112,   113,
1877      114,   117,     0,     0,     0,     0,     0,     0,     0,     0,
1878      118,     0,   119,     0,     0,   120,   479,   121,   122,     0,
1879        0,     0,     0,   123,   124,   125,   126,     0,     0,   115,
1880      116,     0,     0,     0,     0,   456,   117,     0,     0,     0,
1881        0,     0,     0,     0,     0,   118,     0,   119,     0,     0,
1882      120,     0,   121,   122,     0,     0,     0,     0,   123,   124,
1883      125,   126,     0,     0,   106,     0,     1,   107,   108,   109,
1884      456,   110,   111,     0,     0,     0,     0,     0,     0,     0,
1885        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1886        0,     2,     0,     0,     0,     0,     0,     0,     0,     0,
1887        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1888        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1889        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1890        0,     0,     0,     0,     0,   112,   113,   114,     0,     0,
1891        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1892        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1893        0,     0,     0,     0,     0,     0,   115,   116,     0,     0,
1894        0,     0,     0,   117,     0,     0,     0,     0,     0,     0,
1895        0,     0,   118,     0,   119,     0,     0,   120,     0,   121,
1896      122,     0,     0,     0,     0,   123,   124,   125,   126,   106,
1897        0,     1,   107,   108,     0,     0,     0,   800,     0,     0,
1898        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1899        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1900        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1901       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1902        0,     0,     0,     0,     0,     0,   106,     0,     1,   107,
1903      108,   109,     0,   110,   111,    27,     0,   199,     0,     0,
1904      112,   113,     0,    28,    29,     0,     0,   200,    30,     0,
1905        0,    31,    32,     2,    33,     0,    34,     0,     0,     0,
1906        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
1907        0,   115,   116,     0,     0,     0,     0,     0,     0,    36,
1908       37,    38,    39,     0,     0,     0,    40,   118,     0,    73,
1909        0,     0,   201,     0,   202,   122,     0,   112,   113,   114,
1910      106,     0,     1,   107,   108,   109,     0,   110,   111,     0,
1911        0,   203,     0,     0,     0,     0,     0,     0,     0,     0,
1912        0,     0,     0,     0,     0,     0,     0,     2,   115,   116,
1913        0,     0,     0,     0,   106,   117,     1,   107,   108,   109,
1914        0,   110,   111,     0,   118,     0,   119,     0,     0,   120,
1915      750,   121,   122,     0,     0,     0,     0,   123,   124,   125,
1916      126,     2,     0,     0,     0,     0,     0,     0,   554,     0,
1917        0,   112,   113,   114,     0,     0,     0,     0,     0,     0,
1918        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1919        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1920        0,     0,   115,   116,     0,   112,   113,   114,     0,   117,
1921        0,     0,     0,     0,     0,     0,     0,     0,   118,     0,
1922      119,     0,     0,   120,   794,   121,   122,     0,     0,     0,
1923        0,   123,   124,   125,   126,     0,   115,   116,     0,     0,
1924        0,     0,   554,   117,     0,     0,     0,     0,     0,     0,
1925        0,     0,   118,     1,   119,     0,     0,   120,     0,   121,
1926      122,     0,     0,     0,     0,   123,   124,   125,   126,     0,
1927        0,     0,     0,     0,     0,     0,   678,     0,     2,     3,
1928        4,     5,     6,     7,   343,   344,   345,   346,   347,   348,
1929      349,   350,   351,   352,   353,    19,    20,   354,   355,    23,
1930       24,   356,     0,     0,     0,     0,     0,     0,     0,     0,
1931        0,     0,     0,     0,     0,     0,     0,   357,     0,     0,
1932        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
1933       30,     0,     0,     0,     0,     0,   358,     0,   359,     0,
1934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1935        0,   360,     0,     0,     0,     0,     0,     0,     0,     0,
1936        0,    36,    37,   361,   362,     0,     0,     0,    40,     0,
1937        1,    73,     0,     0,   304,     0,     0,     0,     0,    75,
1938        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1939        0,     0,     0,     0,   530,     2,     3,     4,     5,     6,
1940        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1941       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
1942        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1943        0,     0,     0,     0,    27,     0,     0,     0,     0,     0,
1944        0,     0,    28,    29,     0,     0,     0,    30,     0,     0,
1945       31,    32,     0,    33,     0,    34,     0,     0,     0,     0,
1946        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
1947        0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
1948       38,    39,     0,     0,     0,    40,     1,     0,    73,     0,
1949        0,   386,     0,     0,     0,     0,     0,     0,     0,     0,
1950        0,     0,     0,     0,     0,     0,     0,     0,   387,     0,
1951      388,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1952       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1953       21,    22,    23,    24,    25,     0,     0,     0,     0,     0,
1954        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1955       27,     0,     0,     0,     0,     0,     0,     0,    28,    29,
1956        0,     0,     0,    30,     0,     0,    31,    32,     0,    33,
1957        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1958        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
1959        0,     0,     0,     0,    36,    37,    38,    39,     0,     0,
1960        0,    40,     1,     0,    73,     0,     0,   177,     0,     0,
1961        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1962        0,     0,     0,     0,     0,     0,   683,     2,     3,     4,
1963        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1964       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1965       25,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1966        0,     0,     0,     0,     0,     0,    27,     0,     0,     0,
1967        0,     0,     0,     0,    28,    29,     0,     0,     0,    30,
1968        0,     0,    31,    32,     0,    33,     0,    34,     0,     0,
1969        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1970       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1971       36,    37,    38,    39,     0,     0,     0,    40,     0,     0,
1972       73,     0,   106,   304,     1,   107,   108,   109,    75,   110,
1973      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974        0,  -281,     0,     0,     0,     0,     0,     0,     0,     2,
1975        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1976       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1977       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
1978        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
1979        0,     0,     0,   112,   113,   114,    28,    29,     0,     0,
1980        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
1981        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1982        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
1983        0,   117,    36,    37,    38,    39,     0,     0,     0,    40,
1984      118,     0,   119,     0,     0,   120,     0,   121,   122,     0,
1985        0,     0,     0,   123,   124,   125,   126,   106,     0,     1,
1986      107,   108,   109,     0,   110,   111,     0,     0,     0,     0,
1987        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1988        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
1989        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1990       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
1991        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1992        0,     0,     0,    27,     0,     0,     0,     0,   112,   113,
1993      114,    28,    29,     0,     0,     0,    30,     0,     0,    31,
1994       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
1995        0,     0,     0,     0,     0,     0,     0,    35,     0,   115,
1996      116,     0,     0,     0,     0,     0,   117,    36,    37,    38,
1997       39,     0,     0,     0,     0,   118,     0,   119,     0,     0,
1998      120,   248,   121,   122,     0,     0,     0,     0,   123,   124,
1999      125,   126,   106,     0,     1,   107,   108,   109,     0,   110,
2000      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2001        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
2002        0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
2003       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2004       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
2005        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
2006        0,     0,     0,   112,   113,   114,    28,    29,     0,     0,
2007        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
2008      106,     0,     1,   107,   108,   109,     0,   110,   111,     0,
2009        0,     0,    35,     0,   115,   116,     0,     0,     0,     0,
2010        0,   117,    36,    37,    38,    39,     0,     2,     0,     0,
2011      118,     0,   374,     0,     0,   375,   248,   121,   122,     0,
2012        0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
2013        0,     0,     0,     0,     0,     0,   106,     0,     1,   107,
2014      108,   109,     0,   110,   111,     0,     0,     0,     0,     0,
2015        0,   112,   113,   114,    28,    29,     0,     0,     0,    30,
2016        0,     0,     0,     2,     0,     0,     0,     0,     0,   106,
2017        0,     1,   107,   108,   109,     0,   110,   111,     0,     0,
2018        0,     0,   115,   116,     0,     0,     0,     0,     0,   117,
2019       36,    37,     0,     0,     0,     0,     2,     0,   118,     0,
2020      374,     0,     0,   375,   248,   121,   122,   112,   113,   114,
2021        0,   123,   124,   125,   126,     0,     0,     0,     0,     0,
2022        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2023        0,     0,     0,     0,     0,     0,     0,     0,   115,   116,
2024      112,   113,   114,     0,     0,   117,     0,     0,     0,     0,
2025        0,     0,     0,     0,   118,     0,   119,     0,     0,   120,
2026        0,   121,   122,     0,     0,   173,     0,   123,   124,   125,
2027      126,   115,   116,     0,     0,     0,     0,   106,   117,     1,
2028      107,   108,   109,     0,   110,   111,     0,   118,     0,   119,
2029        0,     0,   120,     0,   121,   122,     0,     0,   325,     0,
2030      123,   124,   125,   126,     2,     0,     0,     0,     0,     0,
2031      106,     0,     1,   107,   108,   109,     0,   110,   111,     0,
2032        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2033        0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
2034        0,     0,     0,     0,     0,     0,     0,     0,   112,   113,
2035      114,   106,     0,     1,   107,   108,   109,     0,   110,   111,
2036        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2037        0,     0,     0,     0,     0,     0,     0,     0,     2,   115,
2038      116,   112,   113,   114,     0,     0,   117,     0,     0,     0,
2039        0,     0,     0,     0,     0,   118,     0,   119,     0,     0,
2040      120,     0,   121,   122,     0,     0,   328,     0,   123,   124,
2041      125,   126,   115,   116,     0,     0,     0,     0,     0,   117,
2042        0,     0,   112,   113,   114,     0,     0,     0,   118,     0,
2043      119,     0,     0,   120,   248,   121,   122,     0,     0,     0,
2044        0,   123,   124,   125,   126,     0,     0,     0,     0,     0,
2045        0,     0,     0,   115,   116,     0,     0,     0,     0,   106,
2046      117,     1,   107,   108,   109,     0,   110,   111,     0,   118,
2047        0,   119,     0,     0,   120,   747,   121,   122,     0,     0,
2048        0,     0,   123,   124,   125,   126,     2,     0,     0,     0,
2049        0,     0,   106,     0,     1,   107,   108,   109,     0,   110,
2050      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2051        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
2052        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2053      112,   113,   114,   106,     0,     1,   107,   108,   109,     0,
2054      110,   111,     0,     0,     0,     0,     0,     0,     0,     0,
2055        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2056        2,   115,   116,   112,   113,   114,     0,     0,   117,     0,
2057        0,     0,     0,     0,     0,     0,     0,   118,     0,   119,
2058        0,     0,   120,   826,   121,   122,     0,     0,     0,     0,
2059      123,   124,   125,   126,   115,   116,     0,     0,     0,     0,
2060        0,   117,     0,     0,   112,   113,   114,     0,     0,     0,
2061      118,     0,   119,     0,     0,   120,     0,   121,   122,     0,
2062        0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
2063        0,     0,     0,     0,     0,   115,   116,     0,     0,     0,
2064        0,   106,   117,     1,   107,   108,   109,     0,   110,   111,
2065        0,   118,     0,   119,     0,     0,   236,     0,   121,   122,
2066        0,     0,     0,     0,   123,   124,   125,   126,     2,     0,
2067        0,     0,     0,     0,   106,     0,     1,   107,   108,   109,
2068        0,   110,   111,     0,     0,     0,     0,     0,     0,     0,
2069        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2070        0,     2,     0,     0,     0,     0,     0,     0,     0,     0,
2071        0,     0,   112,   113,   114,     0,     0,     0,     0,     0,
2072        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2073        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2074        0,     0,     0,   115,   116,   112,   113,   114,     0,     0,
2075      117,     0,     0,     0,     0,     0,     0,     0,     0,   118,
2076        0,   119,     0,     0,   238,     0,   121,   122,     0,     0,
2077        0,     0,   123,   124,   125,   126,   115,   116,     0,     0,
2078        0,     0,     0,   117,     1,     0,     0,     0,     0,     0,
2079        0,     0,   118,     0,   119,     0,     0,   246,     0,   121,
2080      122,     0,     0,     0,     0,   123,   124,   125,   126,     2,
2081        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2082       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2083       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
2084        0,     0,     0,     0,     0,     0,     0,     0,    27,     0,
2085        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
2086        0,    30,     0,     0,    31,    32,     0,    33,     0,    34,
2087        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2088        0,     0,    35,     0,     0,     0,     0,     0,     0,     1,
2089        0,     0,    36,    37,    38,    39,     0,     0,     0,    40,
2090        0,     0,    73,     0,     0,    74,     0,     0,     0,     0,
2091       75,     0,     0,    76,     2,     3,     4,     5,     6,     7,
2092        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2093       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
2094        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2095        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
2096        0,    28,    29,     0,     0,     0,    30,     0,     0,    31,
2097       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
2098        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
2099        0,     1,     0,     0,     0,     0,     0,    36,    37,    38,
2100       39,     0,     0,     0,    40,     0,     0,    73,     0,     0,
2101       74,   166,     0,     0,     0,    75,     2,     3,     4,     5,
2102        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2103       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2104        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2105        0,     0,     0,     0,    26,    27,     0,     0,     0,     0,
2106        0,     0,     0,    28,    29,     0,     0,     0,    30,     0,
2107        0,    31,    32,     0,    33,     0,    34,     0,     0,     0,
2108        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2109        0,     0,     0,     1,     0,     0,     0,     0,     0,    36,
2110       37,    38,    39,     0,     0,     0,    40,     0,     0,    73,
2111        0,     0,   304,   166,     0,     0,     0,    75,     2,     3,
2112        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2113       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2114       24,    25,     0,     0,     0,     0,     0,     0,     0,     0,
2115        0,     0,     0,     0,     0,     0,     0,    27,     0,     0,
2116        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
2117       30,     0,     0,    31,    32,     0,    33,     0,    34,     0,
2118        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2119        0,    35,     0,     0,     0,     1,     0,     0,     0,     0,
2120        0,    36,    37,    38,    39,     0,     0,     0,    40,     0,
2121        0,    73,     0,     0,   428,     0,     0,     0,     0,   429,
2122        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2123       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2124       22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
2125        0,     0,     0,     0,     0,     0,     0,     0,     0,    27,
2126        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
2127        0,     0,    30,     0,     0,    31,    32,     0,    33,     0,
2128       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2129        0,     0,     0,    35,     0,     0,     0,     1,     0,     0,
2130        0,     0,     0,    36,    37,    38,    39,     0,     0,     0,
2131       40,     0,     0,    73,     0,     0,   428,     0,     0,     0,
2132        0,   441,     2,     3,     4,     5,     6,     7,     8,     9,
2133       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2134       20,    21,    22,    23,    24,    25,     0,     0,     0,     0,
2135        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2136        0,    27,     0,     0,     0,     0,     0,     0,     0,    28,
2137       29,     0,     0,     0,    30,     0,     0,    31,    32,     0,
2138       33,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2139        0,     0,     0,     0,     0,    35,     0,     0,     0,     1,
2140        0,     0,     0,     0,     0,    36,    37,    38,    39,     0,
2141        0,     0,    40,     0,     0,    73,     0,     0,   304,     0,
2142        0,     0,     0,    75,     2,     3,     4,     5,     6,     7,
2143      343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2144      353,    19,    20,   354,   355,    23,    24,    25,     0,     0,
2145        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2146        0,     0,     0,   357,     0,     0,     0,     0,     0,     0,
2147        0,    28,    29,     0,     0,     0,    30,     0,     0,     0,
2148        0,     0,   358,     0,   359,     0,     0,     0,     0,     0,
2149        0,     0,     0,     0,     0,     0,     0,   360,     0,     0,
2150        0,     1,     0,     0,     0,     0,     0,    36,    37,   361,
2151      362,     0,     0,     0,    40,     0,     0,    73,     0,     0,
2152      428,     0,     0,     0,     0,   610,     2,     3,     4,     5,
2153        6,     7,   343,   344,   345,   346,   347,   348,   349,   350,
2154      351,   352,   353,    19,    20,   354,   355,    23,    24,    25,
2155        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2156        0,     0,     0,     0,     0,   357,     0,     0,     0,     0,
2157        0,     0,     0,    28,    29,     0,     0,     0,    30,     0,
2158        0,     0,     0,     0,   358,     0,   359,     0,     0,     0,
2159        0,     0,     0,     0,     0,     0,     0,     0,     1,   360,
2160        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
2161       37,   361,   362,     0,     0,     0,    40,     0,     0,    73,
2162        0,     0,   428,     2,     0,     0,     0,   620,     0,     8,
2163        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2164       19,    20,    21,    22,    23,    24,    25,     0,     0,     0,
2165        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2166        0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
2167       28,    29,     0,     0,     0,    30,     0,     0,    31,    32,
2168        0,    33,     0,    34,     0,     0,     0,     0,     0,     0,
2169        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
2170        1,     0,     0,     0,     0,     0,    36,    37,    38,    39,
2171        0,     0,     0,     0,     0,     0,    73,     0,     0,   304,
2172        0,     0,     0,     0,    75,     2,     3,     4,     5,     6,
2173        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2174       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
2175        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2176        0,     0,     0,    26,    27,     0,     0,     0,     0,     0,
2177        0,     0,    28,    29,     0,     0,     0,    30,     0,     0,
2178       31,    32,     0,    33,     0,    34,     0,     0,     0,     0,
2179        0,     0,     0,     0,     0,     0,     0,     0,    35,     1,
2180        0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
2181       38,    39,     0,     0,     0,    40,     0,     0,    73,     0,
2182        0,   428,   600,     0,     2,     3,     4,     5,     6,     7,
2183        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2184       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
2185        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2186        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
2187        0,    28,    29,     0,     0,     0,    30,     0,     0,    31,
2188       32,     0,    33,     0,    34,     0,     0,     0,     0,     0,
2189        0,     0,     0,     0,     0,     0,     0,    35,     1,     0,
2190        0,     0,     0,     0,     0,     0,     0,    36,    37,    38,
2191       39,     0,     0,     0,    40,     0,     0,     0,     0,     0,
2192        0,   191,     0,     2,     3,     4,     5,     6,     7,     8,
2193        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2194       19,    20,    21,    22,    23,    24,    25,     0,     0,     0,
2195        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2196        0,    26,    27,     0,     0,     0,     0,     0,     0,     0,
2197       28,    29,     0,     0,     0,    30,     0,     0,    31,    32,
2198        0,    33,     0,    34,     0,     0,     0,     0,     0,     0,
2199        0,     0,     0,     0,     0,     0,    35,     1,     0,     0,
2200        0,     0,     0,     0,     0,     0,    36,    37,    38,    39,
2201        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
2202      323,     0,     2,     3,     4,     5,     6,     7,     8,     9,
2203       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2204       20,    21,    22,    23,    24,    25,     0,     0,     0,     0,
2205        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2206       26,    27,     0,     0,     0,     0,     0,     0,     0,    28,
2207       29,     0,     0,     0,    30,     0,     0,    31,    32,     0,
2208       33,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2209        0,     0,     0,     0,     0,    35,     1,     0,     0,     0,
2210        0,     0,     0,     0,     0,    36,    37,    38,    39,     0,
2211        0,     0,    40,     0,     0,     0,     0,     0,     0,   711,
2212        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2213       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2214       21,    22,    23,    24,    25,     0,     0,     0,     0,     0,
2215        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2216       27,     0,     0,     0,     0,     0,     0,     0,    28,    29,
2217        0,     0,     0,    30,     0,     0,    31,    32,     0,    33,
2218        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
2219        0,     0,     0,     1,    35,     0,     0,     0,     0,     0,
2220        0,     0,     0,     0,    36,    37,    38,    39,     0,     0,
2221        0,    40,     0,     0,    73,     0,     0,   177,     2,     3,
2222        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2223       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2224       24,    25,     0,     0,     0,     0,     0,     0,     0,     0,
2225        0,     0,     0,     0,     0,     0,     0,    27,     0,     0,
2226        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
2227       30,     0,     0,    31,    32,     0,    33,     0,    34,     0,
2228        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2229        1,    35,     0,     0,     0,     0,     0,     0,     0,     0,
2230        0,    36,    37,    38,    39,     0,     0,     0,    40,     0,
2231        0,     0,     0,     0,   540,     2,     3,     4,     5,     6,
2232        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2233       17,    18,    19,    20,    21,    22,    23,    24,    25,   512,
2234        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2235        0,     0,     0,    26,    27,     0,     0,     0,     0,     0,
2236        0,     0,    28,    29,     0,     0,     0,    30,     0,     0,
2237       31,    32,     0,    33,     0,    34,     0,     0,     0,     0,
2238        0,     1,     0,     0,     0,     0,     0,     0,    35,     0,
2239        0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
2240       38,    39,     0,     0,     0,    40,     2,     3,     4,     5,
2241        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2242       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2243        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2244        0,     0,     0,     0,    26,    27,     0,     0,     0,     0,
2245        0,     0,     0,    28,    29,     0,     0,     0,    30,     0,
2246        0,    31,    32,     0,    33,     0,    34,     0,     0,     0,
2247        0,     0,     1,     0,     0,     0,     0,     0,     0,    35,
2248        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
2249       37,    38,    39,     0,     0,     0,    40,     2,     3,     4,
2250        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2251       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2252       25,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2253        0,     0,     0,     0,     0,     0,    27,     0,     0,     0,
2254        0,     0,     0,     0,    28,    29,     0,     0,     0,    30,
2255        0,     0,    31,    32,     0,    33,     0,    34,     0,     0,
2256        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2257       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2258       36,    37,    38,    39,     0,     0,     0,    40,     2,     3,
2259        4,     5,     6,     7,   343,   344,   345,   346,   347,   348,
2260      349,   350,   351,   352,   353,    19,    20,   354,   355,    23,
2261       24,   356,     0,     0,     0,     0,     0,     0,     0,     0,
2262        0,     0,     0,     0,     0,     0,     0,   357,     0,     0,
2263        0,     0,     0,     0,     0,    28,    29,     0,     0,     0,
2264       30,     0,     0,     0,     0,     0,   358,     0,   359,     0,
2265        0,     0,     0,     0,     1,     0,     0,     0,     0,     0,
2266        0,   360,     0,     0,     0,     0,     0,     0,     0,     0,
2267        0,    36,    37,   361,   362,     0,     0,     0,    40,     2,
2268        3,     4,     5,     6,     7,   343,   344,   345,   346,   347,
2269      348,   349,   350,   351,   352,   353,    19,    20,   354,   355,
2270       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
2271        0,     0,     0,     0,     0,     0,     0,     0,   357,     0,
2272        0,     0,     0,     0,     0,     0,    28,    29,     0,     0,
2273        0,    30,     0,     0,     0,     0,     0,   358,     0,   359,
2274        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2275        0,     0,   360,     0,     0,     0,     0,     0,     0,     0,
2276        0,     0,    36,    37,   361,   362,     0,     0,     0,    40
2277 };
2278
2279 static const yytype_int16 yycheck[] =
2280 {
2281        0,    47,    89,    80,   199,   122,   379,    92,   263,   259,
2282        0,   385,    47,    47,   199,    92,   134,   529,     3,    66,
2283        3,   379,    17,   278,   244,    25,   200,   199,   199,     3,
2284       76,     3,    68,   342,   674,     3,   800,   211,    70,    74,
2285      124,    76,    70,    28,    70,    80,    46,    47,   243,   430,
2286      245,    71,   433,   122,    70,    71,     3,    92,    58,    70,
2287       71,    70,    71,    63,     3,    70,     3,    67,    68,   131,
2288        1,   243,     3,   245,    74,   144,    76,     3,    78,     3,
2289       80,    28,   846,   145,     3,   213,    14,    15,     3,    89,
2290       75,    76,    92,     3,    94,    80,   181,   609,    98,   186,
2291      185,     3,    28,   139,   104,   105,   121,   124,   185,    28,
2292      122,   751,   112,   145,    25,   115,   130,   145,   125,   145,
2293        3,   136,   137,   157,   131,   145,   111,   112,   128,   145,
2294      144,   131,   144,   122,   145,   141,   145,    11,    75,    76,
2295      145,     0,   177,    80,   179,   140,   181,    58,   124,   661,
2296      185,   125,   152,   125,   154,     3,   124,   157,   141,   144,
2297      195,   144,   280,   281,   282,   144,   201,   167,     3,     3,
2298      365,   225,   226,   227,   111,   112,   211,   177,   144,   179,
2299      365,   181,   121,   122,   120,   185,   186,    98,   561,   562,
2300      121,   122,   192,   365,   365,   195,    47,   144,   372,   199,
2301      200,   201,   202,   561,   716,   144,   456,   144,   428,   209,
2302      210,   211,   212,   213,   523,   435,   263,   251,   144,   121,
2303      144,   221,   124,   443,   605,   225,   226,   227,   305,   144,
2304      307,   278,   232,    71,   144,   320,   236,   131,   121,   122,
2305      435,   241,   242,   243,   244,   245,   246,   141,   443,   123,
2306      435,   251,   288,   289,   628,   291,    71,   131,   443,   142,
2307      260,   144,     3,   435,   264,   201,   131,   303,    71,   123,
2308       66,   443,   308,   121,   122,   311,   125,   131,   143,   407,
2309        3,   409,   131,   411,   130,   320,   121,   461,   199,   124,
2310       12,    13,    70,    71,   129,   131,   144,   124,   144,   144,
2311      236,     3,   238,   303,   304,    28,   157,   145,   308,   145,
2312      246,   311,   125,   109,   110,   111,   689,   317,   131,   142,
2313      320,   117,    45,   573,   120,   130,    28,   317,     5,   265,
2314      145,   365,   243,   333,   245,   453,     0,   454,   131,   144,
2315      375,   428,   145,    45,   144,   121,   121,     3,   124,   124,
2316      143,   386,    75,    76,   129,   390,   356,   131,   412,   413,
2317      211,   396,   416,   299,   418,   365,     1,   145,     3,   143,
2318      370,   145,   372,    75,    76,   375,   376,   377,   125,   379,
2319      121,   122,   131,    80,   131,   236,   386,   132,   422,   389,
2320      390,   242,   647,   244,   143,   246,   396,   139,   398,   446,
2321      122,   123,   125,   403,    68,   201,   138,   407,   131,   409,
2322       74,   411,   412,   413,   111,   112,   416,   131,   418,    75,
2323       76,   421,   422,   125,    80,    89,   461,   125,   428,   143,
2324      123,   508,    16,   131,   125,   435,   142,   131,   131,   375,
2325      236,   131,   238,   443,   141,   356,   125,   447,   112,   143,
2326      246,   115,   131,   143,   365,   111,   112,   125,   458,   370,
2327      588,   461,   590,   591,   592,   121,   125,   263,   124,   265,
2328      125,   505,     3,   123,    75,    76,     7,     8,     9,    80,
2329      527,   131,   278,   123,   303,   141,   121,   122,    94,   308,
2330      125,   131,   125,   529,    75,    76,   131,   131,   131,    80,
2331       10,    11,   125,   299,   539,   505,   756,    47,   131,     3,
2332      111,   112,   558,     7,     8,     9,   133,   134,   130,   606,
2333      124,   372,   186,   558,   435,   129,   377,   125,   528,   529,
2334      111,   112,   443,   131,   131,   535,   200,   537,   202,   539,
2335      575,   576,   130,   131,   125,   580,   143,   547,   145,   549,
2336      125,   124,   124,   553,   144,   555,   129,   129,   558,     3,
2337      303,   561,   562,   143,    99,   308,   143,     1,   144,     3,
2338      144,   422,   125,   609,   128,   575,   576,   142,   113,   375,
2339      580,   116,   125,   379,    28,   521,   143,   144,   588,   130,
2340      590,   591,   592,   124,   283,   284,   130,   128,   129,   125,
2341      647,   285,   286,     3,   292,   293,   606,   213,   124,   609,
2342      124,   142,   104,   105,   122,   124,   552,   157,   145,   225,
2343      226,   227,   125,   124,   129,   661,   537,   124,    28,   629,
2344      124,    75,    76,   122,   128,   129,    80,     3,   129,   303,
2345      304,    75,    76,   125,   308,    45,    80,   311,   142,    94,
2346      446,   125,   187,   317,   505,   190,   656,   145,   145,   199,
2347      125,   661,   697,    45,    46,   700,   141,   111,   112,   669,
2348      124,   211,   124,   124,   124,    75,    76,   111,   112,   143,
2349      716,   681,   143,   145,   684,   143,   125,   121,   122,   689,
2350      124,   125,   125,    75,    76,   129,   231,   697,    80,   130,
2351      700,   122,   242,   243,   244,   245,   129,   145,   130,    75,
2352       76,   757,   759,   129,    80,   125,   716,   125,   258,   259,
2353        3,    57,   757,   141,   144,   521,   143,   762,   763,   111,
2354      112,   527,   145,   142,   670,   671,   672,    75,    76,   121,
2355      129,   125,    80,   743,   141,   111,   112,   747,   143,   130,
2356      750,   547,   130,   800,   130,   121,   552,   757,   124,   125,
2357      130,   124,   762,   763,   428,   561,   562,    65,   213,   130,
2358      130,   145,   145,   111,   112,   294,   145,   145,   145,   143,
2359      225,   226,   227,   145,    58,   296,   145,   145,   788,   789,
2360      145,   791,    75,    76,   794,   295,   298,    80,   297,   846,
2361      757,   407,   245,   409,   142,   411,   412,   413,   395,   401,
2362      416,   576,   418,   258,   259,     0,   311,   232,   461,   246,
2363        1,   561,     3,     4,     5,   365,   826,   474,   111,   112,
2364      638,    -1,   372,   474,    -1,   547,   474,   377,    -1,   379,
2365        3,   124,   842,    -1,    -1,   845,   129,    28,    -1,     3,
2366      562,   647,   387,     7,     8,     9,   792,    -1,    -1,   795,
2367       -1,    -1,    47,    -1,    -1,   529,    -1,    -1,    -1,    -1,
2368       -1,    -1,    -1,   669,   670,   671,   672,    -1,   674,    -1,
2369       -1,    -1,    67,    68,    -1,   681,    -1,    -1,    -1,    74,
2370       75,    72,    73,   689,   429,   435,    -1,    -1,    -1,    -1,
2371       -1,    -1,    -1,   443,    89,    -1,   441,    -1,    -1,    94,
2372       -1,    -1,    75,    76,    -1,    -1,   456,    80,    -1,    -1,
2373       -1,   461,   103,   104,    -1,    -1,    -1,   112,    -1,    -1,
2374      115,    -1,    -1,    -1,   474,   120,    -1,    -1,   119,    -1,
2375       -1,    -1,   606,   124,    -1,   609,   127,   743,   111,   112,
2376       -1,   747,    -1,    -1,   750,   751,   401,   669,   121,    -1,
2377       -1,   124,   407,   759,   409,   505,   411,   412,   413,   681,
2378      124,   416,   157,   418,   128,   129,    -1,   689,    -1,    -1,
2379       -1,    -1,   588,    -1,   590,   591,   592,    -1,    -1,    -1,
2380        3,    -1,   788,   789,    -1,   791,   792,   661,   794,   795,
2381       -1,   186,   187,    -1,   800,   190,    -1,   542,    -1,    -1,
2382       -1,   456,    -1,    -1,    -1,   200,    -1,   202,   558,    -1,
2383       -1,   561,   562,    -1,    -1,    -1,   211,    -1,   213,   474,
2384      826,   743,    -1,   573,    -1,   747,    -1,    -1,   750,    -1,
2385      225,   226,   227,   578,    -1,    -1,   842,    -1,    -1,   845,
2386      846,   236,   716,    -1,    -1,    -1,    -1,   242,    -1,   244,
2387       -1,   246,    75,    76,    -1,    -1,   251,    80,    -1,    -1,
2388       -1,    -1,   607,   258,   259,   610,   788,   789,    -1,   791,
2389       -1,    -1,   794,    -1,   619,   620,    18,    19,    20,    21,
2390       22,    23,    24,    25,    26,    27,    -1,    -1,   111,   112,
2391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2392       -1,   124,    -1,    -1,   826,    -1,    -1,    -1,   303,   304,
2393       -1,    -1,    -1,   308,    47,    -1,   311,    -1,   573,    -1,
2394      842,    -1,   317,   845,    -1,    58,    -1,    -1,    -1,    -1,
2395       -1,    -1,    -1,   588,    -1,   590,   591,   592,    -1,   689,
2396       -1,    74,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
2397       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    92,
2398       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2399       -1,    -1,   717,    -1,    -1,    -1,   721,   372,    -1,    -1,
2400      375,    -1,   377,   638,   379,    -1,    -1,    -1,    -1,    -1,
2401       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2402      142,    -1,    -1,    -1,    -1,    -1,   756,    -1,    -1,   754,
2403       -1,    -1,   407,    -1,   409,    -1,   411,   412,   413,    -1,
2404      765,   416,    -1,   418,   157,    -1,    -1,   422,    -1,    -1,
2405       -1,    -1,    -1,   428,    -1,    -1,   169,    -1,    -1,    -1,
2406       -1,    -1,    -1,    -1,   177,    -1,    -1,   180,   181,    -1,
2407       -1,    -1,   185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2408       -1,   456,    -1,    -1,    -1,    -1,   461,   200,   201,    -1,
2409       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,   474,
2410      213,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   221,    -1,
2411       -1,    -1,   225,   226,   227,    -1,    -1,    -1,    -1,    -1,
2412       -1,   756,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   242,
2413      505,   244,    -1,    -1,    -1,    -1,    -1,    47,   251,    -1,
2414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2415       -1,    -1,    -1,   528,   529,    -1,    -1,    -1,    -1,    -1,
2416       -1,    -1,    -1,    -1,    74,    -1,    76,    47,    -1,    -1,
2417       80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2418       -1,    -1,    92,   558,    -1,    -1,   561,   562,    -1,    -1,
2419       -1,   304,    -1,    73,    -1,    -1,    47,    -1,   573,    -1,
2420       -1,    -1,    -1,    -1,    -1,    -1,    -1,   320,    47,    -1,
2421       -1,    -1,    -1,   588,    -1,   590,   591,   592,    -1,    -1,
2422       -1,    -1,    73,    74,    -1,    76,    -1,    -1,    -1,    80,
2423       -1,   606,    -1,    -1,   609,    -1,    -1,    -1,    -1,    -1,
2424      120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2425       -1,    -1,   365,    -1,    -1,    -1,    -1,   370,    -1,   372,
2426       -1,    -1,   375,    -1,    -1,    -1,    -1,   177,    -1,   179,
2427       -1,   181,    -1,   386,    -1,   185,    -1,   157,    -1,    -1,
2428       -1,   120,    -1,   396,   164,   195,   661,    -1,    -1,    -1,
2429       -1,   201,    -1,    -1,   407,    -1,   409,    -1,   411,   412,
2430      413,    -1,   212,   416,    -1,   418,   157,    -1,    -1,   422,
2431       -1,   221,    -1,   164,   689,   428,    -1,    -1,   157,   199,
2432       -1,    -1,   435,    -1,    -1,    -1,   177,    -1,   179,    -1,
2433      443,   211,    -1,   205,   206,   207,   208,    -1,    -1,    -1,
2434       -1,   716,    -1,    -1,    -1,    -1,    75,    -1,   461,    -1,
2435      201,    -1,    -1,    -1,    -1,    -1,   236,    -1,    -1,    -1,
2436      211,   212,   242,   243,   244,   245,   246,    -1,    -1,    -1,
2437       99,   251,   211,    -1,    -1,    -1,    -1,    -1,   258,   259,
2438       -1,   756,    -1,    -1,   113,    -1,    -1,   116,    -1,    -1,
2439       -1,   242,   505,   244,    -1,    -1,    47,   236,    -1,    -1,
2440      251,    -1,    -1,   242,   243,   244,   245,   246,    -1,    -1,
2441      320,    -1,   251,    -1,    -1,    -1,    47,    -1,    -1,   258,
2442      259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2443       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2444       -1,    -1,    -1,    -1,    -1,   558,    -1,    -1,    -1,    -1,
2445       -1,    -1,    -1,   304,   305,    -1,    -1,    -1,   187,    -1,
2446       -1,   190,    -1,   576,    -1,   375,    -1,    -1,    -1,   120,
2447       -1,    -1,    -1,    -1,    -1,   588,   386,   590,   591,   592,
2448      390,    -1,    -1,    -1,    -1,   365,   396,    -1,   398,   120,
2449       -1,    -1,   372,   403,   374,   375,    -1,   377,    -1,   379,
2450       -1,    -1,   231,    -1,    -1,    -1,   157,    -1,    -1,    -1,
2451       -1,    -1,    -1,    -1,   365,    -1,    -1,    -1,    -1,    -1,
2452       -1,    -1,    -1,   374,   375,    -1,   157,    -1,    -1,   258,
2453      259,    -1,    -1,   372,    -1,   386,   375,    -1,   377,   390,
2454      379,    -1,   422,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2455       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
2456      211,    -1,    -1,   443,    -1,    -1,    -1,    -1,    -1,    -1,
2457       -1,   422,    -1,    -1,   687,    -1,   456,   428,    -1,   430,
2458      211,   461,    -1,   422,   435,   236,    -1,   700,    -1,    -1,
2459       -1,   242,   443,   244,   474,   246,   435,   469,    -1,    -1,
2460      251,    -1,    -1,    -1,   443,   236,    -1,   258,   259,    -1,
2461      461,   242,   243,   244,   245,   246,    -1,   456,    -1,    -1,
2462      251,    -1,   461,    -1,    -1,   505,    -1,   258,   259,   539,
2463       -1,    -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,    -1,
2464       -1,    -1,    -1,    -1,   757,    -1,    -1,    -1,   558,    -1,
2465       -1,    -1,    -1,    -1,   505,    -1,   385,    -1,   387,    -1,
2466       -1,    -1,    -1,    -1,    -1,   575,   505,    -1,    -1,    -1,
2467      580,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   558,    -1,
2468       -1,   561,   562,    -1,    -1,    -1,    -1,    -1,   539,    -1,
2469       -1,    -1,    -1,   573,    -1,    -1,    -1,    -1,    -1,    -1,
2470      429,    -1,    -1,    -1,    -1,    -1,    -1,   558,    -1,    -1,
2471       -1,    -1,   441,    -1,    -1,    -1,    -1,    -1,    -1,   558,
2472       -1,   372,   561,   562,   375,   576,   377,   456,   379,    -1,
2473       -1,    -1,    -1,    -1,   573,    -1,    -1,    -1,    -1,    -1,
2474       -1,   372,    -1,    -1,   375,   474,   377,    -1,   379,    -1,
2475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2477       -1,   422,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2478       -1,    -1,    -1,    -1,    -1,    -1,   658,   659,    -1,    -1,
2479       -1,   422,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2480       -1,    -1,    -1,    -1,   435,   456,    -1,    -1,    -1,   689,
2481      461,    -1,   443,   542,    -1,    -1,    -1,    -1,    -1,    -1,
2482       -1,    -1,    -1,   474,    -1,   456,    -1,    -1,    -1,    -1,
2483      461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2484       -1,    -1,    -1,   474,   573,    -1,   697,   757,    -1,   578,
2485      689,    -1,    -1,     1,   505,     3,     4,     5,     6,    -1,
2486        8,     9,    -1,    -1,   736,   737,    -1,   739,   740,    -1,
2487       -1,    -1,    -1,    -1,   505,    -1,   756,    -1,   607,    -1,
2488       28,   610,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2489      619,   620,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   628,
2490       -1,    -1,    -1,   775,    -1,   777,   757,   558,    -1,   638,
2491      561,   562,   784,   785,    -1,    -1,    -1,   756,    -1,    -1,
2492      649,    -1,   573,    -1,    72,    73,    74,   558,    -1,    -1,
2493      561,   562,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   811,
2494       -1,   813,   573,   815,    -1,   817,    -1,    -1,    -1,    -1,
2495       -1,    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,    -1,
2496       -1,    -1,   110,    -1,    -1,    -1,   838,    -1,   840,    -1,
2497       -1,   119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,
2498       -1,    -1,    -1,    -1,   132,   133,   134,   135,   717,    -1,
2499       -1,    -1,   721,    -1,    -1,    -1,   144,   145,    -1,    -1,
2500       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2502       -1,    -1,    -1,    -1,    -1,   754,    -1,   756,    -1,    -1,
2503       -1,    -1,    -1,    -1,    -1,    -1,   765,     1,   689,     3,
2504        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   689,    -1,
2506       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2507       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2508       44,    45,    46,    47,    48,    49,    50,    51,    -1,    53,
2509       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2510       -1,    -1,    -1,    67,    -1,   756,    -1,    -1,    72,    73,
2511       74,    75,    76,    -1,    78,    -1,    80,    -1,    -1,    83,
2512       84,    -1,    86,    -1,    88,   756,    -1,    -1,    -1,    -1,
2513       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2514      104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2515      114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,
2516      124,    -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2517      134,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
2518      144,   145,     1,    -1,     3,     4,     5,     6,    -1,     8,
2519        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2521       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2522       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2523       49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
2524       59,    60,    61,    62,    63,    -1,    -1,    -1,    67,    -1,
2525       -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    78,
2526       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2528       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2529       -1,   110,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2530      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,
2531       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,    -1,
2532       -1,    -1,    -1,    -1,   143,   144,   145,     1,    -1,     3,
2533        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2534       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2535       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2536       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2537       44,    45,    46,    47,    48,    49,    50,    51,    -1,    53,
2538       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2539       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,
2540       74,    75,    76,    -1,    78,    -1,    80,    -1,    -1,    83,
2541       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
2542       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2543      104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2544      114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,
2545      124,    -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2546      134,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
2547      144,   145,     1,    -1,     3,     4,     5,     6,    -1,     8,
2548        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2550       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2551       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2552       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2553       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2554       -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    -1,
2555       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2556       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2557       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2558       -1,   110,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2559      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,
2560       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,    -1,
2561       -1,    -1,    -1,    -1,   143,   144,   145,     1,    -1,     3,
2562        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2564       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2565       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2566       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
2567       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2568       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,
2569       74,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,
2570       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
2571       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2572      104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2573      114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,
2574      124,    -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2575      134,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
2576      144,   145,     1,    -1,     3,     4,     5,     6,    -1,     8,
2577        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2579       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2580       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2581       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2583       -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    -1,
2584       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2585       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2586       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2587       -1,   110,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2588      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,
2589       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,    -1,
2590       -1,    -1,    -1,    -1,   143,   144,   145,     1,    -1,     3,
2591        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2592       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2593       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2594       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2595       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
2596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2597       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,
2598       74,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,
2599       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
2600       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2601      104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2602      114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,
2603      124,    -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2604      134,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
2605      144,   145,     1,    -1,     3,     4,     5,     6,    -1,     8,
2606        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2607       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2608       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2609       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2610       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2612       -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    -1,
2613       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2616       -1,   110,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2617      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,
2618       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,    -1,
2619       -1,    -1,    -1,    -1,   143,   144,   145,     1,    -1,     3,
2620        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2622       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2623       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2624       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
2625       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2626       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,
2627       74,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,
2628       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
2629       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2630      104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2631      114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,
2632      124,    -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2633      134,   135,     1,    -1,     3,     4,     5,    -1,    -1,   143,
2634      144,   145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2635       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2636       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2637       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2638       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2639       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2640       69,    -1,    -1,    72,    73,    -1,    75,    76,    -1,    -1,
2641       79,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2643       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2644       -1,    -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2645      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,     1,
2646       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2647       -1,    -1,    -1,    -1,   143,    -1,   145,    -1,    -1,    -1,
2648       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2649       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2650       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2651       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2652       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    -1,
2653       72,    73,    -1,    75,    76,    -1,    -1,    79,    80,    -1,
2654       -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,
2655       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
2656       -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,   111,
2657      112,   113,   114,    -1,    -1,    -1,   118,   119,    -1,   121,
2658       -1,    -1,   124,    -1,   126,   127,     1,    -1,     3,     4,
2659        5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2660       -1,   143,    -1,   145,    -1,    -1,    -1,    -1,    -1,    -1,
2661       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2662       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2663       45,    46,    47,    48,    49,    50,    51,    -1,    -1,    -1,
2664       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2665       -1,    -1,    67,    -1,    69,    -1,    -1,    72,    73,    -1,
2666       75,    76,    -1,    -1,    79,    80,    -1,    -1,    83,    84,
2667       -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
2668       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,
2669       -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,
2670       -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,   124,
2671       -1,   126,   127,     1,    -1,     3,     4,     5,    -1,    -1,
2672       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,
2673      145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2674       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2675       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2676       48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,
2677       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
2678       -1,    69,    -1,    -1,    72,    73,    -1,    75,    76,    -1,
2679       -1,    79,    80,    -1,    -1,    83,    84,    -1,    86,    -1,
2680       88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2681       -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,
2682       -1,    -1,    -1,   111,   112,   113,   114,    -1,    -1,    -1,
2683      118,   119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,
2684        1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,
2685       -1,    -1,    -1,    -1,    -1,   143,    -1,   145,    -1,    -1,
2686       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
2687       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2688       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2689       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2690       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
2691       -1,    72,    73,    -1,    75,    76,    -1,    -1,    79,    80,
2692       -1,    -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,
2693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2694      101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,
2695      111,   112,   113,   114,    -1,    -1,    -1,   118,   119,    -1,
2696      121,    -1,    -1,   124,    -1,   126,   127,     1,    -1,     3,
2697        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2698       -1,    -1,   143,    -1,   145,    -1,    -1,    -1,    -1,    -1,
2699       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2700       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2701       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
2702       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2703       -1,    -1,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
2704       -1,    75,    76,    -1,    -1,    79,    80,    -1,    -1,    83,
2705       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
2706       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2707      104,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
2708      114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,
2709      124,    -1,   126,   127,     1,    -1,     3,     4,     5,    -1,
2710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,
2711       -1,   145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2712       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2713       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2714       47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,
2715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2716       67,    -1,    69,    -1,    -1,    72,    73,    -1,    75,    76,
2717       -1,    -1,    79,    80,    -1,    -1,    83,    84,    -1,    86,
2718       -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2719       -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,
2720       -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,    -1,
2721       -1,   118,   119,    -1,   121,    -1,    -1,   124,    -1,   126,
2722      127,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2723       -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,   145,    -1,
2724       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2725       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2726       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2727       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
2729       -1,    -1,    72,    73,    -1,    75,    76,    -1,    -1,    79,
2730       80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,    -1,
2731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2732       -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,
2733       -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,   119,
2734       -1,   121,    -1,    -1,   124,    -1,   126,   127,     1,    -1,
2735        3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2736       -1,    -1,    -1,   143,    -1,   145,    -1,    -1,    -1,    -1,
2737       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2738       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2739       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
2740       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2741       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    -1,    72,
2742       73,    -1,    75,    76,    -1,    -1,    79,    80,    -1,    -1,
2743       83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,
2744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
2745      103,   104,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,
2746      113,   114,    -1,    -1,    -1,   118,   119,    -1,   121,    -1,
2747       -1,   124,    -1,   126,   127,     1,    -1,     3,     4,     5,
2748       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2749      143,    -1,   145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2750       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2751       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2752       46,    47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,
2753       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2754       -1,    67,    -1,    69,    -1,    -1,    72,    73,    -1,    75,
2755       76,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    -1,
2756       86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2757       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,
2758       -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,
2759       -1,    -1,   118,   119,    -1,   121,    -1,    -1,   124,    -1,
2760      126,   127,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2761       -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,   145,
2762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2763       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2764       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2765       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2766       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2767       69,    -1,    -1,    72,    73,    -1,    75,    76,    -1,    -1,
2768       79,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2770       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2771       -1,    -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2772      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,     1,
2773       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2774       -1,    -1,    -1,    -1,   143,    -1,   145,    -1,    -1,    -1,
2775       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2776       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2777       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    -1,
2780       72,    73,    -1,    75,    76,    -1,    -1,    79,    80,    -1,
2781       -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,
2782       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
2783       -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,   111,
2784      112,   113,   114,    -1,    -1,    -1,   118,   119,    -1,   121,
2785       -1,    -1,   124,    -1,   126,   127,     1,    -1,     3,     4,
2786        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2787       -1,   143,    -1,   145,    -1,    -1,    -1,    -1,    -1,    -1,
2788       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2789       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2790       45,    46,    47,    48,    49,    50,    51,    -1,    53,    54,
2791       55,    56,    57,    58,    59,    60,    61,    62,    63,    -1,
2792       -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,    74,
2793       75,    76,    -1,    78,    -1,    80,    -1,    -1,    83,    84,
2794       -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
2795       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,
2796       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
2797       -1,    -1,    -1,   118,   119,    -1,   121,    -1,    -1,   124,
2798       -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,   134,
2799      135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   144,
2800        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,
2803       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2804       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
2805        9,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
2806       61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2807       -1,    72,    73,    74,    -1,    -1,    -1,     1,    -1,     3,
2808        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2809       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2810       -1,    -1,   103,   104,    28,    -1,    -1,    -1,    -1,   110,
2811       -1,    -1,    -1,    72,    73,    74,    -1,    -1,   119,    -1,
2812      121,    -1,    -1,   124,    -1,   126,   127,    -1,    -1,    -1,
2813       -1,   132,   133,   134,   135,    -1,    -1,    -1,    -1,    -1,
2814       -1,    -1,   143,   144,   103,   104,    -1,    -1,    72,    73,
2815       74,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2816      119,    -1,   121,    -1,    -1,   124,   125,   126,   127,    -1,
2817       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,   103,
2818      104,    -1,    -1,    -1,    -1,   144,   110,    -1,    -1,    -1,
2819       -1,    -1,    -1,    -1,    -1,   119,    -1,   121,    -1,    -1,
2820      124,    -1,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2821      134,   135,    -1,    -1,     1,    -1,     3,     4,     5,     6,
2822      144,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2823       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2824       -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2825       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2827       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2828       -1,    -1,    -1,    -1,    -1,    72,    73,    74,    -1,    -1,
2829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2831       -1,    -1,    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,
2832       -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
2833       -1,    -1,   119,    -1,   121,    -1,    -1,   124,    -1,   126,
2834      127,    -1,    -1,    -1,    -1,   132,   133,   134,   135,     1,
2835       -1,     3,     4,     5,    -1,    -1,    -1,   144,    -1,    -1,
2836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2837       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2838       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2839       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2840       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
2841        5,     6,    -1,     8,     9,    67,    -1,    69,    -1,    -1,
2842       72,    73,    -1,    75,    76,    -1,    -1,    79,    80,    -1,
2843       -1,    83,    84,    28,    86,    -1,    88,    -1,    -1,    -1,
2844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
2845       -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,   111,
2846      112,   113,   114,    -1,    -1,    -1,   118,   119,    -1,   121,
2847       -1,    -1,   124,    -1,   126,   127,    -1,    72,    73,    74,
2848        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2849       -1,   143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   103,   104,
2851       -1,    -1,    -1,    -1,     1,   110,     3,     4,     5,     6,
2852       -1,     8,     9,    -1,   119,    -1,   121,    -1,    -1,   124,
2853      125,   126,   127,    -1,    -1,    -1,    -1,   132,   133,   134,
2854      135,    28,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,
2855       -1,    72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,
2856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2858       -1,    -1,   103,   104,    -1,    72,    73,    74,    -1,   110,
2859       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,
2860      121,    -1,    -1,   124,   125,   126,   127,    -1,    -1,    -1,
2861       -1,   132,   133,   134,   135,    -1,   103,   104,    -1,    -1,
2862       -1,    -1,   143,   110,    -1,    -1,    -1,    -1,    -1,    -1,
2863       -1,    -1,   119,     3,   121,    -1,    -1,   124,    -1,   126,
2864      127,    -1,    -1,    -1,    -1,   132,   133,   134,   135,    -1,
2865       -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    28,    29,
2866       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2867       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2868       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
2870       -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
2871       80,    -1,    -1,    -1,    -1,    -1,    86,    -1,    88,    -1,
2872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2873       -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2874       -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,    -1,
2875        3,   121,    -1,    -1,   124,    -1,    -1,    -1,    -1,   129,
2876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2877       -1,    -1,    -1,    -1,   144,    28,    29,    30,    31,    32,
2878       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2879       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
2880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2881       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
2882       -1,    -1,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,
2883       83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,
2884       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
2885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,
2886      113,   114,    -1,    -1,    -1,   118,     3,    -1,   121,    -1,
2887       -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2888       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,
2889      143,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2890       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2891       47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,
2892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2893       67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
2894       -1,    -1,    -1,    80,    -1,    -1,    83,    84,    -1,    86,
2895       -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2896       -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
2897       -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,    -1,
2898       -1,   118,     3,    -1,   121,    -1,    -1,   124,    -1,    -1,
2899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2900       -1,    -1,    -1,    -1,    -1,    -1,   143,    28,    29,    30,
2901       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2902       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2903       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2904       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
2905       -1,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    80,
2906       -1,    -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,
2907       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2908      101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2909      111,   112,   113,   114,    -1,    -1,    -1,   118,    -1,    -1,
2910      121,    -1,     1,   124,     3,     4,     5,     6,   129,     8,
2911        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2912       -1,   142,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2913       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2914       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2915       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2917       -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    -1,
2918       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2919       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2920       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2921       -1,   110,   111,   112,   113,   114,    -1,    -1,    -1,   118,
2922      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,
2923       -1,    -1,    -1,   132,   133,   134,   135,     1,    -1,     3,
2924        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2926       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
2927       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2928       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
2929       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2930       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    73,
2931       74,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,
2932       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
2933       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
2934      104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2935      114,    -1,    -1,    -1,    -1,   119,    -1,   121,    -1,    -1,
2936      124,   125,   126,   127,    -1,    -1,    -1,    -1,   132,   133,
2937      134,   135,     1,    -1,     3,     4,     5,     6,    -1,     8,
2938        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2939       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2940       -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,
2941       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2942       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2943       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2944       -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    -1,
2945       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
2946        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2947       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
2948       -1,   110,   111,   112,   113,   114,    -1,    28,    -1,    -1,
2949      119,    -1,   121,    -1,    -1,   124,   125,   126,   127,    -1,
2950       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,    -1,
2951       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
2952        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2953       -1,    72,    73,    74,    75,    76,    -1,    -1,    -1,    80,
2954       -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,     1,
2955       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2956       -1,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,
2957      111,   112,    -1,    -1,    -1,    -1,    28,    -1,   119,    -1,
2958      121,    -1,    -1,   124,   125,   126,   127,    72,    73,    74,
2959       -1,   132,   133,   134,   135,    -1,    -1,    -1,    -1,    -1,
2960       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
2962       72,    73,    74,    -1,    -1,   110,    -1,    -1,    -1,    -1,
2963       -1,    -1,    -1,    -1,   119,    -1,   121,    -1,    -1,   124,
2964       -1,   126,   127,    -1,    -1,   130,    -1,   132,   133,   134,
2965      135,   103,   104,    -1,    -1,    -1,    -1,     1,   110,     3,
2966        4,     5,     6,    -1,     8,     9,    -1,   119,    -1,   121,
2967       -1,    -1,   124,    -1,   126,   127,    -1,    -1,   130,    -1,
2968      132,   133,   134,   135,    28,    -1,    -1,    -1,    -1,    -1,
2969        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,
2972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
2973       74,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2974       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2975       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   103,
2976      104,    72,    73,    74,    -1,    -1,   110,    -1,    -1,    -1,
2977       -1,    -1,    -1,    -1,    -1,   119,    -1,   121,    -1,    -1,
2978      124,    -1,   126,   127,    -1,    -1,   130,    -1,   132,   133,
2979      134,   135,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,
2980       -1,    -1,    72,    73,    74,    -1,    -1,    -1,   119,    -1,
2981      121,    -1,    -1,   124,   125,   126,   127,    -1,    -1,    -1,
2982       -1,   132,   133,   134,   135,    -1,    -1,    -1,    -1,    -1,
2983       -1,    -1,    -1,   103,   104,    -1,    -1,    -1,    -1,     1,
2984      110,     3,     4,     5,     6,    -1,     8,     9,    -1,   119,
2985       -1,   121,    -1,    -1,   124,   125,   126,   127,    -1,    -1,
2986       -1,    -1,   132,   133,   134,   135,    28,    -1,    -1,    -1,
2987       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
2988        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2989       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2990       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2991       72,    73,    74,     1,    -1,     3,     4,     5,     6,    -1,
2992        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2994       28,   103,   104,    72,    73,    74,    -1,    -1,   110,    -1,
2995       -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,   121,
2996       -1,    -1,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
2997      132,   133,   134,   135,   103,   104,    -1,    -1,    -1,    -1,
2998       -1,   110,    -1,    -1,    72,    73,    74,    -1,    -1,    -1,
2999      119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,
3000       -1,    -1,    -1,   132,   133,   134,   135,    -1,    -1,    -1,
3001       -1,    -1,    -1,    -1,    -1,   103,   104,    -1,    -1,    -1,
3002       -1,     1,   110,     3,     4,     5,     6,    -1,     8,     9,
3003       -1,   119,    -1,   121,    -1,    -1,   124,    -1,   126,   127,
3004       -1,    -1,    -1,    -1,   132,   133,   134,   135,    28,    -1,
3005       -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,
3006       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3008       -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3009       -1,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,    -1,
3010       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3012       -1,    -1,    -1,   103,   104,    72,    73,    74,    -1,    -1,
3013      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,
3014       -1,   121,    -1,    -1,   124,    -1,   126,   127,    -1,    -1,
3015       -1,    -1,   132,   133,   134,   135,   103,   104,    -1,    -1,
3016       -1,    -1,    -1,   110,     3,    -1,    -1,    -1,    -1,    -1,
3017       -1,    -1,   119,    -1,   121,    -1,    -1,   124,    -1,   126,
3018      127,    -1,    -1,    -1,    -1,   132,   133,   134,   135,    28,
3019       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3020       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3021       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3022       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3023       -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,
3024       -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,
3025       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3026       -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,     3,
3027       -1,    -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,
3028       -1,    -1,   121,    -1,    -1,   124,    -1,    -1,    -1,    -1,
3029      129,    -1,    -1,   132,    28,    29,    30,    31,    32,    33,
3030       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3031       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
3032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3033       -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    -1,    -1,
3034       -1,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,
3035       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
3036       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
3037       -1,     3,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
3038      114,    -1,    -1,    -1,   118,    -1,    -1,   121,    -1,    -1,
3039      124,   125,    -1,    -1,    -1,   129,    28,    29,    30,    31,
3040       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3041       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3042       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3043       -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,
3044       -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    80,    -1,
3045       -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,
3046       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
3047       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,   111,
3048      112,   113,   114,    -1,    -1,    -1,   118,    -1,    -1,   121,
3049       -1,    -1,   124,   125,    -1,    -1,    -1,   129,    28,    29,
3050       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3051       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3052       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3053       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3054       -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
3055       80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,    -1,
3056       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3057       -1,   101,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
3058       -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,    -1,
3059       -1,   121,    -1,    -1,   124,    -1,    -1,    -1,    -1,   129,
3060       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3061       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3062       48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,
3063       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3064       -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    -1,
3065       -1,    -1,    80,    -1,    -1,    83,    84,    -1,    86,    -1,
3066       88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3067       -1,    -1,    -1,   101,    -1,    -1,    -1,     3,    -1,    -1,
3068       -1,    -1,    -1,   111,   112,   113,   114,    -1,    -1,    -1,
3069      118,    -1,    -1,   121,    -1,    -1,   124,    -1,    -1,    -1,
3070       -1,   129,    28,    29,    30,    31,    32,    33,    34,    35,
3071       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3072       46,    47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,
3073       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3074       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
3075       76,    -1,    -1,    -1,    80,    -1,    -1,    83,    84,    -1,
3076       86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3077       -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,     3,
3078       -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,
3079       -1,    -1,   118,    -1,    -1,   121,    -1,    -1,   124,    -1,
3080       -1,    -1,    -1,   129,    28,    29,    30,    31,    32,    33,
3081       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3082       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
3083       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3084       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
3085       -1,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    -1,
3086       -1,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
3087       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
3088       -1,     3,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
3089      114,    -1,    -1,    -1,   118,    -1,    -1,   121,    -1,    -1,
3090      124,    -1,    -1,    -1,    -1,   129,    28,    29,    30,    31,
3091       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3092       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3093       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3094       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
3095       -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    80,    -1,
3096       -1,    -1,    -1,    -1,    86,    -1,    88,    -1,    -1,    -1,
3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,   101,
3098       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
3099      112,   113,   114,    -1,    -1,    -1,   118,    -1,    -1,   121,
3100       -1,    -1,   124,    28,    -1,    -1,    -1,   129,    -1,    34,
3101       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3102       45,    46,    47,    48,    49,    50,    51,    -1,    -1,    -1,
3103       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3104       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3105       75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,    84,
3106       -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
3107       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
3108        3,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,
3109       -1,    -1,    -1,    -1,    -1,    -1,   121,    -1,    -1,   124,
3110       -1,    -1,    -1,    -1,   129,    28,    29,    30,    31,    32,
3111       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3112       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
3113       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3114       -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    -1,
3115       -1,    -1,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,
3116       83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,
3117       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,     3,
3118       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,
3119      113,   114,    -1,    -1,    -1,   118,    -1,    -1,   121,    -1,
3120       -1,   124,   125,    -1,    28,    29,    30,    31,    32,    33,
3121       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3122       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
3123       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3124       -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    -1,    -1,
3125       -1,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,
3126       84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,
3127       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,     3,    -1,
3128       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,
3129      114,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
3130       -1,   125,    -1,    28,    29,    30,    31,    32,    33,    34,
3131       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3132       45,    46,    47,    48,    49,    50,    51,    -1,    -1,    -1,
3133       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3134       -1,    66,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3135       75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,    84,
3136       -1,    86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
3137       -1,    -1,    -1,    -1,    -1,    -1,   101,     3,    -1,    -1,
3138       -1,    -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,
3139       -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
3140      125,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
3141       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3142       46,    47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,
3143       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3144       66,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
3145       76,    -1,    -1,    -1,    80,    -1,    -1,    83,    84,    -1,
3146       86,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3147       -1,    -1,    -1,    -1,    -1,   101,     3,    -1,    -1,    -1,
3148       -1,    -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,
3149       -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,   125,
3150       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3151       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3152       47,    48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,
3153       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3154       67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
3155       -1,    -1,    -1,    80,    -1,    -1,    83,    84,    -1,    86,
3156       -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3157       -1,    -1,    -1,     3,   101,    -1,    -1,    -1,    -1,    -1,
3158       -1,    -1,    -1,    -1,   111,   112,   113,   114,    -1,    -1,
3159       -1,   118,    -1,    -1,   121,    -1,    -1,   124,    28,    29,
3160       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3161       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3162       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3164       -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
3165       80,    -1,    -1,    83,    84,    -1,    86,    -1,    88,    -1,
3166       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3167        3,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3168       -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,    -1,
3169       -1,    -1,    -1,    -1,   124,    28,    29,    30,    31,    32,
3170       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3171       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3173       -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    -1,
3174       -1,    -1,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,
3175       83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,    -1,
3176       -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
3177       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,   112,
3178      113,   114,    -1,    -1,    -1,   118,    28,    29,    30,    31,
3179       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3180       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
3181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3182       -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,
3183       -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    80,    -1,
3184       -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,    -1,
3185       -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,   101,
3186       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
3187      112,   113,   114,    -1,    -1,    -1,   118,    28,    29,    30,
3188       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3189       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3190       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3191       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
3192       -1,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    80,
3193       -1,    -1,    83,    84,    -1,    86,    -1,    88,    -1,    -1,
3194       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3195      101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3196      111,   112,   113,   114,    -1,    -1,    -1,   118,    28,    29,
3197       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3198       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3199       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3201       -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
3202       80,    -1,    -1,    -1,    -1,    -1,    86,    -1,    88,    -1,
3203       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3204       -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3205       -1,   111,   112,   113,   114,    -1,    -1,    -1,   118,    28,
3206       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3207       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3208       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3209       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3210       -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,
3211       -1,    80,    -1,    -1,    -1,    -1,    -1,    86,    -1,    88,
3212       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3213       -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3214       -1,    -1,   111,   112,   113,   114,    -1,    -1,    -1,   118
3215 };
3216
3217 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3218    symbol of state STATE-NUM.  */
3219 static const yytype_uint16 yystos[] =
3220 {
3221        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
3222       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3223       46,    47,    48,    49,    50,    51,    66,    67,    75,    76,
3224       80,    83,    84,    86,    88,   101,   111,   112,   113,   114,
3225      118,   147,   148,   149,   150,   151,   156,   186,   187,   192,
3226      193,   194,   198,   199,   200,   201,   203,   204,   210,   218,
3227      219,   237,   268,   144,   151,   156,   124,   124,   122,     1,
3228      121,   122,   156,   121,   124,   129,   132,   147,   156,   192,
3229      193,   200,   201,   203,   219,   222,   224,   226,   227,   229,
3230      230,   231,   234,   124,   144,   150,   151,   156,   193,   141,
3231        0,   156,   220,   221,   144,   144,     1,     4,     5,     6,
3232        8,     9,    72,    73,    74,   103,   104,   110,   119,   121,
3233      124,   126,   127,   132,   133,   134,   135,   149,   156,   157,
3234      158,   159,   162,   163,   164,   165,   166,   167,   168,   169,
3235      170,   171,   172,   173,   174,   175,   176,   177,   178,   255,
3236      258,   149,   156,   149,   156,   163,   168,   186,   205,   206,
3237      207,   208,   209,   200,   233,   234,   125,   156,   224,   226,
3238      235,   236,   237,   130,   149,   177,   181,   124,   156,   193,
3239      226,   234,   222,   227,   230,   234,   124,   129,   193,   124,
3240      129,   125,   156,   235,   238,   193,   222,   231,   124,    69,
3241       79,   124,   126,   143,   145,   152,   153,   154,   155,   156,
3242      159,   186,   193,   211,   212,   213,   214,   215,   227,   228,
3243      230,   234,   257,   258,   260,   144,   144,   144,   151,   156,
3244      181,   142,   131,   145,   220,   220,   124,   163,   124,   163,
3245      163,   156,   186,   181,   186,   181,   124,   163,   125,   178,
3246      180,   183,   200,   201,   203,   219,   239,   255,   144,   144,
3247        7,     8,     9,   124,   128,   129,   156,    18,    19,    20,
3248       21,    22,    23,    24,    25,    26,    27,   142,   179,   165,
3249      121,   136,   137,   133,   134,    10,    11,   168,    12,    13,
3250      122,   123,    14,    15,   132,   138,   139,    16,    17,   140,
3251      125,   125,   125,   142,   124,   193,   224,   234,   142,    11,
3252      123,   131,   200,   234,   125,   125,   125,   131,   130,   130,
3253      234,   222,   231,   125,   235,   130,   149,   181,   130,   149,
3254      181,   125,   125,   131,     3,    28,    45,    75,    76,   125,
3255      195,   196,   197,    34,    35,    36,    37,    38,    39,    40,
3256       41,    42,    43,    44,    47,    48,    51,    67,    86,    88,
3257      101,   113,   114,   151,   156,   188,   192,   200,   202,   204,
3258      210,   218,   186,   228,   121,   124,   156,   186,   144,   249,
3259      250,   250,   250,   143,   250,   142,   124,   141,   143,   156,
3260      193,   216,   217,   227,   228,   232,   234,   230,   234,   145,
3261      215,   131,   143,   193,   230,   143,   143,   211,   145,   211,
3262      145,   211,   144,   144,   181,   221,   143,   145,   143,   145,
3263      147,   156,   184,   200,   201,   203,   219,   240,   124,   129,
3264      193,   223,   225,   234,   156,   189,   192,   200,   202,   203,
3265      219,   129,   225,   189,   240,   125,   131,   156,   200,   201,
3266      203,   219,   224,   125,   128,   143,   144,   145,   159,   160,
3267      177,   185,   192,   200,   201,   203,   219,   242,   259,   261,
3268      262,   263,   264,   265,   266,   267,   145,   267,   156,   125,
3269      160,   161,   178,   156,   180,   160,   178,   165,   165,   165,
3270      166,   166,   167,   167,   168,   168,   168,   170,   170,   171,
3271      172,   173,   174,   175,   180,   186,   206,   207,   234,   206,
3272      207,   208,    52,   237,   125,   130,   130,   130,   130,   156,
3273      125,   124,   125,   131,   196,   151,   156,   124,   124,   122,
3274      144,   156,   192,   200,   202,   224,   156,   193,   228,   193,
3275      124,   145,    53,    54,    55,    56,    57,    58,    59,    60,
3276       61,    62,    63,    78,   143,   156,   180,   182,   185,   244,
3277      245,   246,   247,   248,   250,   251,   252,   253,   254,   256,
3278      242,   125,   181,   144,   227,   234,   131,   143,   141,   198,
3279      193,   227,   230,   212,   230,   145,   145,   145,   211,   145,
3280      211,   211,   211,   147,   200,   201,   203,   219,   224,   125,
3281      125,   225,   235,   181,   223,   234,   124,   129,   223,   122,
3282      129,   156,   192,   200,   202,   203,   219,   225,   181,   129,
3283      129,   225,   125,   178,   165,   255,   145,   267,   142,   156,
3284      192,   200,   201,   203,   219,   228,   232,   250,   131,   143,
3285      143,   262,   264,   265,   145,   145,   125,   131,   130,   141,
3286      224,   180,   125,   196,   178,   149,   156,   209,    70,    71,
3287      145,   122,   144,   144,   156,   151,   156,   125,   181,   141,
3288      124,   124,   124,   244,   124,   156,   143,   143,   143,   180,
3289      156,   141,   143,   143,   156,   190,   191,   226,   182,   247,
3290      182,   244,   145,   143,   145,   267,   227,   193,   217,   227,
3291      234,   181,   227,   145,   145,   145,   145,   125,   125,   130,
3292      223,   125,   235,   181,   209,   181,   122,   129,   130,   181,
3293      181,   129,   145,   242,   263,   160,   178,   177,   125,   125,
3294      125,   125,   123,   250,   250,   209,    70,    71,   145,    70,
3295       71,   145,   144,   141,   244,   180,   180,   125,   180,    57,
3296      125,   251,   143,   143,   142,   244,   144,   131,   143,   142,
3297      145,   227,   234,   193,   227,   141,   125,   130,   123,   130,
3298      209,   181,   130,   130,   181,    71,   145,    70,   145,   123,
3299      250,   250,   250,   250,    70,    71,   145,   244,   125,   125,
3300      244,   125,   124,   244,   125,   251,   181,   145,   267,   191,
3301      144,   178,   241,   227,   227,   181,   123,   130,   130,   250,
3302      250,    71,   145,    70,   145,    71,   145,    70,   145,   250,
3303      250,   244,   244,   244,   180,   244,   125,   180,   143,   145,
3304      241,   243,   145,   145,   250,   250,   250,   250,    71,   145,
3305       70,   145,    65,   125,   244,   125,   131,   145,   145,   145,
3306      145,   145,   250,   250,   244,   143,   244,   145,   241,   145,
3307      145
3308 };
3309
3310 #define yyerrok         (yyerrstatus = 0)
3311 #define yyclearin       (yychar = YYEMPTY)
3312 #define YYEMPTY         (-2)
3313 #define YYEOF           0
3314
3315 #define YYACCEPT        goto yyacceptlab
3316 #define YYABORT         goto yyabortlab
3317 #define YYERROR         goto yyerrorlab
3318
3319
3320 /* Like YYERROR except do call yyerror.  This remains here temporarily
3321    to ease the transition to the new meaning of YYERROR, for GCC.
3322    Once GCC version 2 has supplanted version 1, this can go.  However,
3323    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
3324    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
3325    discussed.  */
3326
3327 #define YYFAIL          goto yyerrlab
3328 #if defined YYFAIL
3329   /* This is here to suppress warnings from the GCC cpp's
3330      -Wunused-macros.  Normally we don't worry about that warning, but
3331      some users do, and we want to make it easy for users to remove
3332      YYFAIL uses, which will produce warnings from Bison 2.5.  */
3333 #endif
3334
3335 #define YYRECOVERING()  (!!yyerrstatus)
3336
3337 #define YYBACKUP(Token, Value)                                  \
3338 do                                                              \
3339   if (yychar == YYEMPTY && yylen == 1)                          \
3340     {                                                           \
3341       yychar = (Token);                                         \
3342       yylval = (Value);                                         \
3343       yytoken = YYTRANSLATE (yychar);                           \
3344       YYPOPSTACK (1);                                           \
3345       goto yybackup;                                            \
3346     }                                                           \
3347   else                                                          \
3348     {                                                           \
3349       yyerror (YY_("syntax error: cannot back up")); \
3350       YYERROR;                                                  \
3351     }                                                           \
3352 while (YYID (0))
3353
3354
3355 #define YYTERROR        1
3356 #define YYERRCODE       256
3357
3358
3359 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3360    If N is 0, then set CURRENT to the empty location which ends
3361    the previous symbol: RHS[0] (always defined).  */
3362
3363 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3364 #ifndef YYLLOC_DEFAULT
3365 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
3366     do                                                                  \
3367       if (YYID (N))                                                    \
3368         {                                                               \
3369           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
3370           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
3371           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
3372           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
3373         }                                                               \
3374       else                                                              \
3375         {                                                               \
3376           (Current).first_line   = (Current).last_line   =              \
3377             YYRHSLOC (Rhs, 0).last_line;                                \
3378           (Current).first_column = (Current).last_column =              \
3379             YYRHSLOC (Rhs, 0).last_column;                              \
3380         }                                                               \
3381     while (YYID (0))
3382 #endif
3383
3384
3385 /* YY_LOCATION_PRINT -- Print the location on the stream.
3386    This macro was not mandated originally: define only if we know
3387    we won't break user code: when these are the locations we know.  */
3388
3389 #ifndef YY_LOCATION_PRINT
3390 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3391 #  define YY_LOCATION_PRINT(File, Loc)                  \
3392      fprintf (File, "%d.%d-%d.%d",                      \
3393               (Loc).first_line, (Loc).first_column,     \
3394               (Loc).last_line,  (Loc).last_column)
3395 # else
3396 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3397 # endif
3398 #endif
3399
3400
3401 /* YYLEX -- calling `yylex' with the right arguments.  */
3402
3403 #ifdef YYLEX_PARAM
3404 # define YYLEX yylex (YYLEX_PARAM)
3405 #else
3406 # define YYLEX yylex ()
3407 #endif
3408
3409 /* Enable debugging if requested.  */
3410 #if YYDEBUG
3411
3412 # ifndef YYFPRINTF
3413 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3414 #  define YYFPRINTF fprintf
3415 # endif
3416
3417 # define YYDPRINTF(Args)                        \
3418 do {                                            \
3419   if (yydebug)                                  \
3420     YYFPRINTF Args;                             \
3421 } while (YYID (0))
3422
3423 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3424 do {                                                                      \
3425   if (yydebug)                                                            \
3426     {                                                                     \
3427       YYFPRINTF (stderr, "%s ", Title);                                   \
3428       yy_symbol_print (stderr,                                            \
3429                   Type, Value, Location); \
3430       YYFPRINTF (stderr, "\n");                                           \
3431     }                                                                     \
3432 } while (YYID (0))
3433
3434
3435 /*--------------------------------.
3436 | Print this symbol on YYOUTPUT.  |
3437 `--------------------------------*/
3438
3439 /*ARGSUSED*/
3440 #if (defined __STDC__ || defined __C99__FUNC__ \
3441      || defined __cplusplus || defined _MSC_VER)
3442 static void
3443 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3444 #else
3445 static void
3446 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
3447     FILE *yyoutput;
3448     int yytype;
3449     YYSTYPE const * const yyvaluep;
3450     YYLTYPE const * const yylocationp;
3451 #endif
3452 {
3453   if (!yyvaluep)
3454     return;
3455   YYUSE (yylocationp);
3456 # ifdef YYPRINT
3457   if (yytype < YYNTOKENS)
3458     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3459 # else
3460   YYUSE (yyoutput);
3461 # endif
3462   switch (yytype)
3463     {
3464       default:
3465         break;
3466     }
3467 }
3468
3469
3470 /*--------------------------------.
3471 | Print this symbol on YYOUTPUT.  |
3472 `--------------------------------*/
3473
3474 #if (defined __STDC__ || defined __C99__FUNC__ \
3475      || defined __cplusplus || defined _MSC_VER)
3476 static void
3477 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3478 #else
3479 static void
3480 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
3481     FILE *yyoutput;
3482     int yytype;
3483     YYSTYPE const * const yyvaluep;
3484     YYLTYPE const * const yylocationp;
3485 #endif
3486 {
3487   if (yytype < YYNTOKENS)
3488     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3489   else
3490     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3491
3492   YY_LOCATION_PRINT (yyoutput, *yylocationp);
3493   YYFPRINTF (yyoutput, ": ");
3494   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
3495   YYFPRINTF (yyoutput, ")");
3496 }
3497
3498 /*------------------------------------------------------------------.
3499 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3500 | TOP (included).                                                   |
3501 `------------------------------------------------------------------*/
3502
3503 #if (defined __STDC__ || defined __C99__FUNC__ \
3504      || defined __cplusplus || defined _MSC_VER)
3505 static void
3506 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3507 #else
3508 static void
3509 yy_stack_print (yybottom, yytop)
3510     yytype_int16 *yybottom;
3511     yytype_int16 *yytop;
3512 #endif
3513 {
3514   YYFPRINTF (stderr, "Stack now");
3515   for (; yybottom <= yytop; yybottom++)
3516     {
3517       int yybot = *yybottom;
3518       YYFPRINTF (stderr, " %d", yybot);
3519     }
3520   YYFPRINTF (stderr, "\n");
3521 }
3522
3523 # define YY_STACK_PRINT(Bottom, Top)                            \
3524 do {                                                            \
3525   if (yydebug)                                                  \
3526     yy_stack_print ((Bottom), (Top));                           \
3527 } while (YYID (0))
3528
3529
3530 /*------------------------------------------------.
3531 | Report that the YYRULE is going to be reduced.  |
3532 `------------------------------------------------*/
3533
3534 #if (defined __STDC__ || defined __C99__FUNC__ \
3535      || defined __cplusplus || defined _MSC_VER)
3536 static void
3537 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3538 #else
3539 static void
3540 yy_reduce_print (yyvsp, yylsp, yyrule)
3541     YYSTYPE *yyvsp;
3542     YYLTYPE *yylsp;
3543     int yyrule;
3544 #endif
3545 {
3546   int yynrhs = yyr2[yyrule];
3547   int yyi;
3548   unsigned long int yylno = yyrline[yyrule];
3549   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3550              yyrule - 1, yylno);
3551   /* The symbols being reduced.  */
3552   for (yyi = 0; yyi < yynrhs; yyi++)
3553     {
3554       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3555       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3556                        &(yyvsp[(yyi + 1) - (yynrhs)])
3557                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3558       YYFPRINTF (stderr, "\n");
3559     }
3560 }
3561
3562 # define YY_REDUCE_PRINT(Rule)          \
3563 do {                                    \
3564   if (yydebug)                          \
3565     yy_reduce_print (yyvsp, yylsp, Rule); \
3566 } while (YYID (0))
3567
3568 /* Nonzero means print parse trace.  It is left uninitialized so that
3569    multiple parsers can coexist.  */
3570 int yydebug;
3571 #else /* !YYDEBUG */
3572 # define YYDPRINTF(Args)
3573 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3574 # define YY_STACK_PRINT(Bottom, Top)
3575 # define YY_REDUCE_PRINT(Rule)
3576 #endif /* !YYDEBUG */
3577
3578
3579 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3580 #ifndef YYINITDEPTH
3581 # define YYINITDEPTH 200
3582 #endif
3583
3584 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3585    if the built-in stack extension method is used).
3586
3587    Do not make this value too large; the results are undefined if
3588    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3589    evaluated with infinite-precision integer arithmetic.  */
3590
3591 #ifndef YYMAXDEPTH
3592 # define YYMAXDEPTH 10000
3593 #endif
3594
3595 \f
3596
3597 #if YYERROR_VERBOSE
3598
3599 # ifndef yystrlen
3600 #  if defined __GLIBC__ && defined _STRING_H
3601 #   define yystrlen strlen
3602 #  else
3603 /* Return the length of YYSTR.  */
3604 #if (defined __STDC__ || defined __C99__FUNC__ \
3605      || defined __cplusplus || defined _MSC_VER)
3606 static YYSIZE_T
3607 yystrlen (const char *yystr)
3608 #else
3609 static YYSIZE_T
3610 yystrlen (yystr)
3611     const char *yystr;
3612 #endif
3613 {
3614   YYSIZE_T yylen;
3615   for (yylen = 0; yystr[yylen]; yylen++)
3616     continue;
3617   return yylen;
3618 }
3619 #  endif
3620 # endif
3621
3622 # ifndef yystpcpy
3623 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3624 #   define yystpcpy stpcpy
3625 #  else
3626 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3627    YYDEST.  */
3628 #if (defined __STDC__ || defined __C99__FUNC__ \
3629      || defined __cplusplus || defined _MSC_VER)
3630 static char *
3631 yystpcpy (char *yydest, const char *yysrc)
3632 #else
3633 static char *
3634 yystpcpy (yydest, yysrc)
3635     char *yydest;
3636     const char *yysrc;
3637 #endif
3638 {
3639   char *yyd = yydest;
3640   const char *yys = yysrc;
3641
3642   while ((*yyd++ = *yys++) != '\0')
3643     continue;
3644
3645   return yyd - 1;
3646 }
3647 #  endif
3648 # endif
3649
3650 # ifndef yytnamerr
3651 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3652    quotes and backslashes, so that it's suitable for yyerror.  The
3653    heuristic is that double-quoting is unnecessary unless the string
3654    contains an apostrophe, a comma, or backslash (other than
3655    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3656    null, do not copy; instead, return the length of what the result
3657    would have been.  */
3658 static YYSIZE_T
3659 yytnamerr (char *yyres, const char *yystr)
3660 {
3661   if (*yystr == '"')
3662     {
3663       YYSIZE_T yyn = 0;
3664       char const *yyp = yystr;
3665
3666       for (;;)
3667         switch (*++yyp)
3668           {
3669           case '\'':
3670           case ',':
3671             goto do_not_strip_quotes;
3672
3673           case '\\':
3674             if (*++yyp != '\\')
3675               goto do_not_strip_quotes;
3676             /* Fall through.  */
3677           default:
3678             if (yyres)
3679               yyres[yyn] = *yyp;
3680             yyn++;
3681             break;
3682
3683           case '"':
3684             if (yyres)
3685               yyres[yyn] = '\0';
3686             return yyn;
3687           }
3688     do_not_strip_quotes: ;
3689     }
3690
3691   if (! yyres)
3692     return yystrlen (yystr);
3693
3694   return yystpcpy (yyres, yystr) - yyres;
3695 }
3696 # endif
3697
3698 /* Copy into YYRESULT an error message about the unexpected token
3699    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3700    including the terminating null byte.  If YYRESULT is null, do not
3701    copy anything; just return the number of bytes that would be
3702    copied.  As a special case, return 0 if an ordinary "syntax error"
3703    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3704    size calculation.  */
3705 static YYSIZE_T
3706 yysyntax_error (char *yyresult, int yystate, int yychar)
3707 {
3708   int yyn = yypact[yystate];
3709
3710   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3711     return 0;
3712   else
3713     {
3714       int yytype = YYTRANSLATE (yychar);
3715       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3716       YYSIZE_T yysize = yysize0;
3717       YYSIZE_T yysize1;
3718       int yysize_overflow = 0;
3719       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3720       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3721       int yyx;
3722
3723 # if 0
3724       /* This is so xgettext sees the translatable formats that are
3725          constructed on the fly.  */
3726       YY_("syntax error, unexpected %s");
3727       YY_("syntax error, unexpected %s, expecting %s");
3728       YY_("syntax error, unexpected %s, expecting %s or %s");
3729       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3730       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3731 # endif
3732       char *yyfmt;
3733       char const *yyf;
3734       static char const yyunexpected[] = "syntax error, unexpected %s";
3735       static char const yyexpecting[] = ", expecting %s";
3736       static char const yyor[] = " or %s";
3737       char yyformat[sizeof yyunexpected
3738                     + sizeof yyexpecting - 1
3739                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3740                        * (sizeof yyor - 1))];
3741       char const *yyprefix = yyexpecting;
3742
3743       /* Start YYX at -YYN if negative to avoid negative indexes in
3744          YYCHECK.  */
3745       int yyxbegin = yyn < 0 ? -yyn : 0;
3746
3747       /* Stay within bounds of both yycheck and yytname.  */
3748       int yychecklim = YYLAST - yyn + 1;
3749       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3750       int yycount = 1;
3751
3752       yyarg[0] = yytname[yytype];
3753       yyfmt = yystpcpy (yyformat, yyunexpected);
3754
3755       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3756         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3757           {
3758             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3759               {
3760                 yycount = 1;
3761                 yysize = yysize0;
3762                 yyformat[sizeof yyunexpected - 1] = '\0';
3763                 break;
3764               }
3765             yyarg[yycount++] = yytname[yyx];
3766             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3767             yysize_overflow |= (yysize1 < yysize);
3768             yysize = yysize1;
3769             yyfmt = yystpcpy (yyfmt, yyprefix);
3770             yyprefix = yyor;
3771           }
3772
3773       yyf = YY_(yyformat);
3774       yysize1 = yysize + yystrlen (yyf);
3775       yysize_overflow |= (yysize1 < yysize);
3776       yysize = yysize1;
3777
3778       if (yysize_overflow)
3779         return YYSIZE_MAXIMUM;
3780
3781       if (yyresult)
3782         {
3783           /* Avoid sprintf, as that infringes on the user's name space.
3784              Don't have undefined behavior even if the translation
3785              produced a string with the wrong number of "%s"s.  */
3786           char *yyp = yyresult;
3787           int yyi = 0;
3788           while ((*yyp = *yyf) != '\0')
3789             {
3790               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3791                 {
3792                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3793                   yyf += 2;
3794                 }
3795               else
3796                 {
3797                   yyp++;
3798                   yyf++;
3799                 }
3800             }
3801         }
3802       return yysize;
3803     }
3804 }
3805 #endif /* YYERROR_VERBOSE */
3806 \f
3807
3808 /*-----------------------------------------------.
3809 | Release the memory associated to this symbol.  |
3810 `-----------------------------------------------*/
3811
3812 /*ARGSUSED*/
3813 #if (defined __STDC__ || defined __C99__FUNC__ \
3814      || defined __cplusplus || defined _MSC_VER)
3815 static void
3816 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3817 #else
3818 static void
3819 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3820     const char *yymsg;
3821     int yytype;
3822     YYSTYPE *yyvaluep;
3823     YYLTYPE *yylocationp;
3824 #endif
3825 {
3826   YYUSE (yyvaluep);
3827   YYUSE (yylocationp);
3828
3829   if (!yymsg)
3830     yymsg = "Deleting";
3831   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3832
3833   switch (yytype)
3834     {
3835       case 147: /* "guess_type" */
3836
3837 /* Line 1009 of yacc.c  */
3838 #line 176 "type.y"
3839         { FreeSpecifier((yyvaluep->specifier)); };
3840
3841 /* Line 1009 of yacc.c  */
3842 #line 3843 "type.ec"
3843         break;
3844       case 149: /* "type" */
3845
3846 /* Line 1009 of yacc.c  */
3847 #line 176 "type.y"
3848         { FreeSpecifier((yyvaluep->specifier)); };
3849
3850 /* Line 1009 of yacc.c  */
3851 #line 3852 "type.ec"
3852         break;
3853       case 150: /* "base_strict_type" */
3854
3855 /* Line 1009 of yacc.c  */
3856 #line 176 "type.y"
3857         { FreeSpecifier((yyvaluep->specifier)); };
3858
3859 /* Line 1009 of yacc.c  */
3860 #line 3861 "type.ec"
3861         break;
3862       case 151: /* "strict_type" */
3863
3864 /* Line 1009 of yacc.c  */
3865 #line 176 "type.y"
3866         { FreeSpecifier((yyvaluep->specifier)); };
3867
3868 /* Line 1009 of yacc.c  */
3869 #line 3870 "type.ec"
3870         break;
3871       case 152: /* "class_function_definition_start" */
3872
3873 /* Line 1009 of yacc.c  */
3874 #line 197 "type.y"
3875         { FreeClassFunction((yyvaluep->classFunction)); };
3876
3877 /* Line 1009 of yacc.c  */
3878 #line 3879 "type.ec"
3879         break;
3880       case 153: /* "constructor_function_definition_start" */
3881
3882 /* Line 1009 of yacc.c  */
3883 #line 197 "type.y"
3884         { FreeClassFunction((yyvaluep->classFunction)); };
3885
3886 /* Line 1009 of yacc.c  */
3887 #line 3888 "type.ec"
3888         break;
3889       case 154: /* "destructor_function_definition_start" */
3890
3891 /* Line 1009 of yacc.c  */
3892 #line 197 "type.y"
3893         { FreeClassFunction((yyvaluep->classFunction)); };
3894
3895 /* Line 1009 of yacc.c  */
3896 #line 3897 "type.ec"
3897         break;
3898       case 155: /* "virtual_class_function_definition_start" */
3899
3900 /* Line 1009 of yacc.c  */
3901 #line 197 "type.y"
3902         { FreeClassFunction((yyvaluep->classFunction)); };
3903
3904 /* Line 1009 of yacc.c  */
3905 #line 3906 "type.ec"
3906         break;
3907       case 156: /* "identifier" */
3908
3909 /* Line 1009 of yacc.c  */
3910 #line 168 "type.y"
3911         { FreeIdentifier((yyvaluep->id)); };
3912
3913 /* Line 1009 of yacc.c  */
3914 #line 3915 "type.ec"
3915         break;
3916       case 157: /* "primary_expression" */
3917
3918 /* Line 1009 of yacc.c  */
3919 #line 170 "type.y"
3920         { FreeExpression((yyvaluep->exp)); };
3921
3922 /* Line 1009 of yacc.c  */
3923 #line 3924 "type.ec"
3924         break;
3925       case 159: /* "postfix_expression" */
3926
3927 /* Line 1009 of yacc.c  */
3928 #line 170 "type.y"
3929         { FreeExpression((yyvaluep->exp)); };
3930
3931 /* Line 1009 of yacc.c  */
3932 #line 3933 "type.ec"
3933         break;
3934       case 161: /* "argument_expression_list" */
3935
3936 /* Line 1009 of yacc.c  */
3937 #line 205 "type.y"
3938         { FreeList((yyvaluep->list), FreeExpression); };
3939
3940 /* Line 1009 of yacc.c  */
3941 #line 3942 "type.ec"
3942         break;
3943       case 163: /* "unary_expression" */
3944
3945 /* Line 1009 of yacc.c  */
3946 #line 170 "type.y"
3947         { FreeExpression((yyvaluep->exp)); };
3948
3949 /* Line 1009 of yacc.c  */
3950 #line 3951 "type.ec"
3951         break;
3952       case 165: /* "cast_expression" */
3953
3954 /* Line 1009 of yacc.c  */
3955 #line 170 "type.y"
3956         { FreeExpression((yyvaluep->exp)); };
3957
3958 /* Line 1009 of yacc.c  */
3959 #line 3960 "type.ec"
3960         break;
3961       case 166: /* "multiplicative_expression" */
3962
3963 /* Line 1009 of yacc.c  */
3964 #line 170 "type.y"
3965         { FreeExpression((yyvaluep->exp)); };
3966
3967 /* Line 1009 of yacc.c  */
3968 #line 3969 "type.ec"
3969         break;
3970       case 167: /* "additive_expression" */
3971
3972 /* Line 1009 of yacc.c  */
3973 #line 170 "type.y"
3974         { FreeExpression((yyvaluep->exp)); };
3975
3976 /* Line 1009 of yacc.c  */
3977 #line 3978 "type.ec"
3978         break;
3979       case 168: /* "shift_expression" */
3980
3981 /* Line 1009 of yacc.c  */
3982 #line 170 "type.y"
3983         { FreeExpression((yyvaluep->exp)); };
3984
3985 /* Line 1009 of yacc.c  */
3986 #line 3987 "type.ec"
3987         break;
3988       case 170: /* "relational_expression" */
3989
3990 /* Line 1009 of yacc.c  */
3991 #line 170 "type.y"
3992         { FreeExpression((yyvaluep->exp)); };
3993
3994 /* Line 1009 of yacc.c  */
3995 #line 3996 "type.ec"
3996         break;
3997       case 171: /* "equality_expression" */
3998
3999 /* Line 1009 of yacc.c  */
4000 #line 170 "type.y"
4001         { FreeExpression((yyvaluep->exp)); };
4002
4003 /* Line 1009 of yacc.c  */
4004 #line 4005 "type.ec"
4005         break;
4006       case 172: /* "and_expression" */
4007
4008 /* Line 1009 of yacc.c  */
4009 #line 170 "type.y"
4010         { FreeExpression((yyvaluep->exp)); };
4011
4012 /* Line 1009 of yacc.c  */
4013 #line 4014 "type.ec"
4014         break;
4015       case 173: /* "exclusive_or_expression" */
4016
4017 /* Line 1009 of yacc.c  */
4018 #line 170 "type.y"
4019         { FreeExpression((yyvaluep->exp)); };
4020
4021 /* Line 1009 of yacc.c  */
4022 #line 4023 "type.ec"
4023         break;
4024       case 174: /* "inclusive_or_expression" */
4025
4026 /* Line 1009 of yacc.c  */
4027 #line 170 "type.y"
4028         { FreeExpression((yyvaluep->exp)); };
4029
4030 /* Line 1009 of yacc.c  */
4031 #line 4032 "type.ec"
4032         break;
4033       case 175: /* "logical_and_expression" */
4034
4035 /* Line 1009 of yacc.c  */
4036 #line 170 "type.y"
4037         { FreeExpression((yyvaluep->exp)); };
4038
4039 /* Line 1009 of yacc.c  */
4040 #line 4041 "type.ec"
4041         break;
4042       case 176: /* "logical_or_expression" */
4043
4044 /* Line 1009 of yacc.c  */
4045 #line 170 "type.y"
4046         { FreeExpression((yyvaluep->exp)); };
4047
4048 /* Line 1009 of yacc.c  */
4049 #line 4050 "type.ec"
4050         break;
4051       case 177: /* "conditional_expression" */
4052
4053 /* Line 1009 of yacc.c  */
4054 #line 170 "type.y"
4055         { FreeExpression((yyvaluep->exp)); };
4056
4057 /* Line 1009 of yacc.c  */
4058 #line 4059 "type.ec"
4059         break;
4060       case 178: /* "assignment_expression" */
4061
4062 /* Line 1009 of yacc.c  */
4063 #line 170 "type.y"
4064         { FreeExpression((yyvaluep->exp)); };
4065
4066 /* Line 1009 of yacc.c  */
4067 #line 4068 "type.ec"
4068         break;
4069       case 180: /* "expression" */
4070
4071 /* Line 1009 of yacc.c  */
4072 #line 205 "type.y"
4073         { FreeList((yyvaluep->list), FreeExpression); };
4074
4075 /* Line 1009 of yacc.c  */
4076 #line 4077 "type.ec"
4077         break;
4078       case 181: /* "constant_expression" */
4079
4080 /* Line 1009 of yacc.c  */
4081 #line 170 "type.y"
4082         { FreeExpression((yyvaluep->exp)); };
4083
4084 /* Line 1009 of yacc.c  */
4085 #line 4086 "type.ec"
4086         break;
4087       case 182: /* "declaration" */
4088
4089 /* Line 1009 of yacc.c  */
4090 #line 191 "type.y"
4091         { FreeDeclaration((yyvaluep->declaration)); };
4092
4093 /* Line 1009 of yacc.c  */
4094 #line 4095 "type.ec"
4095         break;
4096       case 183: /* "specifier_qualifier_list" */
4097
4098 /* Line 1009 of yacc.c  */
4099 #line 207 "type.y"
4100         { FreeList((yyvaluep->list), FreeSpecifier); };
4101
4102 /* Line 1009 of yacc.c  */
4103 #line 4104 "type.ec"
4104         break;
4105       case 184: /* "guess_specifier_qualifier_list" */
4106
4107 /* Line 1009 of yacc.c  */
4108 #line 207 "type.y"
4109         { FreeList((yyvaluep->list), FreeSpecifier); };
4110
4111 /* Line 1009 of yacc.c  */
4112 #line 4113 "type.ec"
4113         break;
4114       case 185: /* "declaration_specifiers" */
4115
4116 /* Line 1009 of yacc.c  */
4117 #line 207 "type.y"
4118         { FreeList((yyvaluep->list), FreeSpecifier); };
4119
4120 /* Line 1009 of yacc.c  */
4121 #line 4122 "type.ec"
4122         break;
4123       case 186: /* "guess_declaration_specifiers" */
4124
4125 /* Line 1009 of yacc.c  */
4126 #line 207 "type.y"
4127         { FreeList((yyvaluep->list), FreeSpecifier); };
4128
4129 /* Line 1009 of yacc.c  */
4130 #line 4131 "type.ec"
4131         break;
4132       case 190: /* "init_declarator_list" */
4133
4134 /* Line 1009 of yacc.c  */
4135 #line 212 "type.y"
4136         { FreeList((yyvaluep->list), FreeInitDeclarator); };
4137
4138 /* Line 1009 of yacc.c  */
4139 #line 4140 "type.ec"
4140         break;
4141       case 191: /* "init_declarator" */
4142
4143 /* Line 1009 of yacc.c  */
4144 #line 186 "type.y"
4145         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
4146
4147 /* Line 1009 of yacc.c  */
4148 #line 4149 "type.ec"
4149         break;
4150       case 192: /* "storage_class_specifier" */
4151
4152 /* Line 1009 of yacc.c  */
4153 #line 176 "type.y"
4154         { FreeSpecifier((yyvaluep->specifier)); };
4155
4156 /* Line 1009 of yacc.c  */
4157 #line 4158 "type.ec"
4158         break;
4159       case 193: /* "ext_decl" */
4160
4161 /* Line 1009 of yacc.c  */
4162 #line 222 "type.y"
4163         { FreeExtDecl((yyvaluep->extDecl)); };
4164
4165 /* Line 1009 of yacc.c  */
4166 #line 4167 "type.ec"
4167         break;
4168       case 195: /* "attribute_word" */
4169
4170 /* Line 1009 of yacc.c  */
4171 #line 202 "type.y"
4172         { delete (yyvaluep->string); };
4173
4174 /* Line 1009 of yacc.c  */
4175 #line 4176 "type.ec"
4176         break;
4177       case 196: /* "attribute" */
4178
4179 /* Line 1009 of yacc.c  */
4180 #line 223 "type.y"
4181         { FreeAttribute((yyvaluep->attribute)); };
4182
4183 /* Line 1009 of yacc.c  */
4184 #line 4185 "type.ec"
4185         break;
4186       case 197: /* "attribs_list" */
4187
4188 /* Line 1009 of yacc.c  */
4189 #line 224 "type.y"
4190         { FreeList((yyvaluep->list), FreeAttribute); };
4191
4192 /* Line 1009 of yacc.c  */
4193 #line 4194 "type.ec"
4194         break;
4195       case 198: /* "attrib" */
4196
4197 /* Line 1009 of yacc.c  */
4198 #line 221 "type.y"
4199         { FreeAttrib((yyvaluep->attrib)); };
4200
4201 /* Line 1009 of yacc.c  */
4202 #line 4203 "type.ec"
4203         break;
4204       case 199: /* "ext_storage" */
4205
4206 /* Line 1009 of yacc.c  */
4207 #line 176 "type.y"
4208         { FreeSpecifier((yyvaluep->specifier)); };
4209
4210 /* Line 1009 of yacc.c  */
4211 #line 4212 "type.ec"
4212         break;
4213       case 200: /* "type_qualifier" */
4214
4215 /* Line 1009 of yacc.c  */
4216 #line 176 "type.y"
4217         { FreeSpecifier((yyvaluep->specifier)); };
4218
4219 /* Line 1009 of yacc.c  */
4220 #line 4221 "type.ec"
4221         break;
4222       case 201: /* "type_specifier" */
4223
4224 /* Line 1009 of yacc.c  */
4225 #line 176 "type.y"
4226         { FreeSpecifier((yyvaluep->specifier)); };
4227
4228 /* Line 1009 of yacc.c  */
4229 #line 4230 "type.ec"
4230         break;
4231       case 202: /* "strict_type_specifier" */
4232
4233 /* Line 1009 of yacc.c  */
4234 #line 176 "type.y"
4235         { FreeSpecifier((yyvaluep->specifier)); };
4236
4237 /* Line 1009 of yacc.c  */
4238 #line 4239 "type.ec"
4239         break;
4240       case 203: /* "struct_or_union_specifier_compound" */
4241
4242 /* Line 1009 of yacc.c  */
4243 #line 176 "type.y"
4244         { FreeSpecifier((yyvaluep->specifier)); };
4245
4246 /* Line 1009 of yacc.c  */
4247 #line 4248 "type.ec"
4248         break;
4249       case 204: /* "struct_or_union_specifier_nocompound" */
4250
4251 /* Line 1009 of yacc.c  */
4252 #line 176 "type.y"
4253         { FreeSpecifier((yyvaluep->specifier)); };
4254
4255 /* Line 1009 of yacc.c  */
4256 #line 4257 "type.ec"
4257         break;
4258       case 205: /* "template_datatype" */
4259
4260 /* Line 1009 of yacc.c  */
4261 #line 220 "type.y"
4262         { FreeTemplateDataType((yyvaluep->templateDatatype)); };
4263
4264 /* Line 1009 of yacc.c  */
4265 #line 4266 "type.ec"
4266         break;
4267       case 206: /* "template_type_argument" */
4268
4269 /* Line 1009 of yacc.c  */
4270 #line 219 "type.y"
4271         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4272
4273 /* Line 1009 of yacc.c  */
4274 #line 4275 "type.ec"
4275         break;
4276       case 207: /* "template_expression_argument" */
4277
4278 /* Line 1009 of yacc.c  */
4279 #line 219 "type.y"
4280         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4281
4282 /* Line 1009 of yacc.c  */
4283 #line 4284 "type.ec"
4284         break;
4285       case 208: /* "template_argument" */
4286
4287 /* Line 1009 of yacc.c  */
4288 #line 219 "type.y"
4289         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4290
4291 /* Line 1009 of yacc.c  */
4292 #line 4293 "type.ec"
4293         break;
4294       case 211: /* "struct_declaration_list" */
4295
4296 /* Line 1009 of yacc.c  */
4297 #line 215 "type.y"
4298         { FreeList((yyvaluep->list), FreeClassDef); };
4299
4300 /* Line 1009 of yacc.c  */
4301 #line 4302 "type.ec"
4302         break;
4303       case 212: /* "default_property" */
4304
4305 /* Line 1009 of yacc.c  */
4306 #line 195 "type.y"
4307         { FreeMemberInit((yyvaluep->memberInit)); };
4308
4309 /* Line 1009 of yacc.c  */
4310 #line 4311 "type.ec"
4311         break;
4312       case 213: /* "default_property_list" */
4313
4314 /* Line 1009 of yacc.c  */
4315 #line 216 "type.y"
4316         { FreeList((yyvaluep->list), FreeMemberInit); };
4317
4318 /* Line 1009 of yacc.c  */
4319 #line 4320 "type.ec"
4320         break;
4321       case 214: /* "property" */
4322
4323 /* Line 1009 of yacc.c  */
4324 #line 203 "type.y"
4325         { FreeProperty((yyvaluep->prop)); };
4326
4327 /* Line 1009 of yacc.c  */
4328 #line 4329 "type.ec"
4329         break;
4330       case 215: /* "struct_declaration" */
4331
4332 /* Line 1009 of yacc.c  */
4333 #line 201 "type.y"
4334         { FreeClassDef((yyvaluep->classDef)); };
4335
4336 /* Line 1009 of yacc.c  */
4337 #line 4338 "type.ec"
4338         break;
4339       case 216: /* "struct_declarator_list" */
4340
4341 /* Line 1009 of yacc.c  */
4342 #line 209 "type.y"
4343         { FreeList((yyvaluep->list), FreeDeclarator); };
4344
4345 /* Line 1009 of yacc.c  */
4346 #line 4347 "type.ec"
4347         break;
4348       case 217: /* "struct_declarator" */
4349
4350 /* Line 1009 of yacc.c  */
4351 #line 180 "type.y"
4352         { FreeDeclarator((yyvaluep->declarator)); };
4353
4354 /* Line 1009 of yacc.c  */
4355 #line 4356 "type.ec"
4356         break;
4357       case 218: /* "enum_specifier_nocompound" */
4358
4359 /* Line 1009 of yacc.c  */
4360 #line 176 "type.y"
4361         { FreeSpecifier((yyvaluep->specifier)); };
4362
4363 /* Line 1009 of yacc.c  */
4364 #line 4365 "type.ec"
4365         break;
4366       case 219: /* "enum_specifier_compound" */
4367
4368 /* Line 1009 of yacc.c  */
4369 #line 176 "type.y"
4370         { FreeSpecifier((yyvaluep->specifier)); };
4371
4372 /* Line 1009 of yacc.c  */
4373 #line 4374 "type.ec"
4374         break;
4375       case 220: /* "enumerator_list" */
4376
4377 /* Line 1009 of yacc.c  */
4378 #line 206 "type.y"
4379         { FreeList((yyvaluep->list), FreeEnumerator); };
4380
4381 /* Line 1009 of yacc.c  */
4382 #line 4383 "type.ec"
4383         break;
4384       case 221: /* "enumerator" */
4385
4386 /* Line 1009 of yacc.c  */
4387 #line 179 "type.y"
4388         { FreeEnumerator((yyvaluep->enumerator)); };
4389
4390 /* Line 1009 of yacc.c  */
4391 #line 4392 "type.ec"
4392         break;
4393       case 222: /* "direct_abstract_declarator" */
4394
4395 /* Line 1009 of yacc.c  */
4396 #line 180 "type.y"
4397         { FreeDeclarator((yyvaluep->declarator)); };
4398
4399 /* Line 1009 of yacc.c  */
4400 #line 4401 "type.ec"
4401         break;
4402       case 223: /* "direct_abstract_declarator_noarray" */
4403
4404 /* Line 1009 of yacc.c  */
4405 #line 180 "type.y"
4406         { FreeDeclarator((yyvaluep->declarator)); };
4407
4408 /* Line 1009 of yacc.c  */
4409 #line 4410 "type.ec"
4410         break;
4411       case 224: /* "abstract_declarator" */
4412
4413 /* Line 1009 of yacc.c  */
4414 #line 180 "type.y"
4415         { FreeDeclarator((yyvaluep->declarator)); };
4416
4417 /* Line 1009 of yacc.c  */
4418 #line 4419 "type.ec"
4419         break;
4420       case 225: /* "abstract_declarator_noarray" */
4421
4422 /* Line 1009 of yacc.c  */
4423 #line 180 "type.y"
4424         { FreeDeclarator((yyvaluep->declarator)); };
4425
4426 /* Line 1009 of yacc.c  */
4427 #line 4428 "type.ec"
4428         break;
4429       case 226: /* "declarator" */
4430
4431 /* Line 1009 of yacc.c  */
4432 #line 180 "type.y"
4433         { FreeDeclarator((yyvaluep->declarator)); };
4434
4435 /* Line 1009 of yacc.c  */
4436 #line 4437 "type.ec"
4437         break;
4438       case 227: /* "direct_declarator_nofunction" */
4439
4440 /* Line 1009 of yacc.c  */
4441 #line 180 "type.y"
4442         { FreeDeclarator((yyvaluep->declarator)); };
4443
4444 /* Line 1009 of yacc.c  */
4445 #line 4446 "type.ec"
4446         break;
4447       case 228: /* "declarator_function" */
4448
4449 /* Line 1009 of yacc.c  */
4450 #line 180 "type.y"
4451         { FreeDeclarator((yyvaluep->declarator)); };
4452
4453 /* Line 1009 of yacc.c  */
4454 #line 4455 "type.ec"
4455         break;
4456       case 229: /* "direct_declarator_function_start" */
4457
4458 /* Line 1009 of yacc.c  */
4459 #line 180 "type.y"
4460         { FreeDeclarator((yyvaluep->declarator)); };
4461
4462 /* Line 1009 of yacc.c  */
4463 #line 4464 "type.ec"
4464         break;
4465       case 230: /* "direct_declarator_function" */
4466
4467 /* Line 1009 of yacc.c  */
4468 #line 180 "type.y"
4469         { FreeDeclarator((yyvaluep->declarator)); };
4470
4471 /* Line 1009 of yacc.c  */
4472 #line 4473 "type.ec"
4473         break;
4474       case 231: /* "direct_declarator" */
4475
4476 /* Line 1009 of yacc.c  */
4477 #line 180 "type.y"
4478         { FreeDeclarator((yyvaluep->declarator)); };
4479
4480 /* Line 1009 of yacc.c  */
4481 #line 4482 "type.ec"
4482         break;
4483       case 232: /* "declarator_nofunction" */
4484
4485 /* Line 1009 of yacc.c  */
4486 #line 180 "type.y"
4487         { FreeDeclarator((yyvaluep->declarator)); };
4488
4489 /* Line 1009 of yacc.c  */
4490 #line 4491 "type.ec"
4491         break;
4492       case 233: /* "type_qualifier_list" */
4493
4494 /* Line 1009 of yacc.c  */
4495 #line 207 "type.y"
4496         { FreeList((yyvaluep->list), FreeSpecifier); };
4497
4498 /* Line 1009 of yacc.c  */
4499 #line 4500 "type.ec"
4500         break;
4501       case 234: /* "pointer" */
4502
4503 /* Line 1009 of yacc.c  */
4504 #line 169 "type.y"
4505         { FreePointer((yyvaluep->pointer)); };
4506
4507 /* Line 1009 of yacc.c  */
4508 #line 4509 "type.ec"
4509         break;
4510       case 235: /* "parameter_type_list" */
4511
4512 /* Line 1009 of yacc.c  */
4513 #line 213 "type.y"
4514         { FreeList((yyvaluep->list), FreeTypeName); };
4515
4516 /* Line 1009 of yacc.c  */
4517 #line 4518 "type.ec"
4518         break;
4519       case 236: /* "parameter_list" */
4520
4521 /* Line 1009 of yacc.c  */
4522 #line 213 "type.y"
4523         { FreeList((yyvaluep->list), FreeTypeName); };
4524
4525 /* Line 1009 of yacc.c  */
4526 #line 4527 "type.ec"
4527         break;
4528       case 237: /* "parameter_declaration" */
4529
4530 /* Line 1009 of yacc.c  */
4531 #line 187 "type.y"
4532         { FreeTypeName((yyvaluep->typeName)); };
4533
4534 /* Line 1009 of yacc.c  */
4535 #line 4536 "type.ec"
4536         break;
4537       case 238: /* "identifier_list" */
4538
4539 /* Line 1009 of yacc.c  */
4540 #line 213 "type.y"
4541         { FreeList((yyvaluep->list), FreeTypeName); };
4542
4543 /* Line 1009 of yacc.c  */
4544 #line 4545 "type.ec"
4545         break;
4546       case 239: /* "type_name" */
4547
4548 /* Line 1009 of yacc.c  */
4549 #line 187 "type.y"
4550         { FreeTypeName((yyvaluep->typeName)); };
4551
4552 /* Line 1009 of yacc.c  */
4553 #line 4554 "type.ec"
4554         break;
4555       case 240: /* "guess_type_name" */
4556
4557 /* Line 1009 of yacc.c  */
4558 #line 187 "type.y"
4559         { FreeTypeName((yyvaluep->typeName)); };
4560
4561 /* Line 1009 of yacc.c  */
4562 #line 4563 "type.ec"
4563         break;
4564       case 241: /* "initializer" */
4565
4566 /* Line 1009 of yacc.c  */
4567 #line 185 "type.y"
4568         { FreeInitializer((yyvaluep->initializer)); };
4569
4570 /* Line 1009 of yacc.c  */
4571 #line 4572 "type.ec"
4572         break;
4573       case 242: /* "initializer_condition" */
4574
4575 /* Line 1009 of yacc.c  */
4576 #line 185 "type.y"
4577         { FreeInitializer((yyvaluep->initializer)); };
4578
4579 /* Line 1009 of yacc.c  */
4580 #line 4581 "type.ec"
4581         break;
4582       case 243: /* "initializer_list" */
4583
4584 /* Line 1009 of yacc.c  */
4585 #line 211 "type.y"
4586         { FreeList((yyvaluep->list), FreeInitializer); };
4587
4588 /* Line 1009 of yacc.c  */
4589 #line 4590 "type.ec"
4590         break;
4591       case 244: /* "statement" */
4592
4593 /* Line 1009 of yacc.c  */
4594 #line 188 "type.y"
4595         { FreeStatement((yyvaluep->stmt)); };
4596
4597 /* Line 1009 of yacc.c  */
4598 #line 4599 "type.ec"
4599         break;
4600       case 245: /* "labeled_statement" */
4601
4602 /* Line 1009 of yacc.c  */
4603 #line 188 "type.y"
4604         { FreeStatement((yyvaluep->stmt)); };
4605
4606 /* Line 1009 of yacc.c  */
4607 #line 4608 "type.ec"
4608         break;
4609       case 246: /* "declaration_list" */
4610
4611 /* Line 1009 of yacc.c  */
4612 #line 210 "type.y"
4613         { FreeList((yyvaluep->list), FreeDeclaration); };
4614
4615 /* Line 1009 of yacc.c  */
4616 #line 4617 "type.ec"
4617         break;
4618       case 247: /* "statement_list" */
4619
4620 /* Line 1009 of yacc.c  */
4621 #line 214 "type.y"
4622         { FreeList((yyvaluep->list), FreeStatement); };
4623
4624 /* Line 1009 of yacc.c  */
4625 #line 4626 "type.ec"
4626         break;
4627       case 248: /* "compound_inside" */
4628
4629 /* Line 1009 of yacc.c  */
4630 #line 188 "type.y"
4631         { FreeStatement((yyvaluep->stmt)); };
4632
4633 /* Line 1009 of yacc.c  */
4634 #line 4635 "type.ec"
4635         break;
4636       case 249: /* "compound_start" */
4637
4638 /* Line 1009 of yacc.c  */
4639 #line 218 "type.y"
4640         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
4641
4642 /* Line 1009 of yacc.c  */
4643 #line 4644 "type.ec"
4644         break;
4645       case 250: /* "compound_statement" */
4646
4647 /* Line 1009 of yacc.c  */
4648 #line 188 "type.y"
4649         { FreeStatement((yyvaluep->stmt)); };
4650
4651 /* Line 1009 of yacc.c  */
4652 #line 4653 "type.ec"
4653         break;
4654       case 251: /* "expression_statement" */
4655
4656 /* Line 1009 of yacc.c  */
4657 #line 188 "type.y"
4658         { FreeStatement((yyvaluep->stmt)); };
4659
4660 /* Line 1009 of yacc.c  */
4661 #line 4662 "type.ec"
4662         break;
4663       case 252: /* "selection_statement" */
4664
4665 /* Line 1009 of yacc.c  */
4666 #line 188 "type.y"
4667         { FreeStatement((yyvaluep->stmt)); };
4668
4669 /* Line 1009 of yacc.c  */
4670 #line 4671 "type.ec"
4671         break;
4672       case 253: /* "iteration_statement" */
4673
4674 /* Line 1009 of yacc.c  */
4675 #line 188 "type.y"
4676         { FreeStatement((yyvaluep->stmt)); };
4677
4678 /* Line 1009 of yacc.c  */
4679 #line 4680 "type.ec"
4680         break;
4681       case 254: /* "jump_statement" */
4682
4683 /* Line 1009 of yacc.c  */
4684 #line 188 "type.y"
4685         { FreeStatement((yyvaluep->stmt)); };
4686
4687 /* Line 1009 of yacc.c  */
4688 #line 4689 "type.ec"
4689         break;
4690       case 255: /* "string_literal" */
4691
4692 /* Line 1009 of yacc.c  */
4693 #line 202 "type.y"
4694         { delete (yyvaluep->string); };
4695
4696 /* Line 1009 of yacc.c  */
4697 #line 4698 "type.ec"
4698         break;
4699       case 256: /* "instantiation_named" */
4700
4701 /* Line 1009 of yacc.c  */
4702 #line 193 "type.y"
4703         { FreeInstance((yyvaluep->instance)); };
4704
4705 /* Line 1009 of yacc.c  */
4706 #line 4707 "type.ec"
4707         break;
4708       case 258: /* "instantiation_unnamed" */
4709
4710 /* Line 1009 of yacc.c  */
4711 #line 193 "type.y"
4712         { FreeInstance((yyvaluep->instance)); };
4713
4714 /* Line 1009 of yacc.c  */
4715 #line 4716 "type.ec"
4716         break;
4717       case 260: /* "class_function_definition" */
4718
4719 /* Line 1009 of yacc.c  */
4720 #line 197 "type.y"
4721         { FreeClassFunction((yyvaluep->classFunction)); };
4722
4723 /* Line 1009 of yacc.c  */
4724 #line 4725 "type.ec"
4725         break;
4726       case 261: /* "instance_class_function_definition_start" */
4727
4728 /* Line 1009 of yacc.c  */
4729 #line 197 "type.y"
4730         { FreeClassFunction((yyvaluep->classFunction)); };
4731
4732 /* Line 1009 of yacc.c  */
4733 #line 4734 "type.ec"
4734         break;
4735       case 262: /* "instance_class_function_definition" */
4736
4737 /* Line 1009 of yacc.c  */
4738 #line 197 "type.y"
4739         { FreeClassFunction((yyvaluep->classFunction)); };
4740
4741 /* Line 1009 of yacc.c  */
4742 #line 4743 "type.ec"
4743         break;
4744       case 263: /* "data_member_initialization" */
4745
4746 /* Line 1009 of yacc.c  */
4747 #line 195 "type.y"
4748         { FreeMemberInit((yyvaluep->memberInit)); };
4749
4750 /* Line 1009 of yacc.c  */
4751 #line 4752 "type.ec"
4752         break;
4753       case 264: /* "data_member_initialization_list" */
4754
4755 /* Line 1009 of yacc.c  */
4756 #line 216 "type.y"
4757         { FreeList((yyvaluep->list), FreeMemberInit); };
4758
4759 /* Line 1009 of yacc.c  */
4760 #line 4761 "type.ec"
4761         break;
4762       case 265: /* "data_member_initialization_list_coloned" */
4763
4764 /* Line 1009 of yacc.c  */
4765 #line 216 "type.y"
4766         { FreeList((yyvaluep->list), FreeMemberInit); };
4767
4768 /* Line 1009 of yacc.c  */
4769 #line 4770 "type.ec"
4770         break;
4771       case 266: /* "members_initialization_list_coloned" */
4772
4773 /* Line 1009 of yacc.c  */
4774 #line 217 "type.y"
4775         { FreeList((yyvaluep->list), FreeMembersInit); };
4776
4777 /* Line 1009 of yacc.c  */
4778 #line 4779 "type.ec"
4779         break;
4780       case 267: /* "members_initialization_list" */
4781
4782 /* Line 1009 of yacc.c  */
4783 #line 217 "type.y"
4784         { FreeList((yyvaluep->list), FreeMembersInit); };
4785
4786 /* Line 1009 of yacc.c  */
4787 #line 4788 "type.ec"
4788         break;
4789
4790       default:
4791         break;
4792     }
4793 }
4794
4795 /* Prevent warnings from -Wmissing-prototypes.  */
4796 #ifdef YYPARSE_PARAM
4797 #if defined __STDC__ || defined __cplusplus
4798 int yyparse (void *YYPARSE_PARAM);
4799 #else
4800 int yyparse ();
4801 #endif
4802 #else /* ! YYPARSE_PARAM */
4803 #if defined __STDC__ || defined __cplusplus
4804 int yyparse (void);
4805 #else
4806 int yyparse ();
4807 #endif
4808 #endif /* ! YYPARSE_PARAM */
4809
4810
4811 /* The lookahead symbol.  */
4812 int yychar;
4813
4814 /* The semantic value of the lookahead symbol.  */
4815 YYSTYPE yylval;
4816
4817 /* Location data for the lookahead symbol.  */
4818 YYLTYPE yylloc;
4819
4820 /* Number of syntax errors so far.  */
4821 int yynerrs;
4822
4823
4824
4825 /*-------------------------.
4826 | yyparse or yypush_parse.  |
4827 `-------------------------*/
4828
4829 #ifdef YYPARSE_PARAM
4830 #if (defined __STDC__ || defined __C99__FUNC__ \
4831      || defined __cplusplus || defined _MSC_VER)
4832 int
4833 yyparse (void *YYPARSE_PARAM)
4834 #else
4835 int
4836 yyparse (YYPARSE_PARAM)
4837     void *YYPARSE_PARAM;
4838 #endif
4839 #else /* ! YYPARSE_PARAM */
4840 #if (defined __STDC__ || defined __C99__FUNC__ \
4841      || defined __cplusplus || defined _MSC_VER)
4842 int
4843 yyparse (void)
4844 #else
4845 int
4846 yyparse ()
4847
4848 #endif
4849 #endif
4850 {
4851
4852
4853     int yystate;
4854     /* Number of tokens to shift before error messages enabled.  */
4855     int yyerrstatus;
4856
4857     /* The stacks and their tools:
4858        `yyss': related to states.
4859        `yyvs': related to semantic values.
4860        `yyls': related to locations.
4861
4862        Refer to the stacks thru separate pointers, to allow yyoverflow
4863        to reallocate them elsewhere.  */
4864
4865     /* The state stack.  */
4866     yytype_int16 yyssa[YYINITDEPTH];
4867     yytype_int16 *yyss;
4868     yytype_int16 *yyssp;
4869
4870     /* The semantic value stack.  */
4871     YYSTYPE yyvsa[YYINITDEPTH];
4872     YYSTYPE *yyvs;
4873     YYSTYPE *yyvsp;
4874
4875     /* The location stack.  */
4876     YYLTYPE yylsa[YYINITDEPTH];
4877     YYLTYPE *yyls;
4878     YYLTYPE *yylsp;
4879
4880     /* The locations where the error started and ended.  */
4881     YYLTYPE yyerror_range[2];
4882
4883     YYSIZE_T yystacksize;
4884
4885   int yyn;
4886   int yyresult;
4887   /* Lookahead token as an internal (translated) token number.  */
4888   int yytoken;
4889   /* The variables used to return semantic value and location from the
4890      action routines.  */
4891   YYSTYPE yyval;
4892   YYLTYPE yyloc;
4893
4894 #if YYERROR_VERBOSE
4895   /* Buffer for error messages, and its allocated size.  */
4896   char yymsgbuf[128];
4897   char *yymsg = yymsgbuf;
4898   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4899 #endif
4900
4901 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4902
4903   /* The number of symbols on the RHS of the reduced rule.
4904      Keep to zero when no symbol should be popped.  */
4905   int yylen = 0;
4906
4907   yytoken = 0;
4908   yyss = yyssa;
4909   yyvs = yyvsa;
4910   yyls = yylsa;
4911   yystacksize = YYINITDEPTH;
4912
4913   YYDPRINTF ((stderr, "Starting parse\n"));
4914
4915   yystate = 0;
4916   yyerrstatus = 0;
4917   yynerrs = 0;
4918   yychar = YYEMPTY; /* Cause a token to be read.  */
4919
4920   /* Initialize stack pointers.
4921      Waste one element of value and location stack
4922      so that they stay on the same level as the state stack.
4923      The wasted elements are never initialized.  */
4924   yyssp = yyss;
4925   yyvsp = yyvs;
4926   yylsp = yyls;
4927
4928 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4929   /* Initialize the default location before parsing starts.  */
4930   yylloc.first_line   = yylloc.last_line   = 1;
4931   yylloc.first_column = yylloc.last_column = 1;
4932 #endif
4933
4934   goto yysetstate;
4935
4936 /*------------------------------------------------------------.
4937 | yynewstate -- Push a new state, which is found in yystate.  |
4938 `------------------------------------------------------------*/
4939  yynewstate:
4940   /* In all cases, when you get here, the value and location stacks
4941      have just been pushed.  So pushing a state here evens the stacks.  */
4942   yyssp++;
4943
4944  yysetstate:
4945   *yyssp = yystate;
4946
4947   if (yyss + yystacksize - 1 <= yyssp)
4948     {
4949       /* Get the current used size of the three stacks, in elements.  */
4950       YYSIZE_T yysize = yyssp - yyss + 1;
4951
4952 #ifdef yyoverflow
4953       {
4954         /* Give user a chance to reallocate the stack.  Use copies of
4955            these so that the &'s don't force the real ones into
4956            memory.  */
4957         YYSTYPE *yyvs1 = yyvs;
4958         yytype_int16 *yyss1 = yyss;
4959         YYLTYPE *yyls1 = yyls;
4960
4961         /* Each stack pointer address is followed by the size of the
4962            data in use in that stack, in bytes.  This used to be a
4963            conditional around just the two extra args, but that might
4964            be undefined if yyoverflow is a macro.  */
4965         yyoverflow (YY_("memory exhausted"),
4966                     &yyss1, yysize * sizeof (*yyssp),
4967                     &yyvs1, yysize * sizeof (*yyvsp),
4968                     &yyls1, yysize * sizeof (*yylsp),
4969                     &yystacksize);
4970
4971         yyls = yyls1;
4972         yyss = yyss1;
4973         yyvs = yyvs1;
4974       }
4975 #else /* no yyoverflow */
4976 # ifndef YYSTACK_RELOCATE
4977       goto yyexhaustedlab;
4978 # else
4979       /* Extend the stack our own way.  */
4980       if (YYMAXDEPTH <= yystacksize)
4981         goto yyexhaustedlab;
4982       yystacksize *= 2;
4983       if (YYMAXDEPTH < yystacksize)
4984         yystacksize = YYMAXDEPTH;
4985
4986       {
4987         yytype_int16 *yyss1 = yyss;
4988         union yyalloc *yyptr =
4989           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4990         if (! yyptr)
4991           goto yyexhaustedlab;
4992         YYSTACK_RELOCATE (yyss_alloc, yyss);
4993         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4994         YYSTACK_RELOCATE (yyls_alloc, yyls);
4995 #  undef YYSTACK_RELOCATE
4996         if (yyss1 != yyssa)
4997           YYSTACK_FREE (yyss1);
4998       }
4999 # endif
5000 #endif /* no yyoverflow */
5001
5002       yyssp = yyss + yysize - 1;
5003       yyvsp = yyvs + yysize - 1;
5004       yylsp = yyls + yysize - 1;
5005
5006       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
5007                   (unsigned long int) yystacksize));
5008
5009       if (yyss + yystacksize - 1 <= yyssp)
5010         YYABORT;
5011     }
5012
5013   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
5014
5015   if (yystate == YYFINAL)
5016     YYACCEPT;
5017
5018   goto yybackup;
5019
5020 /*-----------.
5021 | yybackup.  |
5022 `-----------*/
5023 yybackup:
5024
5025   /* Do appropriate processing given the current state.  Read a
5026      lookahead token if we need one and don't already have one.  */
5027
5028   /* First try to decide what to do without reference to lookahead token.  */
5029   yyn = yypact[yystate];
5030   if (yyn == YYPACT_NINF)
5031     goto yydefault;
5032
5033   /* Not known => get a lookahead token if don't already have one.  */
5034
5035   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
5036   if (yychar == YYEMPTY)
5037     {
5038       YYDPRINTF ((stderr, "Reading a token: "));
5039       yychar = YYLEX;
5040     }
5041
5042   if (yychar <= YYEOF)
5043     {
5044       yychar = yytoken = YYEOF;
5045       YYDPRINTF ((stderr, "Now at end of input.\n"));
5046     }
5047   else
5048     {
5049       yytoken = YYTRANSLATE (yychar);
5050       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5051     }
5052
5053   /* If the proper action on seeing token YYTOKEN is to reduce or to
5054      detect an error, take that action.  */
5055   yyn += yytoken;
5056   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5057     goto yydefault;
5058   yyn = yytable[yyn];
5059   if (yyn <= 0)
5060     {
5061       if (yyn == 0 || yyn == YYTABLE_NINF)
5062         goto yyerrlab;
5063       yyn = -yyn;
5064       goto yyreduce;
5065     }
5066
5067   /* Count tokens shifted since error; after three, turn off error
5068      status.  */
5069   if (yyerrstatus)
5070     yyerrstatus--;
5071
5072   /* Shift the lookahead token.  */
5073   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5074
5075   /* Discard the shifted token.  */
5076   yychar = YYEMPTY;
5077
5078   yystate = yyn;
5079   *++yyvsp = yylval;
5080   *++yylsp = yylloc;
5081   goto yynewstate;
5082
5083
5084 /*-----------------------------------------------------------.
5085 | yydefault -- do the default action for the current state.  |
5086 `-----------------------------------------------------------*/
5087 yydefault:
5088   yyn = yydefact[yystate];
5089   if (yyn == 0)
5090     goto yyerrlab;
5091   goto yyreduce;
5092
5093
5094 /*-----------------------------.
5095 | yyreduce -- Do a reduction.  |
5096 `-----------------------------*/
5097 yyreduce:
5098   /* yyn is the number of a rule to reduce with.  */
5099   yylen = yyr2[yyn];
5100
5101   /* If YYLEN is nonzero, implement the default value of the action:
5102      `$$ = $1'.
5103
5104      Otherwise, the following line sets YYVAL to garbage.
5105      This behavior is undocumented and Bison
5106      users should not rely upon it.  Assigning to YYVAL
5107      unconditionally makes the parser a bit smaller, and it avoids a
5108      GCC warning that YYVAL may be used uninitialized.  */
5109   yyval = yyvsp[1-yylen];
5110
5111   /* Default location.  */
5112   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
5113   YY_REDUCE_PRINT (yyn);
5114   switch (yyn)
5115     {
5116         case 2:
5117
5118 /* Line 1464 of yacc.c  */
5119 #line 232 "type.y"
5120     {
5121       (yyval.specifier) = null;
5122       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5123       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5124       resetScannerPos(&(yylsp[(1) - (2)]).start);
5125       yyclearin;
5126
5127       FreeIdentifier((yyvsp[(1) - (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    ;}
5137     break;
5138
5139   case 3:
5140
5141 /* Line 1464 of yacc.c  */
5142 #line 250 "type.y"
5143     {
5144       (yyval.specifier) = null;
5145    #ifdef PRECOMPILER
5146       _DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5147
5148       FreeIdentifier((yyvsp[(1) - (2)].id));
5149
5150       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5151       resetScannerPos(&(yylsp[(1) - (2)]).start);
5152       yyclearin;
5153
5154       YYPOPSTACK(1);
5155       yystate = *yyssp;
5156       YY_STACK_PRINT (yyss, yyssp);
5157       YYPOPSTACK(1);
5158       yystate = *yyssp;
5159       YY_STACK_PRINT (yyss, yyssp);
5160       goto yysetstate;
5161    #endif
5162    ;}
5163     break;
5164
5165   case 4:
5166
5167 /* Line 1464 of yacc.c  */
5168 #line 274 "type.y"
5169     {
5170       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5171       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5172       parseTypeError = 0;
5173       resetScannerPos(&(yylsp[(1) - (2)]).start);
5174       yyclearin;
5175       FreeIdentifier((yyvsp[(1) - (2)].id));
5176
5177       YYPOPSTACK(1);
5178       yystate = *yyssp;
5179       YY_STACK_PRINT (yyss, yyssp);
5180       YYPOPSTACK(1);
5181       yystate = *yyssp;
5182       YY_STACK_PRINT (yyss, yyssp);
5183       goto yysetstate;
5184    ;}
5185     break;
5186
5187   case 5:
5188
5189 /* Line 1464 of yacc.c  */
5190 #line 313 "type.y"
5191     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5192     break;
5193
5194   case 6:
5195
5196 /* Line 1464 of yacc.c  */
5197 #line 315 "type.y"
5198     {
5199    #ifdef PRECOMPILER
5200       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5201       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5202       resetScannerPos(&(yylsp[(1) - (2)]).start);
5203       yyclearin;
5204
5205       FreeIdentifier((yyvsp[(1) - (2)].id));
5206       FreeIdentifier((yyvsp[(2) - (2)].id));
5207
5208       YYPOPSTACK(1);
5209       yystate = *yyssp;
5210       YY_STACK_PRINT (yyss, yyssp);
5211       YYPOPSTACK(1);
5212       yystate = *yyssp;
5213       YY_STACK_PRINT (yyss, yyssp);
5214       goto yysetstate;
5215    #else
5216       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[(2) - (2)].id); yylloc = (yylsp[(1) - (2)]);
5217       Compiler_Error($"Not a type: %s\n", (yyvsp[(1) - (2)].id).string);
5218       yylloc = tmpLoc; (yyvsp[(2) - (2)].id).badID = (yyvsp[(1) - (2)].id); // FreeIdentifier($1);
5219    #endif
5220    ;}
5221     break;
5222
5223   case 7:
5224
5225 /* Line 1464 of yacc.c  */
5226 #line 341 "type.y"
5227     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5228     break;
5229
5230   case 9:
5231
5232 /* Line 1464 of yacc.c  */
5233 #line 346 "type.y"
5234     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
5235     break;
5236
5237   case 10:
5238
5239 /* Line 1464 of yacc.c  */
5240 #line 348 "type.y"
5241     {
5242       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
5243       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
5244       (yyval.specifier).loc = (yyloc);
5245
5246       (yylsp[(4) - (4)]).end.pos--;
5247       fileInput.Seek((yylsp[(4) - (4)]).end.pos, start);
5248       resetScannerPos(&(yylsp[(4) - (4)]).end);
5249       yyclearin;
5250     ;}
5251     break;
5252
5253   case 11:
5254
5255 /* Line 1464 of yacc.c  */
5256 #line 365 "type.y"
5257     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
5258     break;
5259
5260   case 12:
5261
5262 /* Line 1464 of yacc.c  */
5263 #line 367 "type.y"
5264     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
5265     break;
5266
5267   case 13:
5268
5269 /* Line 1464 of yacc.c  */
5270 #line 372 "type.y"
5271     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
5272     break;
5273
5274   case 14:
5275
5276 /* Line 1464 of yacc.c  */
5277 #line 377 "type.y"
5278     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
5279     break;
5280
5281   case 15:
5282
5283 /* Line 1464 of yacc.c  */
5284 #line 382 "type.y"
5285     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
5286     break;
5287
5288   case 16:
5289
5290 /* Line 1464 of yacc.c  */
5291 #line 384 "type.y"
5292     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
5293     break;
5294
5295   case 17:
5296
5297 /* Line 1464 of yacc.c  */
5298 #line 389 "type.y"
5299     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
5300     break;
5301
5302   case 19:
5303
5304 /* Line 1464 of yacc.c  */
5305 #line 395 "type.y"
5306     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
5307     break;
5308
5309   case 20:
5310
5311 /* Line 1464 of yacc.c  */
5312 #line 400 "type.y"
5313     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
5314     break;
5315
5316   case 21:
5317
5318 /* Line 1464 of yacc.c  */
5319 #line 402 "type.y"
5320     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5321     break;
5322
5323   case 22:
5324
5325 /* Line 1464 of yacc.c  */
5326 #line 404 "type.y"
5327     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
5328     break;
5329
5330   case 23:
5331
5332 /* Line 1464 of yacc.c  */
5333 #line 405 "type.y"
5334     { (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
5335     break;
5336
5337   case 24:
5338
5339 /* Line 1464 of yacc.c  */
5340 #line 407 "type.y"
5341     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
5342     break;
5343
5344   case 25:
5345
5346 /* Line 1464 of yacc.c  */
5347 #line 408 "type.y"
5348     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
5349     break;
5350
5351   case 26:
5352
5353 /* Line 1464 of yacc.c  */
5354 #line 409 "type.y"
5355     { (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); ;}
5356     break;
5357
5358   case 27:
5359
5360 /* Line 1464 of yacc.c  */
5361 #line 411 "type.y"
5362     { 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(); ;}
5363     break;
5364
5365   case 28:
5366
5367 /* Line 1464 of yacc.c  */
5368 #line 413 "type.y"
5369     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5370     break;
5371
5372   case 29:
5373
5374 /* Line 1464 of yacc.c  */
5375 #line 414 "type.y"
5376     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5377     break;
5378
5379   case 30:
5380
5381 /* Line 1464 of yacc.c  */
5382 #line 415 "type.y"
5383     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5384     break;
5385
5386   case 31:
5387
5388 /* Line 1464 of yacc.c  */
5389 #line 416 "type.y"
5390     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5391     break;
5392
5393   case 32:
5394
5395 /* Line 1464 of yacc.c  */
5396 #line 417 "type.y"
5397     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5398     break;
5399
5400   case 33:
5401
5402 /* Line 1464 of yacc.c  */
5403 #line 418 "type.y"
5404     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5405     break;
5406
5407   case 34:
5408
5409 /* Line 1464 of yacc.c  */
5410 #line 419 "type.y"
5411     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5412     break;
5413
5414   case 35:
5415
5416 /* Line 1464 of yacc.c  */
5417 #line 420 "type.y"
5418     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5419     break;
5420
5421   case 36:
5422
5423 /* Line 1464 of yacc.c  */
5424 #line 421 "type.y"
5425     { (yyval.exp) = MkExpDummy(); ;}
5426     break;
5427
5428   case 38:
5429
5430 /* Line 1464 of yacc.c  */
5431 #line 426 "type.y"
5432     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5433     break;
5434
5435   case 39:
5436
5437 /* Line 1464 of yacc.c  */
5438 #line 427 "type.y"
5439     { (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); ;}
5440     break;
5441
5442   case 40:
5443
5444 /* Line 1464 of yacc.c  */
5445 #line 428 "type.y"
5446     { (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); ;}
5447     break;
5448
5449   case 41:
5450
5451 /* Line 1464 of yacc.c  */
5452 #line 429 "type.y"
5453     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5454     break;
5455
5456   case 42:
5457
5458 /* Line 1464 of yacc.c  */
5459 #line 431 "type.y"
5460     {
5461       char * constant = (yyvsp[(1) - (2)].exp).type == constantExp ? (yyvsp[(1) - (2)].exp).constant : null;
5462       int len = constant ? strlen(constant) : 0;
5463       if(constant && constant[len-1] == '.')
5464       {
5465          constant[len-1] = 0;
5466          (yyval.exp) = MkExpMember((yyvsp[(1) - (2)].exp), (yyvsp[(2) - (2)].id));
5467          (yyval.exp).loc = (yyloc);
5468       }
5469       else
5470          yyerror();
5471    ;}
5472     break;
5473
5474   case 43:
5475
5476 /* Line 1464 of yacc.c  */
5477 #line 443 "type.y"
5478     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5479     break;
5480
5481   case 44:
5482
5483 /* Line 1464 of yacc.c  */
5484 #line 444 "type.y"
5485     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5486     break;
5487
5488   case 45:
5489
5490 /* Line 1464 of yacc.c  */
5491 #line 445 "type.y"
5492     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5493     break;
5494
5495   case 46:
5496
5497 /* Line 1464 of yacc.c  */
5498 #line 449 "type.y"
5499     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5500     break;
5501
5502   case 47:
5503
5504 /* Line 1464 of yacc.c  */
5505 #line 478 "type.y"
5506     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5507     break;
5508
5509   case 48:
5510
5511 /* Line 1464 of yacc.c  */
5512 #line 479 "type.y"
5513     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5514     break;
5515
5516   case 49:
5517
5518 /* Line 1464 of yacc.c  */
5519 #line 480 "type.y"
5520     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5521     break;
5522
5523   case 50:
5524
5525 /* Line 1464 of yacc.c  */
5526 #line 481 "type.y"
5527     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5528     break;
5529
5530   case 51:
5531
5532 /* Line 1464 of yacc.c  */
5533 #line 485 "type.y"
5534     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5535     break;
5536
5537   case 52:
5538
5539 /* Line 1464 of yacc.c  */
5540 #line 486 "type.y"
5541     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5542     break;
5543
5544   case 53:
5545
5546 /* Line 1464 of yacc.c  */
5547 #line 487 "type.y"
5548     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5549     break;
5550
5551   case 54:
5552
5553 /* Line 1464 of yacc.c  */
5554 #line 489 "type.y"
5555     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5556     break;
5557
5558   case 55:
5559
5560 /* Line 1464 of yacc.c  */
5561 #line 490 "type.y"
5562     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5563     break;
5564
5565   case 56:
5566
5567 /* Line 1464 of yacc.c  */
5568 #line 492 "type.y"
5569     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5570     break;
5571
5572   case 57:
5573
5574 /* Line 1464 of yacc.c  */
5575 #line 493 "type.y"
5576     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5577     break;
5578
5579   case 60:
5580
5581 /* Line 1464 of yacc.c  */
5582 #line 507 "type.y"
5583     { (yyval.i) = '&'; ;}
5584     break;
5585
5586   case 61:
5587
5588 /* Line 1464 of yacc.c  */
5589 #line 508 "type.y"
5590     { (yyval.i) = '*'; ;}
5591     break;
5592
5593   case 62:
5594
5595 /* Line 1464 of yacc.c  */
5596 #line 509 "type.y"
5597     { (yyval.i) = '+'; ;}
5598     break;
5599
5600   case 63:
5601
5602 /* Line 1464 of yacc.c  */
5603 #line 510 "type.y"
5604     { (yyval.i) = '-'; ;}
5605     break;
5606
5607   case 64:
5608
5609 /* Line 1464 of yacc.c  */
5610 #line 511 "type.y"
5611     { (yyval.i) = '~'; ;}
5612     break;
5613
5614   case 65:
5615
5616 /* Line 1464 of yacc.c  */
5617 #line 512 "type.y"
5618     { (yyval.i) = '!'; ;}
5619     break;
5620
5621   case 66:
5622
5623 /* Line 1464 of yacc.c  */
5624 #line 513 "type.y"
5625     { (yyval.i) = DELETE; ;}
5626     break;
5627
5628   case 68:
5629
5630 /* Line 1464 of yacc.c  */
5631 #line 518 "type.y"
5632     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5633     break;
5634
5635   case 70:
5636
5637 /* Line 1464 of yacc.c  */
5638 #line 523 "type.y"
5639     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5640     break;
5641
5642   case 71:
5643
5644 /* Line 1464 of yacc.c  */
5645 #line 524 "type.y"
5646     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5647     break;
5648
5649   case 72:
5650
5651 /* Line 1464 of yacc.c  */
5652 #line 525 "type.y"
5653     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5654     break;
5655
5656   case 74:
5657
5658 /* Line 1464 of yacc.c  */
5659 #line 530 "type.y"
5660     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5661     break;
5662
5663   case 75:
5664
5665 /* Line 1464 of yacc.c  */
5666 #line 531 "type.y"
5667     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5668     break;
5669
5670   case 77:
5671
5672 /* Line 1464 of yacc.c  */
5673 #line 536 "type.y"
5674     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5675     break;
5676
5677   case 78:
5678
5679 /* Line 1464 of yacc.c  */
5680 #line 537 "type.y"
5681     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5682     break;
5683
5684   case 79:
5685
5686 /* Line 1464 of yacc.c  */
5687 #line 542 "type.y"
5688     {
5689       (yyval.exp) = (yyvsp[(1) - (2)].exp);
5690       skipErrors = true;
5691    ;}
5692     break;
5693
5694   case 81:
5695
5696 /* Line 1464 of yacc.c  */
5697 #line 550 "type.y"
5698     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
5699     break;
5700
5701   case 82:
5702
5703 /* Line 1464 of yacc.c  */
5704 #line 551 "type.y"
5705     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5706     break;
5707
5708   case 83:
5709
5710 /* Line 1464 of yacc.c  */
5711 #line 552 "type.y"
5712     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5713     break;
5714
5715   case 84:
5716
5717 /* Line 1464 of yacc.c  */
5718 #line 553 "type.y"
5719     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5720     break;
5721
5722   case 86:
5723
5724 /* Line 1464 of yacc.c  */
5725 #line 558 "type.y"
5726     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5727     break;
5728
5729   case 87:
5730
5731 /* Line 1464 of yacc.c  */
5732 #line 559 "type.y"
5733     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5734     break;
5735
5736   case 89:
5737
5738 /* Line 1464 of yacc.c  */
5739 #line 564 "type.y"
5740     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5741     break;
5742
5743   case 91:
5744
5745 /* Line 1464 of yacc.c  */
5746 #line 569 "type.y"
5747     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5748     break;
5749
5750   case 93:
5751
5752 /* Line 1464 of yacc.c  */
5753 #line 574 "type.y"
5754     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5755     break;
5756
5757   case 95:
5758
5759 /* Line 1464 of yacc.c  */
5760 #line 579 "type.y"
5761     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5762     break;
5763
5764   case 97:
5765
5766 /* Line 1464 of yacc.c  */
5767 #line 584 "type.y"
5768     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5769     break;
5770
5771   case 99:
5772
5773 /* Line 1464 of yacc.c  */
5774 #line 589 "type.y"
5775     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5776     break;
5777
5778   case 101:
5779
5780 /* Line 1464 of yacc.c  */
5781 #line 594 "type.y"
5782     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5783     break;
5784
5785   case 102:
5786
5787 /* Line 1464 of yacc.c  */
5788 #line 595 "type.y"
5789     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5790     break;
5791
5792   case 103:
5793
5794 /* Line 1464 of yacc.c  */
5795 #line 599 "type.y"
5796     { (yyval.i) = '='; ;}
5797     break;
5798
5799   case 104:
5800
5801 /* Line 1464 of yacc.c  */
5802 #line 600 "type.y"
5803     { (yyval.i) = MUL_ASSIGN; ;}
5804     break;
5805
5806   case 105:
5807
5808 /* Line 1464 of yacc.c  */
5809 #line 601 "type.y"
5810     { (yyval.i) = DIV_ASSIGN; ;}
5811     break;
5812
5813   case 106:
5814
5815 /* Line 1464 of yacc.c  */
5816 #line 602 "type.y"
5817     { (yyval.i) = MOD_ASSIGN; ;}
5818     break;
5819
5820   case 107:
5821
5822 /* Line 1464 of yacc.c  */
5823 #line 603 "type.y"
5824     { (yyval.i) = ADD_ASSIGN; ;}
5825     break;
5826
5827   case 108:
5828
5829 /* Line 1464 of yacc.c  */
5830 #line 604 "type.y"
5831     { (yyval.i) = SUB_ASSIGN; ;}
5832     break;
5833
5834   case 109:
5835
5836 /* Line 1464 of yacc.c  */
5837 #line 605 "type.y"
5838     { (yyval.i) = LEFT_ASSIGN; ;}
5839     break;
5840
5841   case 110:
5842
5843 /* Line 1464 of yacc.c  */
5844 #line 606 "type.y"
5845     { (yyval.i) = RIGHT_ASSIGN; ;}
5846     break;
5847
5848   case 111:
5849
5850 /* Line 1464 of yacc.c  */
5851 #line 607 "type.y"
5852     { (yyval.i) = AND_ASSIGN; ;}
5853     break;
5854
5855   case 112:
5856
5857 /* Line 1464 of yacc.c  */
5858 #line 608 "type.y"
5859     { (yyval.i) = XOR_ASSIGN; ;}
5860     break;
5861
5862   case 113:
5863
5864 /* Line 1464 of yacc.c  */
5865 #line 609 "type.y"
5866     { (yyval.i) = OR_ASSIGN; ;}
5867     break;
5868
5869   case 114:
5870
5871 /* Line 1464 of yacc.c  */
5872 #line 613 "type.y"
5873     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5874     break;
5875
5876   case 115:
5877
5878 /* Line 1464 of yacc.c  */
5879 #line 614 "type.y"
5880     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5881     break;
5882
5883   case 117:
5884
5885 /* Line 1464 of yacc.c  */
5886 #line 622 "type.y"
5887     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5888     break;
5889
5890   case 118:
5891
5892 /* Line 1464 of yacc.c  */
5893 #line 623 "type.y"
5894     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5895     break;
5896
5897   case 119:
5898
5899 /* Line 1464 of yacc.c  */
5900 #line 624 "type.y"
5901     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5902     break;
5903
5904   case 120:
5905
5906 /* Line 1464 of yacc.c  */
5907 #line 625 "type.y"
5908     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5909     break;
5910
5911   case 121:
5912
5913 /* Line 1464 of yacc.c  */
5914 #line 629 "type.y"
5915     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5916     break;
5917
5918   case 122:
5919
5920 /* Line 1464 of yacc.c  */
5921 #line 630 "type.y"
5922     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5923     break;
5924
5925   case 123:
5926
5927 /* Line 1464 of yacc.c  */
5928 #line 631 "type.y"
5929     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5930     break;
5931
5932   case 124:
5933
5934 /* Line 1464 of yacc.c  */
5935 #line 632 "type.y"
5936     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5937     break;
5938
5939   case 125:
5940
5941 /* Line 1464 of yacc.c  */
5942 #line 633 "type.y"
5943     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5944     break;
5945
5946   case 126:
5947
5948 /* Line 1464 of yacc.c  */
5949 #line 634 "type.y"
5950     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5951     break;
5952
5953   case 127:
5954
5955 /* Line 1464 of yacc.c  */
5956 #line 635 "type.y"
5957     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5958     break;
5959
5960   case 128:
5961
5962 /* Line 1464 of yacc.c  */
5963 #line 636 "type.y"
5964     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5965     break;
5966
5967   case 129:
5968
5969 /* Line 1464 of yacc.c  */
5970 #line 640 "type.y"
5971     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5972     break;
5973
5974   case 130:
5975
5976 /* Line 1464 of yacc.c  */
5977 #line 641 "type.y"
5978     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5979     break;
5980
5981   case 131:
5982
5983 /* Line 1464 of yacc.c  */
5984 #line 642 "type.y"
5985     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5986     break;
5987
5988   case 132:
5989
5990 /* Line 1464 of yacc.c  */
5991 #line 643 "type.y"
5992     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5993     break;
5994
5995   case 133:
5996
5997 /* Line 1464 of yacc.c  */
5998 #line 644 "type.y"
5999     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6000     break;
6001
6002   case 134:
6003
6004 /* Line 1464 of yacc.c  */
6005 #line 645 "type.y"
6006     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6007     break;
6008
6009   case 135:
6010
6011 /* Line 1464 of yacc.c  */
6012 #line 646 "type.y"
6013     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6014     break;
6015
6016   case 136:
6017
6018 /* Line 1464 of yacc.c  */
6019 #line 647 "type.y"
6020     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6021     break;
6022
6023   case 137:
6024
6025 /* Line 1464 of yacc.c  */
6026 #line 648 "type.y"
6027     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6028     break;
6029
6030   case 138:
6031
6032 /* Line 1464 of yacc.c  */
6033 #line 649 "type.y"
6034     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6035     break;
6036
6037   case 139:
6038
6039 /* Line 1464 of yacc.c  */
6040 #line 653 "type.y"
6041     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6042     break;
6043
6044   case 140:
6045
6046 /* Line 1464 of yacc.c  */
6047 #line 654 "type.y"
6048     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6049     break;
6050
6051   case 141:
6052
6053 /* Line 1464 of yacc.c  */
6054 #line 655 "type.y"
6055     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6056     break;
6057
6058   case 142:
6059
6060 /* Line 1464 of yacc.c  */
6061 #line 656 "type.y"
6062     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6063     break;
6064
6065   case 143:
6066
6067 /* Line 1464 of yacc.c  */
6068 #line 657 "type.y"
6069     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6070     break;
6071
6072   case 144:
6073
6074 /* Line 1464 of yacc.c  */
6075 #line 658 "type.y"
6076     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6077     break;
6078
6079   case 145:
6080
6081 /* Line 1464 of yacc.c  */
6082 #line 659 "type.y"
6083     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6084     break;
6085
6086   case 146:
6087
6088 /* Line 1464 of yacc.c  */
6089 #line 660 "type.y"
6090     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6091     break;
6092
6093   case 147:
6094
6095 /* Line 1464 of yacc.c  */
6096 #line 661 "type.y"
6097     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6098     break;
6099
6100   case 148:
6101
6102 /* Line 1464 of yacc.c  */
6103 #line 662 "type.y"
6104     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6105     break;
6106
6107   case 149:
6108
6109 /* Line 1464 of yacc.c  */
6110 #line 666 "type.y"
6111     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6112     break;
6113
6114   case 150:
6115
6116 /* Line 1464 of yacc.c  */
6117 #line 667 "type.y"
6118     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6119     break;
6120
6121   case 151:
6122
6123 /* Line 1464 of yacc.c  */
6124 #line 668 "type.y"
6125     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6126     break;
6127
6128   case 152:
6129
6130 /* Line 1464 of yacc.c  */
6131 #line 669 "type.y"
6132     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6133     break;
6134
6135   case 153:
6136
6137 /* Line 1464 of yacc.c  */
6138 #line 670 "type.y"
6139     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6140     break;
6141
6142   case 154:
6143
6144 /* Line 1464 of yacc.c  */
6145 #line 671 "type.y"
6146     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6147     break;
6148
6149   case 155:
6150
6151 /* Line 1464 of yacc.c  */
6152 #line 672 "type.y"
6153     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6154     break;
6155
6156   case 156:
6157
6158 /* Line 1464 of yacc.c  */
6159 #line 673 "type.y"
6160     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6161     break;
6162
6163   case 157:
6164
6165 /* Line 1464 of yacc.c  */
6166 #line 674 "type.y"
6167     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6168     break;
6169
6170   case 158:
6171
6172 /* Line 1464 of yacc.c  */
6173 #line 675 "type.y"
6174     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6175     break;
6176
6177   case 159:
6178
6179 /* Line 1464 of yacc.c  */
6180 #line 676 "type.y"
6181     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6182     break;
6183
6184   case 160:
6185
6186 /* Line 1464 of yacc.c  */
6187 #line 677 "type.y"
6188     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6189     break;
6190
6191   case 161:
6192
6193 /* Line 1464 of yacc.c  */
6194 #line 681 "type.y"
6195     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
6196     break;
6197
6198   case 162:
6199
6200 /* Line 1464 of yacc.c  */
6201 #line 682 "type.y"
6202     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6203     break;
6204
6205   case 163:
6206
6207 /* Line 1464 of yacc.c  */
6208 #line 686 "type.y"
6209     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6210     break;
6211
6212   case 164:
6213
6214 /* Line 1464 of yacc.c  */
6215 #line 687 "type.y"
6216     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6217     break;
6218
6219   case 165:
6220
6221 /* Line 1464 of yacc.c  */
6222 #line 688 "type.y"
6223     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6224     break;
6225
6226   case 166:
6227
6228 /* Line 1464 of yacc.c  */
6229 #line 689 "type.y"
6230     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6231     break;
6232
6233   case 167:
6234
6235 /* Line 1464 of yacc.c  */
6236 #line 690 "type.y"
6237     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6238     break;
6239
6240   case 168:
6241
6242 /* Line 1464 of yacc.c  */
6243 #line 691 "type.y"
6244     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6245     break;
6246
6247   case 169:
6248
6249 /* Line 1464 of yacc.c  */
6250 #line 692 "type.y"
6251     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6252     break;
6253
6254   case 170:
6255
6256 /* Line 1464 of yacc.c  */
6257 #line 693 "type.y"
6258     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
6259     break;
6260
6261   case 171:
6262
6263 /* Line 1464 of yacc.c  */
6264 #line 695 "type.y"
6265     {
6266          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
6267
6268          (yyval.list) = MkList();
6269          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6270          FreeIdentifier((yyvsp[(1) - (4)].id));
6271       ;}
6272     break;
6273
6274   case 172:
6275
6276 /* Line 1464 of yacc.c  */
6277 #line 703 "type.y"
6278     {
6279          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
6280          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6281          FreeIdentifier((yyvsp[(2) - (5)].id));
6282       ;}
6283     break;
6284
6285   case 173:
6286
6287 /* Line 1464 of yacc.c  */
6288 #line 711 "type.y"
6289     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6290     break;
6291
6292   case 174:
6293
6294 /* Line 1464 of yacc.c  */
6295 #line 712 "type.y"
6296     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6297     break;
6298
6299   case 175:
6300
6301 /* Line 1464 of yacc.c  */
6302 #line 713 "type.y"
6303     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6304     break;
6305
6306   case 176:
6307
6308 /* Line 1464 of yacc.c  */
6309 #line 714 "type.y"
6310     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6311     break;
6312
6313   case 177:
6314
6315 /* Line 1464 of yacc.c  */
6316 #line 715 "type.y"
6317     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6318     break;
6319
6320   case 178:
6321
6322 /* Line 1464 of yacc.c  */
6323 #line 716 "type.y"
6324     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6325     break;
6326
6327   case 179:
6328
6329 /* Line 1464 of yacc.c  */
6330 #line 717 "type.y"
6331     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6332     break;
6333
6334   case 180:
6335
6336 /* Line 1464 of yacc.c  */
6337 #line 718 "type.y"
6338     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6339     break;
6340
6341   case 181:
6342
6343 /* Line 1464 of yacc.c  */
6344 #line 719 "type.y"
6345     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6346     break;
6347
6348   case 182:
6349
6350 /* Line 1464 of yacc.c  */
6351 #line 720 "type.y"
6352     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6353     break;
6354
6355   case 183:
6356
6357 /* Line 1464 of yacc.c  */
6358 #line 721 "type.y"
6359     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6360     break;
6361
6362   case 184:
6363
6364 /* Line 1464 of yacc.c  */
6365 #line 722 "type.y"
6366     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
6367     break;
6368
6369   case 185:
6370
6371 /* Line 1464 of yacc.c  */
6372 #line 724 "type.y"
6373     {
6374          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
6375
6376          (yyval.list) = MkList();
6377          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6378          FreeIdentifier((yyvsp[(1) - (4)].id));
6379       ;}
6380     break;
6381
6382   case 186:
6383
6384 /* Line 1464 of yacc.c  */
6385 #line 732 "type.y"
6386     {
6387          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
6388          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6389          FreeIdentifier((yyvsp[(2) - (5)].id));
6390       ;}
6391     break;
6392
6393   case 187:
6394
6395 /* Line 1464 of yacc.c  */
6396 #line 740 "type.y"
6397     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
6398     break;
6399
6400   case 188:
6401
6402 /* Line 1464 of yacc.c  */
6403 #line 741 "type.y"
6404     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
6405     break;
6406
6407   case 189:
6408
6409 /* Line 1464 of yacc.c  */
6410 #line 745 "type.y"
6411     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
6412     break;
6413
6414   case 190:
6415
6416 /* Line 1464 of yacc.c  */
6417 #line 746 "type.y"
6418     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
6419     break;
6420
6421   case 191:
6422
6423 /* Line 1464 of yacc.c  */
6424 #line 750 "type.y"
6425     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
6426     break;
6427
6428   case 192:
6429
6430 /* Line 1464 of yacc.c  */
6431 #line 751 "type.y"
6432     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
6433     break;
6434
6435   case 193:
6436
6437 /* Line 1464 of yacc.c  */
6438 #line 752 "type.y"
6439     { (yyval.specifier) = MkSpecifier(STATIC); ;}
6440     break;
6441
6442   case 194:
6443
6444 /* Line 1464 of yacc.c  */
6445 #line 753 "type.y"
6446     { (yyval.specifier) = MkSpecifier(AUTO); ;}
6447     break;
6448
6449   case 195:
6450
6451 /* Line 1464 of yacc.c  */
6452 #line 754 "type.y"
6453     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
6454     break;
6455
6456   case 196:
6457
6458 /* Line 1464 of yacc.c  */
6459 #line 755 "type.y"
6460     { (yyval.specifier) = MkSpecifier(THREAD); ;}
6461     break;
6462
6463   case 197:
6464
6465 /* Line 1464 of yacc.c  */
6466 #line 759 "type.y"
6467     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6468     break;
6469
6470   case 198:
6471
6472 /* Line 1464 of yacc.c  */
6473 #line 760 "type.y"
6474     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6475     break;
6476
6477   case 199:
6478
6479 /* Line 1464 of yacc.c  */
6480 #line 761 "type.y"
6481     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
6482     break;
6483
6484   case 200:
6485
6486 /* Line 1464 of yacc.c  */
6487 #line 765 "type.y"
6488     { (yyval.i) = ATTRIB; ;}
6489     break;
6490
6491   case 201:
6492
6493 /* Line 1464 of yacc.c  */
6494 #line 766 "type.y"
6495     { (yyval.i) = ATTRIB_DEP; ;}
6496     break;
6497
6498   case 202:
6499
6500 /* Line 1464 of yacc.c  */
6501 #line 767 "type.y"
6502     { (yyval.i) = __ATTRIB; ;}
6503     break;
6504
6505   case 203:
6506
6507 /* Line 1464 of yacc.c  */
6508 #line 772 "type.y"
6509     { (yyval.string)  = CopyString(yytext); ;}
6510     break;
6511
6512   case 204:
6513
6514 /* Line 1464 of yacc.c  */
6515 #line 773 "type.y"
6516     { (yyval.string)  = CopyString(yytext); ;}
6517     break;
6518
6519   case 205:
6520
6521 /* Line 1464 of yacc.c  */
6522 #line 774 "type.y"
6523     { (yyval.string)  = CopyString(yytext); ;}
6524     break;
6525
6526   case 206:
6527
6528 /* Line 1464 of yacc.c  */
6529 #line 775 "type.y"
6530     { (yyval.string)  = CopyString(yytext); ;}
6531     break;
6532
6533   case 207:
6534
6535 /* Line 1464 of yacc.c  */
6536 #line 776 "type.y"
6537     { (yyval.string)  = CopyString(yytext); ;}
6538     break;
6539
6540   case 208:
6541
6542 /* Line 1464 of yacc.c  */
6543 #line 780 "type.y"
6544     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
6545     break;
6546
6547   case 209:
6548
6549 /* Line 1464 of yacc.c  */
6550 #line 781 "type.y"
6551     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
6552     break;
6553
6554   case 210:
6555
6556 /* Line 1464 of yacc.c  */
6557 #line 785 "type.y"
6558     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
6559     break;
6560
6561   case 211:
6562
6563 /* Line 1464 of yacc.c  */
6564 #line 786 "type.y"
6565     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
6566     break;
6567
6568   case 212:
6569
6570 /* Line 1464 of yacc.c  */
6571 #line 787 "type.y"
6572     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
6573     break;
6574
6575   case 213:
6576
6577 /* Line 1464 of yacc.c  */
6578 #line 791 "type.y"
6579     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
6580     break;
6581
6582   case 214:
6583
6584 /* Line 1464 of yacc.c  */
6585 #line 792 "type.y"
6586     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
6587     break;
6588
6589   case 215:
6590
6591 /* Line 1464 of yacc.c  */
6592 #line 796 "type.y"
6593     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
6594     break;
6595
6596   case 216:
6597
6598 /* Line 1464 of yacc.c  */
6599 #line 800 "type.y"
6600     { (yyval.specifier) = MkSpecifier(CONST); ;}
6601     break;
6602
6603   case 217:
6604
6605 /* Line 1464 of yacc.c  */
6606 #line 801 "type.y"
6607     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
6608     break;
6609
6610   case 218:
6611
6612 /* Line 1464 of yacc.c  */
6613 #line 802 "type.y"
6614     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
6615     break;
6616
6617   case 219:
6618
6619 /* Line 1464 of yacc.c  */
6620 #line 807 "type.y"
6621     { (yyval.specifier) = MkSpecifier(VOID); ;}
6622     break;
6623
6624   case 220:
6625
6626 /* Line 1464 of yacc.c  */
6627 #line 808 "type.y"
6628     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6629     break;
6630
6631   case 221:
6632
6633 /* Line 1464 of yacc.c  */
6634 #line 809 "type.y"
6635     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6636     break;
6637
6638   case 222:
6639
6640 /* Line 1464 of yacc.c  */
6641 #line 810 "type.y"
6642     { (yyval.specifier) = MkSpecifier(INT); ;}
6643     break;
6644
6645   case 223:
6646
6647 /* Line 1464 of yacc.c  */
6648 #line 811 "type.y"
6649     { (yyval.specifier) = MkSpecifier(UINT); ;}
6650     break;
6651
6652   case 224:
6653
6654 /* Line 1464 of yacc.c  */
6655 #line 812 "type.y"
6656     { (yyval.specifier) = MkSpecifier(INT64); ;}
6657     break;
6658
6659   case 225:
6660
6661 /* Line 1464 of yacc.c  */
6662 #line 813 "type.y"
6663     { (yyval.specifier) = MkSpecifier(INT128); ;}
6664     break;
6665
6666   case 226:
6667
6668 /* Line 1464 of yacc.c  */
6669 #line 814 "type.y"
6670     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6671     break;
6672
6673   case 227:
6674
6675 /* Line 1464 of yacc.c  */
6676 #line 815 "type.y"
6677     { (yyval.specifier) = MkSpecifier(LONG); ;}
6678     break;
6679
6680   case 228:
6681
6682 /* Line 1464 of yacc.c  */
6683 #line 816 "type.y"
6684     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6685     break;
6686
6687   case 229:
6688
6689 /* Line 1464 of yacc.c  */
6690 #line 817 "type.y"
6691     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6692     break;
6693
6694   case 230:
6695
6696 /* Line 1464 of yacc.c  */
6697 #line 818 "type.y"
6698     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6699     break;
6700
6701   case 231:
6702
6703 /* Line 1464 of yacc.c  */
6704 #line 819 "type.y"
6705     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6706     break;
6707
6708   case 232:
6709
6710 /* Line 1464 of yacc.c  */
6711 #line 820 "type.y"
6712     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6713     break;
6714
6715   case 233:
6716
6717 /* Line 1464 of yacc.c  */
6718 #line 821 "type.y"
6719     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
6720     break;
6721
6722   case 234:
6723
6724 /* Line 1464 of yacc.c  */
6725 #line 822 "type.y"
6726     { (yyval.specifier) = MkSpecifier(BOOL); ;}
6727     break;
6728
6729   case 238:
6730
6731 /* Line 1464 of yacc.c  */
6732 #line 826 "type.y"
6733     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6734     break;
6735
6736   case 239:
6737
6738 /* Line 1464 of yacc.c  */
6739 #line 827 "type.y"
6740     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6741     break;
6742
6743   case 240:
6744
6745 /* Line 1464 of yacc.c  */
6746 #line 828 "type.y"
6747     { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6748     break;
6749
6750   case 241:
6751
6752 /* Line 1464 of yacc.c  */
6753 #line 829 "type.y"
6754     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6755     break;
6756
6757   case 242:
6758
6759 /* Line 1464 of yacc.c  */
6760 #line 830 "type.y"
6761     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
6762     break;
6763
6764   case 243:
6765
6766 /* Line 1464 of yacc.c  */
6767 #line 831 "type.y"
6768     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
6769     break;
6770
6771   case 244:
6772
6773 /* Line 1464 of yacc.c  */
6774 #line 835 "type.y"
6775     { (yyval.specifier) = MkSpecifier(VOID); ;}
6776     break;
6777
6778   case 245:
6779
6780 /* Line 1464 of yacc.c  */
6781 #line 836 "type.y"
6782     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6783     break;
6784
6785   case 246:
6786
6787 /* Line 1464 of yacc.c  */
6788 #line 837 "type.y"
6789     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6790     break;
6791
6792   case 247:
6793
6794 /* Line 1464 of yacc.c  */
6795 #line 838 "type.y"
6796     { (yyval.specifier) = MkSpecifier(INT); ;}
6797     break;
6798
6799   case 248:
6800
6801 /* Line 1464 of yacc.c  */
6802 #line 839 "type.y"
6803     { (yyval.specifier) = MkSpecifier(UINT); ;}
6804     break;
6805
6806   case 249:
6807
6808 /* Line 1464 of yacc.c  */
6809 #line 840 "type.y"
6810     { (yyval.specifier) = MkSpecifier(INT64); ;}
6811     break;
6812
6813   case 250:
6814
6815 /* Line 1464 of yacc.c  */
6816 #line 841 "type.y"
6817     { (yyval.specifier) = MkSpecifier(INT128); ;}
6818     break;
6819
6820   case 251:
6821
6822 /* Line 1464 of yacc.c  */
6823 #line 842 "type.y"
6824     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6825     break;
6826
6827   case 252:
6828
6829 /* Line 1464 of yacc.c  */
6830 #line 843 "type.y"
6831     { (yyval.specifier) = MkSpecifier(LONG); ;}
6832     break;
6833
6834   case 253:
6835
6836 /* Line 1464 of yacc.c  */
6837 #line 844 "type.y"
6838     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6839     break;
6840
6841   case 254:
6842
6843 /* Line 1464 of yacc.c  */
6844 #line 845 "type.y"
6845     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6846     break;
6847
6848   case 255:
6849
6850 /* Line 1464 of yacc.c  */
6851 #line 846 "type.y"
6852     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6853     break;
6854
6855   case 256:
6856
6857 /* Line 1464 of yacc.c  */
6858 #line 847 "type.y"
6859     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6860     break;
6861
6862   case 257:
6863
6864 /* Line 1464 of yacc.c  */
6865 #line 848 "type.y"
6866     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6867     break;
6868
6869   case 258:
6870
6871 /* Line 1464 of yacc.c  */
6872 #line 849 "type.y"
6873     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
6874     break;
6875
6876   case 259:
6877
6878 /* Line 1464 of yacc.c  */
6879 #line 850 "type.y"
6880     { (yyval.specifier) = MkSpecifier(BOOL); ;}
6881     break;
6882
6883   case 263:
6884
6885 /* Line 1464 of yacc.c  */
6886 #line 854 "type.y"
6887     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6888     break;
6889
6890   case 264:
6891
6892 /* Line 1464 of yacc.c  */
6893 #line 855 "type.y"
6894     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6895     break;
6896
6897   case 265:
6898
6899 /* Line 1464 of yacc.c  */
6900 #line 856 "type.y"
6901     { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6902     break;
6903
6904   case 266:
6905
6906 /* Line 1464 of yacc.c  */
6907 #line 857 "type.y"
6908     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6909     break;
6910
6911   case 267:
6912
6913 /* Line 1464 of yacc.c  */
6914 #line 862 "type.y"
6915     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
6916     break;
6917
6918   case 268:
6919
6920 /* Line 1464 of yacc.c  */
6921 #line 863 "type.y"
6922     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
6923     break;
6924
6925   case 269:
6926
6927 /* Line 1464 of yacc.c  */
6928 #line 864 "type.y"
6929     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass((yyvsp[(2) - (4)].id)._class, (yyvsp[(2) - (4)].id).string); ;}
6930     break;
6931
6932   case 270:
6933
6934 /* Line 1464 of yacc.c  */
6935 #line 865 "type.y"
6936     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
6937     break;
6938
6939   case 271:
6940
6941 /* Line 1464 of yacc.c  */
6942 #line 867 "type.y"
6943     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
6944     break;
6945
6946   case 272:
6947
6948 /* Line 1464 of yacc.c  */
6949 #line 869 "type.y"
6950     { (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((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); ;}
6951     break;
6952
6953   case 273:
6954
6955 /* Line 1464 of yacc.c  */
6956 #line 870 "type.y"
6957     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
6958     break;
6959
6960   case 274:
6961
6962 /* Line 1464 of yacc.c  */
6963 #line 871 "type.y"
6964     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(3) - (5)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (5)].id)._class, (yyvsp[(3) - (5)].id).string); ;}
6965     break;
6966
6967   case 275:
6968
6969 /* Line 1464 of yacc.c  */
6970 #line 872 "type.y"
6971     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
6972     break;
6973
6974   case 276:
6975
6976 /* Line 1464 of yacc.c  */
6977 #line 874 "type.y"
6978     { (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((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); ;}
6979     break;
6980
6981   case 277:
6982
6983 /* Line 1464 of yacc.c  */
6984 #line 878 "type.y"
6985     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
6986     break;
6987
6988   case 278:
6989
6990 /* Line 1464 of yacc.c  */
6991 #line 880 "type.y"
6992     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
6993     break;
6994
6995   case 279:
6996
6997 /* Line 1464 of yacc.c  */
6998 #line 883 "type.y"
6999     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);if(declMode) DeclClass((yyvsp[(3) - (3)].id)._class, (yyvsp[(3) - (3)].id).string); ;}
7000     break;
7001
7002   case 280:
7003
7004 /* Line 1464 of yacc.c  */
7005 #line 885 "type.y"
7006     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl); if(declMode) DeclClass((yyvsp[(3) - (3)].specifier).nsSpec, (yyvsp[(3) - (3)].specifier).name); FreeSpecifier((yyvsp[(3) - (3)].specifier)); ;}
7007     break;
7008
7009   case 281:
7010
7011 /* Line 1464 of yacc.c  */
7012 #line 889 "type.y"
7013     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
7014     break;
7015
7016   case 282:
7017
7018 /* Line 1464 of yacc.c  */
7019 #line 890 "type.y"
7020     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7021     break;
7022
7023   case 283:
7024
7025 /* Line 1464 of yacc.c  */
7026 #line 895 "type.y"
7027     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
7028     break;
7029
7030   case 284:
7031
7032 /* Line 1464 of yacc.c  */
7033 #line 896 "type.y"
7034     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
7035     break;
7036
7037   case 285:
7038
7039 /* Line 1464 of yacc.c  */
7040 #line 907 "type.y"
7041     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
7042     break;
7043
7044   case 288:
7045
7046 /* Line 1464 of yacc.c  */
7047 #line 914 "type.y"
7048     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
7049     break;
7050
7051   case 289:
7052
7053 /* Line 1464 of yacc.c  */
7054 #line 916 "type.y"
7055     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
7056     break;
7057
7058   case 290:
7059
7060 /* Line 1464 of yacc.c  */
7061 #line 918 "type.y"
7062     {
7063       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
7064       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7065       {
7066          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7067          if(spec.type == nameSpecifier)
7068             (yyval.templateArgument).name = MkIdentifier(spec.name);
7069       }
7070       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7071       (yyval.templateArgument).loc = (yyloc);
7072    ;}
7073     break;
7074
7075   case 291:
7076
7077 /* Line 1464 of yacc.c  */
7078 #line 942 "type.y"
7079     {
7080       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
7081       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7082       {
7083          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7084          if(spec.type == nameSpecifier)
7085             (yyval.templateArgument).name = MkIdentifier(spec.name);
7086       }
7087       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7088       (yyval.templateArgument).loc = (yyloc);
7089    ;}
7090     break;
7091
7092   case 292:
7093
7094 /* Line 1464 of yacc.c  */
7095 #line 956 "type.y"
7096     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
7097     break;
7098
7099   case 293:
7100
7101 /* Line 1464 of yacc.c  */
7102 #line 957 "type.y"
7103     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
7104     break;
7105
7106   case 294:
7107
7108 /* Line 1464 of yacc.c  */
7109 #line 961 "type.y"
7110     { (yyval.specifierType) = structSpecifier; ;}
7111     break;
7112
7113   case 295:
7114
7115 /* Line 1464 of yacc.c  */
7116 #line 962 "type.y"
7117     { (yyval.specifierType) = unionSpecifier; ;}
7118     break;
7119
7120   case 296:
7121
7122 /* Line 1464 of yacc.c  */
7123 #line 966 "type.y"
7124     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
7125     break;
7126
7127   case 297:
7128
7129 /* Line 1464 of yacc.c  */
7130 #line 967 "type.y"
7131     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
7132     break;
7133
7134   case 298:
7135
7136 /* Line 1464 of yacc.c  */
7137 #line 971 "type.y"
7138     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
7139     break;
7140
7141   case 299:
7142
7143 /* Line 1464 of yacc.c  */
7144 #line 975 "type.y"
7145     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
7146     break;
7147
7148   case 300:
7149
7150 /* Line 1464 of yacc.c  */
7151 #line 976 "type.y"
7152     { ((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); ;}
7153     break;
7154
7155   case 301:
7156
7157 /* Line 1464 of yacc.c  */
7158 #line 981 "type.y"
7159     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7160     break;
7161
7162   case 302:
7163
7164 /* Line 1464 of yacc.c  */
7165 #line 983 "type.y"
7166     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7167     break;
7168
7169   case 303:
7170
7171 /* Line 1464 of yacc.c  */
7172 #line 985 "type.y"
7173     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7174     break;
7175
7176   case 304:
7177
7178 /* Line 1464 of yacc.c  */
7179 #line 987 "type.y"
7180     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7181     break;
7182
7183   case 305:
7184
7185 /* Line 1464 of yacc.c  */
7186 #line 989 "type.y"
7187     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7188     break;
7189
7190   case 306:
7191
7192 /* Line 1464 of yacc.c  */
7193 #line 992 "type.y"
7194     { (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); ;}
7195     break;
7196
7197   case 307:
7198
7199 /* Line 1464 of yacc.c  */
7200 #line 994 "type.y"
7201     { (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); ;}
7202     break;
7203
7204   case 308:
7205
7206 /* Line 1464 of yacc.c  */
7207 #line 996 "type.y"
7208     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7209     break;
7210
7211   case 309:
7212
7213 /* Line 1464 of yacc.c  */
7214 #line 998 "type.y"
7215     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7216     break;
7217
7218   case 310:
7219
7220 /* Line 1464 of yacc.c  */
7221 #line 1000 "type.y"
7222     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7223     break;
7224
7225   case 311:
7226
7227 /* Line 1464 of yacc.c  */
7228 #line 1003 "type.y"
7229     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7230     break;
7231
7232   case 312:
7233
7234 /* Line 1464 of yacc.c  */
7235 #line 1005 "type.y"
7236     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7237     break;
7238
7239   case 313:
7240
7241 /* Line 1464 of yacc.c  */
7242 #line 1007 "type.y"
7243     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7244     break;
7245
7246   case 314:
7247
7248 /* Line 1464 of yacc.c  */
7249 #line 1009 "type.y"
7250     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
7251     break;
7252
7253   case 315:
7254
7255 /* Line 1464 of yacc.c  */
7256 #line 1011 "type.y"
7257     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
7258     break;
7259
7260   case 316:
7261
7262 /* Line 1464 of yacc.c  */
7263 #line 1014 "type.y"
7264     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7265     break;
7266
7267   case 317:
7268
7269 /* Line 1464 of yacc.c  */
7270 #line 1016 "type.y"
7271     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7272     break;
7273
7274   case 318:
7275
7276 /* Line 1464 of yacc.c  */
7277 #line 1018 "type.y"
7278     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7279     break;
7280
7281   case 319:
7282
7283 /* Line 1464 of yacc.c  */
7284 #line 1020 "type.y"
7285     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7286     break;
7287
7288   case 320:
7289
7290 /* Line 1464 of yacc.c  */
7291 #line 1022 "type.y"
7292     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
7293     break;
7294
7295   case 321:
7296
7297 /* Line 1464 of yacc.c  */
7298 #line 1026 "type.y"
7299     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7300     break;
7301
7302   case 322:
7303
7304 /* Line 1464 of yacc.c  */
7305 #line 1027 "type.y"
7306     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7307     break;
7308
7309   case 323:
7310
7311 /* Line 1464 of yacc.c  */
7312 #line 1028 "type.y"
7313     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7314     break;
7315
7316   case 324:
7317
7318 /* Line 1464 of yacc.c  */
7319 #line 1029 "type.y"
7320     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7321     break;
7322
7323   case 325:
7324
7325 /* Line 1464 of yacc.c  */
7326 #line 1030 "type.y"
7327     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
7328     break;
7329
7330   case 326:
7331
7332 /* Line 1464 of yacc.c  */
7333 #line 1031 "type.y"
7334     { (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); ;}
7335     break;
7336
7337   case 327:
7338
7339 /* Line 1464 of yacc.c  */
7340 #line 1032 "type.y"
7341     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
7342     break;
7343
7344   case 328:
7345
7346 /* Line 1464 of yacc.c  */
7347 #line 1033 "type.y"
7348     { (yyval.classDef) = null; ;}
7349     break;
7350
7351   case 329:
7352
7353 /* Line 1464 of yacc.c  */
7354 #line 1038 "type.y"
7355     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
7356     break;
7357
7358   case 330:
7359
7360 /* Line 1464 of yacc.c  */
7361 #line 1040 "type.y"
7362     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
7363     break;
7364
7365   case 331:
7366
7367 /* Line 1464 of yacc.c  */
7368 #line 1045 "type.y"
7369     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
7370     break;
7371
7372   case 332:
7373
7374 /* Line 1464 of yacc.c  */
7375 #line 1047 "type.y"
7376     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
7377     break;
7378
7379   case 333:
7380
7381 /* Line 1464 of yacc.c  */
7382 #line 1049 "type.y"
7383     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
7384     break;
7385
7386   case 334:
7387
7388 /* Line 1464 of yacc.c  */
7389 #line 1051 "type.y"
7390     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
7391     break;
7392
7393   case 335:
7394
7395 /* Line 1464 of yacc.c  */
7396 #line 1053 "type.y"
7397     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
7398     break;
7399
7400   case 336:
7401
7402 /* Line 1464 of yacc.c  */
7403 #line 1057 "type.y"
7404     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
7405     break;
7406
7407   case 337:
7408
7409 /* Line 1464 of yacc.c  */
7410 #line 1058 "type.y"
7411     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
7412     break;
7413
7414   case 338:
7415
7416 /* Line 1464 of yacc.c  */
7417 #line 1063 "type.y"
7418     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
7419     break;
7420
7421   case 339:
7422
7423 /* Line 1464 of yacc.c  */
7424 #line 1064 "type.y"
7425     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
7426     break;
7427
7428   case 340:
7429
7430 /* Line 1464 of yacc.c  */
7431 #line 1065 "type.y"
7432     { (yyval.specifier) = MkEnum((yyvsp[(2) - (7)].id), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass((yyvsp[(2) - (7)].id)._class, (yyvsp[(2) - (7)].id).string); ;}
7433     break;
7434
7435   case 341:
7436
7437 /* Line 1464 of yacc.c  */
7438 #line 1066 "type.y"
7439     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (7)].specifier).name), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass((yyvsp[(2) - (7)].specifier).nsSpec, (yyvsp[(2) - (7)].specifier).name); FreeSpecifier((yyvsp[(2) - (7)].specifier)); ;}
7440     break;
7441
7442   case 342:
7443
7444 /* Line 1464 of yacc.c  */
7445 #line 1067 "type.y"
7446     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
7447     break;
7448
7449   case 343:
7450
7451 /* Line 1464 of yacc.c  */
7452 #line 1072 "type.y"
7453     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
7454     break;
7455
7456   case 344:
7457
7458 /* Line 1464 of yacc.c  */
7459 #line 1074 "type.y"
7460     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
7461     break;
7462
7463   case 345:
7464
7465 /* Line 1464 of yacc.c  */
7466 #line 1079 "type.y"
7467     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
7468     break;
7469
7470   case 346:
7471
7472 /* Line 1464 of yacc.c  */
7473 #line 1081 "type.y"
7474     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
7475     break;
7476
7477   case 347:
7478
7479 /* Line 1464 of yacc.c  */
7480 #line 1087 "type.y"
7481     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7482     break;
7483
7484   case 348:
7485
7486 /* Line 1464 of yacc.c  */
7487 #line 1089 "type.y"
7488     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
7489     break;
7490
7491   case 349:
7492
7493 /* Line 1464 of yacc.c  */
7494 #line 1091 "type.y"
7495     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
7496     break;
7497
7498   case 350:
7499
7500 /* Line 1464 of yacc.c  */
7501 #line 1093 "type.y"
7502     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
7503     break;
7504
7505   case 351:
7506
7507 /* Line 1464 of yacc.c  */
7508 #line 1095 "type.y"
7509     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7510     break;
7511
7512   case 352:
7513
7514 /* Line 1464 of yacc.c  */
7515 #line 1097 "type.y"
7516     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7517     break;
7518
7519   case 353:
7520
7521 /* Line 1464 of yacc.c  */
7522 #line 1099 "type.y"
7523     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7524     break;
7525
7526   case 354:
7527
7528 /* Line 1464 of yacc.c  */
7529 #line 1101 "type.y"
7530     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7531     break;
7532
7533   case 355:
7534
7535 /* Line 1464 of yacc.c  */
7536 #line 1103 "type.y"
7537     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7538     break;
7539
7540   case 356:
7541
7542 /* Line 1464 of yacc.c  */
7543 #line 1105 "type.y"
7544     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7545     break;
7546
7547   case 357:
7548
7549 /* Line 1464 of yacc.c  */
7550 #line 1107 "type.y"
7551     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7552     break;
7553
7554   case 358:
7555
7556 /* Line 1464 of yacc.c  */
7557 #line 1112 "type.y"
7558     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7559     break;
7560
7561   case 359:
7562
7563 /* Line 1464 of yacc.c  */
7564 #line 1114 "type.y"
7565     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7566     break;
7567
7568   case 360:
7569
7570 /* Line 1464 of yacc.c  */
7571 #line 1116 "type.y"
7572     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7573     break;
7574
7575   case 361:
7576
7577 /* Line 1464 of yacc.c  */
7578 #line 1118 "type.y"
7579     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7580     break;
7581
7582   case 362:
7583
7584 /* Line 1464 of yacc.c  */
7585 #line 1120 "type.y"
7586     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7587     break;
7588
7589   case 363:
7590
7591 /* Line 1464 of yacc.c  */
7592 #line 1124 "type.y"
7593     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7594     break;
7595
7596   case 365:
7597
7598 /* Line 1464 of yacc.c  */
7599 #line 1126 "type.y"
7600     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7601     break;
7602
7603   case 366:
7604
7605 /* Line 1464 of yacc.c  */
7606 #line 1127 "type.y"
7607     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7608     break;
7609
7610   case 367:
7611
7612 /* Line 1464 of yacc.c  */
7613 #line 1128 "type.y"
7614     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7615     break;
7616
7617   case 368:
7618
7619 /* Line 1464 of yacc.c  */
7620 #line 1129 "type.y"
7621     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7622     break;
7623
7624   case 369:
7625
7626 /* Line 1464 of yacc.c  */
7627 #line 1133 "type.y"
7628     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7629     break;
7630
7631   case 371:
7632
7633 /* Line 1464 of yacc.c  */
7634 #line 1135 "type.y"
7635     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7636     break;
7637
7638   case 372:
7639
7640 /* Line 1464 of yacc.c  */
7641 #line 1136 "type.y"
7642     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7643     break;
7644
7645   case 373:
7646
7647 /* Line 1464 of yacc.c  */
7648 #line 1137 "type.y"
7649     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7650     break;
7651
7652   case 374:
7653
7654 /* Line 1464 of yacc.c  */
7655 #line 1138 "type.y"
7656     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7657     break;
7658
7659   case 376:
7660
7661 /* Line 1464 of yacc.c  */
7662 #line 1186 "type.y"
7663     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7664     break;
7665
7666   case 377:
7667
7668 /* Line 1464 of yacc.c  */
7669 #line 1188 "type.y"
7670     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7671     break;
7672
7673   case 378:
7674
7675 /* Line 1464 of yacc.c  */
7676 #line 1190 "type.y"
7677     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
7678     break;
7679
7680   case 379:
7681
7682 /* Line 1464 of yacc.c  */
7683 #line 1195 "type.y"
7684     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
7685     break;
7686
7687   case 380:
7688
7689 /* Line 1464 of yacc.c  */
7690 #line 1197 "type.y"
7691     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7692     break;
7693
7694   case 381:
7695
7696 /* Line 1464 of yacc.c  */
7697 #line 1199 "type.y"
7698     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7699     break;
7700
7701   case 382:
7702
7703 /* Line 1464 of yacc.c  */
7704 #line 1201 "type.y"
7705     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7706     break;
7707
7708   case 383:
7709
7710 /* Line 1464 of yacc.c  */
7711 #line 1203 "type.y"
7712     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7713     break;
7714
7715   case 385:
7716
7717 /* Line 1464 of yacc.c  */
7718 #line 1209 "type.y"
7719     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7720     break;
7721
7722   case 386:
7723
7724 /* Line 1464 of yacc.c  */
7725 #line 1212 "type.y"
7726     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7727     break;
7728
7729   case 387:
7730
7731 /* Line 1464 of yacc.c  */
7732 #line 1214 "type.y"
7733     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7734     break;
7735
7736   case 388:
7737
7738 /* Line 1464 of yacc.c  */
7739 #line 1216 "type.y"
7740     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7741     break;
7742
7743   case 390:
7744
7745 /* Line 1464 of yacc.c  */
7746 #line 1226 "type.y"
7747     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7748     break;
7749
7750   case 391:
7751
7752 /* Line 1464 of yacc.c  */
7753 #line 1228 "type.y"
7754     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7755     break;
7756
7757   case 392:
7758
7759 /* Line 1464 of yacc.c  */
7760 #line 1230 "type.y"
7761     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
7762     break;
7763
7764   case 395:
7765
7766 /* Line 1464 of yacc.c  */
7767 #line 1237 "type.y"
7768     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7769     break;
7770
7771   case 396:
7772
7773 /* Line 1464 of yacc.c  */
7774 #line 1239 "type.y"
7775     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7776     break;
7777
7778   case 398:
7779
7780 /* Line 1464 of yacc.c  */
7781 #line 1244 "type.y"
7782     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7783     break;
7784
7785   case 399:
7786
7787 /* Line 1464 of yacc.c  */
7788 #line 1245 "type.y"
7789     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7790     break;
7791
7792   case 400:
7793
7794 /* Line 1464 of yacc.c  */
7795 #line 1246 "type.y"
7796     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7797     break;
7798
7799   case 401:
7800
7801 /* Line 1464 of yacc.c  */
7802 #line 1247 "type.y"
7803     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7804     break;
7805
7806   case 402:
7807
7808 /* Line 1464 of yacc.c  */
7809 #line 1251 "type.y"
7810     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
7811     break;
7812
7813   case 403:
7814
7815 /* Line 1464 of yacc.c  */
7816 #line 1252 "type.y"
7817     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
7818     break;
7819
7820   case 404:
7821
7822 /* Line 1464 of yacc.c  */
7823 #line 1256 "type.y"
7824     { (yyval.pointer) = MkPointer(null, null); ;}
7825     break;
7826
7827   case 405:
7828
7829 /* Line 1464 of yacc.c  */
7830 #line 1257 "type.y"
7831     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
7832     break;
7833
7834   case 406:
7835
7836 /* Line 1464 of yacc.c  */
7837 #line 1258 "type.y"
7838     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
7839     break;
7840
7841   case 407:
7842
7843 /* Line 1464 of yacc.c  */
7844 #line 1259 "type.y"
7845     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
7846     break;
7847
7848   case 409:
7849
7850 /* Line 1464 of yacc.c  */
7851 #line 1264 "type.y"
7852     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
7853     break;
7854
7855   case 410:
7856
7857 /* Line 1464 of yacc.c  */
7858 #line 1268 "type.y"
7859     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
7860     break;
7861
7862   case 411:
7863
7864 /* Line 1464 of yacc.c  */
7865 #line 1269 "type.y"
7866     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
7867     break;
7868
7869   case 412:
7870
7871 /* Line 1464 of yacc.c  */
7872 #line 1273 "type.y"
7873     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7874     break;
7875
7876   case 413:
7877
7878 /* Line 1464 of yacc.c  */
7879 #line 1274 "type.y"
7880     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7881     break;
7882
7883   case 414:
7884
7885 /* Line 1464 of yacc.c  */
7886 #line 1275 "type.y"
7887     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
7888     break;
7889
7890   case 415:
7891
7892 /* Line 1464 of yacc.c  */
7893 #line 1276 "type.y"
7894     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
7895     break;
7896
7897   case 416:
7898
7899 /* Line 1464 of yacc.c  */
7900 #line 1277 "type.y"
7901     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7902     break;
7903
7904   case 417:
7905
7906 /* Line 1464 of yacc.c  */
7907 #line 1289 "type.y"
7908     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
7909     break;
7910
7911   case 418:
7912
7913 /* Line 1464 of yacc.c  */
7914 #line 1313 "type.y"
7915     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
7916     break;
7917
7918   case 419:
7919
7920 /* Line 1464 of yacc.c  */
7921 #line 1314 "type.y"
7922     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
7923     break;
7924
7925   case 420:
7926
7927 /* Line 1464 of yacc.c  */
7928 #line 1318 "type.y"
7929     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7930     break;
7931
7932   case 421:
7933
7934 /* Line 1464 of yacc.c  */
7935 #line 1319 "type.y"
7936     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7937     break;
7938
7939   case 422:
7940
7941 /* Line 1464 of yacc.c  */
7942 #line 1323 "type.y"
7943     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7944     break;
7945
7946   case 423:
7947
7948 /* Line 1464 of yacc.c  */
7949 #line 1324 "type.y"
7950     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7951     break;
7952
7953   case 424:
7954
7955 /* Line 1464 of yacc.c  */
7956 #line 1329 "type.y"
7957     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7958     break;
7959
7960   case 425:
7961
7962 /* Line 1464 of yacc.c  */
7963 #line 1331 "type.y"
7964     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
7965     break;
7966
7967   case 426:
7968
7969 /* Line 1464 of yacc.c  */
7970 #line 1333 "type.y"
7971     {
7972          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
7973          (yyval.initializer).loc = (yyloc);
7974
7975          {
7976             Expression exp = MkExpDummy();
7977             Initializer init = MkInitializerAssignment(exp);
7978             init.loc = (yylsp[(3) - (4)]);
7979             exp.loc = (yylsp[(3) - (4)]);
7980             ListAdd((yyvsp[(2) - (4)].list), init);
7981          }
7982       ;}
7983     break;
7984
7985   case 427:
7986
7987 /* Line 1464 of yacc.c  */
7988 #line 1349 "type.y"
7989     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7990     break;
7991
7992   case 428:
7993
7994 /* Line 1464 of yacc.c  */
7995 #line 1351 "type.y"
7996     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7997     break;
7998
7999   case 429:
8000
8001 /* Line 1464 of yacc.c  */
8002 #line 1373 "type.y"
8003     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
8004     break;
8005
8006   case 430:
8007
8008 /* Line 1464 of yacc.c  */
8009 #line 1375 "type.y"
8010     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
8011     break;
8012
8013   case 437:
8014
8015 /* Line 1464 of yacc.c  */
8016 #line 1389 "type.y"
8017     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8018     break;
8019
8020   case 438:
8021
8022 /* Line 1464 of yacc.c  */
8023 #line 1391 "type.y"
8024     { (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; ;}
8025     break;
8026
8027   case 439:
8028
8029 /* Line 1464 of yacc.c  */
8030 #line 1393 "type.y"
8031     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8032     break;
8033
8034   case 440:
8035
8036 /* Line 1464 of yacc.c  */
8037 #line 1397 "type.y"
8038     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
8039     break;
8040
8041   case 441:
8042
8043 /* Line 1464 of yacc.c  */
8044 #line 1398 "type.y"
8045     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
8046     break;
8047
8048   case 442:
8049
8050 /* Line 1464 of yacc.c  */
8051 #line 1402 "type.y"
8052     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
8053     break;
8054
8055   case 443:
8056
8057 /* Line 1464 of yacc.c  */
8058 #line 1403 "type.y"
8059     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
8060     break;
8061
8062   case 444:
8063
8064 /* Line 1464 of yacc.c  */
8065 #line 1406 "type.y"
8066     { 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); ;}
8067     break;
8068
8069   case 445:
8070
8071 /* Line 1464 of yacc.c  */
8072 #line 1410 "type.y"
8073     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
8074     break;
8075
8076   case 446:
8077
8078 /* Line 1464 of yacc.c  */
8079 #line 1411 "type.y"
8080     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
8081     break;
8082
8083   case 447:
8084
8085 /* Line 1464 of yacc.c  */
8086 #line 1412 "type.y"
8087     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
8088     break;
8089
8090   case 448:
8091
8092 /* Line 1464 of yacc.c  */
8093 #line 1416 "type.y"
8094     { (yyval.context) = PushContext(); ;}
8095     break;
8096
8097   case 449:
8098
8099 /* Line 1464 of yacc.c  */
8100 #line 1421 "type.y"
8101     {
8102       (yyval.stmt) = MkCompoundStmt(null, null);
8103       (yyval.stmt).compound.context = PushContext();
8104       PopContext((yyval.stmt).compound.context);
8105       (yyval.stmt).loc = (yyloc);
8106    ;}
8107     break;
8108
8109   case 450:
8110
8111 /* Line 1464 of yacc.c  */
8112 #line 1429 "type.y"
8113     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
8114     break;
8115
8116   case 451:
8117
8118 /* Line 1464 of yacc.c  */
8119 #line 1433 "type.y"
8120     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
8121     break;
8122
8123   case 452:
8124
8125 /* Line 1464 of yacc.c  */
8126 #line 1434 "type.y"
8127     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
8128     break;
8129
8130   case 453:
8131
8132 /* Line 1464 of yacc.c  */
8133 #line 1438 "type.y"
8134     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
8135     break;
8136
8137   case 454:
8138
8139 /* Line 1464 of yacc.c  */
8140 #line 1439 "type.y"
8141     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8142     break;
8143
8144   case 455:
8145
8146 /* Line 1464 of yacc.c  */
8147 #line 1440 "type.y"
8148     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8149     break;
8150
8151   case 456:
8152
8153 /* Line 1464 of yacc.c  */
8154 #line 1444 "type.y"
8155     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8156     break;
8157
8158   case 457:
8159
8160 /* Line 1464 of yacc.c  */
8161 #line 1445 "type.y"
8162     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
8163     break;
8164
8165   case 458:
8166
8167 /* Line 1464 of yacc.c  */
8168 #line 1446 "type.y"
8169     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8170     break;
8171
8172   case 459:
8173
8174 /* Line 1464 of yacc.c  */
8175 #line 1447 "type.y"
8176     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8177     break;
8178
8179   case 460:
8180
8181 /* Line 1464 of yacc.c  */
8182 #line 1449 "type.y"
8183     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8184     break;
8185
8186   case 461:
8187
8188 /* Line 1464 of yacc.c  */
8189 #line 1450 "type.y"
8190     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8191     break;
8192
8193   case 462:
8194
8195 /* Line 1464 of yacc.c  */
8196 #line 1451 "type.y"
8197     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8198     break;
8199
8200   case 463:
8201
8202 /* Line 1464 of yacc.c  */
8203 #line 1455 "type.y"
8204     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
8205     break;
8206
8207   case 464:
8208
8209 /* Line 1464 of yacc.c  */
8210 #line 1456 "type.y"
8211     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
8212     break;
8213
8214   case 465:
8215
8216 /* Line 1464 of yacc.c  */
8217 #line 1457 "type.y"
8218     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
8219     break;
8220
8221   case 466:
8222
8223 /* Line 1464 of yacc.c  */
8224 #line 1458 "type.y"
8225     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
8226     break;
8227
8228   case 467:
8229
8230 /* Line 1464 of yacc.c  */
8231 #line 1459 "type.y"
8232     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
8233     break;
8234
8235   case 468:
8236
8237 /* Line 1464 of yacc.c  */
8238 #line 1463 "type.y"
8239     { (yyval.string) = CopyString(yytext); ;}
8240     break;
8241
8242   case 469:
8243
8244 /* Line 1464 of yacc.c  */
8245 #line 1468 "type.y"
8246     { (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;;}
8247     break;
8248
8249   case 470:
8250
8251 /* Line 1464 of yacc.c  */
8252 #line 1470 "type.y"
8253     { (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;;}
8254     break;
8255
8256   case 471:
8257
8258 /* Line 1464 of yacc.c  */
8259 #line 1475 "type.y"
8260     { (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;;}
8261     break;
8262
8263   case 472:
8264
8265 /* Line 1464 of yacc.c  */
8266 #line 1477 "type.y"
8267     { (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;;}
8268     break;
8269
8270   case 473:
8271
8272 /* Line 1464 of yacc.c  */
8273 #line 1502 "type.y"
8274     { (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; ;}
8275     break;
8276
8277   case 474:
8278
8279 /* Line 1464 of yacc.c  */
8280 #line 1504 "type.y"
8281     { (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;;}
8282     break;
8283
8284   case 475:
8285
8286 /* Line 1464 of yacc.c  */
8287 #line 1506 "type.y"
8288     { 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)); ;}
8289     break;
8290
8291   case 476:
8292
8293 /* Line 1464 of yacc.c  */
8294 #line 1508 "type.y"
8295     { 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)); ;}
8296     break;
8297
8298   case 477:
8299
8300 /* Line 1464 of yacc.c  */
8301 #line 1513 "type.y"
8302     { (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; ;}
8303     break;
8304
8305   case 478:
8306
8307 /* Line 1464 of yacc.c  */
8308 #line 1515 "type.y"
8309     { (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;;}
8310     break;
8311
8312   case 479:
8313
8314 /* Line 1464 of yacc.c  */
8315 #line 1519 "type.y"
8316     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8317     break;
8318
8319   case 480:
8320
8321 /* Line 1464 of yacc.c  */
8322 #line 1521 "type.y"
8323     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8324     break;
8325
8326   case 481:
8327
8328 /* Line 1464 of yacc.c  */
8329 #line 1523 "type.y"
8330     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
8331     break;
8332
8333   case 482:
8334
8335 /* Line 1464 of yacc.c  */
8336 #line 1525 "type.y"
8337     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8338     break;
8339
8340   case 483:
8341
8342 /* Line 1464 of yacc.c  */
8343 #line 1527 "type.y"
8344     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8345     break;
8346
8347   case 484:
8348
8349 /* Line 1464 of yacc.c  */
8350 #line 1533 "type.y"
8351     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
8352     break;
8353
8354   case 485:
8355
8356 /* Line 1464 of yacc.c  */
8357 #line 1535 "type.y"
8358     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
8359     break;
8360
8361   case 486:
8362
8363 /* Line 1464 of yacc.c  */
8364 #line 1540 "type.y"
8365     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8366     break;
8367
8368   case 487:
8369
8370 /* Line 1464 of yacc.c  */
8371 #line 1544 "type.y"
8372     { (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;;}
8373     break;
8374
8375   case 488:
8376
8377 /* Line 1464 of yacc.c  */
8378 #line 1545 "type.y"
8379     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
8380     break;
8381
8382   case 489:
8383
8384 /* Line 1464 of yacc.c  */
8385 #line 1550 "type.y"
8386     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
8387     break;
8388
8389   case 490:
8390
8391 /* Line 1464 of yacc.c  */
8392 #line 1552 "type.y"
8393     { ((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); ;}
8394     break;
8395
8396   case 491:
8397
8398 /* Line 1464 of yacc.c  */
8399 #line 1557 "type.y"
8400     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8401     break;
8402
8403   case 492:
8404
8405 /* Line 1464 of yacc.c  */
8406 #line 1561 "type.y"
8407     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
8408     break;
8409
8410   case 493:
8411
8412 /* Line 1464 of yacc.c  */
8413 #line 1562 "type.y"
8414     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8415     break;
8416
8417   case 494:
8418
8419 /* Line 1464 of yacc.c  */
8420 #line 1563 "type.y"
8421     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8422     break;
8423
8424   case 495:
8425
8426 /* Line 1464 of yacc.c  */
8427 #line 1564 "type.y"
8428     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8429     break;
8430
8431   case 496:
8432
8433 /* Line 1464 of yacc.c  */
8434 #line 1565 "type.y"
8435     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
8436     break;
8437
8438   case 497:
8439
8440 /* Line 1464 of yacc.c  */
8441 #line 1566 "type.y"
8442     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8443     break;
8444
8445   case 499:
8446
8447 /* Line 1464 of yacc.c  */
8448 #line 1571 "type.y"
8449     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8450     break;
8451
8452   case 500:
8453
8454 /* Line 1464 of yacc.c  */
8455 #line 1572 "type.y"
8456     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
8457     break;
8458
8459   case 501:
8460
8461 /* Line 1464 of yacc.c  */
8462 #line 1576 "type.y"
8463     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
8464     break;
8465
8466   case 502:
8467
8468 /* Line 1464 of yacc.c  */
8469 #line 1577 "type.y"
8470     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
8471     break;
8472
8473
8474
8475 /* Line 1464 of yacc.c  */
8476 #line 8477 "type.ec"
8477       default: break;
8478     }
8479   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
8480
8481   YYPOPSTACK (yylen);
8482   yylen = 0;
8483   YY_STACK_PRINT (yyss, yyssp);
8484
8485   *++yyvsp = yyval;
8486   *++yylsp = yyloc;
8487
8488   /* Now `shift' the result of the reduction.  Determine what state
8489      that goes to, based on the state we popped back to and the rule
8490      number reduced by.  */
8491
8492   yyn = yyr1[yyn];
8493
8494   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
8495   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8496     yystate = yytable[yystate];
8497   else
8498     yystate = yydefgoto[yyn - YYNTOKENS];
8499
8500   goto yynewstate;
8501
8502
8503 /*------------------------------------.
8504 | yyerrlab -- here on detecting error |
8505 `------------------------------------*/
8506 yyerrlab:
8507   /* If not already recovering from an error, report this error.  */
8508   if (!yyerrstatus)
8509     {
8510       ++yynerrs;
8511 #if ! YYERROR_VERBOSE
8512       yyerror (YY_("syntax error"));
8513 #else
8514       {
8515         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
8516         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
8517           {
8518             YYSIZE_T yyalloc = 2 * yysize;
8519             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
8520               yyalloc = YYSTACK_ALLOC_MAXIMUM;
8521             if (yymsg != yymsgbuf)
8522               YYSTACK_FREE (yymsg);
8523             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
8524             if (yymsg)
8525               yymsg_alloc = yyalloc;
8526             else
8527               {
8528                 yymsg = yymsgbuf;
8529                 yymsg_alloc = sizeof yymsgbuf;
8530               }
8531           }
8532
8533         if (0 < yysize && yysize <= yymsg_alloc)
8534           {
8535             (void) yysyntax_error (yymsg, yystate, yychar);
8536             yyerror (yymsg);
8537           }
8538         else
8539           {
8540             yyerror (YY_("syntax error"));
8541             if (yysize != 0)
8542               goto yyexhaustedlab;
8543           }
8544       }
8545 #endif
8546     }
8547
8548   yyerror_range[0] = yylloc;
8549
8550   if (yyerrstatus == 3)
8551     {
8552       /* If just tried and failed to reuse lookahead token after an
8553          error, discard it.  */
8554
8555       if (yychar <= YYEOF)
8556         {
8557           /* Return failure if at end of input.  */
8558           if (yychar == YYEOF)
8559             YYABORT;
8560         }
8561       else
8562         {
8563           yydestruct ("Error: discarding",
8564                       yytoken, &yylval, &yylloc);
8565           yychar = YYEMPTY;
8566         }
8567     }
8568
8569   /* Else will try to reuse lookahead token after shifting the error
8570      token.  */
8571   goto yyerrlab1;
8572
8573
8574 /*---------------------------------------------------.
8575 | yyerrorlab -- error raised explicitly by YYERROR.  |
8576 `---------------------------------------------------*/
8577 yyerrorlab:
8578
8579   /* Pacify compilers like GCC when the user code never invokes
8580      YYERROR and the label yyerrorlab therefore never appears in user
8581      code.  */
8582   if (/*CONSTCOND*/ 0)
8583      goto yyerrorlab;
8584
8585   yyerror_range[0] = yylsp[1-yylen];
8586   /* Do not reclaim the symbols of the rule which action triggered
8587      this YYERROR.  */
8588   YYPOPSTACK (yylen);
8589   yylen = 0;
8590   YY_STACK_PRINT (yyss, yyssp);
8591   yystate = *yyssp;
8592   goto yyerrlab1;
8593
8594
8595 /*-------------------------------------------------------------.
8596 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
8597 `-------------------------------------------------------------*/
8598 yyerrlab1:
8599   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
8600
8601   for (;;)
8602     {
8603       yyn = yypact[yystate];
8604       if (yyn != YYPACT_NINF)
8605         {
8606           yyn += YYTERROR;
8607           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8608             {
8609               yyn = yytable[yyn];
8610               if (0 < yyn)
8611                 break;
8612             }
8613         }
8614
8615       /* Pop the current state because it cannot handle the error token.  */
8616       if (yyssp == yyss)
8617         YYABORT;
8618
8619       yyerror_range[0] = *yylsp;
8620       yydestruct ("Error: popping",
8621                   yystos[yystate], yyvsp, yylsp);
8622       YYPOPSTACK (1);
8623       yystate = *yyssp;
8624       YY_STACK_PRINT (yyss, yyssp);
8625     }
8626
8627   *++yyvsp = yylval;
8628
8629   yyerror_range[1] = yylloc;
8630   /* Using YYLLOC is tempting, but would change the location of
8631      the lookahead.  YYLOC is available though.  */
8632   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
8633   *++yylsp = yyloc;
8634
8635   /* Shift the error token.  */
8636   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8637
8638   yystate = yyn;
8639   goto yynewstate;
8640
8641
8642 /*-------------------------------------.
8643 | yyacceptlab -- YYACCEPT comes here.  |
8644 `-------------------------------------*/
8645 yyacceptlab:
8646   yyresult = 0;
8647   goto yyreturn;
8648
8649 /*-----------------------------------.
8650 | yyabortlab -- YYABORT comes here.  |
8651 `-----------------------------------*/
8652 yyabortlab:
8653   yyresult = 1;
8654   goto yyreturn;
8655
8656 #if !defined(yyoverflow) || YYERROR_VERBOSE
8657 /*-------------------------------------------------.
8658 | yyexhaustedlab -- memory exhaustion comes here.  |
8659 `-------------------------------------------------*/
8660 yyexhaustedlab:
8661   yyerror (YY_("memory exhausted"));
8662   yyresult = 2;
8663   /* Fall through.  */
8664 #endif
8665
8666 yyreturn:
8667   if (yychar != YYEMPTY)
8668      yydestruct ("Cleanup: discarding lookahead",
8669                  yytoken, &yylval, &yylloc);
8670   /* Do not reclaim the symbols of the rule which action triggered
8671      this YYABORT or YYACCEPT.  */
8672   YYPOPSTACK (yylen);
8673   YY_STACK_PRINT (yyss, yyssp);
8674   while (yyssp != yyss)
8675     {
8676       yydestruct ("Cleanup: popping",
8677                   yystos[*yyssp], yyvsp, yylsp);
8678       YYPOPSTACK (1);
8679     }
8680 #ifndef yyoverflow
8681   if (yyss != yyssa)
8682     YYSTACK_FREE (yyss);
8683 #endif
8684 #if YYERROR_VERBOSE
8685   if (yymsg != yymsgbuf)
8686     YYSTACK_FREE (yymsg);
8687 #endif
8688   /* Make sure YYID is used.  */
8689   return YYID (yyresult);
8690 }
8691
8692
8693
8694 /* Line 1684 of yacc.c  */
8695 #line 1580 "type.y"
8696
8697