compiler/libec: Added grammar rule for __builtin_offset
[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      LONG = 294,
173      SIGNED = 295,
174      UNSIGNED = 296,
175      FLOAT = 297,
176      DOUBLE = 298,
177      CONST = 299,
178      VOLATILE = 300,
179      VOID = 301,
180      VALIST = 302,
181      STRUCT = 303,
182      UNION = 304,
183      ENUM = 305,
184      ELLIPSIS = 306,
185      CASE = 307,
186      DEFAULT = 308,
187      IF = 309,
188      SWITCH = 310,
189      WHILE = 311,
190      DO = 312,
191      FOR = 313,
192      GOTO = 314,
193      CONTINUE = 315,
194      BREAK = 316,
195      RETURN = 317,
196      IFX = 318,
197      ELSE = 319,
198      CLASS = 320,
199      THISCLASS = 321,
200      CLASS_NAME = 322,
201      PROPERTY = 323,
202      SETPROP = 324,
203      GETPROP = 325,
204      NEWOP = 326,
205      RENEW = 327,
206      DELETE = 328,
207      EXT_DECL = 329,
208      EXT_STORAGE = 330,
209      IMPORT = 331,
210      DEFINE = 332,
211      VIRTUAL = 333,
212      ATTRIB = 334,
213      PUBLIC = 335,
214      PRIVATE = 336,
215      TYPED_OBJECT = 337,
216      ANY_OBJECT = 338,
217      _INCREF = 339,
218      EXTENSION = 340,
219      ASM = 341,
220      TYPEOF = 342,
221      WATCH = 343,
222      STOPWATCHING = 344,
223      FIREWATCHERS = 345,
224      WATCHABLE = 346,
225      CLASS_DESIGNER = 347,
226      CLASS_NO_EXPANSION = 348,
227      CLASS_FIXED = 349,
228      ISPROPSET = 350,
229      CLASS_DEFAULT_PROPERTY = 351,
230      PROPERTY_CATEGORY = 352,
231      CLASS_DATA = 353,
232      CLASS_PROPERTY = 354,
233      SUBCLASS = 355,
234      NAMESPACE = 356,
235      NEW0OP = 357,
236      RENEW0 = 358,
237      VAARG = 359,
238      DBTABLE = 360,
239      DBFIELD = 361,
240      DBINDEX = 362,
241      DATABASE_OPEN = 363,
242      ALIGNOF = 364,
243      ATTRIB_DEP = 365,
244      __ATTRIB = 366,
245      BOOL = 367,
246      _BOOL = 368,
247      _COMPLEX = 369,
248      _IMAGINARY = 370,
249      RESTRICT = 371,
250      THREAD = 372,
251      WIDE_STRING_LITERAL = 373,
252      BUILTIN_OFFSETOF = 374
253    };
254 #endif
255
256
257
258 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
259 typedef union YYSTYPE
260 {
261
262 /* Line 214 of yacc.c  */
263 #line 40 "type.y"
264
265    int i;
266    SpecifierType specifierType;
267    Identifier id;
268    Expression exp;
269    Specifier specifier;
270    OldList * list;
271    Enumerator enumerator;
272    Declarator declarator;
273    Pointer pointer;
274    Initializer initializer;
275    InitDeclarator initDeclarator;
276    TypeName typeName;
277    Declaration declaration;
278    Statement stmt;
279    FunctionDefinition function;
280    External external;
281    Context context;
282    Attrib attrib;
283    ExtDecl extDecl;
284    Attribute attribute;
285
286    Instantiation instance;
287    MembersInit membersInit;
288    MemberInit memberInit;
289    ClassFunction classFunction;
290    ClassDefinition _class;
291    ClassDef classDef;
292    PropertyDef prop;
293    char * string;
294    Symbol symbol;
295    TemplateParameter templateParameter;
296    TemplateArgument templateArgument;
297    TemplateDatatype templateDatatype;
298
299
300
301 /* Line 214 of yacc.c  */
302 #line 303 "type.ec"
303 } YYSTYPE;
304 # define YYSTYPE_IS_TRIVIAL 1
305 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
306 # define YYSTYPE_IS_DECLARED 1
307 #endif
308
309 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
310 typedef struct YYLTYPE
311 {
312   int first_line;
313   int first_column;
314   int last_line;
315   int last_column;
316 } YYLTYPE;
317 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
318 # define YYLTYPE_IS_DECLARED 1
319 # define YYLTYPE_IS_TRIVIAL 1
320 #endif
321
322
323 /* Copy the second part of user declarations.  */
324
325
326 /* Line 264 of yacc.c  */
327 #line 328 "type.ec"
328
329 #ifdef short
330 # undef short
331 #endif
332
333 #ifdef YYTYPE_UINT8
334 typedef YYTYPE_UINT8 yytype_uint8;
335 #else
336 typedef unsigned char yytype_uint8;
337 #endif
338
339 #ifdef YYTYPE_INT8
340 typedef YYTYPE_INT8 yytype_int8;
341 #elif (defined __STDC__ || defined __C99__FUNC__ \
342      || defined __cplusplus || defined _MSC_VER)
343 typedef signed char yytype_int8;
344 #else
345 typedef short int yytype_int8;
346 #endif
347
348 #ifdef YYTYPE_UINT16
349 typedef YYTYPE_UINT16 yytype_uint16;
350 #else
351 typedef unsigned short int yytype_uint16;
352 #endif
353
354 #ifdef YYTYPE_INT16
355 typedef YYTYPE_INT16 yytype_int16;
356 #else
357 typedef short int yytype_int16;
358 #endif
359
360 #ifndef YYSIZE_T
361 # ifdef __SIZE_TYPE__
362 #  define YYSIZE_T __SIZE_TYPE__
363 # elif defined size_t
364 #  define YYSIZE_T size_t
365 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
366      || defined __cplusplus || defined _MSC_VER)
367 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
368 #  define YYSIZE_T size_t
369 # else
370 #  define YYSIZE_T unsigned int
371 # endif
372 #endif
373
374 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
375
376 #ifndef YY_
377 # if defined YYENABLE_NLS && YYENABLE_NLS
378 #  if ENABLE_NLS
379 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
380 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
381 #  endif
382 # endif
383 # ifndef YY_
384 #  define YY_(msgid) msgid
385 # endif
386 #endif
387
388 /* Suppress unused-variable warnings by "using" E.  */
389 #if ! defined lint || defined __GNUC__
390 # define YYUSE(e) ((void) (e))
391 #else
392 # define YYUSE(e) /* empty */
393 #endif
394
395 /* Identity function, used to suppress warnings about constant conditions.  */
396 #ifndef lint
397 # define YYID(n) (n)
398 #else
399 #if (defined __STDC__ || defined __C99__FUNC__ \
400      || defined __cplusplus || defined _MSC_VER)
401 static int
402 YYID (int yyi)
403 #else
404 static int
405 YYID (yyi)
406     int yyi;
407 #endif
408 {
409   return yyi;
410 }
411 #endif
412
413 #if ! defined yyoverflow || YYERROR_VERBOSE
414
415 /* The parser invokes alloca or malloc; define the necessary symbols.  */
416
417 # ifdef YYSTACK_USE_ALLOCA
418 #  if YYSTACK_USE_ALLOCA
419 #   ifdef __GNUC__
420 #    define YYSTACK_ALLOC __builtin_alloca
421 #   elif defined __BUILTIN_VA_ARG_INCR
422 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
423 #   elif defined _AIX
424 #    define YYSTACK_ALLOC __alloca
425 #   elif defined _MSC_VER
426 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
427 #    define alloca _alloca
428 #   else
429 #    define YYSTACK_ALLOC alloca
430 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
431      || defined __cplusplus || defined _MSC_VER)
432 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
433 #     ifndef _STDLIB_H
434 #      define _STDLIB_H 1
435 #     endif
436 #    endif
437 #   endif
438 #  endif
439 # endif
440
441 # ifdef YYSTACK_ALLOC
442    /* Pacify GCC's `empty if-body' warning.  */
443 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
444 #  ifndef YYSTACK_ALLOC_MAXIMUM
445     /* The OS might guarantee only one guard page at the bottom of the stack,
446        and a page size can be as small as 4096 bytes.  So we cannot safely
447        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
448        to allow for a few compiler-allocated temporary stack slots.  */
449 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
450 #  endif
451 # else
452 #  define YYSTACK_ALLOC YYMALLOC
453 #  define YYSTACK_FREE YYFREE
454 #  ifndef YYSTACK_ALLOC_MAXIMUM
455 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
456 #  endif
457 #  if (defined __cplusplus && ! defined _STDLIB_H \
458        && ! ((defined YYMALLOC || defined malloc) \
459              && (defined YYFREE || defined free)))
460 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
461 #   ifndef _STDLIB_H
462 #    define _STDLIB_H 1
463 #   endif
464 #  endif
465 #  ifndef YYMALLOC
466 #   define YYMALLOC malloc
467 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
468      || defined __cplusplus || defined _MSC_VER)
469 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
470 #   endif
471 #  endif
472 #  ifndef YYFREE
473 #   define YYFREE free
474 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
475      || defined __cplusplus || defined _MSC_VER)
476 void free (void *); /* INFRINGES ON USER NAME SPACE */
477 #   endif
478 #  endif
479 # endif
480 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
481
482
483 #if (! defined yyoverflow \
484      && (! defined __cplusplus \
485          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
486              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
487
488 /* A type that is properly aligned for any stack member.  */
489 union yyalloc
490 {
491   yytype_int16 yyss_alloc;
492   YYSTYPE yyvs_alloc;
493   YYLTYPE yyls_alloc;
494 };
495
496 /* The size of the maximum gap between one aligned stack and the next.  */
497 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
498
499 /* The size of an array large to enough to hold all stacks, each with
500    N elements.  */
501 # define YYSTACK_BYTES(N) \
502      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
503       + 2 * YYSTACK_GAP_MAXIMUM)
504
505 /* Copy COUNT objects from FROM to TO.  The source and destination do
506    not overlap.  */
507 # ifndef YYCOPY
508 #  if defined __GNUC__ && 1 < __GNUC__
509 #   define YYCOPY(To, From, Count) \
510       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
511 #  else
512 #   define YYCOPY(To, From, Count)              \
513       do                                        \
514         {                                       \
515           YYSIZE_T yyi;                         \
516           for (yyi = 0; yyi < (Count); yyi++)   \
517             (To)[yyi] = (From)[yyi];            \
518         }                                       \
519       while (YYID (0))
520 #  endif
521 # endif
522
523 /* Relocate STACK from its old location to the new one.  The
524    local variables YYSIZE and YYSTACKSIZE give the old and new number of
525    elements in the stack, and YYPTR gives the new location of the
526    stack.  Advance YYPTR to a properly aligned location for the next
527    stack.  */
528 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
529     do                                                                  \
530       {                                                                 \
531         YYSIZE_T yynewbytes;                                            \
532         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
533         Stack = &yyptr->Stack_alloc;                                    \
534         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
535         yyptr += yynewbytes / sizeof (*yyptr);                          \
536       }                                                                 \
537     while (YYID (0))
538
539 #endif
540
541 /* YYFINAL -- State number of the termination state.  */
542 #define YYFINAL  99
543 /* YYLAST -- Last index in YYTABLE.  */
544 #define YYLAST   9303
545
546 /* YYNTOKENS -- Number of terminals.  */
547 #define YYNTOKENS  145
548 /* YYNNTS -- Number of nonterminals.  */
549 #define YYNNTS  123
550 /* YYNRULES -- Number of rules.  */
551 #define YYNRULES  500
552 /* YYNRULES -- Number of states.  */
553 #define YYNSTATES  859
554
555 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
556 #define YYUNDEFTOK  2
557 #define YYMAXUTOK   374
558
559 #define YYTRANSLATE(YYX)                                                \
560   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
561
562 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
563 static const yytype_uint8 yytranslate[] =
564 {
565        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,   134,     2,     2,   126,   136,   131,     2,
569      123,   124,   120,   132,   130,   133,   127,   135,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,   140,   142,
571      121,   141,   122,   139,     2,     2,     2,     2,     2,     2,
572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,   128,     2,   129,   137,     2,     2,     2,     2,     2,
575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
577        2,     2,     2,   143,   138,   144,   125,     2,     2,     2,
578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     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,     1,     2,     3,     4,
591        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
592       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
593       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
594       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
595       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
596       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
597       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
598       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
599       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
600       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
601      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
602      115,   116,   117,   118,   119
603 };
604
605 #if YYDEBUG
606 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
607    YYRHS.  */
608 static const yytype_uint16 yyprhs[] =
609 {
610        0,     0,     3,     6,     9,    12,    14,    17,    19,    21,
611       26,    31,    34,    36,    40,    45,    49,    52,    54,    56,
612       60,    62,    64,    66,    68,    70,    73,    78,    81,    88,
613       94,   101,   107,   115,   122,   130,   137,   139,   141,   146,
614      150,   155,   159,   162,   166,   169,   172,   174,   176,   178,
615      182,   186,   189,   192,   195,   198,   203,   206,   211,   213,
616      215,   217,   219,   221,   223,   225,   227,   229,   231,   236,
617      238,   242,   246,   250,   252,   256,   260,   262,   266,   270,
618      273,   275,   278,   282,   286,   290,   292,   296,   300,   302,
619      306,   308,   312,   314,   318,   320,   324,   326,   330,   332,
620      338,   340,   344,   348,   350,   352,   354,   356,   358,   360,
621      362,   364,   366,   368,   370,   372,   376,   378,   381,   385,
622      388,   394,   396,   399,   401,   404,   406,   409,   411,   414,
623      416,   419,   421,   424,   426,   429,   431,   434,   436,   439,
624      441,   444,   446,   449,   451,   454,   456,   459,   461,   464,
625      466,   469,   471,   474,   476,   479,   481,   484,   486,   489,
626      491,   494,   496,   498,   500,   503,   505,   508,   510,   513,
627      515,   518,   523,   529,   531,   534,   536,   539,   541,   544,
628      546,   549,   551,   554,   556,   559,   564,   570,   572,   576,
629      578,   582,   584,   586,   588,   590,   592,   594,   596,   598,
630      600,   602,   604,   606,   608,   610,   612,   614,   616,   618,
631      623,   625,   628,   632,   639,   645,   647,   649,   651,   653,
632      655,   657,   659,   661,   663,   665,   667,   669,   671,   673,
633      675,   677,   679,   681,   683,   685,   687,   689,   694,   699,
634      704,   706,   708,   710,   712,   714,   716,   718,   720,   722,
635      724,   726,   728,   730,   732,   734,   736,   738,   740,   742,
636      744,   746,   751,   756,   761,   763,   769,   774,   779,   783,
637      789,   796,   802,   808,   813,   820,   823,   826,   830,   834,
638      836,   839,   841,   844,   846,   848,   850,   854,   858,   862,
639      866,   868,   872,   874,   876,   878,   881,   885,   887,   891,
640      901,   911,   919,   927,   933,   944,   955,   964,   973,   980,
641      989,   998,  1005,  1012,  1017,  1027,  1037,  1045,  1053,  1059,
642     1063,  1066,  1069,  1072,  1074,  1077,  1079,  1081,  1083,  1087,
643     1089,  1092,  1095,  1099,  1105,  1108,  1111,  1116,  1122,  1130,
644     1138,  1144,  1146,  1150,  1152,  1156,  1160,  1163,  1167,  1171,
645     1175,  1180,  1185,  1188,  1192,  1196,  1201,  1205,  1208,  1212,
646     1216,  1221,  1223,  1225,  1228,  1231,  1234,  1238,  1240,  1242,
647     1245,  1248,  1251,  1255,  1257,  1260,  1264,  1267,  1269,  1273,
648     1278,  1282,  1287,  1289,  1292,  1295,  1299,  1303,  1306,  1310,
649     1314,  1317,  1319,  1321,  1324,  1327,  1329,  1332,  1335,  1339,
650     1343,  1345,  1348,  1350,  1353,  1356,  1360,  1362,  1366,  1368,
651     1372,  1375,  1378,  1381,  1385,  1387,  1389,  1391,  1395,  1397,
652     1400,  1402,  1405,  1407,  1411,  1416,  1418,  1420,  1422,  1426,
653     1428,  1430,  1432,  1434,  1436,  1438,  1442,  1447,  1451,  1453,
654     1456,  1458,  1461,  1464,  1466,  1468,  1471,  1473,  1476,  1480,
655     1482,  1485,  1491,  1499,  1505,  1511,  1519,  1526,  1534,  1539,
656     1545,  1550,  1554,  1557,  1560,  1563,  1567,  1569,  1575,  1580,
657     1586,  1591,  1596,  1600,  1605,  1609,  1613,  1616,  1619,  1622,
658     1625,  1628,  1631,  1634,  1637,  1640,  1644,  1646,  1648,  1652,
659     1655,  1657,  1659,  1662,  1665,  1667,  1670,  1672,  1674,  1677,
660     1679
661 };
662
663 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
664 static const yytype_int16 yyrhs[] =
665 {
666      267,     0,    -1,   155,   120,    -1,   155,   121,    -1,   155,
667        1,    -1,   150,    -1,   155,   155,    -1,    28,    -1,   149,
668       -1,   149,   121,   208,   122,    -1,   149,   121,   208,    11,
669       -1,   185,   227,    -1,   227,    -1,   185,   123,   124,    -1,
670      125,   185,   123,   124,    -1,    78,   185,   227,    -1,    78,
671      227,    -1,     3,    -1,   157,    -1,   123,   179,   124,    -1,
672      155,    -1,   257,    -1,     4,    -1,   118,    -1,   254,    -1,
673      126,   254,    -1,   126,   254,   127,   254,    -1,   123,   124,
674       -1,    71,   185,   224,   128,   180,   129,    -1,    71,   185,
675      128,   180,   129,    -1,   102,   185,   224,   128,   180,   129,
676       -1,   102,   185,   128,   180,   129,    -1,    72,   180,   188,
677      224,   128,   180,   129,    -1,    72,   180,   188,   128,   180,
678      129,    -1,   103,   180,   188,   224,   128,   180,   129,    -1,
679      103,   180,   188,   128,   180,   129,    -1,     1,    -1,   156,
680       -1,   158,   128,   179,   129,    -1,   158,   123,   124,    -1,
681      158,   123,   160,   124,    -1,   158,   127,   155,    -1,   158,
682      155,    -1,   158,     7,   155,    -1,   158,     8,    -1,   158,
683        9,    -1,   258,    -1,   177,    -1,   159,    -1,   160,   130,
684      177,    -1,   160,   130,   159,    -1,     8,   162,    -1,     9,
685      162,    -1,   163,   164,    -1,     6,   162,    -1,     6,   123,
686      239,   124,    -1,   109,   162,    -1,   109,   123,   239,   124,
687       -1,   161,    -1,   158,    -1,   131,    -1,   120,    -1,   132,
688       -1,   133,    -1,   125,    -1,   134,    -1,    73,    -1,   162,
689       -1,   123,   238,   124,   164,    -1,   164,    -1,   165,   120,
690      164,    -1,   165,   135,   164,    -1,   165,   136,   164,    -1,
691      165,    -1,   166,   132,   165,    -1,   166,   133,   165,    -1,
692      166,    -1,   167,    10,   166,    -1,   167,    11,   166,    -1,
693      169,   121,    -1,   167,    -1,   168,   167,    -1,   169,   122,
694      167,    -1,   169,    12,   167,    -1,   169,    13,   167,    -1,
695      169,    -1,   170,    14,   169,    -1,   170,    15,   169,    -1,
696      170,    -1,   171,   131,   170,    -1,   171,    -1,   172,   137,
697      171,    -1,   172,    -1,   173,   138,   172,    -1,   173,    -1,
698      174,    16,   173,    -1,   174,    -1,   175,    17,   174,    -1,
699      175,    -1,   175,   139,   179,   140,   176,    -1,   176,    -1,
700      162,   178,   177,    -1,   162,   178,   159,    -1,   141,    -1,
701       18,    -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,
702       23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,
703      177,    -1,   179,   130,   177,    -1,   176,    -1,   184,   142,
704       -1,   184,   189,   142,    -1,   255,   142,    -1,    77,   155,
705      141,   180,   142,    -1,   199,    -1,   182,   199,    -1,   200,
706       -1,   182,   200,    -1,   218,    -1,   182,   218,    -1,   202,
707       -1,   182,   202,    -1,   199,    -1,   183,   199,    -1,   200,
708       -1,   183,   200,    -1,   146,    -1,   183,   146,    -1,   218,
709       -1,   183,   218,    -1,   202,    -1,   183,   202,    -1,   191,
710       -1,   184,   191,    -1,   199,    -1,   184,   199,    -1,   200,
711       -1,   184,   200,    -1,   218,    -1,   184,   218,    -1,   202,
712       -1,   184,   202,    -1,   191,    -1,   185,   191,    -1,   199,
713       -1,   185,   199,    -1,   200,    -1,   185,   200,    -1,   146,
714       -1,   185,   146,    -1,   202,    -1,   185,   202,    -1,   218,
715       -1,   185,   218,    -1,   185,    -1,   147,    -1,   191,    -1,
716      187,   191,    -1,   199,    -1,   187,   199,    -1,   201,    -1,
717      187,   201,    -1,   155,    -1,   187,   155,    -1,   155,   121,
718      208,   122,    -1,   187,   155,   121,   208,   122,    -1,   191,
719       -1,   188,   191,    -1,   199,    -1,   188,   199,    -1,   201,
720       -1,   188,   201,    -1,   202,    -1,   188,   202,    -1,   218,
721       -1,   188,   218,    -1,   155,    -1,   188,   155,    -1,   155,
722      121,   208,   122,    -1,   188,   155,   121,   208,   122,    -1,
723      190,    -1,   189,   130,   190,    -1,   225,    -1,   225,   141,
724      240,    -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,
725       33,    -1,   117,    -1,    74,    -1,    75,    -1,   197,    -1,
726       79,    -1,   110,    -1,   111,    -1,     3,    -1,    28,    -1,
727       75,    -1,    74,    -1,    44,    -1,   194,    -1,   194,   123,
728      179,   124,    -1,   195,    -1,   196,   195,    -1,   196,   130,
729      195,    -1,   193,   123,   123,   196,   124,   124,    -1,   193,
730      123,   123,   124,   124,    -1,   192,    -1,    44,    -1,    45,
731       -1,   198,    -1,    46,    -1,    34,    -1,    35,    -1,    36,
732       -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,
733       -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,   113,
734       -1,   112,    -1,   203,    -1,   217,    -1,   148,    -1,    87,
735      123,   177,   124,    -1,   100,   123,   148,   124,    -1,   100,
736      123,   155,   124,    -1,    66,    -1,    82,    -1,    83,    -1,
737       46,    -1,    34,    -1,    35,    -1,    36,    -1,    37,    -1,
738       38,    -1,    47,    -1,    39,    -1,    42,    -1,    43,    -1,
739       40,    -1,    41,    -1,    85,    -1,   113,    -1,   112,    -1,
740      203,    -1,   217,    -1,   150,    -1,    87,   123,   177,   124,
741       -1,   100,   123,   148,   124,    -1,   100,   123,   155,   124,
742       -1,    66,    -1,   209,   155,   143,   210,   144,    -1,   209,
743      143,   210,   144,    -1,   209,   155,   143,   144,    -1,   209,
744      143,   144,    -1,   209,   149,   143,   210,   144,    -1,   209,
745      192,   155,   143,   210,   144,    -1,   209,   192,   143,   210,
746      144,    -1,   209,   192,   155,   143,   144,    -1,   209,   192,
747      143,   144,    -1,   209,   192,   150,   143,   210,   144,    -1,
748      209,   155,    -1,   209,   150,    -1,   209,   192,   155,    -1,
749      209,   192,   150,    -1,   185,    -1,   185,   223,    -1,   185,
750       -1,   185,   223,    -1,   167,    -1,   206,    -1,   205,    -1,
751      155,   141,   206,    -1,   155,   141,   205,    -1,   204,   141,
752      206,    -1,   204,   141,   205,    -1,   207,    -1,   208,   130,
753      207,    -1,    48,    -1,    49,    -1,   214,    -1,   210,   214,
754       -1,   158,   141,   241,    -1,   211,    -1,   212,   130,   211,
755       -1,    68,   187,   155,   143,    69,   249,    70,   249,   144,
756       -1,    68,   187,   155,   143,    70,   249,    69,   249,   144,
757       -1,    68,   187,   155,   143,    69,   249,   144,    -1,    68,
758      187,   155,   143,    70,   249,   144,    -1,    68,   187,   155,
759      143,   144,    -1,    68,   187,   223,   155,   143,    69,   249,
760       70,   249,   144,    -1,    68,   187,   223,   155,   143,    70,
761      249,    69,   249,   144,    -1,    68,   187,   223,   155,   143,
762       69,   249,   144,    -1,    68,   187,   223,   155,   143,    70,
763      249,   144,    -1,    68,   187,   223,   155,   143,   144,    -1,
764       68,   187,   143,    69,   249,    70,   249,   144,    -1,    68,
765      187,   143,    70,   249,    69,   249,   144,    -1,    68,   187,
766      143,    69,   249,   144,    -1,    68,   187,   143,    70,   249,
767      144,    -1,    68,   187,   143,   144,    -1,    68,   187,   223,
768      143,    69,   249,    70,   249,   144,    -1,    68,   187,   223,
769      143,    70,   249,    69,   249,   144,    -1,    68,   187,   223,
770      143,    69,   249,   144,    -1,    68,   187,   223,   143,    70,
771      249,   144,    -1,    68,   187,   223,   143,   144,    -1,   185,
772      215,   142,    -1,   185,   142,    -1,   257,   142,    -1,   256,
773      142,    -1,   259,    -1,   212,   142,    -1,   213,    -1,   142,
774       -1,   216,    -1,   215,   130,   216,    -1,   231,    -1,   231,
775      197,    -1,   140,   180,    -1,   231,   140,   180,    -1,   231,
776      140,   180,   140,   180,    -1,    50,   155,    -1,    50,   150,
777       -1,    50,   143,   219,   144,    -1,    50,   155,   143,   219,
778      144,    -1,    50,   155,   143,   219,   142,   210,   144,    -1,
779       50,   150,   143,   219,   142,   210,   144,    -1,    50,   150,
780      143,   219,   144,    -1,   220,    -1,   219,   130,   220,    -1,
781      155,    -1,   155,   141,   180,    -1,   123,   223,   124,    -1,
782      128,   129,    -1,   128,   180,   129,    -1,   128,   148,   129,
783       -1,   221,   128,   129,    -1,   221,   128,   180,   129,    -1,
784      221,   128,   148,   129,    -1,   123,   124,    -1,   123,   234,
785      124,    -1,   221,   123,   124,    -1,   221,   123,   234,   124,
786       -1,   123,   224,   124,    -1,   123,   124,    -1,   123,   234,
787      124,    -1,   222,   123,   124,    -1,   222,   123,   234,   124,
788       -1,   233,    -1,   221,    -1,   233,   221,    -1,   192,   233,
789       -1,   192,   221,    -1,   192,   233,   221,    -1,   233,    -1,
790      222,    -1,   233,   222,    -1,   192,   233,    -1,   192,   222,
791       -1,   192,   233,   222,    -1,   230,    -1,   233,   230,    -1,
792      192,   233,   230,    -1,   225,   192,    -1,   155,    -1,   123,
793      225,   124,    -1,   226,   128,   180,   129,    -1,   226,   128,
794      129,    -1,   226,   128,   148,   129,    -1,   229,    -1,   233,
795      229,    -1,   192,   229,    -1,   192,   233,   229,    -1,   233,
796      192,   229,    -1,   226,   123,    -1,   228,   234,   124,    -1,
797      228,   237,   124,    -1,   228,   124,    -1,   229,    -1,   226,
798       -1,   192,   229,    -1,   192,   226,    -1,   226,    -1,   233,
799      226,    -1,   192,   226,    -1,   192,   233,   226,    -1,   233,
800      192,   226,    -1,   199,    -1,   232,   199,    -1,   120,    -1,
801      120,   232,    -1,   120,   233,    -1,   120,   232,   233,    -1,
802      235,    -1,   235,   130,    51,    -1,   236,    -1,   235,   130,
803      236,    -1,   185,   225,    -1,   185,   223,    -1,   185,   131,
804       -1,   185,   131,   225,    -1,   186,    -1,    65,    -1,   155,
805       -1,   237,   130,   155,    -1,   182,    -1,   182,   223,    -1,
806      183,    -1,   183,   223,    -1,   177,    -1,   143,   242,   144,
807       -1,   143,   242,   130,   144,    -1,   176,    -1,   159,    -1,
808      240,    -1,   242,   130,   240,    -1,   244,    -1,   249,    -1,
809      250,    -1,   251,    -1,   252,    -1,   253,    -1,   155,   140,
810      243,    -1,    52,   180,   140,   243,    -1,    53,   140,   243,
811       -1,   181,    -1,   245,   181,    -1,   243,    -1,   246,   243,
812       -1,   246,   181,    -1,   246,    -1,   245,    -1,   245,   246,
813       -1,   143,    -1,   143,   144,    -1,   248,   247,   144,    -1,
814      142,    -1,   179,   142,    -1,    54,   123,   179,   124,   243,
815       -1,    54,   123,   179,   124,   243,    64,   243,    -1,    55,
816      123,   179,   124,   243,    -1,    56,   123,   179,   124,   243,
817       -1,    57,   243,    56,   123,   179,   124,   142,    -1,    58,
818      123,   250,   250,   124,   243,    -1,    58,   123,   250,   250,
819      179,   124,   243,    -1,    56,   123,   124,   243,    -1,    58,
820      123,   250,   124,   243,    -1,    58,   123,   124,   243,    -1,
821       59,   155,   142,    -1,    60,   142,    -1,    61,   142,    -1,
822       62,   142,    -1,    62,   179,   142,    -1,     5,    -1,   184,
823      155,   143,   266,   144,    -1,   184,   155,   143,   144,    -1,
824      185,   155,   143,   266,   144,    -1,   185,   155,   143,   144,
825       -1,   148,   143,   266,   144,    -1,   148,   143,   144,    -1,
826      155,   143,   266,   144,    -1,   155,   143,   144,    -1,   143,
827      266,   144,    -1,   143,   144,    -1,   151,   249,    -1,   154,
828      249,    -1,   154,   142,    -1,   152,   249,    -1,   153,   249,
829       -1,   184,   227,    -1,   184,   231,    -1,   260,   249,    -1,
830      158,   141,   241,    -1,   241,    -1,   262,    -1,   263,   130,
831      262,    -1,   263,   142,    -1,   264,    -1,   261,    -1,   265,
832      264,    -1,   265,   261,    -1,   142,    -1,   265,   142,    -1,
833      265,    -1,   263,    -1,   265,   263,    -1,   236,    -1,   236,
834      140,   180,    -1
835 };
836
837 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
838 static const yytype_uint16 yyrline[] =
839 {
840        0,   231,   231,   249,   273,   313,   314,   341,   345,   346,
841      347,   364,   366,   371,   376,   381,   383,   388,   393,   394,
842      399,   401,   403,   405,   406,   408,   409,   410,   413,   414,
843      415,   416,   417,   418,   419,   420,   421,   425,   426,   427,
844      428,   429,   430,   443,   444,   445,   449,   478,   479,   480,
845      481,   485,   486,   487,   489,   490,   492,   493,   497,   498,
846      507,   508,   509,   510,   511,   512,   513,   517,   518,   522,
847      523,   524,   525,   529,   530,   531,   535,   536,   537,   541,
848      549,   550,   551,   552,   553,   557,   558,   559,   563,   564,
849      568,   569,   573,   574,   578,   579,   583,   584,   588,   589,
850      593,   594,   595,   599,   600,   601,   602,   603,   604,   605,
851      606,   607,   608,   609,   613,   614,   618,   622,   623,   624,
852      625,   629,   630,   631,   632,   633,   634,   635,   636,   640,
853      641,   642,   643,   644,   645,   646,   647,   648,   649,   653,
854      654,   655,   656,   657,   658,   659,   660,   661,   662,   666,
855      667,   668,   669,   670,   671,   672,   673,   674,   675,   676,
856      677,   681,   682,   686,   687,   688,   689,   690,   691,   692,
857      693,   694,   702,   711,   712,   713,   714,   715,   716,   717,
858      718,   719,   720,   721,   722,   723,   731,   740,   741,   745,
859      746,   750,   751,   752,   753,   754,   755,   759,   760,   761,
860      765,   766,   767,   772,   773,   774,   775,   776,   780,   781,
861      785,   786,   787,   791,   792,   796,   800,   801,   802,   807,
862      808,   809,   810,   811,   812,   813,   814,   815,   816,   817,
863      818,   819,   820,   821,   822,   823,   824,   825,   826,   827,
864      828,   829,   830,   834,   835,   836,   837,   838,   839,   840,
865      841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
866      851,   852,   853,   854,   855,   860,   861,   862,   863,   864,
867      867,   868,   869,   870,   871,   876,   877,   880,   882,   887,
868      888,   893,   894,   905,   909,   911,   912,   914,   915,   939,
869      954,   955,   959,   960,   964,   965,   969,   973,   974,   978,
870      980,   982,   984,   986,   989,   991,   993,   995,   997,  1000,
871     1002,  1004,  1006,  1008,  1011,  1013,  1015,  1017,  1019,  1024,
872     1025,  1026,  1027,  1028,  1029,  1030,  1031,  1035,  1037,  1042,
873     1044,  1046,  1048,  1050,  1055,  1056,  1060,  1062,  1063,  1064,
874     1065,  1069,  1071,  1076,  1078,  1084,  1086,  1088,  1090,  1092,
875     1094,  1096,  1098,  1100,  1102,  1104,  1109,  1111,  1113,  1115,
876     1117,  1122,  1123,  1124,  1125,  1126,  1127,  1131,  1132,  1133,
877     1134,  1135,  1136,  1182,  1183,  1185,  1187,  1192,  1194,  1196,
878     1198,  1200,  1205,  1206,  1209,  1211,  1213,  1219,  1223,  1225,
879     1227,  1232,  1233,  1234,  1236,  1241,  1242,  1243,  1244,  1245,
880     1249,  1250,  1254,  1255,  1256,  1257,  1261,  1262,  1266,  1267,
881     1271,  1272,  1273,  1274,  1275,  1286,  1311,  1312,  1316,  1317,
882     1321,  1322,  1326,  1328,  1330,  1346,  1348,  1370,  1372,  1377,
883     1378,  1379,  1380,  1381,  1382,  1386,  1388,  1390,  1395,  1396,
884     1400,  1401,  1404,  1408,  1409,  1410,  1414,  1418,  1426,  1431,
885     1432,  1436,  1437,  1438,  1442,  1443,  1444,  1445,  1447,  1448,
886     1449,  1453,  1454,  1455,  1456,  1457,  1461,  1465,  1467,  1472,
887     1474,  1499,  1501,  1503,  1505,  1510,  1512,  1516,  1518,  1520,
888     1522,  1524,  1530,  1532,  1537,  1542,  1543,  1547,  1549,  1554,
889     1559,  1560,  1561,  1562,  1563,  1564,  1568,  1569,  1570,  1574,
890     1575
891 };
892 #endif
893
894 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
895 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
896    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
897 static const char *const yytname[] =
898 {
899   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
900   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
901   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
902   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
903   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
904   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
905   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
906   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
907   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
908   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
909   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
910   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
911   "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT",
912   "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING",
913   "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION",
914   "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY",
915   "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS",
916   "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD",
917   "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "BOOL",
918   "_BOOL", "_COMPLEX", "_IMAGINARY", "RESTRICT", "THREAD",
919   "WIDE_STRING_LITERAL", "BUILTIN_OFFSETOF", "'*'", "'<'", "'>'", "'('",
920   "')'", "'~'", "'$'", "'.'", "'['", "']'", "','", "'&'", "'+'", "'-'",
921   "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'",
922   "'}'", "$accept", "guess_type", "real_guess_type", "type",
923   "base_strict_type", "strict_type", "class_function_definition_start",
924   "constructor_function_definition_start",
925   "destructor_function_definition_start",
926   "virtual_class_function_definition_start", "identifier",
927   "primary_expression", "simple_primary_expression", "postfix_expression",
928   "anon_instantiation_expression", "argument_expression_list",
929   "common_unary_expression", "unary_expression", "unary_operator",
930   "cast_expression", "multiplicative_expression", "additive_expression",
931   "shift_expression", "relational_expression_smaller_than",
932   "relational_expression", "equality_expression", "and_expression",
933   "exclusive_or_expression", "inclusive_or_expression",
934   "logical_and_expression", "logical_or_expression",
935   "conditional_expression", "assignment_expression", "assignment_operator",
936   "expression", "constant_expression", "declaration",
937   "specifier_qualifier_list", "guess_specifier_qualifier_list",
938   "declaration_specifiers", "guess_declaration_specifiers",
939   "real_guess_declaration_specifiers", "property_specifiers",
940   "renew_specifiers", "init_declarator_list", "init_declarator",
941   "storage_class_specifier", "ext_decl", "_attrib", "attribute_word",
942   "attribute", "attribs_list", "attrib", "ext_storage", "type_qualifier",
943   "type_specifier", "strict_type_specifier",
944   "struct_or_union_specifier_compound",
945   "struct_or_union_specifier_nocompound", "template_datatype",
946   "template_type_argument", "template_expression_argument",
947   "template_argument", "template_arguments_list", "struct_or_union",
948   "struct_declaration_list", "default_property", "default_property_list",
949   "property", "struct_declaration", "struct_declarator_list",
950   "struct_declarator", "enum_specifier_nocompound",
951   "enum_specifier_compound", "enumerator_list", "enumerator",
952   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
953   "abstract_declarator", "abstract_declarator_noarray", "declarator",
954   "direct_declarator_nofunction", "declarator_function",
955   "direct_declarator_function_start", "direct_declarator_function",
956   "direct_declarator", "declarator_nofunction", "type_qualifier_list",
957   "pointer", "parameter_type_list", "parameter_list",
958   "parameter_declaration", "identifier_list", "type_name",
959   "guess_type_name", "initializer", "initializer_condition",
960   "initializer_list", "statement", "labeled_statement", "declaration_list",
961   "statement_list", "compound_inside", "compound_start",
962   "compound_statement", "expression_statement", "selection_statement",
963   "iteration_statement", "jump_statement", "string_literal",
964   "instantiation_named", "guess_instantiation_named",
965   "instantiation_unnamed", "instantiation_anon",
966   "class_function_definition", "instance_class_function_definition_start",
967   "instance_class_function_definition", "data_member_initialization",
968   "data_member_initialization_list",
969   "data_member_initialization_list_coloned",
970   "members_initialization_list_coloned", "members_initialization_list",
971   "type_unit", 0
972 };
973 #endif
974
975 # ifdef YYPRINT
976 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
977    token YYLEX-NUM.  */
978 static const yytype_uint16 yytoknum[] =
979 {
980        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
981      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
982      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
983      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
984      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
985      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
986      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
987      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
988      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
989      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
990      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
991      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
992       42,    60,    62,    40,    41,   126,    36,    46,    91,    93,
993       44,    38,    43,    45,    33,    47,    37,    94,   124,    63,
994       58,    61,    59,   123,   125
995 };
996 # endif
997
998 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
999 static const yytype_uint16 yyr1[] =
1000 {
1001        0,   145,   146,   146,   147,   148,   148,   149,   150,   150,
1002      150,   151,   151,   152,   153,   154,   154,   155,   156,   156,
1003      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
1004      157,   157,   157,   157,   157,   157,   157,   158,   158,   158,
1005      158,   158,   158,   158,   158,   158,   159,   160,   160,   160,
1006      160,   161,   161,   161,   161,   161,   161,   161,   162,   162,
1007      163,   163,   163,   163,   163,   163,   163,   164,   164,   165,
1008      165,   165,   165,   166,   166,   166,   167,   167,   167,   168,
1009      169,   169,   169,   169,   169,   170,   170,   170,   171,   171,
1010      172,   172,   173,   173,   174,   174,   175,   175,   176,   176,
1011      177,   177,   177,   178,   178,   178,   178,   178,   178,   178,
1012      178,   178,   178,   178,   179,   179,   180,   181,   181,   181,
1013      181,   182,   182,   182,   182,   182,   182,   182,   182,   183,
1014      183,   183,   183,   183,   183,   183,   183,   183,   183,   184,
1015      184,   184,   184,   184,   184,   184,   184,   184,   184,   185,
1016      185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
1017      185,   186,   186,   187,   187,   187,   187,   187,   187,   187,
1018      187,   187,   187,   188,   188,   188,   188,   188,   188,   188,
1019      188,   188,   188,   188,   188,   188,   188,   189,   189,   190,
1020      190,   191,   191,   191,   191,   191,   191,   192,   192,   192,
1021      193,   193,   193,   194,   194,   194,   194,   194,   195,   195,
1022      196,   196,   196,   197,   197,   198,   199,   199,   199,   200,
1023      200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
1024      200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
1025      200,   200,   200,   201,   201,   201,   201,   201,   201,   201,
1026      201,   201,   201,   201,   201,   201,   201,   201,   201,   201,
1027      201,   201,   201,   201,   201,   202,   202,   202,   202,   202,
1028      202,   202,   202,   202,   202,   203,   203,   203,   203,   204,
1029      204,   205,   205,   206,   207,   207,   207,   207,   207,   207,
1030      208,   208,   209,   209,   210,   210,   211,   212,   212,   213,
1031      213,   213,   213,   213,   213,   213,   213,   213,   213,   213,
1032      213,   213,   213,   213,   213,   213,   213,   213,   213,   214,
1033      214,   214,   214,   214,   214,   214,   214,   215,   215,   216,
1034      216,   216,   216,   216,   217,   217,   218,   218,   218,   218,
1035      218,   219,   219,   220,   220,   221,   221,   221,   221,   221,
1036      221,   221,   221,   221,   221,   221,   222,   222,   222,   222,
1037      222,   223,   223,   223,   223,   223,   223,   224,   224,   224,
1038      224,   224,   224,   225,   225,   225,   225,   226,   226,   226,
1039      226,   226,   227,   227,   227,   227,   227,   228,   229,   229,
1040      229,   230,   230,   230,   230,   231,   231,   231,   231,   231,
1041      232,   232,   233,   233,   233,   233,   234,   234,   235,   235,
1042      236,   236,   236,   236,   236,   236,   237,   237,   238,   238,
1043      239,   239,   240,   240,   240,   241,   241,   242,   242,   243,
1044      243,   243,   243,   243,   243,   244,   244,   244,   245,   245,
1045      246,   246,   246,   247,   247,   247,   248,   249,   249,   250,
1046      250,   251,   251,   251,   252,   252,   252,   252,   252,   252,
1047      252,   253,   253,   253,   253,   253,   254,   255,   255,   256,
1048      256,   257,   257,   257,   257,   258,   258,   259,   259,   259,
1049      259,   259,   260,   260,   261,   262,   262,   263,   263,   264,
1050      265,   265,   265,   265,   265,   265,   266,   266,   266,   267,
1051      267
1052 };
1053
1054 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1055 static const yytype_uint8 yyr2[] =
1056 {
1057        0,     2,     2,     2,     2,     1,     2,     1,     1,     4,
1058        4,     2,     1,     3,     4,     3,     2,     1,     1,     3,
1059        1,     1,     1,     1,     1,     2,     4,     2,     6,     5,
1060        6,     5,     7,     6,     7,     6,     1,     1,     4,     3,
1061        4,     3,     2,     3,     2,     2,     1,     1,     1,     3,
1062        3,     2,     2,     2,     2,     4,     2,     4,     1,     1,
1063        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1064        3,     3,     3,     1,     3,     3,     1,     3,     3,     2,
1065        1,     2,     3,     3,     3,     1,     3,     3,     1,     3,
1066        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
1067        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1068        1,     1,     1,     1,     1,     3,     1,     2,     3,     2,
1069        5,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1070        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1071        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1072        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1073        2,     1,     1,     1,     2,     1,     2,     1,     2,     1,
1074        2,     4,     5,     1,     2,     1,     2,     1,     2,     1,
1075        2,     1,     2,     1,     2,     4,     5,     1,     3,     1,
1076        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1077        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1078        1,     2,     3,     6,     5,     1,     1,     1,     1,     1,
1079        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1080        1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1081        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1082        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1083        1,     4,     4,     4,     1,     5,     4,     4,     3,     5,
1084        6,     5,     5,     4,     6,     2,     2,     3,     3,     1,
1085        2,     1,     2,     1,     1,     1,     3,     3,     3,     3,
1086        1,     3,     1,     1,     1,     2,     3,     1,     3,     9,
1087        9,     7,     7,     5,    10,    10,     8,     8,     6,     8,
1088        8,     6,     6,     4,     9,     9,     7,     7,     5,     3,
1089        2,     2,     2,     1,     2,     1,     1,     1,     3,     1,
1090        2,     2,     3,     5,     2,     2,     4,     5,     7,     7,
1091        5,     1,     3,     1,     3,     3,     2,     3,     3,     3,
1092        4,     4,     2,     3,     3,     4,     3,     2,     3,     3,
1093        4,     1,     1,     2,     2,     2,     3,     1,     1,     2,
1094        2,     2,     3,     1,     2,     3,     2,     1,     3,     4,
1095        3,     4,     1,     2,     2,     3,     3,     2,     3,     3,
1096        2,     1,     1,     2,     2,     1,     2,     2,     3,     3,
1097        1,     2,     1,     2,     2,     3,     1,     3,     1,     3,
1098        2,     2,     2,     3,     1,     1,     1,     3,     1,     2,
1099        1,     2,     1,     3,     4,     1,     1,     1,     3,     1,
1100        1,     1,     1,     1,     1,     3,     4,     3,     1,     2,
1101        1,     2,     2,     1,     1,     2,     1,     2,     3,     1,
1102        2,     5,     7,     5,     5,     7,     6,     7,     4,     5,
1103        4,     3,     2,     2,     2,     3,     1,     5,     4,     5,
1104        4,     4,     3,     4,     3,     3,     2,     2,     2,     2,
1105        2,     2,     2,     2,     2,     3,     1,     1,     3,     2,
1106        1,     1,     2,     2,     1,     2,     1,     1,     2,     1,
1107        3
1108 };
1109
1110 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1111    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1112    means the default is an error.  */
1113 static const yytype_uint16 yydefact[] =
1114 {
1115        0,    17,     7,   191,   192,   193,   194,   195,   220,   221,
1116      222,   223,   224,   226,   229,   230,   227,   228,   216,   217,
1117      219,   225,   292,   293,     0,   415,   240,   197,   198,   200,
1118      241,   242,   231,     0,     0,   201,   202,   233,   232,   196,
1119      155,   162,   236,     8,     5,     0,   161,   414,   149,   215,
1120        0,   199,   218,   151,   153,   157,   234,     0,   235,   159,
1121      499,     0,     0,   335,   334,     0,     0,     0,     4,     2,
1122        3,     6,   402,     0,     0,   412,   156,   377,   150,   215,
1123      152,   154,   158,   160,   362,   411,   410,   392,     0,   391,
1124      373,   361,     0,     0,     8,   276,   275,     0,     0,     1,
1125      343,     0,   341,     0,     0,    36,    22,   466,     0,     0,
1126        0,     0,     0,    66,     0,     0,     0,    23,    61,     0,
1127       64,     0,    60,    62,    63,    65,     0,    20,    37,    18,
1128       59,    58,    67,     0,    69,    73,    76,    80,     0,    85,
1129       88,    90,    92,    94,    96,    98,   100,     0,    24,    21,
1130        0,     0,   236,    20,    67,   283,   281,     0,   285,   284,
1131      290,     0,   400,   403,   404,   352,     0,     0,     0,     0,
1132      406,   408,   346,     0,   116,     0,     0,   377,     0,   413,
1133        0,   365,   394,   393,   364,     0,     0,   376,   387,     0,
1134      390,     0,     0,     0,     0,   363,   374,     0,     0,     0,
1135        0,     0,   326,   268,     0,     0,     0,     0,    20,     0,
1136        0,   215,     0,   297,     0,   325,   294,     0,    12,   382,
1137        0,     0,    21,   323,     0,     0,     0,   278,   277,   500,
1138        0,     0,   336,     0,     0,     0,    54,     0,    51,    52,
1139        0,     0,     0,     0,     0,     0,    56,    27,   114,     0,
1140      418,   121,   123,   127,   125,     0,    25,     0,     0,     0,
1141       44,    45,     0,     0,     0,    42,   104,   105,   106,   107,
1142      108,   109,   110,   111,   112,   113,   103,     0,    53,     0,
1143        0,     0,     0,     0,     0,     0,    81,     0,     0,    79,
1144        0,     0,     0,     0,     0,     0,     0,     0,     0,   237,
1145      238,   239,     0,     0,   215,   282,   361,     0,    10,     9,
1146        0,   401,   405,   345,   378,   353,     0,   348,   347,     0,
1147      366,   375,   354,     0,   349,     0,     0,   380,     0,     0,
1148      388,   389,     0,   203,   204,   207,   206,   205,     0,   208,
1149      210,     0,   244,   245,   246,   247,   248,   250,   253,   254,
1150      251,   252,   243,   249,     0,   264,   255,     0,     0,   257,
1151      256,   260,   169,     0,   163,   165,   167,   258,     0,   259,
1152        0,    16,    61,     0,    20,     0,   446,     0,   477,   480,
1153      481,   479,   478,     0,     0,     0,   320,   377,   215,     0,
1154      327,   395,    11,   329,     0,   384,     0,   266,   295,     0,
1155      324,     0,   383,   322,   321,     0,   267,     0,   273,     0,
1156        0,     0,   344,   342,     0,   340,     0,   337,   133,    20,
1157      420,   129,   131,   137,   135,     0,     0,     0,   215,   368,
1158        0,   367,   183,     0,   173,   175,   177,   179,   181,     0,
1159        0,     0,     0,    19,     0,     0,   122,   124,   128,   126,
1160      419,     0,     0,   494,     0,   472,    59,   426,   425,     0,
1161      139,   141,   143,   147,   145,   486,    46,     0,   491,   487,
1162      497,   490,     0,     0,   474,     0,    43,    39,    48,     0,
1163       47,    41,     0,   102,   101,    70,    71,    72,    74,    75,
1164       77,    78,    83,    84,    82,    86,    87,    89,    91,    93,
1165       95,    97,     0,   281,   287,   286,   364,   289,   288,   291,
1166      407,   409,   355,   351,   350,   381,   379,   417,   214,     0,
1167        0,     0,   211,   335,   334,     0,     0,     0,     0,   170,
1168      164,   166,   168,     0,   275,     0,    15,   215,     0,   447,
1169        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1170        0,     0,   449,    20,     0,   438,     0,   440,   429,     0,
1171        0,     0,   430,   431,   432,   433,   434,     0,   296,    13,
1172      331,     0,   397,     0,     0,   319,     0,   330,     0,   396,
1173      385,   298,   386,   269,   265,   271,     0,   272,     0,     0,
1174        0,   134,   130,   132,   138,   136,   421,    55,   357,     0,
1175        0,     0,   371,   370,     0,     0,   369,     0,     0,   184,
1176      174,   176,   178,   180,   182,     0,     0,     0,     0,     0,
1177       57,   115,    68,    26,   476,     0,     0,   377,   140,   142,
1178      144,   148,   146,   482,   483,   484,     0,   489,   495,   493,
1179      498,   492,   471,   473,    40,     0,    38,     0,   282,     0,
1180      213,   212,     0,     0,     0,     0,     0,     0,   313,     0,
1181        0,     0,     0,   278,   277,    14,     0,     0,     0,     0,
1182        0,     0,     0,     0,   462,   463,   464,     0,     0,     0,
1183      450,   117,   377,     0,   187,   189,   439,     0,   442,   441,
1184      448,   119,   470,     0,   398,     0,   328,   395,     0,   332,
1185      399,   274,   270,   339,   338,   356,   358,    29,   372,   359,
1186        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
1187      475,   485,   488,    50,    49,    99,   209,   261,   262,   263,
1188      171,     0,     0,     0,     0,     0,   303,     0,     0,   318,
1189        0,     0,   437,     0,     0,     0,     0,     0,     0,     0,
1190      461,   465,     0,   435,     0,     0,   118,     0,   469,   397,
1191        0,     0,   396,     0,   360,    28,   185,    33,     0,     0,
1192       30,    35,     0,     0,   311,     0,   312,   172,     0,     0,
1193        0,     0,     0,     0,   308,   436,     0,     0,   458,     0,
1194        0,   460,     0,     0,     0,   468,     0,   188,     0,   422,
1195      190,   398,   399,   333,   186,    32,    34,     0,     0,     0,
1196      301,     0,   302,     0,   316,     0,   317,     0,     0,   451,
1197      453,   454,     0,   459,     0,     0,   120,   467,   427,     0,
1198      309,   310,     0,     0,     0,     0,     0,   306,     0,   307,
1199        0,     0,   456,     0,     0,   423,   299,   300,   314,   315,
1200        0,     0,   452,   455,   457,   424,   428,   304,   305
1201 };
1202
1203 /* YYDEFGOTO[NTERM-NUM].  */
1204 static const yytype_int16 yydefgoto[] =
1205 {
1206       -1,    40,    41,   126,    43,    44,   204,   205,   206,   207,
1207      127,   128,   129,   130,   457,   479,   131,   154,   133,   134,
1208      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1209      145,   146,   248,   277,   554,   175,   688,   250,   420,   459,
1210      210,    47,   363,   433,   683,   684,    48,    49,    50,   339,
1211      340,   341,    51,    52,    53,    54,   436,    55,    56,   157,
1212      158,   159,   160,   161,    57,   212,   213,   214,   215,   216,
1213      389,   390,    58,    59,   101,   102,    84,   429,   167,   430,
1214      168,   217,   218,    88,   219,    90,   393,   163,   220,   169,
1215      170,   171,   193,   255,   425,   800,   465,   829,   557,   558,
1216      559,   560,   561,   377,   562,   563,   564,   565,   566,   148,
1217      567,   221,   149,   466,   223,   467,   468,   469,   470,   471,
1218      472,   473,    61
1219 };
1220
1221 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1222    STATE-NUM.  */
1223 #define YYPACT_NINF -761
1224 static const yytype_int16 yypact[] =
1225 {
1226     8916,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1227     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1228     -761,  -761,  -761,  -761,    27,  -761,  -761,  -761,  -761,  -761,
1229     -761,  -761,  -761,   -84,   -40,  -761,  -761,  -761,  -761,  -761,
1230     -761,  -761,  -761,   -36,  -761,   303,  7335,  -761,  -761,  -761,
1231      -14,  -761,  -761,  -761,  -761,  -761,  -761,   563,  -761,  -761,
1232       24,   129,   122,    75,   119,  7048,    78,  6284,  -761,  -761,
1233     -761,  -761,  1002,  7439,  6695,   748,  -761,   102,  -761,   258,
1234     -761,  -761,  -761,  -761,   106,  -761,   781,   340,  8340,  -761,
1235     -761,   654,   199,  3565,   -69,  -761,   192,    28,  7048,  -761,
1236      215,   116,  -761,   122,   122,  -761,  -761,  -761,  7088,  7195,
1237     7195,  9006,  7048,  -761,  9006,  7048,  7228,  -761,  -761,  6418,
1238     -761,   360,  -761,  -761,  -761,  -761,   239,    34,  -761,  -761,
1239      574,  -761,   921,  7048,  -761,   -66,   406,   531,  7048,    95,
1240      534,   262,   269,   253,   399,     2,  -761,   347,  -761,  -761,
1241      349,    26,   239,    17,  -761,   531,  6163,   276,  -761,  -761,
1242     -761,   144,  -761,  1002,  -761,  -761,   773,   351,   660,   364,
1243      302,  -761,  -761,   152,  -761,   310,   748,  -761,   131,   781,
1244      609,   106,   340,  -761,   654,  8438,  6728,  -761,  -761,  6835,
1245     -761,   218,   375,   164,    19,   106,  -761,    15,  9096,  8634,
1246     6639,  9006,  -761,  -761,   309,   309,   309,   412,   137,   475,
1247     5933,   131,  3691,  -761,   -32,  -761,  -761,   340,  -761,  -761,
1248      609,   322,   371,  -761,  5538,  3817,  3943,   359,   382,  -761,
1249     7048,   122,  -761,   -62,   169,  6418,  -761,  6868,  -761,  -761,
1250      102,  7641,  9186,  7742,  9186,  6418,  -761,  -761,  -761,   196,
1251     8141,  -761,  -761,  -761,  -761,   405,   407,  2711,  2855,   122,
1252     -761,  -761,  5255,   122,  7048,  -761,  -761,  -761,  -761,  -761,
1253     -761,  -761,  -761,  -761,  -761,  -761,  -761,  5297,  -761,  7048,
1254     7048,  7048,  7048,  7048,  7048,  7048,   531,  7048,  7048,  -761,
1255     7048,  7048,  7048,  7048,  7048,  7048,  7048,  7048,  7048,  -761,
1256     -761,  -761,  6284,  7540,   320,   391,   362,  6284,  -761,  -761,
1257     6284,  -761,  -761,  -761,  -761,  -761,  8826,  -761,  -761,   609,
1258      106,  -761,  -761,   419,  -761,   233,   417,  -761,   237,   423,
1259     -761,  -761,   122,  -761,  -761,  -761,  -761,  -761,   426,   413,
1260     -761,   325,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1261     -761,  -761,  -761,  -761,    78,  -761,  -761,   434,   444,  -761,
1262     -761,  -761,   451,  5817,  -761,  -761,  -761,  -761,   922,  -761,
1263     8634,  -761,  1002,  6552,    38,  8730,   456,  5077,  -761,  -761,
1264     -761,  -761,  -761,  5297,   706,  7048,  -761,   158,   131,   123,
1265     -761,   340,  -761,   -39,   609,  -761,    19,  -761,  -761,   933,
1266     -761,    19,  -761,  -761,  -761,  4069,  -761,  4195,  -761,  4321,
1267     5538,  4447,  -761,  -761,  5538,  -761,  5538,  -761,  -761,   137,
1268     8141,  -761,  -761,  -761,  -761,   452,  8242,  7048,    45,   483,
1269      480,   486,   489,  7944,  -761,  -761,  -761,  -761,  -761,  7048,
1270      490,  8045,   493,  -761,  7048,   122,  -761,  -761,  -761,  -761,
1271     -761,  7048,   360,  -761,  2999,  -761,   562,  -761,  -761,  8634,
1272     -761,  -761,  -761,  -761,  -761,  -761,  -761,   309,  -761,  -761,
1273      203,  -761,  3143,   470,  -761,   476,  -761,  -761,  -761,   327,
1274     -761,  -761,   432,  -761,  -761,  -761,  -761,  -761,   -66,   -66,
1275      406,   406,   531,   531,   531,    95,    95,   534,   262,   269,
1276      253,   399,   307,  7843,  -761,  -761,   362,  -761,  -761,  -761,
1277     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  7048,
1278      495,   315,  -761,  -761,  -761,  7048,    78,  6284,    -9,   -56,
1279     -761,  -761,  -761,    46,  -761,    78,  -761,   131,   498,  -761,
1280     7048,   484,   500,   503,   506,  5220,   507,   122,   492,   494,
1281     5701,   122,  -761,    39,   230,  -761,  6048,  -761,  -761,  2279,
1282     2423,   497,  -761,  -761,  -761,  -761,  -761,   501,  -761,  -761,
1283     -761,  3287,   340,    19,   722,  -761,  7048,  -761,    19,   340,
1284     -761,  -761,  -761,  -761,  -761,  -761,  4573,  -761,  4699,  4825,
1285     4951,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,   511,
1286      522,   518,   483,   486,  8536,  7048,   483,  6284,  7048,   527,
1287     -761,  -761,  -761,  -761,  -761,   523,   521,  7048,  7048,   525,
1288     -761,  -761,  -761,  -761,  -761,   512,  5297,   122,  -761,  -761,
1289     -761,  -761,  -761,  -761,  -761,  -761,  5297,  -761,  -761,  -761,
1290      203,  -761,  -761,  -761,  -761,  5297,  -761,  7048,  -761,   342,
1291     -761,  -761,   539,   542,    33,   170,   309,   309,  -761,  6284,
1292      227,   254,   526,  -761,  -761,  -761,   528,  5220,  7048,  7048,
1293     6908,   614,  5594,   529,  -761,  -761,  -761,   283,   536,  5220,
1294     -761,  -761,    60,   300,  -761,   570,  -761,  2567,  -761,  -761,
1295     -761,  -761,  -761,   547,   340,   131,  -761,   544,   609,   535,
1296      340,  -761,  -761,  -761,  -761,  -761,  -761,  -761,   483,  -761,
1297      554,   564,   324,   571,  6284,  7048,  -761,   575,   576,  7048,
1298     -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,  -761,
1299     -761,     8,   -11,   328,   309,   309,  -761,   309,   309,  -761,
1300      277,  5220,  -761,   356,   363,  5220,   368,   592,  5220,  5667,
1301     -761,  -761,  7048,  -761,  3431,   748,  -761,  5404,  -761,   544,
1302       19,    19,   544,  7048,  -761,  -761,  -761,  -761,   339,   587,
1303     -761,  -761,   589,   309,  -761,   309,  -761,  -761,    49,    23,
1304       93,    62,   309,   309,  -761,  -761,  5220,  5220,  -761,  5220,
1305     7048,  -761,  5220,  7015,   557,  -761,   577,  -761,  5404,  -761,
1306     -761,   544,   544,  -761,  -761,  -761,  -761,   578,   579,   309,
1307     -761,   309,  -761,   309,  -761,   309,  -761,   125,   161,   672,
1308     -761,  -761,   387,  -761,  5220,   392,  -761,  -761,  -761,   278,
1309     -761,  -761,   580,   598,   599,   600,   309,  -761,   309,  -761,
1310     5220,   604,  -761,  5220,  1997,  -761,  -761,  -761,  -761,  -761,
1311      606,   610,  -761,  -761,  -761,  -761,  -761,  -761,  -761
1312 };
1313
1314 /* YYPGOTO[NTERM-NUM].  */
1315 static const yytype_int16 yypgoto[] =
1316 {
1317     -761,   193,  -761,   664,   696,    29,  -761,  -761,  -761,  -761,
1318        0,  -761,  -761,  1461,  -260,  -761,  -761,   167,  -761,  -107,
1319      297,   308,   -20,  -761,   293,   463,   464,   468,   472,   469,
1320     -761,  1542,   -49,  -761,   260,   -87,  -363,  -761,  -761,  -372,
1321       48,  -761,  -761,   546,  -761,    14,  1452,   927,  -761,  -761,
1322     -307,  -761,   379,  -761,  1302,  1532,  -177,  1156,  -148,  -761,
1323      213,   221,   478,  -512,  -188,  -102,   374,  -761,  -761,    72,
1324     -761,   217,    -6,  1194,   491,   567,   -15,  -396,    -2,  -236,
1325      -42,   421,  -187,  -761,  1083,   -64,   334,  -761,  1146,   -85,
1326     -761,     1,  -761,  -761,   555,  -760,  -374,  -761,    80,  -761,
1327     -761,   240,  -761,  -761,  1157,  -621,  -761,  -761,  -761,  -115,
1328     -761,  -761,   -80,  -761,  -761,  -761,   330,   168,   331,   335,
1329     -761,  -250,  -761
1330 };
1331
1332 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1333    positive, shift that token.  If negative, reduce the rule which
1334    number is the opposite.  If zero, do what YYDEFACT says.
1335    If YYTABLE_NINF, syntax error.  */
1336 #define YYTABLE_NINF -497
1337 static const yytype_int16 yytable[] =
1338 {
1339       45,    60,   478,   192,    86,   556,   256,   440,   475,   568,
1340      368,   229,   371,   222,   555,   655,   147,   483,   333,   297,
1341        1,   366,     1,   392,    64,   242,   278,   196,   244,     1,
1342        1,     1,   602,   179,   522,   606,     1,     1,   828,    65,
1343       29,     1,     1,   334,    85,    71,    77,   155,    46,     1,
1344      367,   749,    67,    63,   279,     2,     2,    96,   775,   335,
1345      656,   657,   100,     1,   181,   659,   151,   153,   231,   280,
1346      281,    35,    36,   166,   224,   177,   195,    71,   773,   177,
1347      414,     1,   415,    66,   856,    67,    95,   660,   191,   336,
1348      337,   177,   811,   208,   367,   712,   367,   228,   399,   326,
1349      323,   576,   329,   100,   100,     1,     2,   287,   288,    92,
1350      400,   240,  -377,  -377,   240,   156,   196,  -377,   286,   809,
1351      321,    46,   405,   407,   409,     1,   227,    71,   793,    99,
1352      265,   815,   222,   776,     1,   658,    46,    69,    70,   338,
1353        1,   298,   176,   412,   222,   222,   222,   733,  -377,  -377,
1354      301,    71,   774,    71,   305,   308,   240,   729,   302,   241,
1355      258,     1,   243,   813,    98,    72,    71,   812,   426,   320,
1356       62,   226,   485,   486,   487,   368,   177,   258,   177,   679,
1357      177,   258,   258,   536,   177,    45,   532,   556,   556,   661,
1358      599,    71,   369,   810,   177,   836,   686,   615,   362,    77,
1359      374,   240,   768,   754,   625,   619,   816,   708,    71,   265,
1360      387,   177,   208,   480,   651,   367,   289,   290,   103,    68,
1361      177,     1,    69,    70,   208,   208,   208,   361,   484,   185,
1362      838,   100,   132,    46,   186,   419,   369,   814,   369,    76,
1363       71,   240,   432,   240,   432,   419,   231,   370,   450,   375,
1364      445,    72,   721,   574,   176,   321,   612,    69,    70,   476,
1365      232,     1,   104,   481,   612,   575,   309,   492,   493,   837,
1366      494,   361,   633,   361,   310,   236,   238,   239,    69,    70,
1367      258,   317,   155,   246,   398,   367,   132,   155,   331,   181,
1368      155,   195,   730,   367,   332,   257,   734,   735,   570,   231,
1369      310,   571,   419,    45,    68,   839,     1,   419,   586,   588,
1370      153,   416,   589,   417,   590,   556,    45,   511,   333,   177,
1371      443,   693,   197,   737,   738,   222,   444,   222,   333,   222,
1372      222,   222,   517,   636,   222,   225,   222,   623,    69,    70,
1373      601,   600,  -416,   334,   622,   637,   782,   783,  -416,    76,
1374      503,    46,   616,   334,   524,   503,   230,   369,   156,   335,
1375      444,   533,   513,   529,    46,   107,   515,   132,   534,   335,
1376       77,   736,   680,   374,    71,   240,   257,   553,    72,   249,
1377      257,    73,   257,   523,   177,   723,    74,    71,   177,   336,
1378      337,   295,   361,   293,   177,   621,   177,    95,   739,   336,
1379      337,   177,   132,    76,   132,   208,   294,   208,   844,   208,
1380      208,   208,   132,   444,   208,   296,   208,   307,   596,    71,
1381      240,   784,   845,    69,    70,   751,    45,   369,   418,   132,
1382      755,   132,   316,   609,    76,   369,    76,   444,   418,   318,
1383       72,   609,   756,   303,   132,    71,   766,   647,    74,   520,
1384      777,   644,   376,   666,   310,   521,   265,   645,   310,   627,
1385      249,   804,   361,   188,   403,   132,   726,    87,   189,   310,
1386      361,   299,   444,   300,    46,   313,   652,   398,     1,   398,
1387      786,   398,   259,   260,   261,   303,   444,   787,   315,   699,
1388       74,   320,   789,   444,    87,   249,    87,   249,   444,   330,
1389      182,   648,   410,   240,   796,   249,   222,   155,   222,   222,
1390      222,   841,    87,   404,   685,   504,   843,   444,   711,   710,
1391      507,   713,   444,   505,   482,   411,   654,   153,   508,   451,
1392      717,   718,  -280,   662,   452,   664,   519,   177,   282,   283,
1393      132,   284,   285,   512,   132,   553,   514,   673,   291,   292,
1394      518,   678,   516,    71,   381,   376,   682,   525,   502,   553,
1395      553,   646,   444,    76,   663,     1,     1,   526,    76,   259,
1396      260,   261,   527,   177,   177,   156,   597,     1,   177,   488,
1397      489,   259,   260,   261,   495,   496,   208,   155,   208,   208,
1398      208,     2,   490,   491,   233,   234,   724,    87,   262,   182,
1399      539,    87,   263,   264,    45,    87,   604,   153,   605,   426,
1400      607,   132,     1,   591,   642,   182,   383,   620,   617,   650,
1401      643,    87,   665,   668,   667,   671,   669,    71,   769,   670,
1402      672,   391,   772,   249,   674,   705,   675,    27,    28,   155,
1403      689,   690,    29,   691,    27,    28,   706,   707,   714,    29,
1404      716,   715,    46,   719,    71,   156,   720,     1,   398,   153,
1405      398,   398,   398,   727,    42,   794,   728,   553,   741,   740,
1406      747,   750,   189,    35,    36,   763,   803,   752,   764,   553,
1407       35,    36,    71,    27,    28,   262,   132,   553,    29,   263,
1408      264,   758,   132,   765,   155,   177,    76,   262,   177,   826,
1409      767,   263,   264,   626,   770,   771,    93,   156,   799,     1,
1410       42,   757,   132,   685,   153,   790,   805,   132,   806,    35,
1411       36,   827,   830,   831,   846,     1,   132,   132,    27,    28,
1412      150,   152,   176,    29,    27,    28,   840,    42,   173,    29,
1413       87,   553,   847,   848,   849,   553,   853,   742,   553,   799,
1414      857,     1,    42,    94,   858,   177,   497,   152,   498,   753,
1415      177,   177,   156,   499,    35,    36,   501,   689,   500,   797,
1416       35,    36,   577,   581,    68,    42,     1,    73,    42,   649,
1417       27,    28,    74,   152,   314,    29,   553,   553,   509,   553,
1418      441,   696,   553,   634,    87,   799,    27,    28,   413,   687,
1419      442,    29,   639,   640,   722,    87,     0,   641,     0,   572,
1420      677,     0,   132,     0,     0,   579,    35,    36,     0,     0,
1421       42,   785,    27,    28,   553,   788,    72,    29,   791,   176,
1422      569,     0,    35,    36,   132,   132,   132,   132,     0,   132,
1423      553,     0,    72,   553,     0,   176,   132,  -377,  -377,    42,
1424      325,     0,  -377,   328,   132,    27,    28,     0,    35,    36,
1425       29,     0,   385,    42,     0,    42,   819,   820,    72,   821,
1426        0,   176,   823,     0,    42,     0,   152,     0,     0,     0,
1427      391,     0,     0,  -377,  -377,     0,     0,     0,   152,   152,
1428      152,    35,    36,    69,    70,     0,  -377,  -377,     0,   152,
1429        0,  -377,     0,     0,   842,    42,     0,    42,   132,   152,
1430        0,     0,   132,     0,    42,   132,   132,     0,     0,     0,
1431      852,   152,   152,   854,   132,     1,     0,     0,   743,   744,
1432      746,     0,     0,     0,   105,     0,     1,   106,   107,   266,
1433      267,   268,   269,   270,   271,   272,   273,   274,   275,     0,
1434        2,     0,     0,   132,   132,     0,   132,   132,   182,   132,
1435      132,     2,     0,     0,     0,   132,   152,    42,     0,     0,
1436        0,   152,     0,    79,   152,     0,     0,    87,     0,     0,
1437       42,     0,     0,     0,    97,     0,     0,     0,     0,     0,
1438        0,   132,     0,     0,   694,   697,    27,    28,     0,   700,
1439       79,    29,   178,     0,   111,   112,     0,   132,     0,     0,
1440      132,   132,     0,   187,     0,     0,     0,     0,   194,     0,
1441      211,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442        0,     0,    35,    36,    42,   114,   115,   152,     0,    42,
1443        0,   152,     0,     0,     0,     0,    18,    19,     0,     0,
1444      822,   117,     0,   825,     0,     0,   237,     0,     0,   121,
1445        0,     0,   276,     0,     0,     0,     0,     0,     0,   152,
1446        0,   152,     0,   152,   152,   152,    27,    28,   152,     0,
1447      152,    29,     0,   304,    42,     0,     0,     0,     0,     0,
1448       42,     0,     0,     0,     0,   187,     0,     0,     0,     0,
1449        0,     0,     0,   178,     0,     0,   187,   194,     0,     0,
1450        0,   194,    35,    36,     0,     0,   759,     0,   152,   762,
1451        0,     0,    72,    42,     0,     0,   211,   178,     0,    89,
1452        0,     0,     0,     0,     0,     0,   152,   388,     0,   211,
1453        0,     0,     0,     0,     0,     0,     0,   401,     0,     0,
1454        0,   211,   211,   211,     0,     0,    89,     0,    89,     0,
1455        0,     0,   183,     0,     0,     0,     0,    42,   428,     0,
1456      428,     0,     0,     0,    89,     0,    87,   304,     0,     0,
1457        0,   801,   802,     0,     0,     0,     0,     0,     0,     0,
1458      653,   152,    91,     0,     0,     0,     0,     0,     0,     0,
1459        0,     0,    82,     0,     0,     0,     0,     0,     0,     0,
1460        0,     0,     0,     0,     0,     0,     0,     0,   164,    91,
1461       42,   180,     0,   152,   152,   184,     0,     0,     0,     0,
1462      304,     0,     0,     0,     0,   152,     0,     0,     0,     0,
1463       83,     0,     0,     0,     0,     0,   194,     0,     0,     0,
1464      152,     0,   152,   152,   152,     0,     0,     0,     0,    89,
1465        0,   183,     0,    89,     0,     0,     0,    89,    42,     0,
1466        0,   152,     0,     0,     0,   253,     0,   183,     0,     0,
1467        0,     0,     0,    89,     0,     0,     0,     0,     0,     0,
1468      304,     0,     0,     0,   395,   535,     0,   211,     0,     0,
1469      537,     0,   306,   402,     0,     0,     0,     0,     0,   312,
1470        0,   178,    82,   254,     0,     0,     0,     0,     0,     0,
1471        0,   578,   180,   152,   319,     0,     0,     0,     0,     0,
1472        0,     0,   211,     0,   211,     0,   211,   211,   211,     0,
1473        0,   211,     0,   211,     0,     0,   180,   304,    80,     0,
1474       83,   152,     0,   428,     0,     0,   394,   396,     0,     0,
1475      428,   378,   379,   380,   382,     0,    82,     0,   428,     0,
1476        0,     0,     0,     0,   162,     0,     0,     0,   152,     0,
1477        0,     0,     0,     0,     0,     0,   388,   431,     0,   431,
1478        0,   423,     0,     0,     0,     0,   306,    82,   437,    82,
1479      437,   423,    89,     0,    83,     0,   448,     0,     0,     0,
1480        0,     0,     0,   463,   463,     0,     0,     0,   152,     0,
1481        0,   251,     0,     0,     0,     0,     0,     0,     0,   424,
1482      304,     0,     0,     0,     0,    83,   438,    83,   438,   424,
1483        0,     0,     0,     0,   449,     0,     0,     0,     0,   306,
1484      506,   464,   464,     0,     0,     0,    89,     0,    80,     0,
1485        0,     0,     0,     0,     0,   311,     0,    89,     0,     0,
1486        0,   395,     0,     0,     0,     0,     0,   402,     0,   580,
1487        0,     0,     0,   537,   582,     0,     0,     0,     0,     0,
1488        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1489      365,   695,     0,     0,     0,     0,     0,     0,     0,   306,
1490        0,     0,    80,   211,     0,   211,   211,   211,   164,   180,
1491        0,     0,     0,     0,     0,     0,    82,     0,     0,   253,
1492      180,    82,     0,   463,   573,     0,     0,   421,     0,     0,
1493        0,     0,     0,    80,   435,    80,   435,   421,     0,     0,
1494        0,     0,   446,     0,   209,     0,     0,     0,     0,   461,
1495      461,     0,     0,     0,    83,     0,   306,   254,     0,    83,
1496        0,   464,   431,     0,   603,     0,   594,     0,    81,   431,
1497        0,     0,     0,     0,     0,     0,     0,   431,     0,   613,
1498        0,     0,     0,     0,     0,     0,     0,   613,     0,     0,
1499        0,     0,     0,     0,     0,   394,     0,     0,    78,     0,
1500      463,     0,   187,     0,   595,   631,   174,     0,     0,     0,
1501      183,     0,     0,     0,   635,   761,     0,   614,   463,     0,
1502        0,     0,     0,     0,     0,   614,     0,     0,     0,    89,
1503      174,     0,     0,     0,     0,     0,     0,     0,   464,   306,
1504      364,   252,     0,   632,   174,     0,   580,   174,     0,    82,
1505        0,   582,    78,     0,     0,   531,   464,     0,     0,     0,
1506        0,     0,    80,   209,   162,   251,     0,    80,     0,   461,
1507        0,     0,   178,   319,     0,   209,   209,   209,    81,     0,
1508        0,     0,     0,    78,   434,    78,   434,    83,     0,     0,
1509        0,     0,   180,     0,     0,     0,     0,     0,     0,   460,
1510      460,     0,   631,     0,     0,   463,   463,     0,   456,   456,
1511      698,     0,   592,     0,     0,     0,     0,   463,   174,     0,
1512        0,   174,     0,     0,     0,   611,     0,     0,     0,     0,
1513        0,     0,    81,   611,     0,     0,     0,     0,     0,     0,
1514      632,     0,     0,   464,   464,     0,   461,     0,     0,     0,
1515        0,   629,     0,     0,     0,   464,     0,   422,     0,     0,
1516        0,     0,   174,    81,   461,    81,     0,   422,     0,     0,
1517        0,     0,   447,     0,     0,     0,     0,     0,     0,   462,
1518      462,     0,     0,     0,     0,     0,     0,     0,     0,   458,
1519      458,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1520        0,     0,     0,   731,   732,   530,     0,     0,     0,     0,
1521        0,     0,    78,     0,     0,     0,     0,    78,     0,   460,
1522        0,     0,     0,     0,     0,     0,     0,     0,    89,     0,
1523        0,   760,     0,   463,     0,     0,     0,     0,     0,     0,
1524        0,     0,     0,     0,     0,     0,     0,     0,   629,     0,
1525      209,   461,   461,     0,     0,     0,   209,     0,   209,     0,
1526      209,   209,   209,   461,     0,   209,     0,   209,     0,     0,
1527        0,   464,     0,     0,     0,   610,     0,     0,     0,     0,
1528        0,   778,   779,   610,   780,   781,     0,     0,     0,     0,
1529        0,   180,    81,     0,     0,   252,   460,    81,     0,   462,
1530      463,   628,     0,     0,     0,   456,     0,     0,     0,     0,
1531        0,     0,     0,     0,   460,   458,     0,   174,     0,     0,
1532      807,     0,   808,   456,     0,     0,     0,     0,     0,   817,
1533      818,     0,     0,     0,     0,     0,     0,     0,   464,     0,
1534        0,     0,   593,     0,     0,    78,     0,     0,     0,     0,
1535        0,     0,     0,     0,     0,     0,   832,     0,   833,   174,
1536      834,     0,   835,     0,     0,     0,     0,     0,     0,     0,
1537        0,   174,     0,     0,     0,     0,   462,     0,     0,   461,
1538        0,   630,     0,   850,     0,   851,   458,     0,   105,     0,
1539        1,   106,   107,   108,   462,   109,   110,     0,   628,     0,
1540        0,   460,   460,     0,   458,     0,     0,     0,     0,     0,
1541        0,     0,     0,   460,     0,     2,     0,     0,     0,     0,
1542        0,     0,   456,     0,     0,    81,     0,     0,     0,     0,
1543        0,     0,     0,     0,     0,     0,     0,   209,     0,   209,
1544      209,   209,     0,     0,     0,     0,   461,     0,     0,     0,
1545        0,     0,     0,     0,     0,     0,     0,     0,   111,   112,
1546      113,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1547        0,     0,   174,     0,     0,     0,     0,     0,   630,     0,
1548        0,   462,   462,     0,     0,     0,     0,   456,     0,   114,
1549      115,     0,     0,   462,     0,     0,   116,     0,     0,     0,
1550        0,     0,     0,   458,     0,   117,     0,   118,   174,     0,
1551      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1552      124,   125,     0,     0,     0,     0,     0,     0,     0,   460,
1553      798,   855,     0,     0,     0,     0,     0,   174,     0,     0,
1554      174,     0,     0,     0,     0,     0,     0,     0,     0,   174,
1555      174,     0,     0,     0,     0,     0,     0,     0,   458,     0,
1556        0,     0,     0,     0,     0,     0,     0,     0,   458,     0,
1557        0,     0,     0,     0,     0,     0,     0,     0,     0,   725,
1558        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1559        0,     0,     0,     0,     0,     0,   460,     0,     0,     0,
1560        0,     0,     0,     0,     0,   456,     0,     0,     0,   462,
1561        0,     0,     0,     0,     0,     0,     0,     0,     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,     0,     0,   174,     0,     0,
1565        0,   174,     0,     0,     0,     0,     0,     0,     0,     0,
1566        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1567      105,     0,     1,   106,   107,   108,   462,   109,   110,     0,
1568        0,     0,     0,     0,   174,     0,   458,     0,     0,     0,
1569        0,     0,     0,     0,     0,   174,     0,     2,     3,     4,
1570        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1571       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1572        0,   540,   541,   542,   543,   544,   545,   546,   547,   548,
1573      549,   550,     0,     0,     0,    26,     0,     0,     0,     0,
1574      111,   112,   113,    27,    28,     0,   551,     0,    29,     0,
1575        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
1576        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1577        0,   114,   115,     0,     0,     0,     0,     0,   116,    35,
1578       36,    37,    38,     0,     0,     0,    39,   117,     0,   118,
1579        0,     0,   119,     0,   120,   121,     0,     0,     0,     0,
1580      122,   123,   124,   125,     0,     0,     0,     0,     0,     0,
1581        0,   552,   376,  -444,   105,     0,     1,   106,   107,   108,
1582        0,   109,   110,     0,     0,     0,     0,     0,     0,     0,
1583        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1584        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1585       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1586       21,    22,    23,    24,     0,   540,   541,   542,   543,   544,
1587      545,   546,   547,   548,   549,   550,     0,     0,     0,    26,
1588        0,     0,     0,     0,   111,   112,   113,    27,    28,     0,
1589      551,     0,    29,     0,     0,    30,    31,     0,    32,     0,
1590       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1591        0,     0,     0,    34,     0,   114,   115,     0,     0,     0,
1592        0,     0,   116,    35,    36,    37,    38,     0,     0,     0,
1593       39,   117,     0,   118,     0,     0,   119,     0,   120,   121,
1594        0,     0,     0,     0,   122,   123,   124,   125,     0,     0,
1595        0,     0,     0,     0,     0,   552,   376,  -443,   105,     0,
1596        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
1597        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1598        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1599        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1600       17,    18,    19,    20,    21,    22,    23,    24,     0,   540,
1601      541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
1602        0,     0,     0,    26,     0,     0,     0,     0,   111,   112,
1603      113,    27,    28,     0,   551,     0,    29,     0,     0,    30,
1604       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1605        0,     0,     0,     0,     0,     0,     0,    34,     0,   114,
1606      115,     0,     0,     0,     0,     0,   116,    35,    36,    37,
1607       38,     0,     0,     0,    39,   117,     0,   118,     0,     0,
1608      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1609      124,   125,     0,     0,     0,     0,     0,     0,     0,   552,
1610      376,  -445,   105,     0,     1,   106,   107,   108,     0,   109,
1611      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1612        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1613        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1614       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1615       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1616        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1617        0,     0,   111,   112,   113,    27,    28,     0,     0,     0,
1618       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1619        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1620        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1621      116,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1622        0,   118,     0,     0,   119,     0,   120,   121,     0,     0,
1623        0,     0,   122,   123,   124,   125,     0,     0,     0,     0,
1624        0,     0,     0,   453,   454,   455,   105,     0,     1,   106,
1625      107,   108,     0,   109,   110,     0,     0,     0,     0,     0,
1626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1627        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1628        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1629       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
1630        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1631        0,    26,     0,     0,     0,     0,   111,   112,   113,    27,
1632       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
1633       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
1634        0,     0,     0,     0,     0,    34,     0,   114,   115,     0,
1635        0,     0,     0,     0,   116,    35,    36,    37,    38,     0,
1636        0,     0,    39,   117,     0,   118,     0,     0,   119,     0,
1637      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
1638        0,     0,     0,     0,     0,     0,     0,   453,   454,   474,
1639      105,     0,     1,   106,   107,   108,     0,   109,   110,     0,
1640        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1641        0,     0,     0,     0,     0,     0,     0,     2,     3,     4,
1642        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1643       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1644        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1645        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1646      111,   112,   113,    27,    28,     0,     0,     0,    29,     0,
1647        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
1648        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1649        0,   114,   115,     0,     0,     0,     0,     0,   116,    35,
1650       36,    37,    38,     0,     0,     0,    39,   117,     0,   118,
1651        0,     0,   119,     0,   120,   121,     0,     0,     0,     0,
1652      122,   123,   124,   125,     0,     0,     0,     0,     0,     0,
1653        0,   453,   454,   624,   105,     0,     1,   106,   107,   108,
1654        0,   109,   110,     0,     0,     0,     0,     0,     0,     0,
1655        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1656        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1657       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1658       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
1659        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1660        0,     0,     0,     0,   111,   112,   113,    27,    28,     0,
1661        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
1662       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663        0,     0,     0,    34,     0,   114,   115,     0,     0,     0,
1664        0,     0,   116,    35,    36,    37,    38,     0,     0,     0,
1665       39,   117,     0,   118,     0,     0,   119,     0,   120,   121,
1666        0,     0,     0,     0,   122,   123,   124,   125,     0,     0,
1667        0,     0,     0,     0,     0,   638,   454,  -496,   105,     0,
1668        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
1669        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1670        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1671        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1672       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
1673        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1674        0,     0,     0,    26,     0,     0,     0,     0,   111,   112,
1675      113,    27,    28,     0,     0,     0,    29,     0,     0,    30,
1676       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1677        0,     0,     0,     0,     0,     0,     0,    34,     0,   114,
1678      115,     0,     0,     0,     0,     0,   116,    35,    36,    37,
1679       38,     0,     0,     0,    39,   117,     0,   118,     0,     0,
1680      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1681      124,   125,     0,     0,     0,     0,     0,     0,     0,   453,
1682      454,   692,   105,     0,     1,   106,   107,   108,     0,   109,
1683      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1684        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1685        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1686       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1687       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1688        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1689        0,     0,   111,   112,   113,    27,    28,     0,     0,     0,
1690       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1691        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1693      116,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1694        0,   118,     0,     0,   119,     0,   120,   121,     0,     0,
1695        0,     0,   122,   123,   124,   125,   105,     0,     1,   106,
1696      107,     0,     0,   453,   454,   795,     0,     0,     0,     0,
1697        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1698        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1699        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1700       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
1701        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702        0,    26,     0,   198,     0,     0,   111,   112,     0,    27,
1703       28,     0,     0,   199,    29,     0,     0,    30,    31,     0,
1704       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
1705        0,     0,     0,     0,     0,    34,     0,   114,   115,     0,
1706        0,     0,     0,     0,     0,    35,    36,    37,    38,     0,
1707        0,     0,    39,   117,     0,    72,     0,     0,   200,     0,
1708      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1709        0,     0,     0,     0,     0,     0,     0,   202,     0,   203,
1710        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1711        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1712       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1713       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1714        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1715        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1716       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1717        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1718        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1719        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1720        0,    72,     0,     0,   200,     0,   201,   121,   105,     0,
1721        1,   106,   107,     0,     0,     0,     0,     0,     0,     0,
1722        0,     0,     0,   202,     0,   397,     0,     0,     0,     0,
1723        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1724        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1725       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
1726        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1727        0,     0,     0,    26,     0,   198,     0,     0,   111,   112,
1728        0,    27,    28,     0,     0,   199,    29,     0,     0,    30,
1729       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1730        0,     0,     0,     0,     0,     0,     0,    34,     0,   114,
1731      115,     0,     0,     0,     0,     0,     0,    35,    36,    37,
1732       38,     0,     0,     0,    39,   117,     0,    72,     0,     0,
1733      200,     0,   201,   121,   105,     0,     1,   106,   107,     0,
1734        0,     0,     0,     0,     0,     0,     0,     0,     0,   202,
1735        0,   406,     0,     0,     0,     0,     0,     0,     0,     0,
1736        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1737       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1738       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
1739        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1740        0,   198,     0,     0,   111,   112,     0,    27,    28,     0,
1741        0,   199,    29,     0,     0,    30,    31,     0,    32,     0,
1742       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1743        0,     0,     0,    34,     0,   114,   115,     0,     0,     0,
1744        0,     0,     0,    35,    36,    37,    38,     0,     0,     0,
1745       39,   117,     0,    72,     0,     0,   200,     0,   201,   121,
1746      105,     0,     1,   106,   107,     0,     0,     0,     0,     0,
1747        0,     0,     0,     0,     0,   202,     0,   408,     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        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752        0,     0,     0,     0,     0,    26,     0,   198,     0,     0,
1753      111,   112,     0,    27,    28,     0,     0,   199,    29,     0,
1754        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
1755        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1756        0,   114,   115,     0,     0,     0,     0,     0,     0,    35,
1757       36,    37,    38,     0,     0,     0,    39,   117,     0,    72,
1758        0,     0,   200,     0,   201,   121,   105,     0,     1,   106,
1759      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760        0,   202,     0,   583,     0,     0,     0,     0,     0,     0,
1761        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1762        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1763       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
1764        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,    26,     0,   198,     0,     0,   111,   112,     0,    27,
1766       28,     0,     0,   199,    29,     0,     0,    30,    31,     0,
1767       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
1768        0,     0,     0,     0,     0,    34,     0,   114,   115,     0,
1769        0,     0,     0,     0,     0,    35,    36,    37,    38,     0,
1770        0,     0,    39,   117,     0,    72,     0,     0,   200,     0,
1771      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1772        0,     0,     0,     0,     0,     0,     0,   202,     0,   584,
1773        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1774        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1775       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1776       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1777        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1778        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1779       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1780        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1782        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1783        0,    72,     0,     0,   200,     0,   201,   121,   105,     0,
1784        1,   106,   107,     0,     0,     0,     0,     0,     0,     0,
1785        0,     0,     0,   202,     0,   585,     0,     0,     0,     0,
1786        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1787        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1788       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
1789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1790        0,     0,     0,    26,     0,   198,     0,     0,   111,   112,
1791        0,    27,    28,     0,     0,   199,    29,     0,     0,    30,
1792       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1793        0,     0,     0,     0,     0,     0,     0,    34,     0,   114,
1794      115,     0,     0,     0,     0,     0,     0,    35,    36,    37,
1795       38,     0,     0,     0,    39,   117,     0,    72,     0,     0,
1796      200,     0,   201,   121,   105,     0,     1,   106,   107,     0,
1797        0,     0,     0,     0,     0,     0,     0,     0,     0,   202,
1798        0,   587,     0,     0,     0,     0,     0,     0,     0,     0,
1799        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1800       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1801       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
1802        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1803        0,   198,     0,     0,   111,   112,     0,    27,    28,     0,
1804        0,   199,    29,     0,     0,    30,    31,     0,    32,     0,
1805       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1806        0,     0,     0,    34,     0,   114,   115,     0,     0,     0,
1807        0,     0,     0,    35,    36,    37,    38,     0,     0,     0,
1808       39,   117,     0,    72,     0,     0,   200,     0,   201,   121,
1809      105,     0,     1,   106,   107,     0,     0,     0,     0,     0,
1810        0,     0,     0,     0,     0,   202,     0,   701,     0,     0,
1811        0,     0,     0,     0,     0,     0,     0,     2,     3,     4,
1812        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1813       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1814        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815        0,     0,     0,     0,     0,    26,     0,   198,     0,     0,
1816      111,   112,     0,    27,    28,     0,     0,   199,    29,     0,
1817        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
1818        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1819        0,   114,   115,     0,     0,     0,     0,     0,     0,    35,
1820       36,    37,    38,     0,     0,     0,    39,   117,     0,    72,
1821        0,     0,   200,     0,   201,   121,   105,     0,     1,   106,
1822      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1823        0,   202,     0,   702,     0,     0,     0,     0,     0,     0,
1824        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1825        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1826       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
1827        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1828        0,    26,     0,   198,     0,     0,   111,   112,     0,    27,
1829       28,     0,     0,   199,    29,     0,     0,    30,    31,     0,
1830       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
1831        0,     0,     0,     0,     0,    34,     0,   114,   115,     0,
1832        0,     0,     0,     0,     0,    35,    36,    37,    38,     0,
1833        0,     0,    39,   117,     0,    72,     0,     0,   200,     0,
1834      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1835        0,     0,     0,     0,     0,     0,     0,   202,     0,   703,
1836        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1837        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1838       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1839       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1840        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1841        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1842       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1844        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1845        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1846        0,    72,     0,     0,   200,     0,   201,   121,   105,     0,
1847        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
1848        0,     0,     0,   202,     0,   704,     0,     0,     0,     0,
1849        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1850        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1851       17,    18,    19,    20,    21,    22,    23,    24,     0,   540,
1852      541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
1853        0,     0,     0,    26,     0,     0,     0,     0,   111,   112,
1854      113,    27,    28,     0,   551,     0,    29,     0,     0,    30,
1855       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1856        0,     0,     0,     0,     0,     0,     0,    34,     0,   114,
1857      115,     0,     0,     0,     0,     0,   116,    35,    36,    37,
1858       38,     0,     0,     0,    39,   117,     0,   118,     0,     0,
1859      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1860      124,   125,     0,     0,     0,     0,     0,     0,     0,   552,
1861      376,   105,     0,     1,   106,   107,   108,     0,   109,   110,
1862        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1863        0,     0,     0,     0,     0,     0,     0,     0,     2,     0,
1864        0,     0,     0,     0,     0,     0,   105,     0,     1,   106,
1865      107,   108,     0,   109,   110,     0,     0,     0,     0,     0,
1866        0,     0,   540,   541,   542,   543,   544,   545,   546,   547,
1867      548,   549,   550,     2,     0,     0,     0,     0,     0,     0,
1868        0,   111,   112,   113,     0,     0,     0,     0,   105,     0,
1869        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
1870        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1871        0,     0,   114,   115,     0,     2,   111,   112,   113,   116,
1872        0,     0,     0,     0,     0,     0,     0,     0,   117,     0,
1873      118,     0,     0,   119,     0,   120,   121,     0,     0,     0,
1874        0,   122,   123,   124,   125,     0,     0,   114,   115,     0,
1875        0,     0,   552,   376,   116,     0,     0,     0,   111,   112,
1876      113,     0,     0,   117,     0,   118,     0,     0,   119,   477,
1877      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
1878        0,     0,     0,     0,     0,     0,     0,     0,   454,   114,
1879      115,     0,     0,     0,     0,   105,   116,     1,   106,   107,
1880      108,     0,   109,   110,     0,   117,     0,   118,     0,     0,
1881      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1882      124,   125,     2,     0,     0,     0,     0,     0,     0,     0,
1883      454,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1884        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1885        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1886        0,     0,     0,     0,     0,   111,   112,   113,     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,   114,   115,     0,     0,
1890        0,     0,     0,   116,     0,     0,     0,     0,     0,     0,
1891        0,     0,   117,     0,   118,     0,     0,   119,     0,   120,
1892      121,     0,     0,     0,     0,   122,   123,   124,   125,   105,
1893        0,     1,   106,   107,     0,     0,     0,   798,     0,     0,
1894        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1895        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1896        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1897       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1898        0,     0,     0,     0,     0,   105,     0,     1,   106,   107,
1899      108,     0,   109,   110,    26,     0,   198,     0,     0,   111,
1900      112,     0,    27,    28,     0,     0,   199,    29,     0,     0,
1901       30,    31,     2,    32,     0,    33,     0,     0,     0,     0,
1902        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1903      114,   115,     0,     0,     0,     0,     0,     0,    35,    36,
1904       37,    38,     0,     0,     0,    39,   117,     0,    72,     0,
1905        0,   200,     0,   201,   121,   111,   112,   113,   105,     0,
1906        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
1907      202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1908        0,     0,     0,     0,     0,     2,   114,   115,     0,     0,
1909        0,     0,   105,   116,     1,   106,   107,   108,     0,   109,
1910      110,     0,   117,     0,   118,     0,     0,   119,   748,   120,
1911      121,     0,     0,     0,     0,   122,   123,   124,   125,     2,
1912        0,     0,     0,     0,     0,     0,   552,     0,   111,   112,
1913      113,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1914        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1915        0,     0,     0,     0,     0,     0,     0,     0,     0,   114,
1916      115,     0,   111,   112,   113,     0,   116,     0,     0,     0,
1917        0,     0,     0,     0,     0,   117,     0,   118,     0,     0,
1918      119,   792,   120,   121,     0,     0,     0,     0,   122,   123,
1919      124,   125,     0,   114,   115,     0,     0,     0,     0,   552,
1920      116,     0,     0,     0,     0,     0,     0,     0,     0,   117,
1921        1,   118,     0,     0,   119,     0,   120,   121,     0,     0,
1922        0,     0,   122,   123,   124,   125,     0,     0,     0,     0,
1923        0,     0,     0,   676,     0,     2,     3,     4,     5,     6,
1924        7,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1925      351,    18,    19,   352,   353,    22,    23,   354,     0,     0,
1926        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1927        0,     0,     0,   355,     0,     0,     0,     0,     0,     0,
1928        0,    27,    28,     0,     0,     0,    29,     0,     0,     0,
1929        0,     0,   356,     0,   357,     0,     0,     0,     0,     0,
1930        0,     0,     0,     0,     0,     0,     0,   358,     0,     0,
1931        0,     0,     0,     0,     0,     0,     0,    35,    36,   359,
1932      360,     0,     0,     0,    39,     0,     1,    72,     0,     0,
1933      303,     0,     0,     0,     0,    74,     0,     0,     0,     0,
1934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1935      528,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1936       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1937       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
1938        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1939        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
1940        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
1941       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1942        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1943        0,     0,     0,    35,    36,    37,    38,     0,     0,     0,
1944       39,     1,     0,    72,     0,     0,   384,     0,     0,     0,
1945        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1946        0,     0,     0,   385,     0,   386,     2,     3,     4,     5,
1947        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1948       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1949        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1950        0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
1951        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
1952       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1953        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1954        0,     0,     0,     0,     0,     0,     0,     0,    35,    36,
1955       37,    38,     0,     0,     0,    39,     1,     0,    72,     0,
1956        0,   176,     0,     0,     0,     0,     0,     0,     0,     0,
1957        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1958      681,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1959       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1960       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
1961        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1962        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
1963        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
1964       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1965        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1966        0,     0,     0,    35,    36,    37,    38,     0,     0,     0,
1967       39,     0,     0,    72,     0,   105,   303,     1,   106,   107,
1968      108,    74,   109,   110,     0,     0,     0,     0,     0,     0,
1969        0,     0,     0,     0,  -279,     0,     0,     0,     0,     0,
1970        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1971       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1972       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1973        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974       26,     0,     0,     0,     0,   111,   112,   113,    27,    28,
1975        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1976        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1977        0,     0,     0,     0,    34,     0,   114,   115,     0,     0,
1978        0,     0,     0,   116,    35,    36,    37,    38,     0,     0,
1979        0,    39,   117,     0,   118,     0,     0,   119,     0,   120,
1980      121,     0,     0,     0,     0,   122,   123,   124,   125,   105,
1981        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
1982        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1983        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
1984        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
1985       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1986        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1987        0,     0,     0,     0,    26,     0,     0,     0,     0,   111,
1988      112,   113,    27,    28,     0,     0,     0,    29,     0,     0,
1989       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1990        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1991      114,   115,     0,     0,     0,     0,     0,   116,    35,    36,
1992       37,    38,     0,     0,     0,     0,   117,     0,   118,     0,
1993        0,   119,   247,   120,   121,     0,     0,     0,     0,   122,
1994      123,   124,   125,   105,     0,     1,   106,   107,   108,     0,
1995      109,   110,     0,     0,     0,     0,     0,     0,     0,     0,
1996        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1997        2,     0,     0,     0,     0,     0,     8,     9,    10,    11,
1998       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1999       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2000        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2001        0,     0,     0,   111,   112,   113,    27,    28,     0,     0,
2002        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2003      105,     0,     1,   106,   107,   108,     0,   109,   110,     0,
2004        0,     0,    34,     0,   114,   115,     0,     0,     0,     0,
2005        0,   116,    35,    36,    37,    38,     0,     2,     0,     0,
2006      117,     0,   372,     0,     0,   373,   247,   120,   121,     0,
2007        0,     0,     0,   122,   123,   124,   125,     0,     0,     0,
2008        0,     0,     0,     0,     0,     0,   105,     0,     1,   106,
2009      107,   108,     0,   109,   110,     0,     0,     0,     0,     0,
2010      111,   112,   113,    27,    28,     0,     0,     0,    29,     0,
2011        0,     0,     0,     2,     0,     0,     0,     0,     0,   105,
2012        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
2013        0,   114,   115,     0,     0,     0,     0,     0,   116,    35,
2014       36,     0,     0,     0,     0,     0,     2,   117,     0,   372,
2015        0,     0,   373,   247,   120,   121,   111,   112,   113,     0,
2016      122,   123,   124,   125,     0,     0,     0,     0,     0,     0,
2017        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2018        0,     0,     0,     0,     0,     0,     0,   114,   115,   111,
2019      112,   113,     0,     0,   116,     0,     0,     0,     0,     0,
2020        0,     0,     0,   117,     0,   118,     0,     0,   119,     0,
2021      120,   121,     0,     0,   172,     0,   122,   123,   124,   125,
2022      114,   115,     0,     0,     0,     0,   105,   116,     1,   106,
2023      107,   108,     0,   109,   110,     0,   117,     0,   118,     0,
2024        0,   119,     0,   120,   121,     0,     0,   324,     0,   122,
2025      123,   124,   125,     2,     0,     0,     0,     0,     0,   105,
2026        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
2027        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2028        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
2029        0,     0,     0,     0,     0,     0,   111,   112,   113,   105,
2030        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
2031        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2032        0,     0,     0,     0,     0,     0,     2,   114,   115,   111,
2033      112,   113,     0,     0,   116,     0,     0,     0,     0,     0,
2034        0,     0,     0,   117,     0,   118,     0,     0,   119,     0,
2035      120,   121,     0,     0,   327,     0,   122,   123,   124,   125,
2036      114,   115,     0,     0,     0,     0,     0,   116,     0,   111,
2037      112,   113,     0,     0,     0,     0,   117,     0,   118,     0,
2038        0,   119,   247,   120,   121,     0,     0,     0,     0,   122,
2039      123,   124,   125,     0,     0,     0,     0,     0,     0,     0,
2040      114,   115,     0,     0,     0,     0,   105,   116,     1,   106,
2041      107,   108,     0,   109,   110,     0,   117,     0,   118,     0,
2042        0,   119,   745,   120,   121,     0,     0,     0,     0,   122,
2043      123,   124,   125,     2,     0,     0,     0,     0,     0,   105,
2044        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
2045        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2046        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
2047        0,     0,     0,     0,     0,     0,   111,   112,   113,   105,
2048        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
2049        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2050        0,     0,     0,     0,     0,     0,     2,   114,   115,   111,
2051      112,   113,     0,     0,   116,     0,     0,     0,     0,     0,
2052        0,     0,     0,   117,     0,   118,     0,     0,   119,   824,
2053      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
2054      114,   115,     0,     0,     0,     0,     0,   116,     0,   111,
2055      112,   113,     0,     0,     0,     0,   117,     0,   118,     0,
2056        0,   119,     0,   120,   121,     0,     0,     0,     0,   122,
2057      123,   124,   125,     0,     0,     0,     0,     0,     0,     0,
2058      114,   115,     0,     0,     0,     0,   105,   116,     1,   106,
2059      107,   108,     0,   109,   110,     0,   117,     0,   118,     0,
2060        0,   235,     0,   120,   121,     0,     0,     0,     0,   122,
2061      123,   124,   125,     2,     0,     0,     0,     0,     0,   105,
2062        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
2063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2064        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
2065        0,     0,     0,     0,     0,     0,   111,   112,   113,     0,
2066        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2067        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2068        0,     0,     0,     0,     0,     0,     0,   114,   115,   111,
2069      112,   113,     0,     0,   116,     0,     0,     0,     0,     0,
2070        0,     0,     0,   117,     0,   118,     0,     0,   237,     0,
2071      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
2072      114,   115,     0,     0,     0,     0,     0,   116,     1,     0,
2073        0,     0,     0,     0,     0,     0,   117,     0,   118,     0,
2074        0,   245,     0,   120,   121,     0,     0,     0,     0,   122,
2075      123,   124,   125,     2,     3,     4,     5,     6,     7,     8,
2076        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2077       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2078        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2079        0,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2080       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2081       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
2082        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
2083        0,     0,     1,     0,     0,    35,    36,    37,    38,     0,
2084        0,     0,    39,     0,     0,    72,     0,     0,    73,     0,
2085        0,     0,     0,    74,     0,     0,    75,     2,     3,     4,
2086        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2087       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2088        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2089        0,     0,     0,     0,    25,    26,     0,     0,     0,     0,
2090        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2091        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
2092        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
2093        0,     0,     0,     1,     0,     0,     0,     0,     0,    35,
2094       36,    37,    38,     0,     0,     0,    39,     0,     0,    72,
2095        0,     0,    73,   165,     0,     0,     0,    74,     2,     3,
2096        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2097       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2098       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2099        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
2100        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2101        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2102        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2103       34,     0,     0,     0,     1,     0,     0,     0,     0,     0,
2104       35,    36,    37,    38,     0,     0,     0,    39,     0,     0,
2105       72,     0,     0,   303,   165,     0,     0,     0,    74,     2,
2106        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2107       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2108       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2109        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2110        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2111       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2112        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2113        0,    34,     0,     0,     0,     1,     0,     0,     0,     0,
2114        0,    35,    36,    37,    38,     0,     0,     0,    39,     0,
2115        0,    72,     0,     0,   426,     0,     0,     0,     0,   427,
2116        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2117       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2118       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2119        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2120        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2121        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2122        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2123        0,     0,    34,     0,     0,     0,     1,     0,     0,     0,
2124        0,     0,    35,    36,    37,    38,     0,     0,     0,    39,
2125        0,     0,    72,     0,     0,   426,     0,     0,     0,     0,
2126      439,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2127       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2128       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
2129        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
2130        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
2131        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
2132       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2133        0,     0,     0,    34,     0,     0,     0,     1,     0,     0,
2134        0,     0,     0,    35,    36,    37,    38,     0,     0,     0,
2135       39,     0,     0,    72,     0,     0,   303,     0,     0,     0,
2136        0,    74,     2,     3,     4,     5,     6,     7,   342,   343,
2137      344,   345,   346,   347,   348,   349,   350,   351,    18,    19,
2138      352,   353,    22,    23,    24,     0,     0,     0,     0,     0,
2139        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2140      355,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2141        0,     0,     0,    29,     0,     0,     0,     0,     0,   356,
2142        0,   357,     0,     0,     0,     0,     0,     0,     0,     0,
2143        0,     0,     0,     0,   358,     0,     0,     0,     1,     0,
2144        0,     0,     0,     0,    35,    36,   359,   360,     0,     0,
2145        0,    39,     0,     0,    72,     0,     0,   426,     0,     0,
2146        0,     0,   608,     2,     3,     4,     5,     6,     7,   342,
2147      343,   344,   345,   346,   347,   348,   349,   350,   351,    18,
2148       19,   352,   353,    22,    23,    24,     0,     0,     0,     0,
2149        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2150        0,   355,     0,     0,     0,     0,     0,     0,     0,    27,
2151       28,     0,     0,     0,    29,     0,     0,     0,     0,     0,
2152      356,     0,   357,     0,     0,     0,     0,     0,     0,     0,
2153        0,     0,     0,     0,     1,   358,     0,     0,     0,     0,
2154        0,     0,     0,     0,     0,    35,    36,   359,   360,     0,
2155        0,     0,    39,     0,     0,    72,     0,     0,   426,     2,
2156        0,     0,     0,   618,     0,     8,     9,    10,    11,    12,
2157       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2158       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2159        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2160        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2161       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2162        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2163        0,    34,     0,     0,     0,     1,     0,     0,     0,     0,
2164        0,    35,    36,    37,    38,     0,     0,     0,     0,     0,
2165        0,    72,     0,     0,   303,     0,     0,     0,     0,    74,
2166        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2167       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2168       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2169        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2170        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2171        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2172        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2173        0,     0,    34,     1,     0,     0,     0,     0,     0,     0,
2174        0,     0,    35,    36,    37,    38,     0,     0,     0,    39,
2175        0,     0,    72,     0,     0,   426,   598,     0,     2,     3,
2176        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2177       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2178       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2179        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
2180        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2181        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2182        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2183       34,     1,     0,     0,     0,     0,     0,     0,     0,     0,
2184       35,    36,    37,    38,     0,     0,     0,    39,     0,     0,
2185        0,     0,     0,     0,   190,     0,     2,     3,     4,     5,
2186        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2187       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
2188        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2189        0,     0,     0,    25,    26,     0,     0,     0,     0,     0,
2190        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
2191       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
2192        0,     0,     0,     0,     0,     0,     0,     0,    34,     1,
2193        0,     0,     0,     0,     0,     0,     0,     0,    35,    36,
2194       37,    38,     0,     0,     0,    39,     0,     0,     0,     0,
2195        0,     0,   322,     0,     2,     3,     4,     5,     6,     7,
2196        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2197       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2198        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2199        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
2200       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2201        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
2202        0,     0,     0,     0,     0,     0,    34,     1,     0,     0,
2203        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
2204        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
2205      709,     0,     2,     3,     4,     5,     6,     7,     8,     9,
2206       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2207       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
2208        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2209       26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2210        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
2211        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
2212        0,     0,     0,     1,    34,     0,     0,     0,     0,     0,
2213        0,     0,     0,     0,    35,    36,    37,    38,     0,     0,
2214        0,    39,     0,     0,    72,     0,     0,   176,     2,     3,
2215        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2216       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2217       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2218        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2219        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2220        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2221        0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
2222       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2223       35,    36,    37,    38,     0,     0,     0,    39,     0,     0,
2224        0,     0,     0,   538,     2,     3,     4,     5,     6,     7,
2225        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2226       18,    19,    20,    21,    22,    23,    24,   510,     0,     0,
2227        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2228        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
2229       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2230        0,    32,     0,    33,     0,     0,     0,     0,     0,     1,
2231        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
2232        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
2233        0,     0,     0,    39,     2,     3,     4,     5,     6,     7,
2234        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2235       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2236        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2237        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
2238       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2239        0,    32,     0,    33,     0,     0,     0,     0,     0,     1,
2240        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
2241        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
2242        0,     0,     0,    39,     2,     3,     4,     5,     6,     7,
2243        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2244       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2245        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2246        0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
2247       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2248        0,    32,     0,    33,     0,     0,     0,     0,     0,     1,
2249        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
2250        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
2251        0,     0,     0,    39,     2,     3,     4,     5,     6,     7,
2252      342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
2253       18,    19,   352,   353,    22,    23,   354,     0,     0,     0,
2254        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2255        0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
2256       27,    28,     0,     0,     0,    29,     0,     0,     0,     0,
2257        0,   356,     0,   357,     0,     0,     0,     0,     0,     1,
2258        0,     0,     0,     0,     0,     0,   358,     0,     0,     0,
2259        0,     0,     0,     0,     0,     0,    35,    36,   359,   360,
2260        0,     0,     0,    39,     2,     3,     4,     5,     6,     7,
2261      342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
2262       18,    19,   352,   353,    22,    23,    24,     0,     0,     0,
2263        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2264        0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
2265       27,    28,     0,     0,     0,    29,     0,     0,     0,     0,
2266        0,   356,     0,   357,     0,     0,     0,     0,     0,     0,
2267        0,     0,     0,     0,     0,     0,   358,     0,     0,     0,
2268        0,     0,     0,     0,     0,     0,    35,    36,   359,   360,
2269        0,     0,     0,    39
2270 };
2271
2272 static const yytype_int16 yycheck[] =
2273 {
2274        0,     0,   262,    88,    46,   377,   121,   243,   258,   383,
2275      198,    98,   199,    93,   377,   527,    65,   277,     3,    17,
2276        3,   198,     3,   210,    24,   112,   133,    91,   115,     3,
2277        3,     3,   428,    75,   341,   431,     3,     3,   798,   123,
2278       79,     3,     3,    28,    46,    45,    46,    67,     0,     3,
2279      198,   672,   121,    24,   120,    28,    28,    57,    69,    44,
2280       69,    70,    62,     3,    79,   121,    66,    67,   130,   135,
2281      136,   110,   111,    73,   143,    75,    91,    77,    70,    79,
2282      142,     3,   144,   123,   844,   121,    57,   143,    88,    74,
2283       75,    91,    69,    93,   242,   607,   244,    97,   130,   186,
2284      185,   140,   189,   103,   104,     3,    28,    12,    13,   123,
2285      142,   111,    74,    75,   114,    67,   180,    79,   138,    70,
2286      184,    73,   224,   225,   226,     3,    97,   127,   749,     0,
2287      130,    69,   212,   144,     3,   144,    88,   120,   121,   124,
2288        3,   139,   123,   230,   224,   225,   226,   659,   110,   111,
2289      124,   151,   144,   153,   156,    11,   156,   124,   141,   111,
2290      143,     3,   114,    70,   140,   120,   166,   144,   123,   184,
2291      143,   143,   279,   280,   281,   363,   176,   143,   178,   140,
2292      180,   143,   143,   370,   184,   185,   363,   559,   560,   143,
2293      426,   191,   198,   144,   194,    70,   559,   433,   198,   199,
2294      200,   201,   714,   143,   454,   441,   144,   603,   208,   209,
2295      210,   211,   212,   262,   521,   363,   121,   122,   143,     1,
2296      220,     3,   120,   121,   224,   225,   226,   198,   277,   123,
2297       69,   231,    65,   185,   128,   235,   242,   144,   244,    46,
2298      240,   241,   242,   243,   244,   245,   130,   199,   250,   201,
2299      250,   120,   626,   130,   123,   319,   433,   120,   121,   259,
2300      144,     3,   143,   263,   441,   142,   122,   287,   288,   144,
2301      290,   242,   459,   244,   130,   108,   109,   110,   120,   121,
2302      143,   129,   302,   116,   212,   433,   119,   307,   124,   304,
2303      310,   306,   122,   441,   130,   143,    69,    70,   385,   130,
2304      130,   143,   302,   303,     1,   144,     3,   307,   410,   411,
2305      310,   142,   414,   144,   416,   687,   316,   316,     3,   319,
2306      124,   571,   123,    69,    70,   405,   130,   407,     3,   409,
2307      410,   411,   332,   130,   414,   143,   416,   452,   120,   121,
2308      427,   426,   124,    28,   451,   142,    69,    70,   130,   156,
2309      302,   303,   439,    28,   354,   307,   141,   363,   310,    44,
2310      130,   363,   129,   363,   316,     5,   129,   200,   368,    44,
2311      370,   144,   142,   373,   374,   375,   143,   377,   120,   119,
2312      143,   123,   143,   354,   384,   645,   128,   387,   388,    74,
2313       75,   138,   363,   131,   394,   444,   396,   368,   144,    74,
2314       75,   401,   235,   210,   237,   405,   137,   407,   130,   409,
2315      410,   411,   245,   130,   414,    16,   416,   141,   420,   419,
2316      420,   144,   144,   120,   121,   142,   426,   433,   235,   262,
2317      130,   264,   130,   433,   241,   441,   243,   130,   245,   129,
2318      120,   441,   142,   123,   277,   445,   122,   140,   128,   124,
2319      122,   124,   143,   540,   130,   130,   456,   130,   130,   459,
2320      200,   122,   433,   123,   142,   298,   124,    46,   128,   130,
2321      441,   124,   130,   124,   426,   124,   525,   405,     3,   407,
2322      124,   409,     7,     8,     9,   123,   130,   124,   124,   576,
2323      128,   506,   124,   130,    73,   235,    75,   237,   130,   124,
2324       79,   503,   143,   503,   754,   245,   586,   527,   588,   589,
2325      590,   124,    91,   142,   556,   302,   124,   130,   605,   604,
2326      307,   608,   130,   302,   264,   143,   526,   527,   307,   124,
2327      617,   618,   141,   533,   127,   535,   123,   537,   132,   133,
2328      373,    10,    11,   124,   377,   545,   129,   547,    14,    15,
2329      124,   551,   129,   553,   142,   143,   556,   123,   298,   559,
2330      560,   129,   130,   370,   535,     3,     3,   123,   375,     7,
2331        8,     9,   121,   573,   574,   527,   124,     3,   578,   282,
2332      283,     7,     8,     9,   291,   292,   586,   607,   588,   589,
2333      590,    28,   284,   285,   103,   104,   645,   176,   123,   178,
2334      144,   180,   127,   128,   604,   184,   123,   607,   128,   123,
2335      121,   444,     3,   420,   144,   194,   141,   124,   128,   124,
2336      144,   200,   124,   123,   140,   545,   123,   627,   715,   123,
2337      123,   210,   719,   373,   142,   124,   142,    74,    75,   659,
2338      560,   144,    79,   142,    74,    75,   124,   129,   121,    79,
2339      129,   128,   604,   128,   654,   607,   144,     3,   586,   659,
2340      588,   589,   590,   124,     0,   752,   124,   667,   140,   143,
2341       56,   142,   128,   110,   111,   140,   763,   141,   124,   679,
2342      110,   111,   682,    74,    75,   123,   519,   687,    79,   127,
2343      128,   144,   525,   129,   714,   695,   503,   123,   698,   142,
2344      129,   127,   128,   141,   129,   129,   143,   659,   757,     3,
2345       46,   141,   545,   755,   714,   123,   129,   550,   129,   110,
2346      111,   144,   144,   144,   144,     3,   559,   560,    74,    75,
2347       66,    67,   123,    79,    74,    75,    64,    73,    74,    79,
2348      319,   741,   144,   144,   144,   745,   142,   667,   748,   798,
2349      144,     3,    88,    57,   144,   755,   293,    93,   294,   679,
2350      760,   761,   714,   295,   110,   111,   297,   687,   296,   755,
2351      110,   111,   393,   399,     1,   111,     3,   123,   114,   519,
2352       74,    75,   128,   119,   124,    79,   786,   787,   310,   789,
2353      244,   574,   792,   459,   373,   844,    74,    75,   231,   559,
2354      245,    79,   472,   472,   636,   384,    -1,   472,    -1,   388,
2355      550,    -1,   645,    -1,    -1,   394,   110,   111,    -1,    -1,
2356      156,   741,    74,    75,   824,   745,   120,    79,   748,   123,
2357      124,    -1,   110,   111,   667,   668,   669,   670,    -1,   672,
2358      840,    -1,   120,   843,    -1,   123,   679,    74,    75,   185,
2359      186,    -1,    79,   189,   687,    74,    75,    -1,   110,   111,
2360       79,    -1,   140,   199,    -1,   201,   786,   787,   120,   789,
2361       -1,   123,   792,    -1,   210,    -1,   212,    -1,    -1,    -1,
2362      459,    -1,    -1,   110,   111,    -1,    -1,    -1,   224,   225,
2363      226,   110,   111,   120,   121,    -1,   123,   124,    -1,   235,
2364       -1,   128,    -1,    -1,   824,   241,    -1,   243,   741,   245,
2365       -1,    -1,   745,    -1,   250,   748,   749,    -1,    -1,    -1,
2366      840,   257,   258,   843,   757,     3,    -1,    -1,   668,   669,
2367      670,    -1,    -1,    -1,     1,    -1,     3,     4,     5,    18,
2368       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
2369       28,    -1,    -1,   786,   787,    -1,   789,   790,   537,   792,
2370      793,    28,    -1,    -1,    -1,   798,   302,   303,    -1,    -1,
2371       -1,   307,    -1,    46,   310,    -1,    -1,   556,    -1,    -1,
2372      316,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,
2373       -1,   824,    -1,    -1,   573,   574,    74,    75,    -1,   578,
2374       73,    79,    75,    -1,    71,    72,    -1,   840,    -1,    -1,
2375      843,   844,    -1,    86,    -1,    -1,    -1,    -1,    91,    -1,
2376       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2377       -1,    -1,   110,   111,   370,   102,   103,   373,    -1,   375,
2378       -1,   377,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2379      790,   118,    -1,   793,    -1,    -1,   123,    -1,    -1,   126,
2380       -1,    -1,   141,    -1,    -1,    -1,    -1,    -1,    -1,   405,
2381       -1,   407,    -1,   409,   410,   411,    74,    75,   414,    -1,
2382      416,    79,    -1,   156,   420,    -1,    -1,    -1,    -1,    -1,
2383      426,    -1,    -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,
2384       -1,    -1,    -1,   176,    -1,    -1,   179,   180,    -1,    -1,
2385       -1,   184,   110,   111,    -1,    -1,   695,    -1,   454,   698,
2386       -1,    -1,   120,   459,    -1,    -1,   199,   200,    -1,    46,
2387       -1,    -1,    -1,    -1,    -1,    -1,   472,   210,    -1,   212,
2388       -1,    -1,    -1,    -1,    -1,    -1,    -1,   220,    -1,    -1,
2389       -1,   224,   225,   226,    -1,    -1,    73,    -1,    75,    -1,
2390       -1,    -1,    79,    -1,    -1,    -1,    -1,   503,   241,    -1,
2391      243,    -1,    -1,    -1,    91,    -1,   755,   250,    -1,    -1,
2392       -1,   760,   761,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2393      526,   527,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2394       -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
2396      556,    75,    -1,   559,   560,    79,    -1,    -1,    -1,    -1,
2397      303,    -1,    -1,    -1,    -1,   571,    -1,    -1,    -1,    -1,
2398       46,    -1,    -1,    -1,    -1,    -1,   319,    -1,    -1,    -1,
2399      586,    -1,   588,   589,   590,    -1,    -1,    -1,    -1,   176,
2400       -1,   178,    -1,   180,    -1,    -1,    -1,   184,   604,    -1,
2401       -1,   607,    -1,    -1,    -1,   119,    -1,   194,    -1,    -1,
2402       -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,
2403      363,    -1,    -1,    -1,   211,   368,    -1,   370,    -1,    -1,
2404      373,    -1,   156,   220,    -1,    -1,    -1,    -1,    -1,   163,
2405       -1,   384,   156,   119,    -1,    -1,    -1,    -1,    -1,    -1,
2406       -1,   394,   176,   659,   178,    -1,    -1,    -1,    -1,    -1,
2407       -1,    -1,   405,    -1,   407,    -1,   409,   410,   411,    -1,
2408       -1,   414,    -1,   416,    -1,    -1,   200,   420,    46,    -1,
2409      156,   687,    -1,   426,    -1,    -1,   210,   211,    -1,    -1,
2410      433,   204,   205,   206,   207,    -1,   210,    -1,   441,    -1,
2411       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,   714,    -1,
2412       -1,    -1,    -1,    -1,    -1,    -1,   459,   241,    -1,   243,
2413       -1,   235,    -1,    -1,    -1,    -1,   250,   241,   242,   243,
2414      244,   245,   319,    -1,   210,    -1,   250,    -1,    -1,    -1,
2415       -1,    -1,    -1,   257,   258,    -1,    -1,    -1,   754,    -1,
2416       -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   235,
2417      503,    -1,    -1,    -1,    -1,   241,   242,   243,   244,   245,
2418       -1,    -1,    -1,    -1,   250,    -1,    -1,    -1,    -1,   303,
2419      304,   257,   258,    -1,    -1,    -1,   373,    -1,   156,    -1,
2420       -1,    -1,    -1,    -1,    -1,   163,    -1,   384,    -1,    -1,
2421       -1,   388,    -1,    -1,    -1,    -1,    -1,   394,    -1,   396,
2422       -1,    -1,    -1,   556,   401,    -1,    -1,    -1,    -1,    -1,
2423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,
2424      198,   574,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,
2425       -1,    -1,   210,   586,    -1,   588,   589,   590,   372,   373,
2426       -1,    -1,    -1,    -1,    -1,    -1,   370,    -1,    -1,   373,
2427      384,   375,    -1,   377,   388,    -1,    -1,   235,    -1,    -1,
2428       -1,    -1,    -1,   241,   242,   243,   244,   245,    -1,    -1,
2429       -1,    -1,   250,    -1,    93,    -1,    -1,    -1,    -1,   257,
2430      258,    -1,    -1,    -1,   370,    -1,   420,   373,    -1,   375,
2431       -1,   377,   426,    -1,   428,    -1,   420,    -1,    46,   433,
2432       -1,    -1,    -1,    -1,    -1,    -1,    -1,   441,    -1,   433,
2433       -1,    -1,    -1,    -1,    -1,    -1,    -1,   441,    -1,    -1,
2434       -1,    -1,    -1,    -1,    -1,   459,    -1,    -1,   156,    -1,
2435      454,    -1,   685,    -1,   420,   459,    74,    -1,    -1,    -1,
2436      537,    -1,    -1,    -1,   467,   698,    -1,   433,   472,    -1,
2437       -1,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   556,
2438       98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,   503,
2439      198,   119,    -1,   459,   112,    -1,   573,   115,    -1,   503,
2440       -1,   578,   210,    -1,    -1,   363,   472,    -1,    -1,    -1,
2441       -1,    -1,   370,   212,   372,   373,    -1,   375,    -1,   377,
2442       -1,    -1,   755,   537,    -1,   224,   225,   226,   156,    -1,
2443       -1,    -1,    -1,   241,   242,   243,   244,   503,    -1,    -1,
2444       -1,    -1,   556,    -1,    -1,    -1,    -1,    -1,    -1,   257,
2445      258,    -1,   556,    -1,    -1,   559,   560,    -1,   257,   258,
2446      574,    -1,   420,    -1,    -1,    -1,    -1,   571,   186,    -1,
2447       -1,   189,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,
2448       -1,    -1,   210,   441,    -1,    -1,    -1,    -1,    -1,    -1,
2449      556,    -1,    -1,   559,   560,    -1,   454,    -1,    -1,    -1,
2450       -1,   459,    -1,    -1,    -1,   571,    -1,   235,    -1,    -1,
2451       -1,    -1,   230,   241,   472,   243,    -1,   245,    -1,    -1,
2452       -1,    -1,   250,    -1,    -1,    -1,    -1,    -1,    -1,   257,
2453      258,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   257,
2454      258,    -1,    -1,    -1,    -1,   503,    -1,    -1,    -1,    -1,
2455       -1,    -1,    -1,   656,   657,   363,    -1,    -1,    -1,    -1,
2456       -1,    -1,   370,    -1,    -1,    -1,    -1,   375,    -1,   377,
2457       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   755,    -1,
2458       -1,   695,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
2459       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   556,    -1,
2460      399,   559,   560,    -1,    -1,    -1,   405,    -1,   407,    -1,
2461      409,   410,   411,   571,    -1,   414,    -1,   416,    -1,    -1,
2462       -1,   687,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,
2463       -1,   734,   735,   441,   737,   738,    -1,    -1,    -1,    -1,
2464       -1,   755,   370,    -1,    -1,   373,   454,   375,    -1,   377,
2465      754,   459,    -1,    -1,    -1,   454,    -1,    -1,    -1,    -1,
2466       -1,    -1,    -1,    -1,   472,   383,    -1,   385,    -1,    -1,
2467      773,    -1,   775,   472,    -1,    -1,    -1,    -1,    -1,   782,
2468      783,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   754,    -1,
2469       -1,    -1,   420,    -1,    -1,   503,    -1,    -1,    -1,    -1,
2470       -1,    -1,    -1,    -1,    -1,    -1,   809,    -1,   811,   427,
2471      813,    -1,   815,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2472       -1,   439,    -1,    -1,    -1,    -1,   454,    -1,    -1,   687,
2473       -1,   459,    -1,   836,    -1,   838,   454,    -1,     1,    -1,
2474        3,     4,     5,     6,   472,     8,     9,    -1,   556,    -1,
2475       -1,   559,   560,    -1,   472,    -1,    -1,    -1,    -1,    -1,
2476       -1,    -1,    -1,   571,    -1,    28,    -1,    -1,    -1,    -1,
2477       -1,    -1,   571,    -1,    -1,   503,    -1,    -1,    -1,    -1,
2478       -1,    -1,    -1,    -1,    -1,    -1,    -1,   586,    -1,   588,
2479      589,   590,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,
2480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,
2481       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2482       -1,    -1,   540,    -1,    -1,    -1,    -1,    -1,   556,    -1,
2483       -1,   559,   560,    -1,    -1,    -1,    -1,   636,    -1,   102,
2484      103,    -1,    -1,   571,    -1,    -1,   109,    -1,    -1,    -1,
2485       -1,    -1,    -1,   571,    -1,   118,    -1,   120,   576,    -1,
2486      123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,   132,
2487      133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
2488      143,   144,    -1,    -1,    -1,    -1,    -1,   605,    -1,    -1,
2489      608,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   617,
2490      618,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,
2491       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,    -1,
2492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   647,
2493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2494       -1,    -1,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,
2495       -1,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,   687,
2496       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2498       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2499       -1,    -1,    -1,    -1,    -1,    -1,    -1,   715,    -1,    -1,
2500       -1,   719,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2502        1,    -1,     3,     4,     5,     6,   754,     8,     9,    -1,
2503       -1,    -1,    -1,    -1,   752,    -1,   754,    -1,    -1,    -1,
2504       -1,    -1,    -1,    -1,    -1,   763,    -1,    28,    29,    30,
2505       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2506       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2507       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2508       61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2509       71,    72,    73,    74,    75,    -1,    77,    -1,    79,    -1,
2510       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2511       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2512       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,
2513      111,   112,   113,    -1,    -1,    -1,   117,   118,    -1,   120,
2514       -1,    -1,   123,    -1,   125,   126,    -1,    -1,    -1,    -1,
2515      131,   132,   133,   134,    -1,    -1,    -1,    -1,    -1,    -1,
2516       -1,   142,   143,   144,     1,    -1,     3,     4,     5,     6,
2517       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2519       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2520       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2521       47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
2522       57,    58,    59,    60,    61,    62,    -1,    -1,    -1,    66,
2523       -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,
2524       77,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2525       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2526       -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,
2527       -1,    -1,   109,   110,   111,   112,   113,    -1,    -1,    -1,
2528      117,   118,    -1,   120,    -1,    -1,   123,    -1,   125,   126,
2529       -1,    -1,    -1,    -1,   131,   132,   133,   134,    -1,    -1,
2530       -1,    -1,    -1,    -1,    -1,   142,   143,   144,     1,    -1,
2531        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2532       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2533       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2534       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2535       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
2536       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2537       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
2538       73,    74,    75,    -1,    77,    -1,    79,    -1,    -1,    82,
2539       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2540       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
2541      103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,
2542      113,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,    -1,
2543      123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,   132,
2544      133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
2545      143,   144,     1,    -1,     3,     4,     5,     6,    -1,     8,
2546        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2548       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2549       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2550       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2551       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2552       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,
2553       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2554       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2555       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2556      109,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2557       -1,   120,    -1,    -1,   123,    -1,   125,   126,    -1,    -1,
2558       -1,    -1,   131,   132,   133,   134,    -1,    -1,    -1,    -1,
2559       -1,    -1,    -1,   142,   143,   144,     1,    -1,     3,     4,
2560        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2562       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2563       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2564       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2565       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2566       -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,
2567       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
2568       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2569       -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,
2570       -1,    -1,    -1,    -1,   109,   110,   111,   112,   113,    -1,
2571       -1,    -1,   117,   118,    -1,   120,    -1,    -1,   123,    -1,
2572      125,   126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,
2573       -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,   143,   144,
2574        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2576       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
2577       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2578       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2580       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2581       71,    72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,
2582       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2584       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,
2585      111,   112,   113,    -1,    -1,    -1,   117,   118,    -1,   120,
2586       -1,    -1,   123,    -1,   125,   126,    -1,    -1,    -1,    -1,
2587      131,   132,   133,   134,    -1,    -1,    -1,    -1,    -1,    -1,
2588       -1,   142,   143,   144,     1,    -1,     3,     4,     5,     6,
2589       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2591       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2592       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2593       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2594       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2595       -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,
2596       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2597       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2598       -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,
2599       -1,    -1,   109,   110,   111,   112,   113,    -1,    -1,    -1,
2600      117,   118,    -1,   120,    -1,    -1,   123,    -1,   125,   126,
2601       -1,    -1,    -1,    -1,   131,   132,   133,   134,    -1,    -1,
2602       -1,    -1,    -1,    -1,    -1,   142,   143,   144,     1,    -1,
2603        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2604       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2605       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2606       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2607       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2608       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2609       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
2610       73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
2611       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2612       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
2613      103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,
2614      113,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,    -1,
2615      123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,   132,
2616      133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
2617      143,   144,     1,    -1,     3,     4,     5,     6,    -1,     8,
2618        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2619       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2620       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2621       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2622       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2624       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,
2625       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2626       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2627       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2628      109,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2629       -1,   120,    -1,    -1,   123,    -1,   125,   126,    -1,    -1,
2630       -1,    -1,   131,   132,   133,   134,     1,    -1,     3,     4,
2631        5,    -1,    -1,   142,   143,   144,    -1,    -1,    -1,    -1,
2632       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2633       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2634       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2635       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2636       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2637       -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,
2638       75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,
2639       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2640       -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,
2641       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,
2642       -1,    -1,   117,   118,    -1,   120,    -1,    -1,   123,    -1,
2643      125,   126,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2644       -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,   144,
2645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2646       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2647       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2648       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2649       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2650       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2651       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2653       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2654       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2655       -1,   120,    -1,    -1,   123,    -1,   125,   126,     1,    -1,
2656        3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2657       -1,    -1,    -1,   142,    -1,   144,    -1,    -1,    -1,    -1,
2658       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2659       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2660       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2662       -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,
2663       -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,
2664       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2665       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
2666      103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
2667      113,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,    -1,
2668      123,    -1,   125,   126,     1,    -1,     3,     4,     5,    -1,
2669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
2670       -1,   144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2671       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2672       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2673       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2674       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2675       -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,
2676       -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2677       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2678       -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,
2679       -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,
2680      117,   118,    -1,   120,    -1,    -1,   123,    -1,   125,   126,
2681        1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,
2682       -1,    -1,    -1,    -1,    -1,   142,    -1,   144,    -1,    -1,
2683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
2684       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2685       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2686       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2687       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,
2688       71,    72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,
2689       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2691       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2692      111,   112,   113,    -1,    -1,    -1,   117,   118,    -1,   120,
2693       -1,    -1,   123,    -1,   125,   126,     1,    -1,     3,     4,
2694        5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2695       -1,   142,    -1,   144,    -1,    -1,    -1,    -1,    -1,    -1,
2696       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2697       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2698       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2700       -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,
2701       75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,
2702       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2703       -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,
2704       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,
2705       -1,    -1,   117,   118,    -1,   120,    -1,    -1,   123,    -1,
2706      125,   126,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2707       -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,   144,
2708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2709       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2710       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2711       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2712       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2713       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2714       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2716       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2717       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2718       -1,   120,    -1,    -1,   123,    -1,   125,   126,     1,    -1,
2719        3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2720       -1,    -1,    -1,   142,    -1,   144,    -1,    -1,    -1,    -1,
2721       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2722       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2723       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2724       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2725       -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,
2726       -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,
2727       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2728       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
2729      103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
2730      113,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,    -1,
2731      123,    -1,   125,   126,     1,    -1,     3,     4,     5,    -1,
2732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
2733       -1,   144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2734       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2735       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2736       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2738       -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,
2739       -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2740       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2741       -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,
2742       -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,
2743      117,   118,    -1,   120,    -1,    -1,   123,    -1,   125,   126,
2744        1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,
2745       -1,    -1,    -1,    -1,    -1,   142,    -1,   144,    -1,    -1,
2746       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
2747       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2748       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2749       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2750       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,
2751       71,    72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,
2752       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2753       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2754       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2755      111,   112,   113,    -1,    -1,    -1,   117,   118,    -1,   120,
2756       -1,    -1,   123,    -1,   125,   126,     1,    -1,     3,     4,
2757        5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2758       -1,   142,    -1,   144,    -1,    -1,    -1,    -1,    -1,    -1,
2759       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2760       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2761       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2763       -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,
2764       75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,
2765       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2766       -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,
2767       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,
2768       -1,    -1,   117,   118,    -1,   120,    -1,    -1,   123,    -1,
2769      125,   126,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2770       -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,   144,
2771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2772       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2773       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2774       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2776       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2777       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2780       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2781       -1,   120,    -1,    -1,   123,    -1,   125,   126,     1,    -1,
2782        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2783       -1,    -1,    -1,   142,    -1,   144,    -1,    -1,    -1,    -1,
2784       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2785       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2786       43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
2787       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2788       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
2789       73,    74,    75,    -1,    77,    -1,    79,    -1,    -1,    82,
2790       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2791       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
2792      103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,
2793      113,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,    -1,
2794      123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,   132,
2795      133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
2796      143,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
2799       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
2800        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2801       -1,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2802       60,    61,    62,    28,    -1,    -1,    -1,    -1,    -1,    -1,
2803       -1,    71,    72,    73,    -1,    -1,    -1,    -1,     1,    -1,
2804        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2806       -1,    -1,   102,   103,    -1,    28,    71,    72,    73,   109,
2807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
2808      120,    -1,    -1,   123,    -1,   125,   126,    -1,    -1,    -1,
2809       -1,   131,   132,   133,   134,    -1,    -1,   102,   103,    -1,
2810       -1,    -1,   142,   143,   109,    -1,    -1,    -1,    71,    72,
2811       73,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,   124,
2812      125,   126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,
2813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,   102,
2814      103,    -1,    -1,    -1,    -1,     1,   109,     3,     4,     5,
2815        6,    -1,     8,     9,    -1,   118,    -1,   120,    -1,    -1,
2816      123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,   132,
2817      133,   134,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2818      143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2819       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2821       -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
2822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2823       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2824       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2825       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
2826       -1,    -1,   118,    -1,   120,    -1,    -1,   123,    -1,   125,
2827      126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,     1,
2828       -1,     3,     4,     5,    -1,    -1,    -1,   143,    -1,    -1,
2829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2830       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2831       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2832       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2833       -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2834        6,    -1,     8,     9,    66,    -1,    68,    -1,    -1,    71,
2835       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2836       82,    83,    28,    85,    -1,    87,    -1,    -1,    -1,    -1,
2837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2838      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2839      112,   113,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,
2840       -1,   123,    -1,   125,   126,    71,    72,    73,     1,    -1,
2841        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2842      142,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2843       -1,    -1,    -1,    -1,    -1,    28,   102,   103,    -1,    -1,
2844       -1,    -1,     1,   109,     3,     4,     5,     6,    -1,     8,
2845        9,    -1,   118,    -1,   120,    -1,    -1,   123,   124,   125,
2846      126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,    28,
2847       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    71,    72,
2848       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2851      103,    -1,    71,    72,    73,    -1,   109,    -1,    -1,    -1,
2852       -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
2853      123,   124,   125,   126,    -1,    -1,    -1,    -1,   131,   132,
2854      133,   134,    -1,   102,   103,    -1,    -1,    -1,    -1,   142,
2855      109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
2856        3,   120,    -1,    -1,   123,    -1,   125,   126,    -1,    -1,
2857       -1,    -1,   131,   132,   133,   134,    -1,    -1,    -1,    -1,
2858       -1,    -1,    -1,   142,    -1,    28,    29,    30,    31,    32,
2859       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2860       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2862       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
2863       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,
2864       -1,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2865       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
2866       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
2867      113,    -1,    -1,    -1,   117,    -1,     3,   120,    -1,    -1,
2868      123,    -1,    -1,    -1,    -1,   128,    -1,    -1,    -1,    -1,
2869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2870      143,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2871       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2872       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2874       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
2875       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2876       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2877       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
2878       -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,
2879      117,     3,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,
2880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2881       -1,    -1,    -1,   140,    -1,   142,    28,    29,    30,    31,
2882       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2883       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2884       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2885       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2886       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2887       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2888       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2890      112,   113,    -1,    -1,    -1,   117,     3,    -1,   120,    -1,
2891       -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2893      142,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2894       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2895       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2896       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2897       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
2898       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2899       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2900       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
2901       -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,
2902      117,    -1,    -1,   120,    -1,     1,   123,     3,     4,     5,
2903        6,   128,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2904       -1,    -1,    -1,    -1,   141,    -1,    -1,    -1,    -1,    -1,
2905       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2906       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2907       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2908       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2909       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2910       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2911       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2912       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2913       -1,    -1,    -1,   109,   110,   111,   112,   113,    -1,    -1,
2914       -1,   117,   118,    -1,   120,    -1,    -1,   123,    -1,   125,
2915      126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,     1,
2916       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2918       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
2919       -1,    -1,    34,    35,    36,    37,    38,    39,    40,    41,
2920       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2922       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2923       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2924       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2926      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2927      112,   113,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
2928       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,   131,
2929      132,   133,   134,     1,    -1,     3,     4,     5,     6,    -1,
2930        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2931       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2932       28,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
2933       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2934       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2935       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2936       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2937       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2938        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2939       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2940       -1,   109,   110,   111,   112,   113,    -1,    28,    -1,    -1,
2941      118,    -1,   120,    -1,    -1,   123,   124,   125,   126,    -1,
2942       -1,    -1,    -1,   131,   132,   133,   134,    -1,    -1,    -1,
2943       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
2944        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2945       71,    72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,
2946       -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,     1,
2947       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2948       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,
2949      111,    -1,    -1,    -1,    -1,    -1,    28,   118,    -1,   120,
2950       -1,    -1,   123,   124,   125,   126,    71,    72,    73,    -1,
2951      131,   132,   133,   134,    -1,    -1,    -1,    -1,    -1,    -1,
2952       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2953       -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    71,
2954       72,    73,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
2955       -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,    -1,
2956      125,   126,    -1,    -1,   129,    -1,   131,   132,   133,   134,
2957      102,   103,    -1,    -1,    -1,    -1,     1,   109,     3,     4,
2958        5,     6,    -1,     8,     9,    -1,   118,    -1,   120,    -1,
2959       -1,   123,    -1,   125,   126,    -1,    -1,   129,    -1,   131,
2960      132,   133,   134,    28,    -1,    -1,    -1,    -1,    -1,     1,
2961       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2962       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2963       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
2964       -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
2965       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2966       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2967       -1,    -1,    -1,    -1,    -1,    -1,    28,   102,   103,    71,
2968       72,    73,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
2969       -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,    -1,
2970      125,   126,    -1,    -1,   129,    -1,   131,   132,   133,   134,
2971      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    71,
2972       72,    73,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
2973       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,   131,
2974      132,   133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2975      102,   103,    -1,    -1,    -1,    -1,     1,   109,     3,     4,
2976        5,     6,    -1,     8,     9,    -1,   118,    -1,   120,    -1,
2977       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,   131,
2978      132,   133,   134,    28,    -1,    -1,    -1,    -1,    -1,     1,
2979       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2980       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2981       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
2982       -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,     1,
2983       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2984       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2985       -1,    -1,    -1,    -1,    -1,    -1,    28,   102,   103,    71,
2986       72,    73,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
2987       -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,   124,
2988      125,   126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,
2989      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    71,
2990       72,    73,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
2991       -1,   123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,
2992      132,   133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2993      102,   103,    -1,    -1,    -1,    -1,     1,   109,     3,     4,
2994        5,     6,    -1,     8,     9,    -1,   118,    -1,   120,    -1,
2995       -1,   123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,
2996      132,   133,   134,    28,    -1,    -1,    -1,    -1,    -1,     1,
2997       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2999       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
3000       -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
3001       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3002       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3003       -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    71,
3004       72,    73,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
3005       -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,    -1,
3006      125,   126,    -1,    -1,    -1,    -1,   131,   132,   133,   134,
3007      102,   103,    -1,    -1,    -1,    -1,    -1,   109,     3,    -1,
3008       -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
3009       -1,   123,    -1,   125,   126,    -1,    -1,    -1,    -1,   131,
3010      132,   133,   134,    28,    29,    30,    31,    32,    33,    34,
3011       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3012       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
3013       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3014       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
3015       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
3016       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3017       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
3018       -1,    -1,     3,    -1,    -1,   110,   111,   112,   113,    -1,
3019       -1,    -1,   117,    -1,    -1,   120,    -1,    -1,   123,    -1,
3020       -1,    -1,    -1,   128,    -1,    -1,   131,    28,    29,    30,
3021       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3022       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3023       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3024       -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
3025       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
3026       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
3027       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
3028       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,   110,
3029      111,   112,   113,    -1,    -1,    -1,   117,    -1,    -1,   120,
3030       -1,    -1,   123,   124,    -1,    -1,    -1,   128,    28,    29,
3031       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3032       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3033       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3034       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
3035       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3036       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3037       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3038      100,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3039      110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,    -1,
3040      120,    -1,    -1,   123,   124,    -1,    -1,    -1,   128,    28,
3041       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3042       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3043       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3044       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3045       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3046       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3047       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3048       -1,   100,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
3049       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3050       -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,   128,
3051       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3052       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3053       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3054       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
3055       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3056       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3057       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3058       -1,    -1,   100,    -1,    -1,    -1,     3,    -1,    -1,    -1,
3059       -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,
3060       -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
3061      128,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3062       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3063       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
3064       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
3065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
3066       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
3067       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3068       -1,    -1,    -1,   100,    -1,    -1,    -1,     3,    -1,    -1,
3069       -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,
3070      117,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,
3071       -1,   128,    28,    29,    30,    31,    32,    33,    34,    35,
3072       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3073       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
3074       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3075       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
3076       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
3077       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3078       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,     3,    -1,
3079       -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,
3080       -1,   117,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
3081       -1,    -1,   128,    28,    29,    30,    31,    32,    33,    34,
3082       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3083       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
3084       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3085       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
3086       75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
3087       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3088       -1,    -1,    -1,    -1,     3,   100,    -1,    -1,    -1,    -1,
3089       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,
3090       -1,    -1,   117,    -1,    -1,   120,    -1,    -1,   123,    28,
3091       -1,    -1,    -1,   128,    -1,    34,    35,    36,    37,    38,
3092       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3093       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3094       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3095       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3096       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3098       -1,   100,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
3099       -1,   110,   111,   112,   113,    -1,    -1,    -1,    -1,    -1,
3100       -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,   128,
3101       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3102       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3103       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3104       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3105       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3106       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3107       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3108       -1,    -1,   100,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3109       -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,
3110       -1,    -1,   120,    -1,    -1,   123,   124,    -1,    28,    29,
3111       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3112       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3113       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3114       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
3115       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3116       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3117       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3118      100,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3119      110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,    -1,
3120       -1,    -1,    -1,    -1,   124,    -1,    28,    29,    30,    31,
3121       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3122       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
3123       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3124       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,
3125       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
3126       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
3127       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,     3,
3128       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
3129      112,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,
3130       -1,    -1,   124,    -1,    28,    29,    30,    31,    32,    33,
3131       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3132       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3133       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3134       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3135       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
3136       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
3137       -1,    -1,    -1,    -1,    -1,    -1,   100,     3,    -1,    -1,
3138       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3139       -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,
3140      124,    -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,    -1,    -1,    -1,    -1,    -1,
3143       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3144       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
3145       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
3146       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3147       -1,    -1,    -1,     3,   100,    -1,    -1,    -1,    -1,    -1,
3148       -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,
3149       -1,   117,    -1,    -1,   120,    -1,    -1,   123,    28,    29,
3150       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3151       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3152       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3153       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3154       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3155       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3156       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
3157      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3158      110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,    -1,
3159       -1,    -1,    -1,   123,    28,    29,    30,    31,    32,    33,
3160       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3161       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
3162       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3163       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3164       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
3165       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,     3,
3166       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
3167       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3168       -1,    -1,    -1,   117,    28,    29,    30,    31,    32,    33,
3169       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3170       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3171       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3172       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3173       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
3174       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,     3,
3175       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
3176       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3177       -1,    -1,    -1,   117,    28,    29,    30,    31,    32,    33,
3178       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3179       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3181       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3182       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
3183       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,     3,
3184       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
3185       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3186       -1,    -1,    -1,   117,    28,    29,    30,    31,    32,    33,
3187       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3188       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3189       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3190       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3191       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
3192       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,     3,
3193       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
3194       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3195       -1,    -1,    -1,   117,    28,    29,    30,    31,    32,    33,
3196       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3197       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3198       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3199       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3200       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
3201       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
3202       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
3203       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3204       -1,    -1,    -1,   117
3205 };
3206
3207 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3208    symbol of state STATE-NUM.  */
3209 static const yytype_uint16 yystos[] =
3210 {
3211        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
3212       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3213       46,    47,    48,    49,    50,    65,    66,    74,    75,    79,
3214       82,    83,    85,    87,   100,   110,   111,   112,   113,   117,
3215      146,   147,   148,   149,   150,   155,   185,   186,   191,   192,
3216      193,   197,   198,   199,   200,   202,   203,   209,   217,   218,
3217      236,   267,   143,   150,   155,   123,   123,   121,     1,   120,
3218      121,   155,   120,   123,   128,   131,   146,   155,   191,   192,
3219      199,   200,   202,   218,   221,   223,   225,   226,   228,   229,
3220      230,   233,   123,   143,   149,   150,   155,   192,   140,     0,
3221      155,   219,   220,   143,   143,     1,     4,     5,     6,     8,
3222        9,    71,    72,    73,   102,   103,   109,   118,   120,   123,
3223      125,   126,   131,   132,   133,   134,   148,   155,   156,   157,
3224      158,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3225      170,   171,   172,   173,   174,   175,   176,   177,   254,   257,
3226      148,   155,   148,   155,   162,   167,   185,   204,   205,   206,
3227      207,   208,   199,   232,   233,   124,   155,   223,   225,   234,
3228      235,   236,   129,   148,   176,   180,   123,   155,   192,   225,
3229      233,   221,   226,   229,   233,   123,   128,   192,   123,   128,
3230      124,   155,   234,   237,   192,   221,   230,   123,    68,    78,
3231      123,   125,   142,   144,   151,   152,   153,   154,   155,   158,
3232      185,   192,   210,   211,   212,   213,   214,   226,   227,   229,
3233      233,   256,   257,   259,   143,   143,   143,   150,   155,   180,
3234      141,   130,   144,   219,   219,   123,   162,   123,   162,   162,
3235      155,   185,   180,   185,   180,   123,   162,   124,   177,   179,
3236      182,   199,   200,   202,   218,   238,   254,   143,   143,     7,
3237        8,     9,   123,   127,   128,   155,    18,    19,    20,    21,
3238       22,    23,    24,    25,    26,    27,   141,   178,   164,   120,
3239      135,   136,   132,   133,    10,    11,   167,    12,    13,   121,
3240      122,    14,    15,   131,   137,   138,    16,    17,   139,   124,
3241      124,   124,   141,   123,   192,   223,   233,   141,    11,   122,
3242      130,   199,   233,   124,   124,   124,   130,   129,   129,   233,
3243      221,   230,   124,   234,   129,   148,   180,   129,   148,   180,
3244      124,   124,   130,     3,    28,    44,    74,    75,   124,   194,
3245      195,   196,    34,    35,    36,    37,    38,    39,    40,    41,
3246       42,    43,    46,    47,    50,    66,    85,    87,   100,   112,
3247      113,   150,   155,   187,   191,   199,   201,   203,   209,   217,
3248      185,   227,   120,   123,   155,   185,   143,   248,   249,   249,
3249      249,   142,   249,   141,   123,   140,   142,   155,   192,   215,
3250      216,   226,   227,   231,   233,   229,   233,   144,   214,   130,
3251      142,   192,   229,   142,   142,   210,   144,   210,   144,   210,
3252      143,   143,   180,   220,   142,   144,   142,   144,   146,   155,
3253      183,   199,   200,   202,   218,   239,   123,   128,   192,   222,
3254      224,   233,   155,   188,   191,   199,   201,   202,   218,   128,
3255      224,   188,   239,   124,   130,   155,   199,   200,   202,   218,
3256      223,   124,   127,   142,   143,   144,   158,   159,   176,   184,
3257      191,   199,   200,   202,   218,   241,   258,   260,   261,   262,
3258      263,   264,   265,   266,   144,   266,   155,   124,   159,   160,
3259      177,   155,   179,   159,   177,   164,   164,   164,   165,   165,
3260      166,   166,   167,   167,   167,   169,   169,   170,   171,   172,
3261      173,   174,   179,   185,   205,   206,   233,   205,   206,   207,
3262       51,   236,   124,   129,   129,   129,   129,   155,   124,   123,
3263      124,   130,   195,   150,   155,   123,   123,   121,   143,   155,
3264      191,   199,   201,   223,   155,   192,   227,   192,   123,   144,
3265       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3266       62,    77,   142,   155,   179,   181,   184,   243,   244,   245,
3267      246,   247,   249,   250,   251,   252,   253,   255,   241,   124,
3268      180,   143,   226,   233,   130,   142,   140,   197,   192,   226,
3269      229,   211,   229,   144,   144,   144,   210,   144,   210,   210,
3270      210,   146,   199,   200,   202,   218,   223,   124,   124,   224,
3271      234,   180,   222,   233,   123,   128,   222,   121,   128,   155,
3272      191,   199,   201,   202,   218,   224,   180,   128,   128,   224,
3273      124,   177,   164,   254,   144,   266,   141,   155,   191,   199,
3274      200,   202,   218,   227,   231,   249,   130,   142,   142,   261,
3275      263,   264,   144,   144,   124,   130,   129,   140,   223,   179,
3276      124,   195,   177,   148,   155,   208,    69,    70,   144,   121,
3277      143,   143,   155,   150,   155,   124,   180,   140,   123,   123,
3278      123,   243,   123,   155,   142,   142,   142,   179,   155,   140,
3279      142,   142,   155,   189,   190,   225,   181,   246,   181,   243,
3280      144,   142,   144,   266,   226,   192,   216,   226,   233,   180,
3281      226,   144,   144,   144,   144,   124,   124,   129,   222,   124,
3282      234,   180,   208,   180,   121,   128,   129,   180,   180,   128,
3283      144,   241,   262,   159,   177,   176,   124,   124,   124,   124,
3284      122,   249,   249,   208,    69,    70,   144,    69,    70,   144,
3285      143,   140,   243,   179,   179,   124,   179,    56,   124,   250,
3286      142,   142,   141,   243,   143,   130,   142,   141,   144,   226,
3287      233,   192,   226,   140,   124,   129,   122,   129,   208,   180,
3288      129,   129,   180,    70,   144,    69,   144,   122,   249,   249,
3289      249,   249,    69,    70,   144,   243,   124,   124,   243,   124,
3290      123,   243,   124,   250,   180,   144,   266,   190,   143,   177,
3291      240,   226,   226,   180,   122,   129,   129,   249,   249,    70,
3292      144,    69,   144,    70,   144,    69,   144,   249,   249,   243,
3293      243,   243,   179,   243,   124,   179,   142,   144,   240,   242,
3294      144,   144,   249,   249,   249,   249,    70,   144,    69,   144,
3295       64,   124,   243,   124,   130,   144,   144,   144,   144,   144,
3296      249,   249,   243,   142,   243,   144,   240,   144,   144
3297 };
3298
3299 #define yyerrok         (yyerrstatus = 0)
3300 #define yyclearin       (yychar = YYEMPTY)
3301 #define YYEMPTY         (-2)
3302 #define YYEOF           0
3303
3304 #define YYACCEPT        goto yyacceptlab
3305 #define YYABORT         goto yyabortlab
3306 #define YYERROR         goto yyerrorlab
3307
3308
3309 /* Like YYERROR except do call yyerror.  This remains here temporarily
3310    to ease the transition to the new meaning of YYERROR, for GCC.
3311    Once GCC version 2 has supplanted version 1, this can go.  However,
3312    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
3313    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
3314    discussed.  */
3315
3316 #define YYFAIL          goto yyerrlab
3317 #if defined YYFAIL
3318   /* This is here to suppress warnings from the GCC cpp's
3319      -Wunused-macros.  Normally we don't worry about that warning, but
3320      some users do, and we want to make it easy for users to remove
3321      YYFAIL uses, which will produce warnings from Bison 2.5.  */
3322 #endif
3323
3324 #define YYRECOVERING()  (!!yyerrstatus)
3325
3326 #define YYBACKUP(Token, Value)                                  \
3327 do                                                              \
3328   if (yychar == YYEMPTY && yylen == 1)                          \
3329     {                                                           \
3330       yychar = (Token);                                         \
3331       yylval = (Value);                                         \
3332       yytoken = YYTRANSLATE (yychar);                           \
3333       YYPOPSTACK (1);                                           \
3334       goto yybackup;                                            \
3335     }                                                           \
3336   else                                                          \
3337     {                                                           \
3338       yyerror (YY_("syntax error: cannot back up")); \
3339       YYERROR;                                                  \
3340     }                                                           \
3341 while (YYID (0))
3342
3343
3344 #define YYTERROR        1
3345 #define YYERRCODE       256
3346
3347
3348 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3349    If N is 0, then set CURRENT to the empty location which ends
3350    the previous symbol: RHS[0] (always defined).  */
3351
3352 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3353 #ifndef YYLLOC_DEFAULT
3354 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
3355     do                                                                  \
3356       if (YYID (N))                                                    \
3357         {                                                               \
3358           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
3359           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
3360           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
3361           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
3362         }                                                               \
3363       else                                                              \
3364         {                                                               \
3365           (Current).first_line   = (Current).last_line   =              \
3366             YYRHSLOC (Rhs, 0).last_line;                                \
3367           (Current).first_column = (Current).last_column =              \
3368             YYRHSLOC (Rhs, 0).last_column;                              \
3369         }                                                               \
3370     while (YYID (0))
3371 #endif
3372
3373
3374 /* YY_LOCATION_PRINT -- Print the location on the stream.
3375    This macro was not mandated originally: define only if we know
3376    we won't break user code: when these are the locations we know.  */
3377
3378 #ifndef YY_LOCATION_PRINT
3379 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3380 #  define YY_LOCATION_PRINT(File, Loc)                  \
3381      fprintf (File, "%d.%d-%d.%d",                      \
3382               (Loc).first_line, (Loc).first_column,     \
3383               (Loc).last_line,  (Loc).last_column)
3384 # else
3385 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3386 # endif
3387 #endif
3388
3389
3390 /* YYLEX -- calling `yylex' with the right arguments.  */
3391
3392 #ifdef YYLEX_PARAM
3393 # define YYLEX yylex (YYLEX_PARAM)
3394 #else
3395 # define YYLEX yylex ()
3396 #endif
3397
3398 /* Enable debugging if requested.  */
3399 #if YYDEBUG
3400
3401 # ifndef YYFPRINTF
3402 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3403 #  define YYFPRINTF fprintf
3404 # endif
3405
3406 # define YYDPRINTF(Args)                        \
3407 do {                                            \
3408   if (yydebug)                                  \
3409     YYFPRINTF Args;                             \
3410 } while (YYID (0))
3411
3412 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3413 do {                                                                      \
3414   if (yydebug)                                                            \
3415     {                                                                     \
3416       YYFPRINTF (stderr, "%s ", Title);                                   \
3417       yy_symbol_print (stderr,                                            \
3418                   Type, Value, Location); \
3419       YYFPRINTF (stderr, "\n");                                           \
3420     }                                                                     \
3421 } while (YYID (0))
3422
3423
3424 /*--------------------------------.
3425 | Print this symbol on YYOUTPUT.  |
3426 `--------------------------------*/
3427
3428 /*ARGSUSED*/
3429 #if (defined __STDC__ || defined __C99__FUNC__ \
3430      || defined __cplusplus || defined _MSC_VER)
3431 static void
3432 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3433 #else
3434 static void
3435 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
3436     FILE *yyoutput;
3437     int yytype;
3438     YYSTYPE const * const yyvaluep;
3439     YYLTYPE const * const yylocationp;
3440 #endif
3441 {
3442   if (!yyvaluep)
3443     return;
3444   YYUSE (yylocationp);
3445 # ifdef YYPRINT
3446   if (yytype < YYNTOKENS)
3447     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3448 # else
3449   YYUSE (yyoutput);
3450 # endif
3451   switch (yytype)
3452     {
3453       default:
3454         break;
3455     }
3456 }
3457
3458
3459 /*--------------------------------.
3460 | Print this symbol on YYOUTPUT.  |
3461 `--------------------------------*/
3462
3463 #if (defined __STDC__ || defined __C99__FUNC__ \
3464      || defined __cplusplus || defined _MSC_VER)
3465 static void
3466 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3467 #else
3468 static void
3469 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
3470     FILE *yyoutput;
3471     int yytype;
3472     YYSTYPE const * const yyvaluep;
3473     YYLTYPE const * const yylocationp;
3474 #endif
3475 {
3476   if (yytype < YYNTOKENS)
3477     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3478   else
3479     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3480
3481   YY_LOCATION_PRINT (yyoutput, *yylocationp);
3482   YYFPRINTF (yyoutput, ": ");
3483   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
3484   YYFPRINTF (yyoutput, ")");
3485 }
3486
3487 /*------------------------------------------------------------------.
3488 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3489 | TOP (included).                                                   |
3490 `------------------------------------------------------------------*/
3491
3492 #if (defined __STDC__ || defined __C99__FUNC__ \
3493      || defined __cplusplus || defined _MSC_VER)
3494 static void
3495 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3496 #else
3497 static void
3498 yy_stack_print (yybottom, yytop)
3499     yytype_int16 *yybottom;
3500     yytype_int16 *yytop;
3501 #endif
3502 {
3503   YYFPRINTF (stderr, "Stack now");
3504   for (; yybottom <= yytop; yybottom++)
3505     {
3506       int yybot = *yybottom;
3507       YYFPRINTF (stderr, " %d", yybot);
3508     }
3509   YYFPRINTF (stderr, "\n");
3510 }
3511
3512 # define YY_STACK_PRINT(Bottom, Top)                            \
3513 do {                                                            \
3514   if (yydebug)                                                  \
3515     yy_stack_print ((Bottom), (Top));                           \
3516 } while (YYID (0))
3517
3518
3519 /*------------------------------------------------.
3520 | Report that the YYRULE is going to be reduced.  |
3521 `------------------------------------------------*/
3522
3523 #if (defined __STDC__ || defined __C99__FUNC__ \
3524      || defined __cplusplus || defined _MSC_VER)
3525 static void
3526 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3527 #else
3528 static void
3529 yy_reduce_print (yyvsp, yylsp, yyrule)
3530     YYSTYPE *yyvsp;
3531     YYLTYPE *yylsp;
3532     int yyrule;
3533 #endif
3534 {
3535   int yynrhs = yyr2[yyrule];
3536   int yyi;
3537   unsigned long int yylno = yyrline[yyrule];
3538   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3539              yyrule - 1, yylno);
3540   /* The symbols being reduced.  */
3541   for (yyi = 0; yyi < yynrhs; yyi++)
3542     {
3543       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3544       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3545                        &(yyvsp[(yyi + 1) - (yynrhs)])
3546                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3547       YYFPRINTF (stderr, "\n");
3548     }
3549 }
3550
3551 # define YY_REDUCE_PRINT(Rule)          \
3552 do {                                    \
3553   if (yydebug)                          \
3554     yy_reduce_print (yyvsp, yylsp, Rule); \
3555 } while (YYID (0))
3556
3557 /* Nonzero means print parse trace.  It is left uninitialized so that
3558    multiple parsers can coexist.  */
3559 int yydebug;
3560 #else /* !YYDEBUG */
3561 # define YYDPRINTF(Args)
3562 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3563 # define YY_STACK_PRINT(Bottom, Top)
3564 # define YY_REDUCE_PRINT(Rule)
3565 #endif /* !YYDEBUG */
3566
3567
3568 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3569 #ifndef YYINITDEPTH
3570 # define YYINITDEPTH 200
3571 #endif
3572
3573 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3574    if the built-in stack extension method is used).
3575
3576    Do not make this value too large; the results are undefined if
3577    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3578    evaluated with infinite-precision integer arithmetic.  */
3579
3580 #ifndef YYMAXDEPTH
3581 # define YYMAXDEPTH 10000
3582 #endif
3583
3584 \f
3585
3586 #if YYERROR_VERBOSE
3587
3588 # ifndef yystrlen
3589 #  if defined __GLIBC__ && defined _STRING_H
3590 #   define yystrlen strlen
3591 #  else
3592 /* Return the length of YYSTR.  */
3593 #if (defined __STDC__ || defined __C99__FUNC__ \
3594      || defined __cplusplus || defined _MSC_VER)
3595 static YYSIZE_T
3596 yystrlen (const char *yystr)
3597 #else
3598 static YYSIZE_T
3599 yystrlen (yystr)
3600     const char *yystr;
3601 #endif
3602 {
3603   YYSIZE_T yylen;
3604   for (yylen = 0; yystr[yylen]; yylen++)
3605     continue;
3606   return yylen;
3607 }
3608 #  endif
3609 # endif
3610
3611 # ifndef yystpcpy
3612 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3613 #   define yystpcpy stpcpy
3614 #  else
3615 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3616    YYDEST.  */
3617 #if (defined __STDC__ || defined __C99__FUNC__ \
3618      || defined __cplusplus || defined _MSC_VER)
3619 static char *
3620 yystpcpy (char *yydest, const char *yysrc)
3621 #else
3622 static char *
3623 yystpcpy (yydest, yysrc)
3624     char *yydest;
3625     const char *yysrc;
3626 #endif
3627 {
3628   char *yyd = yydest;
3629   const char *yys = yysrc;
3630
3631   while ((*yyd++ = *yys++) != '\0')
3632     continue;
3633
3634   return yyd - 1;
3635 }
3636 #  endif
3637 # endif
3638
3639 # ifndef yytnamerr
3640 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3641    quotes and backslashes, so that it's suitable for yyerror.  The
3642    heuristic is that double-quoting is unnecessary unless the string
3643    contains an apostrophe, a comma, or backslash (other than
3644    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3645    null, do not copy; instead, return the length of what the result
3646    would have been.  */
3647 static YYSIZE_T
3648 yytnamerr (char *yyres, const char *yystr)
3649 {
3650   if (*yystr == '"')
3651     {
3652       YYSIZE_T yyn = 0;
3653       char const *yyp = yystr;
3654
3655       for (;;)
3656         switch (*++yyp)
3657           {
3658           case '\'':
3659           case ',':
3660             goto do_not_strip_quotes;
3661
3662           case '\\':
3663             if (*++yyp != '\\')
3664               goto do_not_strip_quotes;
3665             /* Fall through.  */
3666           default:
3667             if (yyres)
3668               yyres[yyn] = *yyp;
3669             yyn++;
3670             break;
3671
3672           case '"':
3673             if (yyres)
3674               yyres[yyn] = '\0';
3675             return yyn;
3676           }
3677     do_not_strip_quotes: ;
3678     }
3679
3680   if (! yyres)
3681     return yystrlen (yystr);
3682
3683   return yystpcpy (yyres, yystr) - yyres;
3684 }
3685 # endif
3686
3687 /* Copy into YYRESULT an error message about the unexpected token
3688    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3689    including the terminating null byte.  If YYRESULT is null, do not
3690    copy anything; just return the number of bytes that would be
3691    copied.  As a special case, return 0 if an ordinary "syntax error"
3692    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3693    size calculation.  */
3694 static YYSIZE_T
3695 yysyntax_error (char *yyresult, int yystate, int yychar)
3696 {
3697   int yyn = yypact[yystate];
3698
3699   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3700     return 0;
3701   else
3702     {
3703       int yytype = YYTRANSLATE (yychar);
3704       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3705       YYSIZE_T yysize = yysize0;
3706       YYSIZE_T yysize1;
3707       int yysize_overflow = 0;
3708       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3709       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3710       int yyx;
3711
3712 # if 0
3713       /* This is so xgettext sees the translatable formats that are
3714          constructed on the fly.  */
3715       YY_("syntax error, unexpected %s");
3716       YY_("syntax error, unexpected %s, expecting %s");
3717       YY_("syntax error, unexpected %s, expecting %s or %s");
3718       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3719       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3720 # endif
3721       char *yyfmt;
3722       char const *yyf;
3723       static char const yyunexpected[] = "syntax error, unexpected %s";
3724       static char const yyexpecting[] = ", expecting %s";
3725       static char const yyor[] = " or %s";
3726       char yyformat[sizeof yyunexpected
3727                     + sizeof yyexpecting - 1
3728                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3729                        * (sizeof yyor - 1))];
3730       char const *yyprefix = yyexpecting;
3731
3732       /* Start YYX at -YYN if negative to avoid negative indexes in
3733          YYCHECK.  */
3734       int yyxbegin = yyn < 0 ? -yyn : 0;
3735
3736       /* Stay within bounds of both yycheck and yytname.  */
3737       int yychecklim = YYLAST - yyn + 1;
3738       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3739       int yycount = 1;
3740
3741       yyarg[0] = yytname[yytype];
3742       yyfmt = yystpcpy (yyformat, yyunexpected);
3743
3744       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3745         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3746           {
3747             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3748               {
3749                 yycount = 1;
3750                 yysize = yysize0;
3751                 yyformat[sizeof yyunexpected - 1] = '\0';
3752                 break;
3753               }
3754             yyarg[yycount++] = yytname[yyx];
3755             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3756             yysize_overflow |= (yysize1 < yysize);
3757             yysize = yysize1;
3758             yyfmt = yystpcpy (yyfmt, yyprefix);
3759             yyprefix = yyor;
3760           }
3761
3762       yyf = YY_(yyformat);
3763       yysize1 = yysize + yystrlen (yyf);
3764       yysize_overflow |= (yysize1 < yysize);
3765       yysize = yysize1;
3766
3767       if (yysize_overflow)
3768         return YYSIZE_MAXIMUM;
3769
3770       if (yyresult)
3771         {
3772           /* Avoid sprintf, as that infringes on the user's name space.
3773              Don't have undefined behavior even if the translation
3774              produced a string with the wrong number of "%s"s.  */
3775           char *yyp = yyresult;
3776           int yyi = 0;
3777           while ((*yyp = *yyf) != '\0')
3778             {
3779               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3780                 {
3781                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3782                   yyf += 2;
3783                 }
3784               else
3785                 {
3786                   yyp++;
3787                   yyf++;
3788                 }
3789             }
3790         }
3791       return yysize;
3792     }
3793 }
3794 #endif /* YYERROR_VERBOSE */
3795 \f
3796
3797 /*-----------------------------------------------.
3798 | Release the memory associated to this symbol.  |
3799 `-----------------------------------------------*/
3800
3801 /*ARGSUSED*/
3802 #if (defined __STDC__ || defined __C99__FUNC__ \
3803      || defined __cplusplus || defined _MSC_VER)
3804 static void
3805 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3806 #else
3807 static void
3808 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3809     const char *yymsg;
3810     int yytype;
3811     YYSTYPE *yyvaluep;
3812     YYLTYPE *yylocationp;
3813 #endif
3814 {
3815   YYUSE (yyvaluep);
3816   YYUSE (yylocationp);
3817
3818   if (!yymsg)
3819     yymsg = "Deleting";
3820   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3821
3822   switch (yytype)
3823     {
3824       case 146: /* "guess_type" */
3825
3826 /* Line 1009 of yacc.c  */
3827 #line 176 "type.y"
3828         { FreeSpecifier((yyvaluep->specifier)); };
3829
3830 /* Line 1009 of yacc.c  */
3831 #line 3832 "type.ec"
3832         break;
3833       case 148: /* "type" */
3834
3835 /* Line 1009 of yacc.c  */
3836 #line 176 "type.y"
3837         { FreeSpecifier((yyvaluep->specifier)); };
3838
3839 /* Line 1009 of yacc.c  */
3840 #line 3841 "type.ec"
3841         break;
3842       case 149: /* "base_strict_type" */
3843
3844 /* Line 1009 of yacc.c  */
3845 #line 176 "type.y"
3846         { FreeSpecifier((yyvaluep->specifier)); };
3847
3848 /* Line 1009 of yacc.c  */
3849 #line 3850 "type.ec"
3850         break;
3851       case 150: /* "strict_type" */
3852
3853 /* Line 1009 of yacc.c  */
3854 #line 176 "type.y"
3855         { FreeSpecifier((yyvaluep->specifier)); };
3856
3857 /* Line 1009 of yacc.c  */
3858 #line 3859 "type.ec"
3859         break;
3860       case 151: /* "class_function_definition_start" */
3861
3862 /* Line 1009 of yacc.c  */
3863 #line 197 "type.y"
3864         { FreeClassFunction((yyvaluep->classFunction)); };
3865
3866 /* Line 1009 of yacc.c  */
3867 #line 3868 "type.ec"
3868         break;
3869       case 152: /* "constructor_function_definition_start" */
3870
3871 /* Line 1009 of yacc.c  */
3872 #line 197 "type.y"
3873         { FreeClassFunction((yyvaluep->classFunction)); };
3874
3875 /* Line 1009 of yacc.c  */
3876 #line 3877 "type.ec"
3877         break;
3878       case 153: /* "destructor_function_definition_start" */
3879
3880 /* Line 1009 of yacc.c  */
3881 #line 197 "type.y"
3882         { FreeClassFunction((yyvaluep->classFunction)); };
3883
3884 /* Line 1009 of yacc.c  */
3885 #line 3886 "type.ec"
3886         break;
3887       case 154: /* "virtual_class_function_definition_start" */
3888
3889 /* Line 1009 of yacc.c  */
3890 #line 197 "type.y"
3891         { FreeClassFunction((yyvaluep->classFunction)); };
3892
3893 /* Line 1009 of yacc.c  */
3894 #line 3895 "type.ec"
3895         break;
3896       case 155: /* "identifier" */
3897
3898 /* Line 1009 of yacc.c  */
3899 #line 168 "type.y"
3900         { FreeIdentifier((yyvaluep->id)); };
3901
3902 /* Line 1009 of yacc.c  */
3903 #line 3904 "type.ec"
3904         break;
3905       case 156: /* "primary_expression" */
3906
3907 /* Line 1009 of yacc.c  */
3908 #line 170 "type.y"
3909         { FreeExpression((yyvaluep->exp)); };
3910
3911 /* Line 1009 of yacc.c  */
3912 #line 3913 "type.ec"
3913         break;
3914       case 158: /* "postfix_expression" */
3915
3916 /* Line 1009 of yacc.c  */
3917 #line 170 "type.y"
3918         { FreeExpression((yyvaluep->exp)); };
3919
3920 /* Line 1009 of yacc.c  */
3921 #line 3922 "type.ec"
3922         break;
3923       case 160: /* "argument_expression_list" */
3924
3925 /* Line 1009 of yacc.c  */
3926 #line 205 "type.y"
3927         { FreeList((yyvaluep->list), FreeExpression); };
3928
3929 /* Line 1009 of yacc.c  */
3930 #line 3931 "type.ec"
3931         break;
3932       case 162: /* "unary_expression" */
3933
3934 /* Line 1009 of yacc.c  */
3935 #line 170 "type.y"
3936         { FreeExpression((yyvaluep->exp)); };
3937
3938 /* Line 1009 of yacc.c  */
3939 #line 3940 "type.ec"
3940         break;
3941       case 164: /* "cast_expression" */
3942
3943 /* Line 1009 of yacc.c  */
3944 #line 170 "type.y"
3945         { FreeExpression((yyvaluep->exp)); };
3946
3947 /* Line 1009 of yacc.c  */
3948 #line 3949 "type.ec"
3949         break;
3950       case 165: /* "multiplicative_expression" */
3951
3952 /* Line 1009 of yacc.c  */
3953 #line 170 "type.y"
3954         { FreeExpression((yyvaluep->exp)); };
3955
3956 /* Line 1009 of yacc.c  */
3957 #line 3958 "type.ec"
3958         break;
3959       case 166: /* "additive_expression" */
3960
3961 /* Line 1009 of yacc.c  */
3962 #line 170 "type.y"
3963         { FreeExpression((yyvaluep->exp)); };
3964
3965 /* Line 1009 of yacc.c  */
3966 #line 3967 "type.ec"
3967         break;
3968       case 167: /* "shift_expression" */
3969
3970 /* Line 1009 of yacc.c  */
3971 #line 170 "type.y"
3972         { FreeExpression((yyvaluep->exp)); };
3973
3974 /* Line 1009 of yacc.c  */
3975 #line 3976 "type.ec"
3976         break;
3977       case 169: /* "relational_expression" */
3978
3979 /* Line 1009 of yacc.c  */
3980 #line 170 "type.y"
3981         { FreeExpression((yyvaluep->exp)); };
3982
3983 /* Line 1009 of yacc.c  */
3984 #line 3985 "type.ec"
3985         break;
3986       case 170: /* "equality_expression" */
3987
3988 /* Line 1009 of yacc.c  */
3989 #line 170 "type.y"
3990         { FreeExpression((yyvaluep->exp)); };
3991
3992 /* Line 1009 of yacc.c  */
3993 #line 3994 "type.ec"
3994         break;
3995       case 171: /* "and_expression" */
3996
3997 /* Line 1009 of yacc.c  */
3998 #line 170 "type.y"
3999         { FreeExpression((yyvaluep->exp)); };
4000
4001 /* Line 1009 of yacc.c  */
4002 #line 4003 "type.ec"
4003         break;
4004       case 172: /* "exclusive_or_expression" */
4005
4006 /* Line 1009 of yacc.c  */
4007 #line 170 "type.y"
4008         { FreeExpression((yyvaluep->exp)); };
4009
4010 /* Line 1009 of yacc.c  */
4011 #line 4012 "type.ec"
4012         break;
4013       case 173: /* "inclusive_or_expression" */
4014
4015 /* Line 1009 of yacc.c  */
4016 #line 170 "type.y"
4017         { FreeExpression((yyvaluep->exp)); };
4018
4019 /* Line 1009 of yacc.c  */
4020 #line 4021 "type.ec"
4021         break;
4022       case 174: /* "logical_and_expression" */
4023
4024 /* Line 1009 of yacc.c  */
4025 #line 170 "type.y"
4026         { FreeExpression((yyvaluep->exp)); };
4027
4028 /* Line 1009 of yacc.c  */
4029 #line 4030 "type.ec"
4030         break;
4031       case 175: /* "logical_or_expression" */
4032
4033 /* Line 1009 of yacc.c  */
4034 #line 170 "type.y"
4035         { FreeExpression((yyvaluep->exp)); };
4036
4037 /* Line 1009 of yacc.c  */
4038 #line 4039 "type.ec"
4039         break;
4040       case 176: /* "conditional_expression" */
4041
4042 /* Line 1009 of yacc.c  */
4043 #line 170 "type.y"
4044         { FreeExpression((yyvaluep->exp)); };
4045
4046 /* Line 1009 of yacc.c  */
4047 #line 4048 "type.ec"
4048         break;
4049       case 177: /* "assignment_expression" */
4050
4051 /* Line 1009 of yacc.c  */
4052 #line 170 "type.y"
4053         { FreeExpression((yyvaluep->exp)); };
4054
4055 /* Line 1009 of yacc.c  */
4056 #line 4057 "type.ec"
4057         break;
4058       case 179: /* "expression" */
4059
4060 /* Line 1009 of yacc.c  */
4061 #line 205 "type.y"
4062         { FreeList((yyvaluep->list), FreeExpression); };
4063
4064 /* Line 1009 of yacc.c  */
4065 #line 4066 "type.ec"
4066         break;
4067       case 180: /* "constant_expression" */
4068
4069 /* Line 1009 of yacc.c  */
4070 #line 170 "type.y"
4071         { FreeExpression((yyvaluep->exp)); };
4072
4073 /* Line 1009 of yacc.c  */
4074 #line 4075 "type.ec"
4075         break;
4076       case 181: /* "declaration" */
4077
4078 /* Line 1009 of yacc.c  */
4079 #line 191 "type.y"
4080         { FreeDeclaration((yyvaluep->declaration)); };
4081
4082 /* Line 1009 of yacc.c  */
4083 #line 4084 "type.ec"
4084         break;
4085       case 182: /* "specifier_qualifier_list" */
4086
4087 /* Line 1009 of yacc.c  */
4088 #line 207 "type.y"
4089         { FreeList((yyvaluep->list), FreeSpecifier); };
4090
4091 /* Line 1009 of yacc.c  */
4092 #line 4093 "type.ec"
4093         break;
4094       case 183: /* "guess_specifier_qualifier_list" */
4095
4096 /* Line 1009 of yacc.c  */
4097 #line 207 "type.y"
4098         { FreeList((yyvaluep->list), FreeSpecifier); };
4099
4100 /* Line 1009 of yacc.c  */
4101 #line 4102 "type.ec"
4102         break;
4103       case 184: /* "declaration_specifiers" */
4104
4105 /* Line 1009 of yacc.c  */
4106 #line 207 "type.y"
4107         { FreeList((yyvaluep->list), FreeSpecifier); };
4108
4109 /* Line 1009 of yacc.c  */
4110 #line 4111 "type.ec"
4111         break;
4112       case 185: /* "guess_declaration_specifiers" */
4113
4114 /* Line 1009 of yacc.c  */
4115 #line 207 "type.y"
4116         { FreeList((yyvaluep->list), FreeSpecifier); };
4117
4118 /* Line 1009 of yacc.c  */
4119 #line 4120 "type.ec"
4120         break;
4121       case 189: /* "init_declarator_list" */
4122
4123 /* Line 1009 of yacc.c  */
4124 #line 212 "type.y"
4125         { FreeList((yyvaluep->list), FreeInitDeclarator); };
4126
4127 /* Line 1009 of yacc.c  */
4128 #line 4129 "type.ec"
4129         break;
4130       case 190: /* "init_declarator" */
4131
4132 /* Line 1009 of yacc.c  */
4133 #line 186 "type.y"
4134         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
4135
4136 /* Line 1009 of yacc.c  */
4137 #line 4138 "type.ec"
4138         break;
4139       case 191: /* "storage_class_specifier" */
4140
4141 /* Line 1009 of yacc.c  */
4142 #line 176 "type.y"
4143         { FreeSpecifier((yyvaluep->specifier)); };
4144
4145 /* Line 1009 of yacc.c  */
4146 #line 4147 "type.ec"
4147         break;
4148       case 192: /* "ext_decl" */
4149
4150 /* Line 1009 of yacc.c  */
4151 #line 222 "type.y"
4152         { FreeExtDecl((yyvaluep->extDecl)); };
4153
4154 /* Line 1009 of yacc.c  */
4155 #line 4156 "type.ec"
4156         break;
4157       case 194: /* "attribute_word" */
4158
4159 /* Line 1009 of yacc.c  */
4160 #line 202 "type.y"
4161         { delete (yyvaluep->string); };
4162
4163 /* Line 1009 of yacc.c  */
4164 #line 4165 "type.ec"
4165         break;
4166       case 195: /* "attribute" */
4167
4168 /* Line 1009 of yacc.c  */
4169 #line 223 "type.y"
4170         { FreeAttribute((yyvaluep->attribute)); };
4171
4172 /* Line 1009 of yacc.c  */
4173 #line 4174 "type.ec"
4174         break;
4175       case 196: /* "attribs_list" */
4176
4177 /* Line 1009 of yacc.c  */
4178 #line 224 "type.y"
4179         { FreeList((yyvaluep->list), FreeAttribute); };
4180
4181 /* Line 1009 of yacc.c  */
4182 #line 4183 "type.ec"
4183         break;
4184       case 197: /* "attrib" */
4185
4186 /* Line 1009 of yacc.c  */
4187 #line 221 "type.y"
4188         { FreeAttrib((yyvaluep->attrib)); };
4189
4190 /* Line 1009 of yacc.c  */
4191 #line 4192 "type.ec"
4192         break;
4193       case 198: /* "ext_storage" */
4194
4195 /* Line 1009 of yacc.c  */
4196 #line 176 "type.y"
4197         { FreeSpecifier((yyvaluep->specifier)); };
4198
4199 /* Line 1009 of yacc.c  */
4200 #line 4201 "type.ec"
4201         break;
4202       case 199: /* "type_qualifier" */
4203
4204 /* Line 1009 of yacc.c  */
4205 #line 176 "type.y"
4206         { FreeSpecifier((yyvaluep->specifier)); };
4207
4208 /* Line 1009 of yacc.c  */
4209 #line 4210 "type.ec"
4210         break;
4211       case 200: /* "type_specifier" */
4212
4213 /* Line 1009 of yacc.c  */
4214 #line 176 "type.y"
4215         { FreeSpecifier((yyvaluep->specifier)); };
4216
4217 /* Line 1009 of yacc.c  */
4218 #line 4219 "type.ec"
4219         break;
4220       case 201: /* "strict_type_specifier" */
4221
4222 /* Line 1009 of yacc.c  */
4223 #line 176 "type.y"
4224         { FreeSpecifier((yyvaluep->specifier)); };
4225
4226 /* Line 1009 of yacc.c  */
4227 #line 4228 "type.ec"
4228         break;
4229       case 202: /* "struct_or_union_specifier_compound" */
4230
4231 /* Line 1009 of yacc.c  */
4232 #line 176 "type.y"
4233         { FreeSpecifier((yyvaluep->specifier)); };
4234
4235 /* Line 1009 of yacc.c  */
4236 #line 4237 "type.ec"
4237         break;
4238       case 203: /* "struct_or_union_specifier_nocompound" */
4239
4240 /* Line 1009 of yacc.c  */
4241 #line 176 "type.y"
4242         { FreeSpecifier((yyvaluep->specifier)); };
4243
4244 /* Line 1009 of yacc.c  */
4245 #line 4246 "type.ec"
4246         break;
4247       case 204: /* "template_datatype" */
4248
4249 /* Line 1009 of yacc.c  */
4250 #line 220 "type.y"
4251         { FreeTemplateDataType((yyvaluep->templateDatatype)); };
4252
4253 /* Line 1009 of yacc.c  */
4254 #line 4255 "type.ec"
4255         break;
4256       case 205: /* "template_type_argument" */
4257
4258 /* Line 1009 of yacc.c  */
4259 #line 219 "type.y"
4260         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4261
4262 /* Line 1009 of yacc.c  */
4263 #line 4264 "type.ec"
4264         break;
4265       case 206: /* "template_expression_argument" */
4266
4267 /* Line 1009 of yacc.c  */
4268 #line 219 "type.y"
4269         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4270
4271 /* Line 1009 of yacc.c  */
4272 #line 4273 "type.ec"
4273         break;
4274       case 207: /* "template_argument" */
4275
4276 /* Line 1009 of yacc.c  */
4277 #line 219 "type.y"
4278         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4279
4280 /* Line 1009 of yacc.c  */
4281 #line 4282 "type.ec"
4282         break;
4283       case 210: /* "struct_declaration_list" */
4284
4285 /* Line 1009 of yacc.c  */
4286 #line 215 "type.y"
4287         { FreeList((yyvaluep->list), FreeClassDef); };
4288
4289 /* Line 1009 of yacc.c  */
4290 #line 4291 "type.ec"
4291         break;
4292       case 211: /* "default_property" */
4293
4294 /* Line 1009 of yacc.c  */
4295 #line 195 "type.y"
4296         { FreeMemberInit((yyvaluep->memberInit)); };
4297
4298 /* Line 1009 of yacc.c  */
4299 #line 4300 "type.ec"
4300         break;
4301       case 212: /* "default_property_list" */
4302
4303 /* Line 1009 of yacc.c  */
4304 #line 216 "type.y"
4305         { FreeList((yyvaluep->list), FreeMemberInit); };
4306
4307 /* Line 1009 of yacc.c  */
4308 #line 4309 "type.ec"
4309         break;
4310       case 213: /* "property" */
4311
4312 /* Line 1009 of yacc.c  */
4313 #line 203 "type.y"
4314         { FreeProperty((yyvaluep->prop)); };
4315
4316 /* Line 1009 of yacc.c  */
4317 #line 4318 "type.ec"
4318         break;
4319       case 214: /* "struct_declaration" */
4320
4321 /* Line 1009 of yacc.c  */
4322 #line 201 "type.y"
4323         { FreeClassDef((yyvaluep->classDef)); };
4324
4325 /* Line 1009 of yacc.c  */
4326 #line 4327 "type.ec"
4327         break;
4328       case 215: /* "struct_declarator_list" */
4329
4330 /* Line 1009 of yacc.c  */
4331 #line 209 "type.y"
4332         { FreeList((yyvaluep->list), FreeDeclarator); };
4333
4334 /* Line 1009 of yacc.c  */
4335 #line 4336 "type.ec"
4336         break;
4337       case 216: /* "struct_declarator" */
4338
4339 /* Line 1009 of yacc.c  */
4340 #line 180 "type.y"
4341         { FreeDeclarator((yyvaluep->declarator)); };
4342
4343 /* Line 1009 of yacc.c  */
4344 #line 4345 "type.ec"
4345         break;
4346       case 217: /* "enum_specifier_nocompound" */
4347
4348 /* Line 1009 of yacc.c  */
4349 #line 176 "type.y"
4350         { FreeSpecifier((yyvaluep->specifier)); };
4351
4352 /* Line 1009 of yacc.c  */
4353 #line 4354 "type.ec"
4354         break;
4355       case 218: /* "enum_specifier_compound" */
4356
4357 /* Line 1009 of yacc.c  */
4358 #line 176 "type.y"
4359         { FreeSpecifier((yyvaluep->specifier)); };
4360
4361 /* Line 1009 of yacc.c  */
4362 #line 4363 "type.ec"
4363         break;
4364       case 219: /* "enumerator_list" */
4365
4366 /* Line 1009 of yacc.c  */
4367 #line 206 "type.y"
4368         { FreeList((yyvaluep->list), FreeEnumerator); };
4369
4370 /* Line 1009 of yacc.c  */
4371 #line 4372 "type.ec"
4372         break;
4373       case 220: /* "enumerator" */
4374
4375 /* Line 1009 of yacc.c  */
4376 #line 179 "type.y"
4377         { FreeEnumerator((yyvaluep->enumerator)); };
4378
4379 /* Line 1009 of yacc.c  */
4380 #line 4381 "type.ec"
4381         break;
4382       case 221: /* "direct_abstract_declarator" */
4383
4384 /* Line 1009 of yacc.c  */
4385 #line 180 "type.y"
4386         { FreeDeclarator((yyvaluep->declarator)); };
4387
4388 /* Line 1009 of yacc.c  */
4389 #line 4390 "type.ec"
4390         break;
4391       case 222: /* "direct_abstract_declarator_noarray" */
4392
4393 /* Line 1009 of yacc.c  */
4394 #line 180 "type.y"
4395         { FreeDeclarator((yyvaluep->declarator)); };
4396
4397 /* Line 1009 of yacc.c  */
4398 #line 4399 "type.ec"
4399         break;
4400       case 223: /* "abstract_declarator" */
4401
4402 /* Line 1009 of yacc.c  */
4403 #line 180 "type.y"
4404         { FreeDeclarator((yyvaluep->declarator)); };
4405
4406 /* Line 1009 of yacc.c  */
4407 #line 4408 "type.ec"
4408         break;
4409       case 224: /* "abstract_declarator_noarray" */
4410
4411 /* Line 1009 of yacc.c  */
4412 #line 180 "type.y"
4413         { FreeDeclarator((yyvaluep->declarator)); };
4414
4415 /* Line 1009 of yacc.c  */
4416 #line 4417 "type.ec"
4417         break;
4418       case 225: /* "declarator" */
4419
4420 /* Line 1009 of yacc.c  */
4421 #line 180 "type.y"
4422         { FreeDeclarator((yyvaluep->declarator)); };
4423
4424 /* Line 1009 of yacc.c  */
4425 #line 4426 "type.ec"
4426         break;
4427       case 226: /* "direct_declarator_nofunction" */
4428
4429 /* Line 1009 of yacc.c  */
4430 #line 180 "type.y"
4431         { FreeDeclarator((yyvaluep->declarator)); };
4432
4433 /* Line 1009 of yacc.c  */
4434 #line 4435 "type.ec"
4435         break;
4436       case 227: /* "declarator_function" */
4437
4438 /* Line 1009 of yacc.c  */
4439 #line 180 "type.y"
4440         { FreeDeclarator((yyvaluep->declarator)); };
4441
4442 /* Line 1009 of yacc.c  */
4443 #line 4444 "type.ec"
4444         break;
4445       case 228: /* "direct_declarator_function_start" */
4446
4447 /* Line 1009 of yacc.c  */
4448 #line 180 "type.y"
4449         { FreeDeclarator((yyvaluep->declarator)); };
4450
4451 /* Line 1009 of yacc.c  */
4452 #line 4453 "type.ec"
4453         break;
4454       case 229: /* "direct_declarator_function" */
4455
4456 /* Line 1009 of yacc.c  */
4457 #line 180 "type.y"
4458         { FreeDeclarator((yyvaluep->declarator)); };
4459
4460 /* Line 1009 of yacc.c  */
4461 #line 4462 "type.ec"
4462         break;
4463       case 230: /* "direct_declarator" */
4464
4465 /* Line 1009 of yacc.c  */
4466 #line 180 "type.y"
4467         { FreeDeclarator((yyvaluep->declarator)); };
4468
4469 /* Line 1009 of yacc.c  */
4470 #line 4471 "type.ec"
4471         break;
4472       case 231: /* "declarator_nofunction" */
4473
4474 /* Line 1009 of yacc.c  */
4475 #line 180 "type.y"
4476         { FreeDeclarator((yyvaluep->declarator)); };
4477
4478 /* Line 1009 of yacc.c  */
4479 #line 4480 "type.ec"
4480         break;
4481       case 232: /* "type_qualifier_list" */
4482
4483 /* Line 1009 of yacc.c  */
4484 #line 207 "type.y"
4485         { FreeList((yyvaluep->list), FreeSpecifier); };
4486
4487 /* Line 1009 of yacc.c  */
4488 #line 4489 "type.ec"
4489         break;
4490       case 233: /* "pointer" */
4491
4492 /* Line 1009 of yacc.c  */
4493 #line 169 "type.y"
4494         { FreePointer((yyvaluep->pointer)); };
4495
4496 /* Line 1009 of yacc.c  */
4497 #line 4498 "type.ec"
4498         break;
4499       case 234: /* "parameter_type_list" */
4500
4501 /* Line 1009 of yacc.c  */
4502 #line 213 "type.y"
4503         { FreeList((yyvaluep->list), FreeTypeName); };
4504
4505 /* Line 1009 of yacc.c  */
4506 #line 4507 "type.ec"
4507         break;
4508       case 235: /* "parameter_list" */
4509
4510 /* Line 1009 of yacc.c  */
4511 #line 213 "type.y"
4512         { FreeList((yyvaluep->list), FreeTypeName); };
4513
4514 /* Line 1009 of yacc.c  */
4515 #line 4516 "type.ec"
4516         break;
4517       case 236: /* "parameter_declaration" */
4518
4519 /* Line 1009 of yacc.c  */
4520 #line 187 "type.y"
4521         { FreeTypeName((yyvaluep->typeName)); };
4522
4523 /* Line 1009 of yacc.c  */
4524 #line 4525 "type.ec"
4525         break;
4526       case 237: /* "identifier_list" */
4527
4528 /* Line 1009 of yacc.c  */
4529 #line 213 "type.y"
4530         { FreeList((yyvaluep->list), FreeTypeName); };
4531
4532 /* Line 1009 of yacc.c  */
4533 #line 4534 "type.ec"
4534         break;
4535       case 238: /* "type_name" */
4536
4537 /* Line 1009 of yacc.c  */
4538 #line 187 "type.y"
4539         { FreeTypeName((yyvaluep->typeName)); };
4540
4541 /* Line 1009 of yacc.c  */
4542 #line 4543 "type.ec"
4543         break;
4544       case 239: /* "guess_type_name" */
4545
4546 /* Line 1009 of yacc.c  */
4547 #line 187 "type.y"
4548         { FreeTypeName((yyvaluep->typeName)); };
4549
4550 /* Line 1009 of yacc.c  */
4551 #line 4552 "type.ec"
4552         break;
4553       case 240: /* "initializer" */
4554
4555 /* Line 1009 of yacc.c  */
4556 #line 185 "type.y"
4557         { FreeInitializer((yyvaluep->initializer)); };
4558
4559 /* Line 1009 of yacc.c  */
4560 #line 4561 "type.ec"
4561         break;
4562       case 241: /* "initializer_condition" */
4563
4564 /* Line 1009 of yacc.c  */
4565 #line 185 "type.y"
4566         { FreeInitializer((yyvaluep->initializer)); };
4567
4568 /* Line 1009 of yacc.c  */
4569 #line 4570 "type.ec"
4570         break;
4571       case 242: /* "initializer_list" */
4572
4573 /* Line 1009 of yacc.c  */
4574 #line 211 "type.y"
4575         { FreeList((yyvaluep->list), FreeInitializer); };
4576
4577 /* Line 1009 of yacc.c  */
4578 #line 4579 "type.ec"
4579         break;
4580       case 243: /* "statement" */
4581
4582 /* Line 1009 of yacc.c  */
4583 #line 188 "type.y"
4584         { FreeStatement((yyvaluep->stmt)); };
4585
4586 /* Line 1009 of yacc.c  */
4587 #line 4588 "type.ec"
4588         break;
4589       case 244: /* "labeled_statement" */
4590
4591 /* Line 1009 of yacc.c  */
4592 #line 188 "type.y"
4593         { FreeStatement((yyvaluep->stmt)); };
4594
4595 /* Line 1009 of yacc.c  */
4596 #line 4597 "type.ec"
4597         break;
4598       case 245: /* "declaration_list" */
4599
4600 /* Line 1009 of yacc.c  */
4601 #line 210 "type.y"
4602         { FreeList((yyvaluep->list), FreeDeclaration); };
4603
4604 /* Line 1009 of yacc.c  */
4605 #line 4606 "type.ec"
4606         break;
4607       case 246: /* "statement_list" */
4608
4609 /* Line 1009 of yacc.c  */
4610 #line 214 "type.y"
4611         { FreeList((yyvaluep->list), FreeStatement); };
4612
4613 /* Line 1009 of yacc.c  */
4614 #line 4615 "type.ec"
4615         break;
4616       case 247: /* "compound_inside" */
4617
4618 /* Line 1009 of yacc.c  */
4619 #line 188 "type.y"
4620         { FreeStatement((yyvaluep->stmt)); };
4621
4622 /* Line 1009 of yacc.c  */
4623 #line 4624 "type.ec"
4624         break;
4625       case 248: /* "compound_start" */
4626
4627 /* Line 1009 of yacc.c  */
4628 #line 218 "type.y"
4629         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
4630
4631 /* Line 1009 of yacc.c  */
4632 #line 4633 "type.ec"
4633         break;
4634       case 249: /* "compound_statement" */
4635
4636 /* Line 1009 of yacc.c  */
4637 #line 188 "type.y"
4638         { FreeStatement((yyvaluep->stmt)); };
4639
4640 /* Line 1009 of yacc.c  */
4641 #line 4642 "type.ec"
4642         break;
4643       case 250: /* "expression_statement" */
4644
4645 /* Line 1009 of yacc.c  */
4646 #line 188 "type.y"
4647         { FreeStatement((yyvaluep->stmt)); };
4648
4649 /* Line 1009 of yacc.c  */
4650 #line 4651 "type.ec"
4651         break;
4652       case 251: /* "selection_statement" */
4653
4654 /* Line 1009 of yacc.c  */
4655 #line 188 "type.y"
4656         { FreeStatement((yyvaluep->stmt)); };
4657
4658 /* Line 1009 of yacc.c  */
4659 #line 4660 "type.ec"
4660         break;
4661       case 252: /* "iteration_statement" */
4662
4663 /* Line 1009 of yacc.c  */
4664 #line 188 "type.y"
4665         { FreeStatement((yyvaluep->stmt)); };
4666
4667 /* Line 1009 of yacc.c  */
4668 #line 4669 "type.ec"
4669         break;
4670       case 253: /* "jump_statement" */
4671
4672 /* Line 1009 of yacc.c  */
4673 #line 188 "type.y"
4674         { FreeStatement((yyvaluep->stmt)); };
4675
4676 /* Line 1009 of yacc.c  */
4677 #line 4678 "type.ec"
4678         break;
4679       case 254: /* "string_literal" */
4680
4681 /* Line 1009 of yacc.c  */
4682 #line 202 "type.y"
4683         { delete (yyvaluep->string); };
4684
4685 /* Line 1009 of yacc.c  */
4686 #line 4687 "type.ec"
4687         break;
4688       case 255: /* "instantiation_named" */
4689
4690 /* Line 1009 of yacc.c  */
4691 #line 193 "type.y"
4692         { FreeInstance((yyvaluep->instance)); };
4693
4694 /* Line 1009 of yacc.c  */
4695 #line 4696 "type.ec"
4696         break;
4697       case 257: /* "instantiation_unnamed" */
4698
4699 /* Line 1009 of yacc.c  */
4700 #line 193 "type.y"
4701         { FreeInstance((yyvaluep->instance)); };
4702
4703 /* Line 1009 of yacc.c  */
4704 #line 4705 "type.ec"
4705         break;
4706       case 259: /* "class_function_definition" */
4707
4708 /* Line 1009 of yacc.c  */
4709 #line 197 "type.y"
4710         { FreeClassFunction((yyvaluep->classFunction)); };
4711
4712 /* Line 1009 of yacc.c  */
4713 #line 4714 "type.ec"
4714         break;
4715       case 260: /* "instance_class_function_definition_start" */
4716
4717 /* Line 1009 of yacc.c  */
4718 #line 197 "type.y"
4719         { FreeClassFunction((yyvaluep->classFunction)); };
4720
4721 /* Line 1009 of yacc.c  */
4722 #line 4723 "type.ec"
4723         break;
4724       case 261: /* "instance_class_function_definition" */
4725
4726 /* Line 1009 of yacc.c  */
4727 #line 197 "type.y"
4728         { FreeClassFunction((yyvaluep->classFunction)); };
4729
4730 /* Line 1009 of yacc.c  */
4731 #line 4732 "type.ec"
4732         break;
4733       case 262: /* "data_member_initialization" */
4734
4735 /* Line 1009 of yacc.c  */
4736 #line 195 "type.y"
4737         { FreeMemberInit((yyvaluep->memberInit)); };
4738
4739 /* Line 1009 of yacc.c  */
4740 #line 4741 "type.ec"
4741         break;
4742       case 263: /* "data_member_initialization_list" */
4743
4744 /* Line 1009 of yacc.c  */
4745 #line 216 "type.y"
4746         { FreeList((yyvaluep->list), FreeMemberInit); };
4747
4748 /* Line 1009 of yacc.c  */
4749 #line 4750 "type.ec"
4750         break;
4751       case 264: /* "data_member_initialization_list_coloned" */
4752
4753 /* Line 1009 of yacc.c  */
4754 #line 216 "type.y"
4755         { FreeList((yyvaluep->list), FreeMemberInit); };
4756
4757 /* Line 1009 of yacc.c  */
4758 #line 4759 "type.ec"
4759         break;
4760       case 265: /* "members_initialization_list_coloned" */
4761
4762 /* Line 1009 of yacc.c  */
4763 #line 217 "type.y"
4764         { FreeList((yyvaluep->list), FreeMembersInit); };
4765
4766 /* Line 1009 of yacc.c  */
4767 #line 4768 "type.ec"
4768         break;
4769       case 266: /* "members_initialization_list" */
4770
4771 /* Line 1009 of yacc.c  */
4772 #line 217 "type.y"
4773         { FreeList((yyvaluep->list), FreeMembersInit); };
4774
4775 /* Line 1009 of yacc.c  */
4776 #line 4777 "type.ec"
4777         break;
4778
4779       default:
4780         break;
4781     }
4782 }
4783
4784 /* Prevent warnings from -Wmissing-prototypes.  */
4785 #ifdef YYPARSE_PARAM
4786 #if defined __STDC__ || defined __cplusplus
4787 int yyparse (void *YYPARSE_PARAM);
4788 #else
4789 int yyparse ();
4790 #endif
4791 #else /* ! YYPARSE_PARAM */
4792 #if defined __STDC__ || defined __cplusplus
4793 int yyparse (void);
4794 #else
4795 int yyparse ();
4796 #endif
4797 #endif /* ! YYPARSE_PARAM */
4798
4799
4800 /* The lookahead symbol.  */
4801 int yychar;
4802
4803 /* The semantic value of the lookahead symbol.  */
4804 YYSTYPE yylval;
4805
4806 /* Location data for the lookahead symbol.  */
4807 YYLTYPE yylloc;
4808
4809 /* Number of syntax errors so far.  */
4810 int yynerrs;
4811
4812
4813
4814 /*-------------------------.
4815 | yyparse or yypush_parse.  |
4816 `-------------------------*/
4817
4818 #ifdef YYPARSE_PARAM
4819 #if (defined __STDC__ || defined __C99__FUNC__ \
4820      || defined __cplusplus || defined _MSC_VER)
4821 int
4822 yyparse (void *YYPARSE_PARAM)
4823 #else
4824 int
4825 yyparse (YYPARSE_PARAM)
4826     void *YYPARSE_PARAM;
4827 #endif
4828 #else /* ! YYPARSE_PARAM */
4829 #if (defined __STDC__ || defined __C99__FUNC__ \
4830      || defined __cplusplus || defined _MSC_VER)
4831 int
4832 yyparse (void)
4833 #else
4834 int
4835 yyparse ()
4836
4837 #endif
4838 #endif
4839 {
4840
4841
4842     int yystate;
4843     /* Number of tokens to shift before error messages enabled.  */
4844     int yyerrstatus;
4845
4846     /* The stacks and their tools:
4847        `yyss': related to states.
4848        `yyvs': related to semantic values.
4849        `yyls': related to locations.
4850
4851        Refer to the stacks thru separate pointers, to allow yyoverflow
4852        to reallocate them elsewhere.  */
4853
4854     /* The state stack.  */
4855     yytype_int16 yyssa[YYINITDEPTH];
4856     yytype_int16 *yyss;
4857     yytype_int16 *yyssp;
4858
4859     /* The semantic value stack.  */
4860     YYSTYPE yyvsa[YYINITDEPTH];
4861     YYSTYPE *yyvs;
4862     YYSTYPE *yyvsp;
4863
4864     /* The location stack.  */
4865     YYLTYPE yylsa[YYINITDEPTH];
4866     YYLTYPE *yyls;
4867     YYLTYPE *yylsp;
4868
4869     /* The locations where the error started and ended.  */
4870     YYLTYPE yyerror_range[2];
4871
4872     YYSIZE_T yystacksize;
4873
4874   int yyn;
4875   int yyresult;
4876   /* Lookahead token as an internal (translated) token number.  */
4877   int yytoken;
4878   /* The variables used to return semantic value and location from the
4879      action routines.  */
4880   YYSTYPE yyval;
4881   YYLTYPE yyloc;
4882
4883 #if YYERROR_VERBOSE
4884   /* Buffer for error messages, and its allocated size.  */
4885   char yymsgbuf[128];
4886   char *yymsg = yymsgbuf;
4887   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4888 #endif
4889
4890 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4891
4892   /* The number of symbols on the RHS of the reduced rule.
4893      Keep to zero when no symbol should be popped.  */
4894   int yylen = 0;
4895
4896   yytoken = 0;
4897   yyss = yyssa;
4898   yyvs = yyvsa;
4899   yyls = yylsa;
4900   yystacksize = YYINITDEPTH;
4901
4902   YYDPRINTF ((stderr, "Starting parse\n"));
4903
4904   yystate = 0;
4905   yyerrstatus = 0;
4906   yynerrs = 0;
4907   yychar = YYEMPTY; /* Cause a token to be read.  */
4908
4909   /* Initialize stack pointers.
4910      Waste one element of value and location stack
4911      so that they stay on the same level as the state stack.
4912      The wasted elements are never initialized.  */
4913   yyssp = yyss;
4914   yyvsp = yyvs;
4915   yylsp = yyls;
4916
4917 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4918   /* Initialize the default location before parsing starts.  */
4919   yylloc.first_line   = yylloc.last_line   = 1;
4920   yylloc.first_column = yylloc.last_column = 1;
4921 #endif
4922
4923   goto yysetstate;
4924
4925 /*------------------------------------------------------------.
4926 | yynewstate -- Push a new state, which is found in yystate.  |
4927 `------------------------------------------------------------*/
4928  yynewstate:
4929   /* In all cases, when you get here, the value and location stacks
4930      have just been pushed.  So pushing a state here evens the stacks.  */
4931   yyssp++;
4932
4933  yysetstate:
4934   *yyssp = yystate;
4935
4936   if (yyss + yystacksize - 1 <= yyssp)
4937     {
4938       /* Get the current used size of the three stacks, in elements.  */
4939       YYSIZE_T yysize = yyssp - yyss + 1;
4940
4941 #ifdef yyoverflow
4942       {
4943         /* Give user a chance to reallocate the stack.  Use copies of
4944            these so that the &'s don't force the real ones into
4945            memory.  */
4946         YYSTYPE *yyvs1 = yyvs;
4947         yytype_int16 *yyss1 = yyss;
4948         YYLTYPE *yyls1 = yyls;
4949
4950         /* Each stack pointer address is followed by the size of the
4951            data in use in that stack, in bytes.  This used to be a
4952            conditional around just the two extra args, but that might
4953            be undefined if yyoverflow is a macro.  */
4954         yyoverflow (YY_("memory exhausted"),
4955                     &yyss1, yysize * sizeof (*yyssp),
4956                     &yyvs1, yysize * sizeof (*yyvsp),
4957                     &yyls1, yysize * sizeof (*yylsp),
4958                     &yystacksize);
4959
4960         yyls = yyls1;
4961         yyss = yyss1;
4962         yyvs = yyvs1;
4963       }
4964 #else /* no yyoverflow */
4965 # ifndef YYSTACK_RELOCATE
4966       goto yyexhaustedlab;
4967 # else
4968       /* Extend the stack our own way.  */
4969       if (YYMAXDEPTH <= yystacksize)
4970         goto yyexhaustedlab;
4971       yystacksize *= 2;
4972       if (YYMAXDEPTH < yystacksize)
4973         yystacksize = YYMAXDEPTH;
4974
4975       {
4976         yytype_int16 *yyss1 = yyss;
4977         union yyalloc *yyptr =
4978           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4979         if (! yyptr)
4980           goto yyexhaustedlab;
4981         YYSTACK_RELOCATE (yyss_alloc, yyss);
4982         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4983         YYSTACK_RELOCATE (yyls_alloc, yyls);
4984 #  undef YYSTACK_RELOCATE
4985         if (yyss1 != yyssa)
4986           YYSTACK_FREE (yyss1);
4987       }
4988 # endif
4989 #endif /* no yyoverflow */
4990
4991       yyssp = yyss + yysize - 1;
4992       yyvsp = yyvs + yysize - 1;
4993       yylsp = yyls + yysize - 1;
4994
4995       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4996                   (unsigned long int) yystacksize));
4997
4998       if (yyss + yystacksize - 1 <= yyssp)
4999         YYABORT;
5000     }
5001
5002   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
5003
5004   if (yystate == YYFINAL)
5005     YYACCEPT;
5006
5007   goto yybackup;
5008
5009 /*-----------.
5010 | yybackup.  |
5011 `-----------*/
5012 yybackup:
5013
5014   /* Do appropriate processing given the current state.  Read a
5015      lookahead token if we need one and don't already have one.  */
5016
5017   /* First try to decide what to do without reference to lookahead token.  */
5018   yyn = yypact[yystate];
5019   if (yyn == YYPACT_NINF)
5020     goto yydefault;
5021
5022   /* Not known => get a lookahead token if don't already have one.  */
5023
5024   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
5025   if (yychar == YYEMPTY)
5026     {
5027       YYDPRINTF ((stderr, "Reading a token: "));
5028       yychar = YYLEX;
5029     }
5030
5031   if (yychar <= YYEOF)
5032     {
5033       yychar = yytoken = YYEOF;
5034       YYDPRINTF ((stderr, "Now at end of input.\n"));
5035     }
5036   else
5037     {
5038       yytoken = YYTRANSLATE (yychar);
5039       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5040     }
5041
5042   /* If the proper action on seeing token YYTOKEN is to reduce or to
5043      detect an error, take that action.  */
5044   yyn += yytoken;
5045   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5046     goto yydefault;
5047   yyn = yytable[yyn];
5048   if (yyn <= 0)
5049     {
5050       if (yyn == 0 || yyn == YYTABLE_NINF)
5051         goto yyerrlab;
5052       yyn = -yyn;
5053       goto yyreduce;
5054     }
5055
5056   /* Count tokens shifted since error; after three, turn off error
5057      status.  */
5058   if (yyerrstatus)
5059     yyerrstatus--;
5060
5061   /* Shift the lookahead token.  */
5062   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5063
5064   /* Discard the shifted token.  */
5065   yychar = YYEMPTY;
5066
5067   yystate = yyn;
5068   *++yyvsp = yylval;
5069   *++yylsp = yylloc;
5070   goto yynewstate;
5071
5072
5073 /*-----------------------------------------------------------.
5074 | yydefault -- do the default action for the current state.  |
5075 `-----------------------------------------------------------*/
5076 yydefault:
5077   yyn = yydefact[yystate];
5078   if (yyn == 0)
5079     goto yyerrlab;
5080   goto yyreduce;
5081
5082
5083 /*-----------------------------.
5084 | yyreduce -- Do a reduction.  |
5085 `-----------------------------*/
5086 yyreduce:
5087   /* yyn is the number of a rule to reduce with.  */
5088   yylen = yyr2[yyn];
5089
5090   /* If YYLEN is nonzero, implement the default value of the action:
5091      `$$ = $1'.
5092
5093      Otherwise, the following line sets YYVAL to garbage.
5094      This behavior is undocumented and Bison
5095      users should not rely upon it.  Assigning to YYVAL
5096      unconditionally makes the parser a bit smaller, and it avoids a
5097      GCC warning that YYVAL may be used uninitialized.  */
5098   yyval = yyvsp[1-yylen];
5099
5100   /* Default location.  */
5101   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
5102   YY_REDUCE_PRINT (yyn);
5103   switch (yyn)
5104     {
5105         case 2:
5106
5107 /* Line 1464 of yacc.c  */
5108 #line 232 "type.y"
5109     {
5110       (yyval.specifier) = null;
5111       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5112       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5113       resetScannerPos(&(yylsp[(1) - (2)]).start);
5114       yyclearin;
5115
5116       FreeIdentifier((yyvsp[(1) - (2)].id));
5117
5118       YYPOPSTACK(1);
5119       yystate = *yyssp;
5120       YY_STACK_PRINT (yyss, yyssp);
5121       YYPOPSTACK(1);
5122       yystate = *yyssp;
5123       YY_STACK_PRINT (yyss, yyssp);
5124       goto yysetstate;
5125    ;}
5126     break;
5127
5128   case 3:
5129
5130 /* Line 1464 of yacc.c  */
5131 #line 250 "type.y"
5132     {
5133       (yyval.specifier) = null;
5134    #ifdef PRECOMPILER
5135       _DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5136
5137       FreeIdentifier((yyvsp[(1) - (2)].id));
5138
5139       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5140       resetScannerPos(&(yylsp[(1) - (2)]).start);
5141       yyclearin;
5142
5143       YYPOPSTACK(1);
5144       yystate = *yyssp;
5145       YY_STACK_PRINT (yyss, yyssp);
5146       YYPOPSTACK(1);
5147       yystate = *yyssp;
5148       YY_STACK_PRINT (yyss, yyssp);
5149       goto yysetstate;
5150    #endif
5151    ;}
5152     break;
5153
5154   case 4:
5155
5156 /* Line 1464 of yacc.c  */
5157 #line 274 "type.y"
5158     {
5159       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5160       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5161       parseTypeError = 0;
5162       resetScannerPos(&(yylsp[(1) - (2)]).start);
5163       yyclearin;
5164       FreeIdentifier((yyvsp[(1) - (2)].id));
5165
5166       YYPOPSTACK(1);
5167       yystate = *yyssp;
5168       YY_STACK_PRINT (yyss, yyssp);
5169       YYPOPSTACK(1);
5170       yystate = *yyssp;
5171       YY_STACK_PRINT (yyss, yyssp);
5172       goto yysetstate;
5173    ;}
5174     break;
5175
5176   case 5:
5177
5178 /* Line 1464 of yacc.c  */
5179 #line 313 "type.y"
5180     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5181     break;
5182
5183   case 6:
5184
5185 /* Line 1464 of yacc.c  */
5186 #line 315 "type.y"
5187     {
5188    #ifdef PRECOMPILER
5189       DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
5190       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5191       resetScannerPos(&(yylsp[(1) - (2)]).start);
5192       yyclearin;
5193
5194       FreeIdentifier((yyvsp[(1) - (2)].id));
5195       FreeIdentifier((yyvsp[(2) - (2)].id));
5196
5197       YYPOPSTACK(1);
5198       yystate = *yyssp;
5199       YY_STACK_PRINT (yyss, yyssp);
5200       YYPOPSTACK(1);
5201       yystate = *yyssp;
5202       YY_STACK_PRINT (yyss, yyssp);
5203       goto yysetstate;
5204    #else
5205       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[(2) - (2)].id); yylloc = (yylsp[(1) - (2)]);
5206       Compiler_Error($"Not a type: %s\n", (yyvsp[(1) - (2)].id).string);
5207       yylloc = tmpLoc; (yyvsp[(2) - (2)].id).badID = (yyvsp[(1) - (2)].id); // FreeIdentifier($1);
5208    #endif
5209    ;}
5210     break;
5211
5212   case 7:
5213
5214 /* Line 1464 of yacc.c  */
5215 #line 341 "type.y"
5216     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5217     break;
5218
5219   case 9:
5220
5221 /* Line 1464 of yacc.c  */
5222 #line 346 "type.y"
5223     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
5224     break;
5225
5226   case 10:
5227
5228 /* Line 1464 of yacc.c  */
5229 #line 348 "type.y"
5230     {
5231       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
5232       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
5233       (yyval.specifier).loc = (yyloc);
5234
5235       (yylsp[(4) - (4)]).end.pos--;
5236       fileInput.Seek((yylsp[(4) - (4)]).end.pos, start);
5237       resetScannerPos(&(yylsp[(4) - (4)]).end);
5238       yyclearin;
5239     ;}
5240     break;
5241
5242   case 11:
5243
5244 /* Line 1464 of yacc.c  */
5245 #line 365 "type.y"
5246     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
5247     break;
5248
5249   case 12:
5250
5251 /* Line 1464 of yacc.c  */
5252 #line 367 "type.y"
5253     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
5254     break;
5255
5256   case 13:
5257
5258 /* Line 1464 of yacc.c  */
5259 #line 372 "type.y"
5260     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
5261     break;
5262
5263   case 14:
5264
5265 /* Line 1464 of yacc.c  */
5266 #line 377 "type.y"
5267     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
5268     break;
5269
5270   case 15:
5271
5272 /* Line 1464 of yacc.c  */
5273 #line 382 "type.y"
5274     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
5275     break;
5276
5277   case 16:
5278
5279 /* Line 1464 of yacc.c  */
5280 #line 384 "type.y"
5281     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
5282     break;
5283
5284   case 17:
5285
5286 /* Line 1464 of yacc.c  */
5287 #line 389 "type.y"
5288     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
5289     break;
5290
5291   case 19:
5292
5293 /* Line 1464 of yacc.c  */
5294 #line 395 "type.y"
5295     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
5296     break;
5297
5298   case 20:
5299
5300 /* Line 1464 of yacc.c  */
5301 #line 400 "type.y"
5302     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
5303     break;
5304
5305   case 21:
5306
5307 /* Line 1464 of yacc.c  */
5308 #line 402 "type.y"
5309     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5310     break;
5311
5312   case 22:
5313
5314 /* Line 1464 of yacc.c  */
5315 #line 404 "type.y"
5316     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
5317     break;
5318
5319   case 23:
5320
5321 /* Line 1464 of yacc.c  */
5322 #line 405 "type.y"
5323     { (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
5324     break;
5325
5326   case 24:
5327
5328 /* Line 1464 of yacc.c  */
5329 #line 407 "type.y"
5330     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
5331     break;
5332
5333   case 25:
5334
5335 /* Line 1464 of yacc.c  */
5336 #line 408 "type.y"
5337     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
5338     break;
5339
5340   case 26:
5341
5342 /* Line 1464 of yacc.c  */
5343 #line 409 "type.y"
5344     { (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); ;}
5345     break;
5346
5347   case 27:
5348
5349 /* Line 1464 of yacc.c  */
5350 #line 411 "type.y"
5351     { 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(); ;}
5352     break;
5353
5354   case 28:
5355
5356 /* Line 1464 of yacc.c  */
5357 #line 413 "type.y"
5358     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5359     break;
5360
5361   case 29:
5362
5363 /* Line 1464 of yacc.c  */
5364 #line 414 "type.y"
5365     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5366     break;
5367
5368   case 30:
5369
5370 /* Line 1464 of yacc.c  */
5371 #line 415 "type.y"
5372     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5373     break;
5374
5375   case 31:
5376
5377 /* Line 1464 of yacc.c  */
5378 #line 416 "type.y"
5379     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5380     break;
5381
5382   case 32:
5383
5384 /* Line 1464 of yacc.c  */
5385 #line 417 "type.y"
5386     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5387     break;
5388
5389   case 33:
5390
5391 /* Line 1464 of yacc.c  */
5392 #line 418 "type.y"
5393     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5394     break;
5395
5396   case 34:
5397
5398 /* Line 1464 of yacc.c  */
5399 #line 419 "type.y"
5400     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5401     break;
5402
5403   case 35:
5404
5405 /* Line 1464 of yacc.c  */
5406 #line 420 "type.y"
5407     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5408     break;
5409
5410   case 36:
5411
5412 /* Line 1464 of yacc.c  */
5413 #line 421 "type.y"
5414     { (yyval.exp) = MkExpDummy(); ;}
5415     break;
5416
5417   case 38:
5418
5419 /* Line 1464 of yacc.c  */
5420 #line 426 "type.y"
5421     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5422     break;
5423
5424   case 39:
5425
5426 /* Line 1464 of yacc.c  */
5427 #line 427 "type.y"
5428     { (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); ;}
5429     break;
5430
5431   case 40:
5432
5433 /* Line 1464 of yacc.c  */
5434 #line 428 "type.y"
5435     { (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); ;}
5436     break;
5437
5438   case 41:
5439
5440 /* Line 1464 of yacc.c  */
5441 #line 429 "type.y"
5442     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5443     break;
5444
5445   case 42:
5446
5447 /* Line 1464 of yacc.c  */
5448 #line 431 "type.y"
5449     {
5450       char * constant = (yyvsp[(1) - (2)].exp).type == constantExp ? (yyvsp[(1) - (2)].exp).constant : null;
5451       int len = constant ? strlen(constant) : 0;
5452       if(constant && constant[len-1] == '.')
5453       {
5454          constant[len-1] = 0;
5455          (yyval.exp) = MkExpMember((yyvsp[(1) - (2)].exp), (yyvsp[(2) - (2)].id));
5456          (yyval.exp).loc = (yyloc);
5457       }
5458       else
5459          yyerror();
5460    ;}
5461     break;
5462
5463   case 43:
5464
5465 /* Line 1464 of yacc.c  */
5466 #line 443 "type.y"
5467     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5468     break;
5469
5470   case 44:
5471
5472 /* Line 1464 of yacc.c  */
5473 #line 444 "type.y"
5474     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5475     break;
5476
5477   case 45:
5478
5479 /* Line 1464 of yacc.c  */
5480 #line 445 "type.y"
5481     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5482     break;
5483
5484   case 46:
5485
5486 /* Line 1464 of yacc.c  */
5487 #line 449 "type.y"
5488     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5489     break;
5490
5491   case 47:
5492
5493 /* Line 1464 of yacc.c  */
5494 #line 478 "type.y"
5495     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5496     break;
5497
5498   case 48:
5499
5500 /* Line 1464 of yacc.c  */
5501 #line 479 "type.y"
5502     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5503     break;
5504
5505   case 49:
5506
5507 /* Line 1464 of yacc.c  */
5508 #line 480 "type.y"
5509     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5510     break;
5511
5512   case 50:
5513
5514 /* Line 1464 of yacc.c  */
5515 #line 481 "type.y"
5516     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5517     break;
5518
5519   case 51:
5520
5521 /* Line 1464 of yacc.c  */
5522 #line 485 "type.y"
5523     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5524     break;
5525
5526   case 52:
5527
5528 /* Line 1464 of yacc.c  */
5529 #line 486 "type.y"
5530     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5531     break;
5532
5533   case 53:
5534
5535 /* Line 1464 of yacc.c  */
5536 #line 487 "type.y"
5537     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5538     break;
5539
5540   case 54:
5541
5542 /* Line 1464 of yacc.c  */
5543 #line 489 "type.y"
5544     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5545     break;
5546
5547   case 55:
5548
5549 /* Line 1464 of yacc.c  */
5550 #line 490 "type.y"
5551     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5552     break;
5553
5554   case 56:
5555
5556 /* Line 1464 of yacc.c  */
5557 #line 492 "type.y"
5558     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5559     break;
5560
5561   case 57:
5562
5563 /* Line 1464 of yacc.c  */
5564 #line 493 "type.y"
5565     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5566     break;
5567
5568   case 60:
5569
5570 /* Line 1464 of yacc.c  */
5571 #line 507 "type.y"
5572     { (yyval.i) = '&'; ;}
5573     break;
5574
5575   case 61:
5576
5577 /* Line 1464 of yacc.c  */
5578 #line 508 "type.y"
5579     { (yyval.i) = '*'; ;}
5580     break;
5581
5582   case 62:
5583
5584 /* Line 1464 of yacc.c  */
5585 #line 509 "type.y"
5586     { (yyval.i) = '+'; ;}
5587     break;
5588
5589   case 63:
5590
5591 /* Line 1464 of yacc.c  */
5592 #line 510 "type.y"
5593     { (yyval.i) = '-'; ;}
5594     break;
5595
5596   case 64:
5597
5598 /* Line 1464 of yacc.c  */
5599 #line 511 "type.y"
5600     { (yyval.i) = '~'; ;}
5601     break;
5602
5603   case 65:
5604
5605 /* Line 1464 of yacc.c  */
5606 #line 512 "type.y"
5607     { (yyval.i) = '!'; ;}
5608     break;
5609
5610   case 66:
5611
5612 /* Line 1464 of yacc.c  */
5613 #line 513 "type.y"
5614     { (yyval.i) = DELETE; ;}
5615     break;
5616
5617   case 68:
5618
5619 /* Line 1464 of yacc.c  */
5620 #line 518 "type.y"
5621     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5622     break;
5623
5624   case 70:
5625
5626 /* Line 1464 of yacc.c  */
5627 #line 523 "type.y"
5628     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5629     break;
5630
5631   case 71:
5632
5633 /* Line 1464 of yacc.c  */
5634 #line 524 "type.y"
5635     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5636     break;
5637
5638   case 72:
5639
5640 /* Line 1464 of yacc.c  */
5641 #line 525 "type.y"
5642     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5643     break;
5644
5645   case 74:
5646
5647 /* Line 1464 of yacc.c  */
5648 #line 530 "type.y"
5649     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5650     break;
5651
5652   case 75:
5653
5654 /* Line 1464 of yacc.c  */
5655 #line 531 "type.y"
5656     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5657     break;
5658
5659   case 77:
5660
5661 /* Line 1464 of yacc.c  */
5662 #line 536 "type.y"
5663     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5664     break;
5665
5666   case 78:
5667
5668 /* Line 1464 of yacc.c  */
5669 #line 537 "type.y"
5670     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5671     break;
5672
5673   case 79:
5674
5675 /* Line 1464 of yacc.c  */
5676 #line 542 "type.y"
5677     {
5678       (yyval.exp) = (yyvsp[(1) - (2)].exp);
5679       skipErrors = true;
5680    ;}
5681     break;
5682
5683   case 81:
5684
5685 /* Line 1464 of yacc.c  */
5686 #line 550 "type.y"
5687     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
5688     break;
5689
5690   case 82:
5691
5692 /* Line 1464 of yacc.c  */
5693 #line 551 "type.y"
5694     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5695     break;
5696
5697   case 83:
5698
5699 /* Line 1464 of yacc.c  */
5700 #line 552 "type.y"
5701     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5702     break;
5703
5704   case 84:
5705
5706 /* Line 1464 of yacc.c  */
5707 #line 553 "type.y"
5708     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5709     break;
5710
5711   case 86:
5712
5713 /* Line 1464 of yacc.c  */
5714 #line 558 "type.y"
5715     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5716     break;
5717
5718   case 87:
5719
5720 /* Line 1464 of yacc.c  */
5721 #line 559 "type.y"
5722     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5723     break;
5724
5725   case 89:
5726
5727 /* Line 1464 of yacc.c  */
5728 #line 564 "type.y"
5729     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5730     break;
5731
5732   case 91:
5733
5734 /* Line 1464 of yacc.c  */
5735 #line 569 "type.y"
5736     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5737     break;
5738
5739   case 93:
5740
5741 /* Line 1464 of yacc.c  */
5742 #line 574 "type.y"
5743     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5744     break;
5745
5746   case 95:
5747
5748 /* Line 1464 of yacc.c  */
5749 #line 579 "type.y"
5750     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5751     break;
5752
5753   case 97:
5754
5755 /* Line 1464 of yacc.c  */
5756 #line 584 "type.y"
5757     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5758     break;
5759
5760   case 99:
5761
5762 /* Line 1464 of yacc.c  */
5763 #line 589 "type.y"
5764     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5765     break;
5766
5767   case 101:
5768
5769 /* Line 1464 of yacc.c  */
5770 #line 594 "type.y"
5771     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5772     break;
5773
5774   case 102:
5775
5776 /* Line 1464 of yacc.c  */
5777 #line 595 "type.y"
5778     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5779     break;
5780
5781   case 103:
5782
5783 /* Line 1464 of yacc.c  */
5784 #line 599 "type.y"
5785     { (yyval.i) = '='; ;}
5786     break;
5787
5788   case 104:
5789
5790 /* Line 1464 of yacc.c  */
5791 #line 600 "type.y"
5792     { (yyval.i) = MUL_ASSIGN; ;}
5793     break;
5794
5795   case 105:
5796
5797 /* Line 1464 of yacc.c  */
5798 #line 601 "type.y"
5799     { (yyval.i) = DIV_ASSIGN; ;}
5800     break;
5801
5802   case 106:
5803
5804 /* Line 1464 of yacc.c  */
5805 #line 602 "type.y"
5806     { (yyval.i) = MOD_ASSIGN; ;}
5807     break;
5808
5809   case 107:
5810
5811 /* Line 1464 of yacc.c  */
5812 #line 603 "type.y"
5813     { (yyval.i) = ADD_ASSIGN; ;}
5814     break;
5815
5816   case 108:
5817
5818 /* Line 1464 of yacc.c  */
5819 #line 604 "type.y"
5820     { (yyval.i) = SUB_ASSIGN; ;}
5821     break;
5822
5823   case 109:
5824
5825 /* Line 1464 of yacc.c  */
5826 #line 605 "type.y"
5827     { (yyval.i) = LEFT_ASSIGN; ;}
5828     break;
5829
5830   case 110:
5831
5832 /* Line 1464 of yacc.c  */
5833 #line 606 "type.y"
5834     { (yyval.i) = RIGHT_ASSIGN; ;}
5835     break;
5836
5837   case 111:
5838
5839 /* Line 1464 of yacc.c  */
5840 #line 607 "type.y"
5841     { (yyval.i) = AND_ASSIGN; ;}
5842     break;
5843
5844   case 112:
5845
5846 /* Line 1464 of yacc.c  */
5847 #line 608 "type.y"
5848     { (yyval.i) = XOR_ASSIGN; ;}
5849     break;
5850
5851   case 113:
5852
5853 /* Line 1464 of yacc.c  */
5854 #line 609 "type.y"
5855     { (yyval.i) = OR_ASSIGN; ;}
5856     break;
5857
5858   case 114:
5859
5860 /* Line 1464 of yacc.c  */
5861 #line 613 "type.y"
5862     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5863     break;
5864
5865   case 115:
5866
5867 /* Line 1464 of yacc.c  */
5868 #line 614 "type.y"
5869     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5870     break;
5871
5872   case 117:
5873
5874 /* Line 1464 of yacc.c  */
5875 #line 622 "type.y"
5876     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5877     break;
5878
5879   case 118:
5880
5881 /* Line 1464 of yacc.c  */
5882 #line 623 "type.y"
5883     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5884     break;
5885
5886   case 119:
5887
5888 /* Line 1464 of yacc.c  */
5889 #line 624 "type.y"
5890     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5891     break;
5892
5893   case 120:
5894
5895 /* Line 1464 of yacc.c  */
5896 #line 625 "type.y"
5897     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5898     break;
5899
5900   case 121:
5901
5902 /* Line 1464 of yacc.c  */
5903 #line 629 "type.y"
5904     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5905     break;
5906
5907   case 122:
5908
5909 /* Line 1464 of yacc.c  */
5910 #line 630 "type.y"
5911     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5912     break;
5913
5914   case 123:
5915
5916 /* Line 1464 of yacc.c  */
5917 #line 631 "type.y"
5918     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5919     break;
5920
5921   case 124:
5922
5923 /* Line 1464 of yacc.c  */
5924 #line 632 "type.y"
5925     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5926     break;
5927
5928   case 125:
5929
5930 /* Line 1464 of yacc.c  */
5931 #line 633 "type.y"
5932     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5933     break;
5934
5935   case 126:
5936
5937 /* Line 1464 of yacc.c  */
5938 #line 634 "type.y"
5939     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5940     break;
5941
5942   case 127:
5943
5944 /* Line 1464 of yacc.c  */
5945 #line 635 "type.y"
5946     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5947     break;
5948
5949   case 128:
5950
5951 /* Line 1464 of yacc.c  */
5952 #line 636 "type.y"
5953     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5954     break;
5955
5956   case 129:
5957
5958 /* Line 1464 of yacc.c  */
5959 #line 640 "type.y"
5960     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5961     break;
5962
5963   case 130:
5964
5965 /* Line 1464 of yacc.c  */
5966 #line 641 "type.y"
5967     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5968     break;
5969
5970   case 131:
5971
5972 /* Line 1464 of yacc.c  */
5973 #line 642 "type.y"
5974     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5975     break;
5976
5977   case 132:
5978
5979 /* Line 1464 of yacc.c  */
5980 #line 643 "type.y"
5981     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5982     break;
5983
5984   case 133:
5985
5986 /* Line 1464 of yacc.c  */
5987 #line 644 "type.y"
5988     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5989     break;
5990
5991   case 134:
5992
5993 /* Line 1464 of yacc.c  */
5994 #line 645 "type.y"
5995     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5996     break;
5997
5998   case 135:
5999
6000 /* Line 1464 of yacc.c  */
6001 #line 646 "type.y"
6002     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6003     break;
6004
6005   case 136:
6006
6007 /* Line 1464 of yacc.c  */
6008 #line 647 "type.y"
6009     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6010     break;
6011
6012   case 137:
6013
6014 /* Line 1464 of yacc.c  */
6015 #line 648 "type.y"
6016     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6017     break;
6018
6019   case 138:
6020
6021 /* Line 1464 of yacc.c  */
6022 #line 649 "type.y"
6023     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6024     break;
6025
6026   case 139:
6027
6028 /* Line 1464 of yacc.c  */
6029 #line 653 "type.y"
6030     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6031     break;
6032
6033   case 140:
6034
6035 /* Line 1464 of yacc.c  */
6036 #line 654 "type.y"
6037     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6038     break;
6039
6040   case 141:
6041
6042 /* Line 1464 of yacc.c  */
6043 #line 655 "type.y"
6044     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6045     break;
6046
6047   case 142:
6048
6049 /* Line 1464 of yacc.c  */
6050 #line 656 "type.y"
6051     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6052     break;
6053
6054   case 143:
6055
6056 /* Line 1464 of yacc.c  */
6057 #line 657 "type.y"
6058     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6059     break;
6060
6061   case 144:
6062
6063 /* Line 1464 of yacc.c  */
6064 #line 658 "type.y"
6065     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6066     break;
6067
6068   case 145:
6069
6070 /* Line 1464 of yacc.c  */
6071 #line 659 "type.y"
6072     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6073     break;
6074
6075   case 146:
6076
6077 /* Line 1464 of yacc.c  */
6078 #line 660 "type.y"
6079     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6080     break;
6081
6082   case 147:
6083
6084 /* Line 1464 of yacc.c  */
6085 #line 661 "type.y"
6086     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6087     break;
6088
6089   case 148:
6090
6091 /* Line 1464 of yacc.c  */
6092 #line 662 "type.y"
6093     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6094     break;
6095
6096   case 149:
6097
6098 /* Line 1464 of yacc.c  */
6099 #line 666 "type.y"
6100     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6101     break;
6102
6103   case 150:
6104
6105 /* Line 1464 of yacc.c  */
6106 #line 667 "type.y"
6107     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6108     break;
6109
6110   case 151:
6111
6112 /* Line 1464 of yacc.c  */
6113 #line 668 "type.y"
6114     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6115     break;
6116
6117   case 152:
6118
6119 /* Line 1464 of yacc.c  */
6120 #line 669 "type.y"
6121     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6122     break;
6123
6124   case 153:
6125
6126 /* Line 1464 of yacc.c  */
6127 #line 670 "type.y"
6128     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6129     break;
6130
6131   case 154:
6132
6133 /* Line 1464 of yacc.c  */
6134 #line 671 "type.y"
6135     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6136     break;
6137
6138   case 155:
6139
6140 /* Line 1464 of yacc.c  */
6141 #line 672 "type.y"
6142     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6143     break;
6144
6145   case 156:
6146
6147 /* Line 1464 of yacc.c  */
6148 #line 673 "type.y"
6149     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6150     break;
6151
6152   case 157:
6153
6154 /* Line 1464 of yacc.c  */
6155 #line 674 "type.y"
6156     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6157     break;
6158
6159   case 158:
6160
6161 /* Line 1464 of yacc.c  */
6162 #line 675 "type.y"
6163     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6164     break;
6165
6166   case 159:
6167
6168 /* Line 1464 of yacc.c  */
6169 #line 676 "type.y"
6170     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6171     break;
6172
6173   case 160:
6174
6175 /* Line 1464 of yacc.c  */
6176 #line 677 "type.y"
6177     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6178     break;
6179
6180   case 161:
6181
6182 /* Line 1464 of yacc.c  */
6183 #line 681 "type.y"
6184     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
6185     break;
6186
6187   case 162:
6188
6189 /* Line 1464 of yacc.c  */
6190 #line 682 "type.y"
6191     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6192     break;
6193
6194   case 163:
6195
6196 /* Line 1464 of yacc.c  */
6197 #line 686 "type.y"
6198     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6199     break;
6200
6201   case 164:
6202
6203 /* Line 1464 of yacc.c  */
6204 #line 687 "type.y"
6205     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6206     break;
6207
6208   case 165:
6209
6210 /* Line 1464 of yacc.c  */
6211 #line 688 "type.y"
6212     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6213     break;
6214
6215   case 166:
6216
6217 /* Line 1464 of yacc.c  */
6218 #line 689 "type.y"
6219     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6220     break;
6221
6222   case 167:
6223
6224 /* Line 1464 of yacc.c  */
6225 #line 690 "type.y"
6226     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6227     break;
6228
6229   case 168:
6230
6231 /* Line 1464 of yacc.c  */
6232 #line 691 "type.y"
6233     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6234     break;
6235
6236   case 169:
6237
6238 /* Line 1464 of yacc.c  */
6239 #line 692 "type.y"
6240     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6241     break;
6242
6243   case 170:
6244
6245 /* Line 1464 of yacc.c  */
6246 #line 693 "type.y"
6247     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
6248     break;
6249
6250   case 171:
6251
6252 /* Line 1464 of yacc.c  */
6253 #line 695 "type.y"
6254     {
6255          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
6256
6257          (yyval.list) = MkList();
6258          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6259          FreeIdentifier((yyvsp[(1) - (4)].id));
6260       ;}
6261     break;
6262
6263   case 172:
6264
6265 /* Line 1464 of yacc.c  */
6266 #line 703 "type.y"
6267     {
6268          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
6269          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6270          FreeIdentifier((yyvsp[(2) - (5)].id));
6271       ;}
6272     break;
6273
6274   case 173:
6275
6276 /* Line 1464 of yacc.c  */
6277 #line 711 "type.y"
6278     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6279     break;
6280
6281   case 174:
6282
6283 /* Line 1464 of yacc.c  */
6284 #line 712 "type.y"
6285     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6286     break;
6287
6288   case 175:
6289
6290 /* Line 1464 of yacc.c  */
6291 #line 713 "type.y"
6292     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6293     break;
6294
6295   case 176:
6296
6297 /* Line 1464 of yacc.c  */
6298 #line 714 "type.y"
6299     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6300     break;
6301
6302   case 177:
6303
6304 /* Line 1464 of yacc.c  */
6305 #line 715 "type.y"
6306     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6307     break;
6308
6309   case 178:
6310
6311 /* Line 1464 of yacc.c  */
6312 #line 716 "type.y"
6313     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6314     break;
6315
6316   case 179:
6317
6318 /* Line 1464 of yacc.c  */
6319 #line 717 "type.y"
6320     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6321     break;
6322
6323   case 180:
6324
6325 /* Line 1464 of yacc.c  */
6326 #line 718 "type.y"
6327     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6328     break;
6329
6330   case 181:
6331
6332 /* Line 1464 of yacc.c  */
6333 #line 719 "type.y"
6334     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6335     break;
6336
6337   case 182:
6338
6339 /* Line 1464 of yacc.c  */
6340 #line 720 "type.y"
6341     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6342     break;
6343
6344   case 183:
6345
6346 /* Line 1464 of yacc.c  */
6347 #line 721 "type.y"
6348     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6349     break;
6350
6351   case 184:
6352
6353 /* Line 1464 of yacc.c  */
6354 #line 722 "type.y"
6355     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
6356     break;
6357
6358   case 185:
6359
6360 /* Line 1464 of yacc.c  */
6361 #line 724 "type.y"
6362     {
6363          _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
6364
6365          (yyval.list) = MkList();
6366          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6367          FreeIdentifier((yyvsp[(1) - (4)].id));
6368       ;}
6369     break;
6370
6371   case 186:
6372
6373 /* Line 1464 of yacc.c  */
6374 #line 732 "type.y"
6375     {
6376          _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
6377          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6378          FreeIdentifier((yyvsp[(2) - (5)].id));
6379       ;}
6380     break;
6381
6382   case 187:
6383
6384 /* Line 1464 of yacc.c  */
6385 #line 740 "type.y"
6386     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
6387     break;
6388
6389   case 188:
6390
6391 /* Line 1464 of yacc.c  */
6392 #line 741 "type.y"
6393     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
6394     break;
6395
6396   case 189:
6397
6398 /* Line 1464 of yacc.c  */
6399 #line 745 "type.y"
6400     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
6401     break;
6402
6403   case 190:
6404
6405 /* Line 1464 of yacc.c  */
6406 #line 746 "type.y"
6407     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
6408     break;
6409
6410   case 191:
6411
6412 /* Line 1464 of yacc.c  */
6413 #line 750 "type.y"
6414     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
6415     break;
6416
6417   case 192:
6418
6419 /* Line 1464 of yacc.c  */
6420 #line 751 "type.y"
6421     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
6422     break;
6423
6424   case 193:
6425
6426 /* Line 1464 of yacc.c  */
6427 #line 752 "type.y"
6428     { (yyval.specifier) = MkSpecifier(STATIC); ;}
6429     break;
6430
6431   case 194:
6432
6433 /* Line 1464 of yacc.c  */
6434 #line 753 "type.y"
6435     { (yyval.specifier) = MkSpecifier(AUTO); ;}
6436     break;
6437
6438   case 195:
6439
6440 /* Line 1464 of yacc.c  */
6441 #line 754 "type.y"
6442     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
6443     break;
6444
6445   case 196:
6446
6447 /* Line 1464 of yacc.c  */
6448 #line 755 "type.y"
6449     { (yyval.specifier) = MkSpecifier(THREAD); ;}
6450     break;
6451
6452   case 197:
6453
6454 /* Line 1464 of yacc.c  */
6455 #line 759 "type.y"
6456     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6457     break;
6458
6459   case 198:
6460
6461 /* Line 1464 of yacc.c  */
6462 #line 760 "type.y"
6463     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6464     break;
6465
6466   case 199:
6467
6468 /* Line 1464 of yacc.c  */
6469 #line 761 "type.y"
6470     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
6471     break;
6472
6473   case 200:
6474
6475 /* Line 1464 of yacc.c  */
6476 #line 765 "type.y"
6477     { (yyval.i) = ATTRIB; ;}
6478     break;
6479
6480   case 201:
6481
6482 /* Line 1464 of yacc.c  */
6483 #line 766 "type.y"
6484     { (yyval.i) = ATTRIB_DEP; ;}
6485     break;
6486
6487   case 202:
6488
6489 /* Line 1464 of yacc.c  */
6490 #line 767 "type.y"
6491     { (yyval.i) = __ATTRIB; ;}
6492     break;
6493
6494   case 203:
6495
6496 /* Line 1464 of yacc.c  */
6497 #line 772 "type.y"
6498     { (yyval.string)  = CopyString(yytext); ;}
6499     break;
6500
6501   case 204:
6502
6503 /* Line 1464 of yacc.c  */
6504 #line 773 "type.y"
6505     { (yyval.string)  = CopyString(yytext); ;}
6506     break;
6507
6508   case 205:
6509
6510 /* Line 1464 of yacc.c  */
6511 #line 774 "type.y"
6512     { (yyval.string)  = CopyString(yytext); ;}
6513     break;
6514
6515   case 206:
6516
6517 /* Line 1464 of yacc.c  */
6518 #line 775 "type.y"
6519     { (yyval.string)  = CopyString(yytext); ;}
6520     break;
6521
6522   case 207:
6523
6524 /* Line 1464 of yacc.c  */
6525 #line 776 "type.y"
6526     { (yyval.string)  = CopyString(yytext); ;}
6527     break;
6528
6529   case 208:
6530
6531 /* Line 1464 of yacc.c  */
6532 #line 780 "type.y"
6533     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
6534     break;
6535
6536   case 209:
6537
6538 /* Line 1464 of yacc.c  */
6539 #line 781 "type.y"
6540     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
6541     break;
6542
6543   case 210:
6544
6545 /* Line 1464 of yacc.c  */
6546 #line 785 "type.y"
6547     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
6548     break;
6549
6550   case 211:
6551
6552 /* Line 1464 of yacc.c  */
6553 #line 786 "type.y"
6554     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
6555     break;
6556
6557   case 212:
6558
6559 /* Line 1464 of yacc.c  */
6560 #line 787 "type.y"
6561     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
6562     break;
6563
6564   case 213:
6565
6566 /* Line 1464 of yacc.c  */
6567 #line 791 "type.y"
6568     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
6569     break;
6570
6571   case 214:
6572
6573 /* Line 1464 of yacc.c  */
6574 #line 792 "type.y"
6575     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
6576     break;
6577
6578   case 215:
6579
6580 /* Line 1464 of yacc.c  */
6581 #line 796 "type.y"
6582     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
6583     break;
6584
6585   case 216:
6586
6587 /* Line 1464 of yacc.c  */
6588 #line 800 "type.y"
6589     { (yyval.specifier) = MkSpecifier(CONST); ;}
6590     break;
6591
6592   case 217:
6593
6594 /* Line 1464 of yacc.c  */
6595 #line 801 "type.y"
6596     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
6597     break;
6598
6599   case 218:
6600
6601 /* Line 1464 of yacc.c  */
6602 #line 802 "type.y"
6603     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
6604     break;
6605
6606   case 219:
6607
6608 /* Line 1464 of yacc.c  */
6609 #line 807 "type.y"
6610     { (yyval.specifier) = MkSpecifier(VOID); ;}
6611     break;
6612
6613   case 220:
6614
6615 /* Line 1464 of yacc.c  */
6616 #line 808 "type.y"
6617     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6618     break;
6619
6620   case 221:
6621
6622 /* Line 1464 of yacc.c  */
6623 #line 809 "type.y"
6624     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6625     break;
6626
6627   case 222:
6628
6629 /* Line 1464 of yacc.c  */
6630 #line 810 "type.y"
6631     { (yyval.specifier) = MkSpecifier(INT); ;}
6632     break;
6633
6634   case 223:
6635
6636 /* Line 1464 of yacc.c  */
6637 #line 811 "type.y"
6638     { (yyval.specifier) = MkSpecifier(UINT); ;}
6639     break;
6640
6641   case 224:
6642
6643 /* Line 1464 of yacc.c  */
6644 #line 812 "type.y"
6645     { (yyval.specifier) = MkSpecifier(INT64); ;}
6646     break;
6647
6648   case 225:
6649
6650 /* Line 1464 of yacc.c  */
6651 #line 813 "type.y"
6652     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6653     break;
6654
6655   case 226:
6656
6657 /* Line 1464 of yacc.c  */
6658 #line 814 "type.y"
6659     { (yyval.specifier) = MkSpecifier(LONG); ;}
6660     break;
6661
6662   case 227:
6663
6664 /* Line 1464 of yacc.c  */
6665 #line 815 "type.y"
6666     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6667     break;
6668
6669   case 228:
6670
6671 /* Line 1464 of yacc.c  */
6672 #line 816 "type.y"
6673     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6674     break;
6675
6676   case 229:
6677
6678 /* Line 1464 of yacc.c  */
6679 #line 817 "type.y"
6680     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6681     break;
6682
6683   case 230:
6684
6685 /* Line 1464 of yacc.c  */
6686 #line 818 "type.y"
6687     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6688     break;
6689
6690   case 231:
6691
6692 /* Line 1464 of yacc.c  */
6693 #line 819 "type.y"
6694     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6695     break;
6696
6697   case 232:
6698
6699 /* Line 1464 of yacc.c  */
6700 #line 820 "type.y"
6701     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
6702     break;
6703
6704   case 233:
6705
6706 /* Line 1464 of yacc.c  */
6707 #line 821 "type.y"
6708     { (yyval.specifier) = MkSpecifier(BOOL); ;}
6709     break;
6710
6711   case 237:
6712
6713 /* Line 1464 of yacc.c  */
6714 #line 825 "type.y"
6715     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6716     break;
6717
6718   case 238:
6719
6720 /* Line 1464 of yacc.c  */
6721 #line 826 "type.y"
6722     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6723     break;
6724
6725   case 239:
6726
6727 /* Line 1464 of yacc.c  */
6728 #line 827 "type.y"
6729     { _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)); ;}
6730     break;
6731
6732   case 240:
6733
6734 /* Line 1464 of yacc.c  */
6735 #line 828 "type.y"
6736     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6737     break;
6738
6739   case 241:
6740
6741 /* Line 1464 of yacc.c  */
6742 #line 829 "type.y"
6743     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
6744     break;
6745
6746   case 242:
6747
6748 /* Line 1464 of yacc.c  */
6749 #line 830 "type.y"
6750     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
6751     break;
6752
6753   case 243:
6754
6755 /* Line 1464 of yacc.c  */
6756 #line 834 "type.y"
6757     { (yyval.specifier) = MkSpecifier(VOID); ;}
6758     break;
6759
6760   case 244:
6761
6762 /* Line 1464 of yacc.c  */
6763 #line 835 "type.y"
6764     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6765     break;
6766
6767   case 245:
6768
6769 /* Line 1464 of yacc.c  */
6770 #line 836 "type.y"
6771     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6772     break;
6773
6774   case 246:
6775
6776 /* Line 1464 of yacc.c  */
6777 #line 837 "type.y"
6778     { (yyval.specifier) = MkSpecifier(INT); ;}
6779     break;
6780
6781   case 247:
6782
6783 /* Line 1464 of yacc.c  */
6784 #line 838 "type.y"
6785     { (yyval.specifier) = MkSpecifier(UINT); ;}
6786     break;
6787
6788   case 248:
6789
6790 /* Line 1464 of yacc.c  */
6791 #line 839 "type.y"
6792     { (yyval.specifier) = MkSpecifier(INT64); ;}
6793     break;
6794
6795   case 249:
6796
6797 /* Line 1464 of yacc.c  */
6798 #line 840 "type.y"
6799     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6800     break;
6801
6802   case 250:
6803
6804 /* Line 1464 of yacc.c  */
6805 #line 841 "type.y"
6806     { (yyval.specifier) = MkSpecifier(LONG); ;}
6807     break;
6808
6809   case 251:
6810
6811 /* Line 1464 of yacc.c  */
6812 #line 842 "type.y"
6813     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6814     break;
6815
6816   case 252:
6817
6818 /* Line 1464 of yacc.c  */
6819 #line 843 "type.y"
6820     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6821     break;
6822
6823   case 253:
6824
6825 /* Line 1464 of yacc.c  */
6826 #line 844 "type.y"
6827     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6828     break;
6829
6830   case 254:
6831
6832 /* Line 1464 of yacc.c  */
6833 #line 845 "type.y"
6834     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6835     break;
6836
6837   case 255:
6838
6839 /* Line 1464 of yacc.c  */
6840 #line 846 "type.y"
6841     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6842     break;
6843
6844   case 256:
6845
6846 /* Line 1464 of yacc.c  */
6847 #line 847 "type.y"
6848     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
6849     break;
6850
6851   case 257:
6852
6853 /* Line 1464 of yacc.c  */
6854 #line 848 "type.y"
6855     { (yyval.specifier) = MkSpecifier(BOOL); ;}
6856     break;
6857
6858   case 261:
6859
6860 /* Line 1464 of yacc.c  */
6861 #line 852 "type.y"
6862     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6863     break;
6864
6865   case 262:
6866
6867 /* Line 1464 of yacc.c  */
6868 #line 853 "type.y"
6869     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6870     break;
6871
6872   case 263:
6873
6874 /* Line 1464 of yacc.c  */
6875 #line 854 "type.y"
6876     { _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)); ;}
6877     break;
6878
6879   case 264:
6880
6881 /* Line 1464 of yacc.c  */
6882 #line 855 "type.y"
6883     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6884     break;
6885
6886   case 265:
6887
6888 /* Line 1464 of yacc.c  */
6889 #line 860 "type.y"
6890     { (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); ;}
6891     break;
6892
6893   case 266:
6894
6895 /* Line 1464 of yacc.c  */
6896 #line 861 "type.y"
6897     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
6898     break;
6899
6900   case 267:
6901
6902 /* Line 1464 of yacc.c  */
6903 #line 862 "type.y"
6904     { (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); ;}
6905     break;
6906
6907   case 268:
6908
6909 /* Line 1464 of yacc.c  */
6910 #line 863 "type.y"
6911     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
6912     break;
6913
6914   case 269:
6915
6916 /* Line 1464 of yacc.c  */
6917 #line 865 "type.y"
6918     { (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)); ;}
6919     break;
6920
6921   case 270:
6922
6923 /* Line 1464 of yacc.c  */
6924 #line 867 "type.y"
6925     { (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); ;}
6926     break;
6927
6928   case 271:
6929
6930 /* Line 1464 of yacc.c  */
6931 #line 868 "type.y"
6932     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
6933     break;
6934
6935   case 272:
6936
6937 /* Line 1464 of yacc.c  */
6938 #line 869 "type.y"
6939     { (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); ;}
6940     break;
6941
6942   case 273:
6943
6944 /* Line 1464 of yacc.c  */
6945 #line 870 "type.y"
6946     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
6947     break;
6948
6949   case 274:
6950
6951 /* Line 1464 of yacc.c  */
6952 #line 872 "type.y"
6953     { (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)); ;}
6954     break;
6955
6956   case 275:
6957
6958 /* Line 1464 of yacc.c  */
6959 #line 876 "type.y"
6960     { (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); ;}
6961     break;
6962
6963   case 276:
6964
6965 /* Line 1464 of yacc.c  */
6966 #line 878 "type.y"
6967     { (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)); ;}
6968     break;
6969
6970   case 277:
6971
6972 /* Line 1464 of yacc.c  */
6973 #line 881 "type.y"
6974     { (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); ;}
6975     break;
6976
6977   case 278:
6978
6979 /* Line 1464 of yacc.c  */
6980 #line 883 "type.y"
6981     { (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)); ;}
6982     break;
6983
6984   case 279:
6985
6986 /* Line 1464 of yacc.c  */
6987 #line 887 "type.y"
6988     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
6989     break;
6990
6991   case 280:
6992
6993 /* Line 1464 of yacc.c  */
6994 #line 888 "type.y"
6995     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6996     break;
6997
6998   case 281:
6999
7000 /* Line 1464 of yacc.c  */
7001 #line 893 "type.y"
7002     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
7003     break;
7004
7005   case 282:
7006
7007 /* Line 1464 of yacc.c  */
7008 #line 894 "type.y"
7009     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
7010     break;
7011
7012   case 283:
7013
7014 /* Line 1464 of yacc.c  */
7015 #line 905 "type.y"
7016     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
7017     break;
7018
7019   case 286:
7020
7021 /* Line 1464 of yacc.c  */
7022 #line 912 "type.y"
7023     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
7024     break;
7025
7026   case 287:
7027
7028 /* Line 1464 of yacc.c  */
7029 #line 914 "type.y"
7030     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
7031     break;
7032
7033   case 288:
7034
7035 /* Line 1464 of yacc.c  */
7036 #line 916 "type.y"
7037     {
7038       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
7039       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7040       {
7041          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7042          if(spec.type == nameSpecifier)
7043             (yyval.templateArgument).name = MkIdentifier(spec.name);
7044       }
7045       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7046       (yyval.templateArgument).loc = (yyloc);
7047    ;}
7048     break;
7049
7050   case 289:
7051
7052 /* Line 1464 of yacc.c  */
7053 #line 940 "type.y"
7054     {
7055       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
7056       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7057       {
7058          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7059          if(spec.type == nameSpecifier)
7060             (yyval.templateArgument).name = MkIdentifier(spec.name);
7061       }
7062       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7063       (yyval.templateArgument).loc = (yyloc);
7064    ;}
7065     break;
7066
7067   case 290:
7068
7069 /* Line 1464 of yacc.c  */
7070 #line 954 "type.y"
7071     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
7072     break;
7073
7074   case 291:
7075
7076 /* Line 1464 of yacc.c  */
7077 #line 955 "type.y"
7078     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
7079     break;
7080
7081   case 292:
7082
7083 /* Line 1464 of yacc.c  */
7084 #line 959 "type.y"
7085     { (yyval.specifierType) = structSpecifier; ;}
7086     break;
7087
7088   case 293:
7089
7090 /* Line 1464 of yacc.c  */
7091 #line 960 "type.y"
7092     { (yyval.specifierType) = unionSpecifier; ;}
7093     break;
7094
7095   case 294:
7096
7097 /* Line 1464 of yacc.c  */
7098 #line 964 "type.y"
7099     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
7100     break;
7101
7102   case 295:
7103
7104 /* Line 1464 of yacc.c  */
7105 #line 965 "type.y"
7106     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
7107     break;
7108
7109   case 296:
7110
7111 /* Line 1464 of yacc.c  */
7112 #line 969 "type.y"
7113     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
7114     break;
7115
7116   case 297:
7117
7118 /* Line 1464 of yacc.c  */
7119 #line 973 "type.y"
7120     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
7121     break;
7122
7123   case 298:
7124
7125 /* Line 1464 of yacc.c  */
7126 #line 974 "type.y"
7127     { ((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); ;}
7128     break;
7129
7130   case 299:
7131
7132 /* Line 1464 of yacc.c  */
7133 #line 979 "type.y"
7134     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7135     break;
7136
7137   case 300:
7138
7139 /* Line 1464 of yacc.c  */
7140 #line 981 "type.y"
7141     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7142     break;
7143
7144   case 301:
7145
7146 /* Line 1464 of yacc.c  */
7147 #line 983 "type.y"
7148     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7149     break;
7150
7151   case 302:
7152
7153 /* Line 1464 of yacc.c  */
7154 #line 985 "type.y"
7155     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7156     break;
7157
7158   case 303:
7159
7160 /* Line 1464 of yacc.c  */
7161 #line 987 "type.y"
7162     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7163     break;
7164
7165   case 304:
7166
7167 /* Line 1464 of yacc.c  */
7168 #line 990 "type.y"
7169     { (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); ;}
7170     break;
7171
7172   case 305:
7173
7174 /* Line 1464 of yacc.c  */
7175 #line 992 "type.y"
7176     { (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); ;}
7177     break;
7178
7179   case 306:
7180
7181 /* Line 1464 of yacc.c  */
7182 #line 994 "type.y"
7183     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7184     break;
7185
7186   case 307:
7187
7188 /* Line 1464 of yacc.c  */
7189 #line 996 "type.y"
7190     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7191     break;
7192
7193   case 308:
7194
7195 /* Line 1464 of yacc.c  */
7196 #line 998 "type.y"
7197     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7198     break;
7199
7200   case 309:
7201
7202 /* Line 1464 of yacc.c  */
7203 #line 1001 "type.y"
7204     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7205     break;
7206
7207   case 310:
7208
7209 /* Line 1464 of yacc.c  */
7210 #line 1003 "type.y"
7211     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7212     break;
7213
7214   case 311:
7215
7216 /* Line 1464 of yacc.c  */
7217 #line 1005 "type.y"
7218     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7219     break;
7220
7221   case 312:
7222
7223 /* Line 1464 of yacc.c  */
7224 #line 1007 "type.y"
7225     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
7226     break;
7227
7228   case 313:
7229
7230 /* Line 1464 of yacc.c  */
7231 #line 1009 "type.y"
7232     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
7233     break;
7234
7235   case 314:
7236
7237 /* Line 1464 of yacc.c  */
7238 #line 1012 "type.y"
7239     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7240     break;
7241
7242   case 315:
7243
7244 /* Line 1464 of yacc.c  */
7245 #line 1014 "type.y"
7246     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7247     break;
7248
7249   case 316:
7250
7251 /* Line 1464 of yacc.c  */
7252 #line 1016 "type.y"
7253     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7254     break;
7255
7256   case 317:
7257
7258 /* Line 1464 of yacc.c  */
7259 #line 1018 "type.y"
7260     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7261     break;
7262
7263   case 318:
7264
7265 /* Line 1464 of yacc.c  */
7266 #line 1020 "type.y"
7267     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
7268     break;
7269
7270   case 319:
7271
7272 /* Line 1464 of yacc.c  */
7273 #line 1024 "type.y"
7274     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7275     break;
7276
7277   case 320:
7278
7279 /* Line 1464 of yacc.c  */
7280 #line 1025 "type.y"
7281     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7282     break;
7283
7284   case 321:
7285
7286 /* Line 1464 of yacc.c  */
7287 #line 1026 "type.y"
7288     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7289     break;
7290
7291   case 322:
7292
7293 /* Line 1464 of yacc.c  */
7294 #line 1027 "type.y"
7295     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7296     break;
7297
7298   case 323:
7299
7300 /* Line 1464 of yacc.c  */
7301 #line 1028 "type.y"
7302     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
7303     break;
7304
7305   case 324:
7306
7307 /* Line 1464 of yacc.c  */
7308 #line 1029 "type.y"
7309     { (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); ;}
7310     break;
7311
7312   case 325:
7313
7314 /* Line 1464 of yacc.c  */
7315 #line 1030 "type.y"
7316     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
7317     break;
7318
7319   case 326:
7320
7321 /* Line 1464 of yacc.c  */
7322 #line 1031 "type.y"
7323     { (yyval.classDef) = null; ;}
7324     break;
7325
7326   case 327:
7327
7328 /* Line 1464 of yacc.c  */
7329 #line 1036 "type.y"
7330     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
7331     break;
7332
7333   case 328:
7334
7335 /* Line 1464 of yacc.c  */
7336 #line 1038 "type.y"
7337     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
7338     break;
7339
7340   case 329:
7341
7342 /* Line 1464 of yacc.c  */
7343 #line 1043 "type.y"
7344     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
7345     break;
7346
7347   case 330:
7348
7349 /* Line 1464 of yacc.c  */
7350 #line 1045 "type.y"
7351     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
7352     break;
7353
7354   case 331:
7355
7356 /* Line 1464 of yacc.c  */
7357 #line 1047 "type.y"
7358     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
7359     break;
7360
7361   case 332:
7362
7363 /* Line 1464 of yacc.c  */
7364 #line 1049 "type.y"
7365     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
7366     break;
7367
7368   case 333:
7369
7370 /* Line 1464 of yacc.c  */
7371 #line 1051 "type.y"
7372     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
7373     break;
7374
7375   case 334:
7376
7377 /* Line 1464 of yacc.c  */
7378 #line 1055 "type.y"
7379     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
7380     break;
7381
7382   case 335:
7383
7384 /* Line 1464 of yacc.c  */
7385 #line 1056 "type.y"
7386     { (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)); ;}
7387     break;
7388
7389   case 336:
7390
7391 /* Line 1464 of yacc.c  */
7392 #line 1061 "type.y"
7393     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
7394     break;
7395
7396   case 337:
7397
7398 /* Line 1464 of yacc.c  */
7399 #line 1062 "type.y"
7400     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); ;}
7401     break;
7402
7403   case 338:
7404
7405 /* Line 1464 of yacc.c  */
7406 #line 1063 "type.y"
7407     { (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); ;}
7408     break;
7409
7410   case 339:
7411
7412 /* Line 1464 of yacc.c  */
7413 #line 1064 "type.y"
7414     { (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)); ;}
7415     break;
7416
7417   case 340:
7418
7419 /* Line 1464 of yacc.c  */
7420 #line 1065 "type.y"
7421     { (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)); ;}
7422     break;
7423
7424   case 341:
7425
7426 /* Line 1464 of yacc.c  */
7427 #line 1070 "type.y"
7428     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
7429     break;
7430
7431   case 342:
7432
7433 /* Line 1464 of yacc.c  */
7434 #line 1072 "type.y"
7435     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
7436     break;
7437
7438   case 343:
7439
7440 /* Line 1464 of yacc.c  */
7441 #line 1077 "type.y"
7442     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
7443     break;
7444
7445   case 344:
7446
7447 /* Line 1464 of yacc.c  */
7448 #line 1079 "type.y"
7449     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
7450     break;
7451
7452   case 345:
7453
7454 /* Line 1464 of yacc.c  */
7455 #line 1085 "type.y"
7456     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7457     break;
7458
7459   case 346:
7460
7461 /* Line 1464 of yacc.c  */
7462 #line 1087 "type.y"
7463     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
7464     break;
7465
7466   case 347:
7467
7468 /* Line 1464 of yacc.c  */
7469 #line 1089 "type.y"
7470     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
7471     break;
7472
7473   case 348:
7474
7475 /* Line 1464 of yacc.c  */
7476 #line 1091 "type.y"
7477     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
7478     break;
7479
7480   case 349:
7481
7482 /* Line 1464 of yacc.c  */
7483 #line 1093 "type.y"
7484     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7485     break;
7486
7487   case 350:
7488
7489 /* Line 1464 of yacc.c  */
7490 #line 1095 "type.y"
7491     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7492     break;
7493
7494   case 351:
7495
7496 /* Line 1464 of yacc.c  */
7497 #line 1097 "type.y"
7498     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7499     break;
7500
7501   case 352:
7502
7503 /* Line 1464 of yacc.c  */
7504 #line 1099 "type.y"
7505     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7506     break;
7507
7508   case 353:
7509
7510 /* Line 1464 of yacc.c  */
7511 #line 1101 "type.y"
7512     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7513     break;
7514
7515   case 354:
7516
7517 /* Line 1464 of yacc.c  */
7518 #line 1103 "type.y"
7519     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7520     break;
7521
7522   case 355:
7523
7524 /* Line 1464 of yacc.c  */
7525 #line 1105 "type.y"
7526     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7527     break;
7528
7529   case 356:
7530
7531 /* Line 1464 of yacc.c  */
7532 #line 1110 "type.y"
7533     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7534     break;
7535
7536   case 357:
7537
7538 /* Line 1464 of yacc.c  */
7539 #line 1112 "type.y"
7540     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7541     break;
7542
7543   case 358:
7544
7545 /* Line 1464 of yacc.c  */
7546 #line 1114 "type.y"
7547     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7548     break;
7549
7550   case 359:
7551
7552 /* Line 1464 of yacc.c  */
7553 #line 1116 "type.y"
7554     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7555     break;
7556
7557   case 360:
7558
7559 /* Line 1464 of yacc.c  */
7560 #line 1118 "type.y"
7561     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7562     break;
7563
7564   case 361:
7565
7566 /* Line 1464 of yacc.c  */
7567 #line 1122 "type.y"
7568     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7569     break;
7570
7571   case 363:
7572
7573 /* Line 1464 of yacc.c  */
7574 #line 1124 "type.y"
7575     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7576     break;
7577
7578   case 364:
7579
7580 /* Line 1464 of yacc.c  */
7581 #line 1125 "type.y"
7582     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7583     break;
7584
7585   case 365:
7586
7587 /* Line 1464 of yacc.c  */
7588 #line 1126 "type.y"
7589     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7590     break;
7591
7592   case 366:
7593
7594 /* Line 1464 of yacc.c  */
7595 #line 1127 "type.y"
7596     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7597     break;
7598
7599   case 367:
7600
7601 /* Line 1464 of yacc.c  */
7602 #line 1131 "type.y"
7603     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7604     break;
7605
7606   case 369:
7607
7608 /* Line 1464 of yacc.c  */
7609 #line 1133 "type.y"
7610     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7611     break;
7612
7613   case 370:
7614
7615 /* Line 1464 of yacc.c  */
7616 #line 1134 "type.y"
7617     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7618     break;
7619
7620   case 371:
7621
7622 /* Line 1464 of yacc.c  */
7623 #line 1135 "type.y"
7624     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7625     break;
7626
7627   case 372:
7628
7629 /* Line 1464 of yacc.c  */
7630 #line 1136 "type.y"
7631     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7632     break;
7633
7634   case 374:
7635
7636 /* Line 1464 of yacc.c  */
7637 #line 1184 "type.y"
7638     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7639     break;
7640
7641   case 375:
7642
7643 /* Line 1464 of yacc.c  */
7644 #line 1186 "type.y"
7645     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7646     break;
7647
7648   case 376:
7649
7650 /* Line 1464 of yacc.c  */
7651 #line 1188 "type.y"
7652     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
7653     break;
7654
7655   case 377:
7656
7657 /* Line 1464 of yacc.c  */
7658 #line 1193 "type.y"
7659     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
7660     break;
7661
7662   case 378:
7663
7664 /* Line 1464 of yacc.c  */
7665 #line 1195 "type.y"
7666     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7667     break;
7668
7669   case 379:
7670
7671 /* Line 1464 of yacc.c  */
7672 #line 1197 "type.y"
7673     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7674     break;
7675
7676   case 380:
7677
7678 /* Line 1464 of yacc.c  */
7679 #line 1199 "type.y"
7680     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7681     break;
7682
7683   case 381:
7684
7685 /* Line 1464 of yacc.c  */
7686 #line 1201 "type.y"
7687     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7688     break;
7689
7690   case 383:
7691
7692 /* Line 1464 of yacc.c  */
7693 #line 1207 "type.y"
7694     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7695     break;
7696
7697   case 384:
7698
7699 /* Line 1464 of yacc.c  */
7700 #line 1210 "type.y"
7701     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7702     break;
7703
7704   case 385:
7705
7706 /* Line 1464 of yacc.c  */
7707 #line 1212 "type.y"
7708     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7709     break;
7710
7711   case 386:
7712
7713 /* Line 1464 of yacc.c  */
7714 #line 1214 "type.y"
7715     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7716     break;
7717
7718   case 388:
7719
7720 /* Line 1464 of yacc.c  */
7721 #line 1224 "type.y"
7722     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7723     break;
7724
7725   case 389:
7726
7727 /* Line 1464 of yacc.c  */
7728 #line 1226 "type.y"
7729     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7730     break;
7731
7732   case 390:
7733
7734 /* Line 1464 of yacc.c  */
7735 #line 1228 "type.y"
7736     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
7737     break;
7738
7739   case 393:
7740
7741 /* Line 1464 of yacc.c  */
7742 #line 1235 "type.y"
7743     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7744     break;
7745
7746   case 394:
7747
7748 /* Line 1464 of yacc.c  */
7749 #line 1237 "type.y"
7750     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7751     break;
7752
7753   case 396:
7754
7755 /* Line 1464 of yacc.c  */
7756 #line 1242 "type.y"
7757     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7758     break;
7759
7760   case 397:
7761
7762 /* Line 1464 of yacc.c  */
7763 #line 1243 "type.y"
7764     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7765     break;
7766
7767   case 398:
7768
7769 /* Line 1464 of yacc.c  */
7770 #line 1244 "type.y"
7771     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7772     break;
7773
7774   case 399:
7775
7776 /* Line 1464 of yacc.c  */
7777 #line 1245 "type.y"
7778     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7779     break;
7780
7781   case 400:
7782
7783 /* Line 1464 of yacc.c  */
7784 #line 1249 "type.y"
7785     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
7786     break;
7787
7788   case 401:
7789
7790 /* Line 1464 of yacc.c  */
7791 #line 1250 "type.y"
7792     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
7793     break;
7794
7795   case 402:
7796
7797 /* Line 1464 of yacc.c  */
7798 #line 1254 "type.y"
7799     { (yyval.pointer) = MkPointer(null, null); ;}
7800     break;
7801
7802   case 403:
7803
7804 /* Line 1464 of yacc.c  */
7805 #line 1255 "type.y"
7806     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
7807     break;
7808
7809   case 404:
7810
7811 /* Line 1464 of yacc.c  */
7812 #line 1256 "type.y"
7813     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
7814     break;
7815
7816   case 405:
7817
7818 /* Line 1464 of yacc.c  */
7819 #line 1257 "type.y"
7820     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
7821     break;
7822
7823   case 407:
7824
7825 /* Line 1464 of yacc.c  */
7826 #line 1262 "type.y"
7827     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
7828     break;
7829
7830   case 408:
7831
7832 /* Line 1464 of yacc.c  */
7833 #line 1266 "type.y"
7834     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
7835     break;
7836
7837   case 409:
7838
7839 /* Line 1464 of yacc.c  */
7840 #line 1267 "type.y"
7841     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
7842     break;
7843
7844   case 410:
7845
7846 /* Line 1464 of yacc.c  */
7847 #line 1271 "type.y"
7848     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7849     break;
7850
7851   case 411:
7852
7853 /* Line 1464 of yacc.c  */
7854 #line 1272 "type.y"
7855     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7856     break;
7857
7858   case 412:
7859
7860 /* Line 1464 of yacc.c  */
7861 #line 1273 "type.y"
7862     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
7863     break;
7864
7865   case 413:
7866
7867 /* Line 1464 of yacc.c  */
7868 #line 1274 "type.y"
7869     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
7870     break;
7871
7872   case 414:
7873
7874 /* Line 1464 of yacc.c  */
7875 #line 1275 "type.y"
7876     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7877     break;
7878
7879   case 415:
7880
7881 /* Line 1464 of yacc.c  */
7882 #line 1287 "type.y"
7883     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
7884     break;
7885
7886   case 416:
7887
7888 /* Line 1464 of yacc.c  */
7889 #line 1311 "type.y"
7890     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
7891     break;
7892
7893   case 417:
7894
7895 /* Line 1464 of yacc.c  */
7896 #line 1312 "type.y"
7897     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
7898     break;
7899
7900   case 418:
7901
7902 /* Line 1464 of yacc.c  */
7903 #line 1316 "type.y"
7904     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7905     break;
7906
7907   case 419:
7908
7909 /* Line 1464 of yacc.c  */
7910 #line 1317 "type.y"
7911     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7912     break;
7913
7914   case 420:
7915
7916 /* Line 1464 of yacc.c  */
7917 #line 1321 "type.y"
7918     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7919     break;
7920
7921   case 421:
7922
7923 /* Line 1464 of yacc.c  */
7924 #line 1322 "type.y"
7925     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7926     break;
7927
7928   case 422:
7929
7930 /* Line 1464 of yacc.c  */
7931 #line 1327 "type.y"
7932     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7933     break;
7934
7935   case 423:
7936
7937 /* Line 1464 of yacc.c  */
7938 #line 1329 "type.y"
7939     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
7940     break;
7941
7942   case 424:
7943
7944 /* Line 1464 of yacc.c  */
7945 #line 1331 "type.y"
7946     {
7947          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
7948          (yyval.initializer).loc = (yyloc);
7949
7950          {
7951             Expression exp = MkExpDummy();
7952             Initializer init = MkInitializerAssignment(exp);
7953             init.loc = (yylsp[(3) - (4)]);
7954             exp.loc = (yylsp[(3) - (4)]);
7955             ListAdd((yyvsp[(2) - (4)].list), init);
7956          }
7957       ;}
7958     break;
7959
7960   case 425:
7961
7962 /* Line 1464 of yacc.c  */
7963 #line 1347 "type.y"
7964     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7965     break;
7966
7967   case 426:
7968
7969 /* Line 1464 of yacc.c  */
7970 #line 1349 "type.y"
7971     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7972     break;
7973
7974   case 427:
7975
7976 /* Line 1464 of yacc.c  */
7977 #line 1371 "type.y"
7978     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
7979     break;
7980
7981   case 428:
7982
7983 /* Line 1464 of yacc.c  */
7984 #line 1373 "type.y"
7985     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
7986     break;
7987
7988   case 435:
7989
7990 /* Line 1464 of yacc.c  */
7991 #line 1387 "type.y"
7992     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7993     break;
7994
7995   case 436:
7996
7997 /* Line 1464 of yacc.c  */
7998 #line 1389 "type.y"
7999     { (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; ;}
8000     break;
8001
8002   case 437:
8003
8004 /* Line 1464 of yacc.c  */
8005 #line 1391 "type.y"
8006     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8007     break;
8008
8009   case 438:
8010
8011 /* Line 1464 of yacc.c  */
8012 #line 1395 "type.y"
8013     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
8014     break;
8015
8016   case 439:
8017
8018 /* Line 1464 of yacc.c  */
8019 #line 1396 "type.y"
8020     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
8021     break;
8022
8023   case 440:
8024
8025 /* Line 1464 of yacc.c  */
8026 #line 1400 "type.y"
8027     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
8028     break;
8029
8030   case 441:
8031
8032 /* Line 1464 of yacc.c  */
8033 #line 1401 "type.y"
8034     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
8035     break;
8036
8037   case 442:
8038
8039 /* Line 1464 of yacc.c  */
8040 #line 1404 "type.y"
8041     { 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); ;}
8042     break;
8043
8044   case 443:
8045
8046 /* Line 1464 of yacc.c  */
8047 #line 1408 "type.y"
8048     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
8049     break;
8050
8051   case 444:
8052
8053 /* Line 1464 of yacc.c  */
8054 #line 1409 "type.y"
8055     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
8056     break;
8057
8058   case 445:
8059
8060 /* Line 1464 of yacc.c  */
8061 #line 1410 "type.y"
8062     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
8063     break;
8064
8065   case 446:
8066
8067 /* Line 1464 of yacc.c  */
8068 #line 1414 "type.y"
8069     { (yyval.context) = PushContext(); ;}
8070     break;
8071
8072   case 447:
8073
8074 /* Line 1464 of yacc.c  */
8075 #line 1419 "type.y"
8076     {
8077       (yyval.stmt) = MkCompoundStmt(null, null);
8078       (yyval.stmt).compound.context = PushContext();
8079       PopContext((yyval.stmt).compound.context);
8080       (yyval.stmt).loc = (yyloc);
8081    ;}
8082     break;
8083
8084   case 448:
8085
8086 /* Line 1464 of yacc.c  */
8087 #line 1427 "type.y"
8088     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
8089     break;
8090
8091   case 449:
8092
8093 /* Line 1464 of yacc.c  */
8094 #line 1431 "type.y"
8095     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
8096     break;
8097
8098   case 450:
8099
8100 /* Line 1464 of yacc.c  */
8101 #line 1432 "type.y"
8102     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
8103     break;
8104
8105   case 451:
8106
8107 /* Line 1464 of yacc.c  */
8108 #line 1436 "type.y"
8109     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
8110     break;
8111
8112   case 452:
8113
8114 /* Line 1464 of yacc.c  */
8115 #line 1437 "type.y"
8116     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8117     break;
8118
8119   case 453:
8120
8121 /* Line 1464 of yacc.c  */
8122 #line 1438 "type.y"
8123     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8124     break;
8125
8126   case 454:
8127
8128 /* Line 1464 of yacc.c  */
8129 #line 1442 "type.y"
8130     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8131     break;
8132
8133   case 455:
8134
8135 /* Line 1464 of yacc.c  */
8136 #line 1443 "type.y"
8137     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
8138     break;
8139
8140   case 456:
8141
8142 /* Line 1464 of yacc.c  */
8143 #line 1444 "type.y"
8144     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8145     break;
8146
8147   case 457:
8148
8149 /* Line 1464 of yacc.c  */
8150 #line 1445 "type.y"
8151     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8152     break;
8153
8154   case 458:
8155
8156 /* Line 1464 of yacc.c  */
8157 #line 1447 "type.y"
8158     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8159     break;
8160
8161   case 459:
8162
8163 /* Line 1464 of yacc.c  */
8164 #line 1448 "type.y"
8165     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8166     break;
8167
8168   case 460:
8169
8170 /* Line 1464 of yacc.c  */
8171 #line 1449 "type.y"
8172     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8173     break;
8174
8175   case 461:
8176
8177 /* Line 1464 of yacc.c  */
8178 #line 1453 "type.y"
8179     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
8180     break;
8181
8182   case 462:
8183
8184 /* Line 1464 of yacc.c  */
8185 #line 1454 "type.y"
8186     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
8187     break;
8188
8189   case 463:
8190
8191 /* Line 1464 of yacc.c  */
8192 #line 1455 "type.y"
8193     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
8194     break;
8195
8196   case 464:
8197
8198 /* Line 1464 of yacc.c  */
8199 #line 1456 "type.y"
8200     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
8201     break;
8202
8203   case 465:
8204
8205 /* Line 1464 of yacc.c  */
8206 #line 1457 "type.y"
8207     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
8208     break;
8209
8210   case 466:
8211
8212 /* Line 1464 of yacc.c  */
8213 #line 1461 "type.y"
8214     { (yyval.string) = CopyString(yytext); ;}
8215     break;
8216
8217   case 467:
8218
8219 /* Line 1464 of yacc.c  */
8220 #line 1466 "type.y"
8221     { (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;;}
8222     break;
8223
8224   case 468:
8225
8226 /* Line 1464 of yacc.c  */
8227 #line 1468 "type.y"
8228     { (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;;}
8229     break;
8230
8231   case 469:
8232
8233 /* Line 1464 of yacc.c  */
8234 #line 1473 "type.y"
8235     { (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;;}
8236     break;
8237
8238   case 470:
8239
8240 /* Line 1464 of yacc.c  */
8241 #line 1475 "type.y"
8242     { (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;;}
8243     break;
8244
8245   case 471:
8246
8247 /* Line 1464 of yacc.c  */
8248 #line 1500 "type.y"
8249     { (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; ;}
8250     break;
8251
8252   case 472:
8253
8254 /* Line 1464 of yacc.c  */
8255 #line 1502 "type.y"
8256     { (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;;}
8257     break;
8258
8259   case 473:
8260
8261 /* Line 1464 of yacc.c  */
8262 #line 1504 "type.y"
8263     { 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)); ;}
8264     break;
8265
8266   case 474:
8267
8268 /* Line 1464 of yacc.c  */
8269 #line 1506 "type.y"
8270     { 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)); ;}
8271     break;
8272
8273   case 475:
8274
8275 /* Line 1464 of yacc.c  */
8276 #line 1511 "type.y"
8277     { (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; ;}
8278     break;
8279
8280   case 476:
8281
8282 /* Line 1464 of yacc.c  */
8283 #line 1513 "type.y"
8284     { (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;;}
8285     break;
8286
8287   case 477:
8288
8289 /* Line 1464 of yacc.c  */
8290 #line 1517 "type.y"
8291     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8292     break;
8293
8294   case 478:
8295
8296 /* Line 1464 of yacc.c  */
8297 #line 1519 "type.y"
8298     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8299     break;
8300
8301   case 479:
8302
8303 /* Line 1464 of yacc.c  */
8304 #line 1521 "type.y"
8305     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
8306     break;
8307
8308   case 480:
8309
8310 /* Line 1464 of yacc.c  */
8311 #line 1523 "type.y"
8312     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8313     break;
8314
8315   case 481:
8316
8317 /* Line 1464 of yacc.c  */
8318 #line 1525 "type.y"
8319     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8320     break;
8321
8322   case 482:
8323
8324 /* Line 1464 of yacc.c  */
8325 #line 1531 "type.y"
8326     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
8327     break;
8328
8329   case 483:
8330
8331 /* Line 1464 of yacc.c  */
8332 #line 1533 "type.y"
8333     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
8334     break;
8335
8336   case 484:
8337
8338 /* Line 1464 of yacc.c  */
8339 #line 1538 "type.y"
8340     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8341     break;
8342
8343   case 485:
8344
8345 /* Line 1464 of yacc.c  */
8346 #line 1542 "type.y"
8347     { (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;;}
8348     break;
8349
8350   case 486:
8351
8352 /* Line 1464 of yacc.c  */
8353 #line 1543 "type.y"
8354     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
8355     break;
8356
8357   case 487:
8358
8359 /* Line 1464 of yacc.c  */
8360 #line 1548 "type.y"
8361     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
8362     break;
8363
8364   case 488:
8365
8366 /* Line 1464 of yacc.c  */
8367 #line 1550 "type.y"
8368     { ((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); ;}
8369     break;
8370
8371   case 489:
8372
8373 /* Line 1464 of yacc.c  */
8374 #line 1555 "type.y"
8375     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8376     break;
8377
8378   case 490:
8379
8380 /* Line 1464 of yacc.c  */
8381 #line 1559 "type.y"
8382     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
8383     break;
8384
8385   case 491:
8386
8387 /* Line 1464 of yacc.c  */
8388 #line 1560 "type.y"
8389     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8390     break;
8391
8392   case 492:
8393
8394 /* Line 1464 of yacc.c  */
8395 #line 1561 "type.y"
8396     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8397     break;
8398
8399   case 493:
8400
8401 /* Line 1464 of yacc.c  */
8402 #line 1562 "type.y"
8403     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8404     break;
8405
8406   case 494:
8407
8408 /* Line 1464 of yacc.c  */
8409 #line 1563 "type.y"
8410     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
8411     break;
8412
8413   case 495:
8414
8415 /* Line 1464 of yacc.c  */
8416 #line 1564 "type.y"
8417     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8418     break;
8419
8420   case 497:
8421
8422 /* Line 1464 of yacc.c  */
8423 #line 1569 "type.y"
8424     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8425     break;
8426
8427   case 498:
8428
8429 /* Line 1464 of yacc.c  */
8430 #line 1570 "type.y"
8431     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
8432     break;
8433
8434   case 499:
8435
8436 /* Line 1464 of yacc.c  */
8437 #line 1574 "type.y"
8438     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
8439     break;
8440
8441   case 500:
8442
8443 /* Line 1464 of yacc.c  */
8444 #line 1575 "type.y"
8445     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
8446     break;
8447
8448
8449
8450 /* Line 1464 of yacc.c  */
8451 #line 8452 "type.ec"
8452       default: break;
8453     }
8454   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
8455
8456   YYPOPSTACK (yylen);
8457   yylen = 0;
8458   YY_STACK_PRINT (yyss, yyssp);
8459
8460   *++yyvsp = yyval;
8461   *++yylsp = yyloc;
8462
8463   /* Now `shift' the result of the reduction.  Determine what state
8464      that goes to, based on the state we popped back to and the rule
8465      number reduced by.  */
8466
8467   yyn = yyr1[yyn];
8468
8469   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
8470   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8471     yystate = yytable[yystate];
8472   else
8473     yystate = yydefgoto[yyn - YYNTOKENS];
8474
8475   goto yynewstate;
8476
8477
8478 /*------------------------------------.
8479 | yyerrlab -- here on detecting error |
8480 `------------------------------------*/
8481 yyerrlab:
8482   /* If not already recovering from an error, report this error.  */
8483   if (!yyerrstatus)
8484     {
8485       ++yynerrs;
8486 #if ! YYERROR_VERBOSE
8487       yyerror (YY_("syntax error"));
8488 #else
8489       {
8490         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
8491         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
8492           {
8493             YYSIZE_T yyalloc = 2 * yysize;
8494             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
8495               yyalloc = YYSTACK_ALLOC_MAXIMUM;
8496             if (yymsg != yymsgbuf)
8497               YYSTACK_FREE (yymsg);
8498             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
8499             if (yymsg)
8500               yymsg_alloc = yyalloc;
8501             else
8502               {
8503                 yymsg = yymsgbuf;
8504                 yymsg_alloc = sizeof yymsgbuf;
8505               }
8506           }
8507
8508         if (0 < yysize && yysize <= yymsg_alloc)
8509           {
8510             (void) yysyntax_error (yymsg, yystate, yychar);
8511             yyerror (yymsg);
8512           }
8513         else
8514           {
8515             yyerror (YY_("syntax error"));
8516             if (yysize != 0)
8517               goto yyexhaustedlab;
8518           }
8519       }
8520 #endif
8521     }
8522
8523   yyerror_range[0] = yylloc;
8524
8525   if (yyerrstatus == 3)
8526     {
8527       /* If just tried and failed to reuse lookahead token after an
8528          error, discard it.  */
8529
8530       if (yychar <= YYEOF)
8531         {
8532           /* Return failure if at end of input.  */
8533           if (yychar == YYEOF)
8534             YYABORT;
8535         }
8536       else
8537         {
8538           yydestruct ("Error: discarding",
8539                       yytoken, &yylval, &yylloc);
8540           yychar = YYEMPTY;
8541         }
8542     }
8543
8544   /* Else will try to reuse lookahead token after shifting the error
8545      token.  */
8546   goto yyerrlab1;
8547
8548
8549 /*---------------------------------------------------.
8550 | yyerrorlab -- error raised explicitly by YYERROR.  |
8551 `---------------------------------------------------*/
8552 yyerrorlab:
8553
8554   /* Pacify compilers like GCC when the user code never invokes
8555      YYERROR and the label yyerrorlab therefore never appears in user
8556      code.  */
8557   if (/*CONSTCOND*/ 0)
8558      goto yyerrorlab;
8559
8560   yyerror_range[0] = yylsp[1-yylen];
8561   /* Do not reclaim the symbols of the rule which action triggered
8562      this YYERROR.  */
8563   YYPOPSTACK (yylen);
8564   yylen = 0;
8565   YY_STACK_PRINT (yyss, yyssp);
8566   yystate = *yyssp;
8567   goto yyerrlab1;
8568
8569
8570 /*-------------------------------------------------------------.
8571 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
8572 `-------------------------------------------------------------*/
8573 yyerrlab1:
8574   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
8575
8576   for (;;)
8577     {
8578       yyn = yypact[yystate];
8579       if (yyn != YYPACT_NINF)
8580         {
8581           yyn += YYTERROR;
8582           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8583             {
8584               yyn = yytable[yyn];
8585               if (0 < yyn)
8586                 break;
8587             }
8588         }
8589
8590       /* Pop the current state because it cannot handle the error token.  */
8591       if (yyssp == yyss)
8592         YYABORT;
8593
8594       yyerror_range[0] = *yylsp;
8595       yydestruct ("Error: popping",
8596                   yystos[yystate], yyvsp, yylsp);
8597       YYPOPSTACK (1);
8598       yystate = *yyssp;
8599       YY_STACK_PRINT (yyss, yyssp);
8600     }
8601
8602   *++yyvsp = yylval;
8603
8604   yyerror_range[1] = yylloc;
8605   /* Using YYLLOC is tempting, but would change the location of
8606      the lookahead.  YYLOC is available though.  */
8607   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
8608   *++yylsp = yyloc;
8609
8610   /* Shift the error token.  */
8611   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8612
8613   yystate = yyn;
8614   goto yynewstate;
8615
8616
8617 /*-------------------------------------.
8618 | yyacceptlab -- YYACCEPT comes here.  |
8619 `-------------------------------------*/
8620 yyacceptlab:
8621   yyresult = 0;
8622   goto yyreturn;
8623
8624 /*-----------------------------------.
8625 | yyabortlab -- YYABORT comes here.  |
8626 `-----------------------------------*/
8627 yyabortlab:
8628   yyresult = 1;
8629   goto yyreturn;
8630
8631 #if !defined(yyoverflow) || YYERROR_VERBOSE
8632 /*-------------------------------------------------.
8633 | yyexhaustedlab -- memory exhaustion comes here.  |
8634 `-------------------------------------------------*/
8635 yyexhaustedlab:
8636   yyerror (YY_("memory exhausted"));
8637   yyresult = 2;
8638   /* Fall through.  */
8639 #endif
8640
8641 yyreturn:
8642   if (yychar != YYEMPTY)
8643      yydestruct ("Cleanup: discarding lookahead",
8644                  yytoken, &yylval, &yylloc);
8645   /* Do not reclaim the symbols of the rule which action triggered
8646      this YYABORT or YYACCEPT.  */
8647   YYPOPSTACK (yylen);
8648   YY_STACK_PRINT (yyss, yyssp);
8649   while (yyssp != yyss)
8650     {
8651       yydestruct ("Cleanup: popping",
8652                   yystos[*yyssp], yyvsp, yylsp);
8653       YYPOPSTACK (1);
8654     }
8655 #ifndef yyoverflow
8656   if (yyss != yyssa)
8657     YYSTACK_FREE (yyss);
8658 #endif
8659 #if YYERROR_VERBOSE
8660   if (yymsg != yymsgbuf)
8661     YYSTACK_FREE (yymsg);
8662 #endif
8663   /* Make sure YYID is used.  */
8664   return YYID (yyresult);
8665 }
8666
8667
8668
8669 /* Line 1684 of yacc.c  */
8670 #line 1578 "type.y"
8671
8672