compiler/libec: (#439) Removed unused declID from DeclClass()
[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 YYLTYPE Location
76 #include "grammar.h"
77
78 #ifndef YYLLOC_DEFAULT
79 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
80   (Current).start = (Rhs)[1].start;      \
81   (Current).end = (Rhs)[N].end;
82 #endif
83
84 TypeName parsedType;
85
86 #define PRECOMPILER
87
88 #define yyparse type_yyparse
89 #define yylval  type_yylval
90 #define yychar  type_yychar
91 #define yydebug type_yydebug
92 #define yynerrs type_yynerrs
93 #define yylloc  type_yylloc
94
95 extern bool parseTypeError;
96
97 extern File fileInput;
98 extern char * yytext;
99 int yylex();
100 int yyerror();
101
102 #define uint _uint
103 default:
104
105
106
107 /* Line 189 of yacc.c  */
108 #line 109 "type.ec"
109
110 /* Enabling traces.  */
111 #ifndef YYDEBUG
112 # define YYDEBUG 1
113 #endif
114
115 /* Enabling verbose error messages.  */
116 #ifdef YYERROR_VERBOSE
117 # undef YYERROR_VERBOSE
118 # define YYERROR_VERBOSE 1
119 #else
120 # define YYERROR_VERBOSE 0
121 #endif
122
123 /* Enabling the token table.  */
124 #ifndef YYTOKEN_TABLE
125 # define YYTOKEN_TABLE 0
126 #endif
127
128
129 /* Tokens.  */
130 #ifndef YYTOKENTYPE
131 # define YYTOKENTYPE
132    /* Put the tokens into the symbol table, so that GDB and other debuggers
133       know about them.  */
134    enum yytokentype {
135      IDENTIFIER = 258,
136      CONSTANT = 259,
137      STRING_LITERAL = 260,
138      SIZEOF = 261,
139      PTR_OP = 262,
140      INC_OP = 263,
141      DEC_OP = 264,
142      LEFT_OP = 265,
143      RIGHT_OP = 266,
144      LE_OP = 267,
145      GE_OP = 268,
146      EQ_OP = 269,
147      NE_OP = 270,
148      AND_OP = 271,
149      OR_OP = 272,
150      MUL_ASSIGN = 273,
151      DIV_ASSIGN = 274,
152      MOD_ASSIGN = 275,
153      ADD_ASSIGN = 276,
154      SUB_ASSIGN = 277,
155      LEFT_ASSIGN = 278,
156      RIGHT_ASSIGN = 279,
157      AND_ASSIGN = 280,
158      XOR_ASSIGN = 281,
159      OR_ASSIGN = 282,
160      TYPE_NAME = 283,
161      TYPEDEF = 284,
162      EXTERN = 285,
163      STATIC = 286,
164      AUTO = 287,
165      REGISTER = 288,
166      CHAR = 289,
167      SHORT = 290,
168      INT = 291,
169      UINT = 292,
170      INT64 = 293,
171      LONG = 294,
172      SIGNED = 295,
173      UNSIGNED = 296,
174      FLOAT = 297,
175      DOUBLE = 298,
176      CONST = 299,
177      VOLATILE = 300,
178      VOID = 301,
179      VALIST = 302,
180      STRUCT = 303,
181      UNION = 304,
182      ENUM = 305,
183      ELLIPSIS = 306,
184      CASE = 307,
185      DEFAULT = 308,
186      IF = 309,
187      SWITCH = 310,
188      WHILE = 311,
189      DO = 312,
190      FOR = 313,
191      GOTO = 314,
192      CONTINUE = 315,
193      BREAK = 316,
194      RETURN = 317,
195      IFX = 318,
196      ELSE = 319,
197      CLASS = 320,
198      THISCLASS = 321,
199      CLASS_NAME = 322,
200      PROPERTY = 323,
201      SETPROP = 324,
202      GETPROP = 325,
203      NEWOP = 326,
204      RENEW = 327,
205      DELETE = 328,
206      EXT_DECL = 329,
207      EXT_STORAGE = 330,
208      IMPORT = 331,
209      DEFINE = 332,
210      VIRTUAL = 333,
211      ATTRIB = 334,
212      PUBLIC = 335,
213      PRIVATE = 336,
214      TYPED_OBJECT = 337,
215      ANY_OBJECT = 338,
216      _INCREF = 339,
217      EXTENSION = 340,
218      ASM = 341,
219      TYPEOF = 342,
220      WATCH = 343,
221      STOPWATCHING = 344,
222      FIREWATCHERS = 345,
223      WATCHABLE = 346,
224      CLASS_DESIGNER = 347,
225      CLASS_NO_EXPANSION = 348,
226      CLASS_FIXED = 349,
227      ISPROPSET = 350,
228      CLASS_DEFAULT_PROPERTY = 351,
229      PROPERTY_CATEGORY = 352,
230      CLASS_DATA = 353,
231      CLASS_PROPERTY = 354,
232      SUBCLASS = 355,
233      NAMESPACE = 356,
234      NEW0OP = 357,
235      RENEW0 = 358,
236      VAARG = 359,
237      DBTABLE = 360,
238      DBFIELD = 361,
239      DBINDEX = 362,
240      DATABASE_OPEN = 363,
241      ALIGNOF = 364,
242      ATTRIB_DEP = 365,
243      __ATTRIB = 366,
244      BOOL = 367,
245      _BOOL = 368,
246      _COMPLEX = 369,
247      _IMAGINARY = 370,
248      RESTRICT = 371,
249      THREAD = 372,
250      WIDE_STRING_LITERAL = 373
251    };
252 #endif
253
254
255
256 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
257 typedef union YYSTYPE
258 {
259
260 /* Line 214 of yacc.c  */
261 #line 39 "type.y"
262
263    int i;
264    SpecifierType specifierType;
265    Identifier id;
266    Expression exp;
267    Specifier specifier;
268    OldList * list;
269    Enumerator enumerator;
270    Declarator declarator;
271    Pointer pointer;
272    Initializer initializer;
273    InitDeclarator initDeclarator;
274    TypeName typeName;
275    Declaration declaration;
276    Statement stmt;
277    FunctionDefinition function;
278    External external;
279    Context context;
280    Attrib attrib;
281    ExtDecl extDecl;
282    Attribute attribute;
283
284    Instantiation instance;
285    MembersInit membersInit;
286    MemberInit memberInit;
287    ClassFunction classFunction;
288    ClassDefinition _class;
289    ClassDef classDef;
290    PropertyDef prop;
291    char * string;
292    Symbol symbol;
293    TemplateParameter templateParameter;
294    TemplateArgument templateArgument;
295    TemplateDatatype templateDatatype;
296
297
298
299 /* Line 214 of yacc.c  */
300 #line 301 "type.ec"
301 } YYSTYPE;
302 # define YYSTYPE_IS_TRIVIAL 1
303 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
304 # define YYSTYPE_IS_DECLARED 1
305 #endif
306
307 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
308 typedef struct YYLTYPE
309 {
310   int first_line;
311   int first_column;
312   int last_line;
313   int last_column;
314 } YYLTYPE;
315 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
316 # define YYLTYPE_IS_DECLARED 1
317 # define YYLTYPE_IS_TRIVIAL 1
318 #endif
319
320
321 /* Copy the second part of user declarations.  */
322
323
324 /* Line 264 of yacc.c  */
325 #line 326 "type.ec"
326
327 #ifdef short
328 # undef short
329 #endif
330
331 #ifdef YYTYPE_UINT8
332 typedef YYTYPE_UINT8 yytype_uint8;
333 #else
334 typedef unsigned char yytype_uint8;
335 #endif
336
337 #ifdef YYTYPE_INT8
338 typedef YYTYPE_INT8 yytype_int8;
339 #elif (defined __STDC__ || defined __C99__FUNC__ \
340      || defined __cplusplus || defined _MSC_VER)
341 typedef signed char yytype_int8;
342 #else
343 typedef short int yytype_int8;
344 #endif
345
346 #ifdef YYTYPE_UINT16
347 typedef YYTYPE_UINT16 yytype_uint16;
348 #else
349 typedef unsigned short int yytype_uint16;
350 #endif
351
352 #ifdef YYTYPE_INT16
353 typedef YYTYPE_INT16 yytype_int16;
354 #else
355 typedef short int yytype_int16;
356 #endif
357
358 #ifndef YYSIZE_T
359 # ifdef __SIZE_TYPE__
360 #  define YYSIZE_T __SIZE_TYPE__
361 # elif defined size_t
362 #  define YYSIZE_T size_t
363 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
364      || defined __cplusplus || defined _MSC_VER)
365 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
366 #  define YYSIZE_T size_t
367 # else
368 #  define YYSIZE_T unsigned int
369 # endif
370 #endif
371
372 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
373
374 #ifndef YY_
375 # if defined YYENABLE_NLS && YYENABLE_NLS
376 #  if ENABLE_NLS
377 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
378 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
379 #  endif
380 # endif
381 # ifndef YY_
382 #  define YY_(msgid) msgid
383 # endif
384 #endif
385
386 /* Suppress unused-variable warnings by "using" E.  */
387 #if ! defined lint || defined __GNUC__
388 # define YYUSE(e) ((void) (e))
389 #else
390 # define YYUSE(e) /* empty */
391 #endif
392
393 /* Identity function, used to suppress warnings about constant conditions.  */
394 #ifndef lint
395 # define YYID(n) (n)
396 #else
397 #if (defined __STDC__ || defined __C99__FUNC__ \
398      || defined __cplusplus || defined _MSC_VER)
399 static int
400 YYID (int yyi)
401 #else
402 static int
403 YYID (yyi)
404     int yyi;
405 #endif
406 {
407   return yyi;
408 }
409 #endif
410
411 #if ! defined yyoverflow || YYERROR_VERBOSE
412
413 /* The parser invokes alloca or malloc; define the necessary symbols.  */
414
415 # ifdef YYSTACK_USE_ALLOCA
416 #  if YYSTACK_USE_ALLOCA
417 #   ifdef __GNUC__
418 #    define YYSTACK_ALLOC __builtin_alloca
419 #   elif defined __BUILTIN_VA_ARG_INCR
420 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
421 #   elif defined _AIX
422 #    define YYSTACK_ALLOC __alloca
423 #   elif defined _MSC_VER
424 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
425 #    define alloca _alloca
426 #   else
427 #    define YYSTACK_ALLOC alloca
428 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
429      || defined __cplusplus || defined _MSC_VER)
430 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
431 #     ifndef _STDLIB_H
432 #      define _STDLIB_H 1
433 #     endif
434 #    endif
435 #   endif
436 #  endif
437 # endif
438
439 # ifdef YYSTACK_ALLOC
440    /* Pacify GCC's `empty if-body' warning.  */
441 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
442 #  ifndef YYSTACK_ALLOC_MAXIMUM
443     /* The OS might guarantee only one guard page at the bottom of the stack,
444        and a page size can be as small as 4096 bytes.  So we cannot safely
445        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
446        to allow for a few compiler-allocated temporary stack slots.  */
447 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
448 #  endif
449 # else
450 #  define YYSTACK_ALLOC YYMALLOC
451 #  define YYSTACK_FREE YYFREE
452 #  ifndef YYSTACK_ALLOC_MAXIMUM
453 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
454 #  endif
455 #  if (defined __cplusplus && ! defined _STDLIB_H \
456        && ! ((defined YYMALLOC || defined malloc) \
457              && (defined YYFREE || defined free)))
458 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
459 #   ifndef _STDLIB_H
460 #    define _STDLIB_H 1
461 #   endif
462 #  endif
463 #  ifndef YYMALLOC
464 #   define YYMALLOC malloc
465 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
466      || defined __cplusplus || defined _MSC_VER)
467 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
468 #   endif
469 #  endif
470 #  ifndef YYFREE
471 #   define YYFREE free
472 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
473      || defined __cplusplus || defined _MSC_VER)
474 void free (void *); /* INFRINGES ON USER NAME SPACE */
475 #   endif
476 #  endif
477 # endif
478 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
479
480
481 #if (! defined yyoverflow \
482      && (! defined __cplusplus \
483          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
484              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
485
486 /* A type that is properly aligned for any stack member.  */
487 union yyalloc
488 {
489   yytype_int16 yyss_alloc;
490   YYSTYPE yyvs_alloc;
491   YYLTYPE yyls_alloc;
492 };
493
494 /* The size of the maximum gap between one aligned stack and the next.  */
495 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
496
497 /* The size of an array large to enough to hold all stacks, each with
498    N elements.  */
499 # define YYSTACK_BYTES(N) \
500      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
501       + 2 * YYSTACK_GAP_MAXIMUM)
502
503 /* Copy COUNT objects from FROM to TO.  The source and destination do
504    not overlap.  */
505 # ifndef YYCOPY
506 #  if defined __GNUC__ && 1 < __GNUC__
507 #   define YYCOPY(To, From, Count) \
508       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
509 #  else
510 #   define YYCOPY(To, From, Count)              \
511       do                                        \
512         {                                       \
513           YYSIZE_T yyi;                         \
514           for (yyi = 0; yyi < (Count); yyi++)   \
515             (To)[yyi] = (From)[yyi];            \
516         }                                       \
517       while (YYID (0))
518 #  endif
519 # endif
520
521 /* Relocate STACK from its old location to the new one.  The
522    local variables YYSIZE and YYSTACKSIZE give the old and new number of
523    elements in the stack, and YYPTR gives the new location of the
524    stack.  Advance YYPTR to a properly aligned location for the next
525    stack.  */
526 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
527     do                                                                  \
528       {                                                                 \
529         YYSIZE_T yynewbytes;                                            \
530         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
531         Stack = &yyptr->Stack_alloc;                                    \
532         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
533         yyptr += yynewbytes / sizeof (*yyptr);                          \
534       }                                                                 \
535     while (YYID (0))
536
537 #endif
538
539 /* YYFINAL -- State number of the termination state.  */
540 #define YYFINAL  99
541 /* YYLAST -- Last index in YYTABLE.  */
542 #define YYLAST   9157
543
544 /* YYNTOKENS -- Number of terminals.  */
545 #define YYNTOKENS  144
546 /* YYNNTS -- Number of nonterminals.  */
547 #define YYNNTS  123
548 /* YYNRULES -- Number of rules.  */
549 #define YYNRULES  500
550 /* YYNRULES -- Number of states.  */
551 #define YYNSTATES  859
552
553 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
554 #define YYUNDEFTOK  2
555 #define YYMAXUTOK   373
556
557 #define YYTRANSLATE(YYX)                                                \
558   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
559
560 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
561 static const yytype_uint8 yytranslate[] =
562 {
563        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,     2,     2,   133,     2,     2,   125,   135,   130,     2,
567      122,   123,   119,   131,   129,   132,   126,   134,     2,     2,
568        2,     2,     2,     2,     2,     2,     2,     2,   139,   141,
569      120,   140,   121,   138,     2,     2,     2,     2,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,   127,     2,   128,   136,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,   142,   137,   143,   124,     2,     2,     2,
576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     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,     1,     2,     3,     4,
589        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
590       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
591       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
592       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
593       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
594       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
595       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
596       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
597       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
598       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
599      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
600      115,   116,   117,   118
601 };
602
603 #if YYDEBUG
604 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
605    YYRHS.  */
606 static const yytype_uint16 yyprhs[] =
607 {
608        0,     0,     3,     6,     9,    12,    14,    17,    19,    21,
609       26,    31,    34,    36,    40,    45,    49,    52,    54,    56,
610       60,    62,    64,    66,    68,    70,    73,    78,    81,    88,
611       94,   101,   107,   115,   122,   130,   137,   139,   141,   146,
612      150,   155,   159,   162,   166,   169,   172,   174,   176,   178,
613      182,   186,   189,   192,   195,   198,   203,   206,   211,   213,
614      215,   217,   219,   221,   223,   225,   227,   229,   231,   236,
615      238,   242,   246,   250,   252,   256,   260,   262,   266,   270,
616      273,   275,   278,   282,   286,   290,   292,   296,   300,   302,
617      306,   308,   312,   314,   318,   320,   324,   326,   330,   332,
618      338,   340,   344,   348,   350,   352,   354,   356,   358,   360,
619      362,   364,   366,   368,   370,   372,   376,   378,   381,   385,
620      388,   394,   396,   399,   401,   404,   406,   409,   411,   414,
621      416,   419,   421,   424,   426,   429,   431,   434,   436,   439,
622      441,   444,   446,   449,   451,   454,   456,   459,   461,   464,
623      466,   469,   471,   474,   476,   479,   481,   484,   486,   489,
624      491,   494,   496,   498,   500,   503,   505,   508,   510,   513,
625      515,   518,   523,   529,   531,   534,   536,   539,   541,   544,
626      546,   549,   551,   554,   556,   559,   564,   570,   572,   576,
627      578,   582,   584,   586,   588,   590,   592,   594,   596,   598,
628      600,   602,   604,   606,   608,   610,   612,   614,   616,   618,
629      623,   625,   628,   632,   639,   645,   647,   649,   651,   653,
630      655,   657,   659,   661,   663,   665,   667,   669,   671,   673,
631      675,   677,   679,   681,   683,   685,   687,   689,   694,   699,
632      704,   706,   708,   710,   712,   714,   716,   718,   720,   722,
633      724,   726,   728,   730,   732,   734,   736,   738,   740,   742,
634      744,   746,   751,   756,   761,   763,   769,   774,   779,   783,
635      789,   796,   802,   808,   813,   820,   823,   826,   830,   834,
636      836,   839,   841,   844,   846,   848,   850,   854,   858,   862,
637      866,   868,   872,   874,   876,   878,   881,   885,   887,   891,
638      901,   911,   919,   927,   933,   944,   955,   964,   973,   980,
639      989,   998,  1005,  1012,  1017,  1027,  1037,  1045,  1053,  1059,
640     1063,  1066,  1069,  1072,  1074,  1077,  1079,  1081,  1083,  1087,
641     1089,  1092,  1095,  1099,  1105,  1108,  1111,  1116,  1122,  1130,
642     1138,  1144,  1146,  1150,  1152,  1156,  1160,  1163,  1167,  1171,
643     1175,  1180,  1185,  1188,  1192,  1196,  1201,  1205,  1208,  1212,
644     1216,  1221,  1223,  1225,  1228,  1231,  1234,  1238,  1240,  1242,
645     1245,  1248,  1251,  1255,  1257,  1260,  1264,  1267,  1269,  1273,
646     1278,  1282,  1287,  1289,  1292,  1295,  1299,  1303,  1306,  1310,
647     1314,  1317,  1319,  1321,  1324,  1327,  1329,  1332,  1335,  1339,
648     1343,  1345,  1348,  1350,  1353,  1356,  1360,  1362,  1366,  1368,
649     1372,  1375,  1378,  1381,  1385,  1387,  1389,  1391,  1395,  1397,
650     1400,  1402,  1405,  1407,  1411,  1416,  1418,  1420,  1422,  1426,
651     1428,  1430,  1432,  1434,  1436,  1438,  1442,  1447,  1451,  1453,
652     1456,  1458,  1461,  1464,  1466,  1468,  1471,  1473,  1476,  1480,
653     1482,  1485,  1491,  1499,  1505,  1511,  1519,  1526,  1534,  1539,
654     1545,  1550,  1554,  1557,  1560,  1563,  1567,  1569,  1575,  1580,
655     1586,  1591,  1596,  1600,  1605,  1609,  1613,  1616,  1619,  1622,
656     1625,  1628,  1631,  1634,  1637,  1640,  1644,  1646,  1648,  1652,
657     1655,  1657,  1659,  1662,  1665,  1667,  1670,  1672,  1674,  1677,
658     1679
659 };
660
661 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
662 static const yytype_int16 yyrhs[] =
663 {
664      266,     0,    -1,   154,   119,    -1,   154,   120,    -1,   154,
665        1,    -1,   149,    -1,   154,   154,    -1,    28,    -1,   148,
666       -1,   148,   120,   207,   121,    -1,   148,   120,   207,    11,
667       -1,   184,   226,    -1,   226,    -1,   184,   122,   123,    -1,
668      124,   184,   122,   123,    -1,    78,   184,   226,    -1,    78,
669      226,    -1,     3,    -1,   156,    -1,   122,   178,   123,    -1,
670      154,    -1,   256,    -1,     4,    -1,   118,    -1,   253,    -1,
671      125,   253,    -1,   125,   253,   126,   253,    -1,   122,   123,
672       -1,    71,   184,   223,   127,   179,   128,    -1,    71,   184,
673      127,   179,   128,    -1,   102,   184,   223,   127,   179,   128,
674       -1,   102,   184,   127,   179,   128,    -1,    72,   179,   187,
675      223,   127,   179,   128,    -1,    72,   179,   187,   127,   179,
676      128,    -1,   103,   179,   187,   223,   127,   179,   128,    -1,
677      103,   179,   187,   127,   179,   128,    -1,     1,    -1,   155,
678       -1,   157,   127,   178,   128,    -1,   157,   122,   123,    -1,
679      157,   122,   159,   123,    -1,   157,   126,   154,    -1,   157,
680      154,    -1,   157,     7,   154,    -1,   157,     8,    -1,   157,
681        9,    -1,   257,    -1,   176,    -1,   158,    -1,   159,   129,
682      176,    -1,   159,   129,   158,    -1,     8,   161,    -1,     9,
683      161,    -1,   162,   163,    -1,     6,   161,    -1,     6,   122,
684      238,   123,    -1,   109,   161,    -1,   109,   122,   238,   123,
685       -1,   160,    -1,   157,    -1,   130,    -1,   119,    -1,   131,
686       -1,   132,    -1,   124,    -1,   133,    -1,    73,    -1,   161,
687       -1,   122,   237,   123,   163,    -1,   163,    -1,   164,   119,
688      163,    -1,   164,   134,   163,    -1,   164,   135,   163,    -1,
689      164,    -1,   165,   131,   164,    -1,   165,   132,   164,    -1,
690      165,    -1,   166,    10,   165,    -1,   166,    11,   165,    -1,
691      168,   120,    -1,   166,    -1,   167,   166,    -1,   168,   121,
692      166,    -1,   168,    12,   166,    -1,   168,    13,   166,    -1,
693      168,    -1,   169,    14,   168,    -1,   169,    15,   168,    -1,
694      169,    -1,   170,   130,   169,    -1,   170,    -1,   171,   136,
695      170,    -1,   171,    -1,   172,   137,   171,    -1,   172,    -1,
696      173,    16,   172,    -1,   173,    -1,   174,    17,   173,    -1,
697      174,    -1,   174,   138,   178,   139,   175,    -1,   175,    -1,
698      161,   177,   176,    -1,   161,   177,   158,    -1,   140,    -1,
699       18,    -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,
700       23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,
701      176,    -1,   178,   129,   176,    -1,   175,    -1,   183,   141,
702       -1,   183,   188,   141,    -1,   254,   141,    -1,    77,   154,
703      140,   179,   141,    -1,   198,    -1,   181,   198,    -1,   199,
704       -1,   181,   199,    -1,   217,    -1,   181,   217,    -1,   201,
705       -1,   181,   201,    -1,   198,    -1,   182,   198,    -1,   199,
706       -1,   182,   199,    -1,   145,    -1,   182,   145,    -1,   217,
707       -1,   182,   217,    -1,   201,    -1,   182,   201,    -1,   190,
708       -1,   183,   190,    -1,   198,    -1,   183,   198,    -1,   199,
709       -1,   183,   199,    -1,   217,    -1,   183,   217,    -1,   201,
710       -1,   183,   201,    -1,   190,    -1,   184,   190,    -1,   198,
711       -1,   184,   198,    -1,   199,    -1,   184,   199,    -1,   145,
712       -1,   184,   145,    -1,   201,    -1,   184,   201,    -1,   217,
713       -1,   184,   217,    -1,   184,    -1,   146,    -1,   190,    -1,
714      186,   190,    -1,   198,    -1,   186,   198,    -1,   200,    -1,
715      186,   200,    -1,   154,    -1,   186,   154,    -1,   154,   120,
716      207,   121,    -1,   186,   154,   120,   207,   121,    -1,   190,
717       -1,   187,   190,    -1,   198,    -1,   187,   198,    -1,   200,
718       -1,   187,   200,    -1,   201,    -1,   187,   201,    -1,   217,
719       -1,   187,   217,    -1,   154,    -1,   187,   154,    -1,   154,
720      120,   207,   121,    -1,   187,   154,   120,   207,   121,    -1,
721      189,    -1,   188,   129,   189,    -1,   224,    -1,   224,   140,
722      239,    -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,
723       33,    -1,   117,    -1,    74,    -1,    75,    -1,   196,    -1,
724       79,    -1,   110,    -1,   111,    -1,     3,    -1,    28,    -1,
725       75,    -1,    74,    -1,    44,    -1,   193,    -1,   193,   122,
726      178,   123,    -1,   194,    -1,   195,   194,    -1,   195,   129,
727      194,    -1,   192,   122,   122,   195,   123,   123,    -1,   192,
728      122,   122,   123,   123,    -1,   191,    -1,    44,    -1,    45,
729       -1,   197,    -1,    46,    -1,    34,    -1,    35,    -1,    36,
730       -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,
731       -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,   113,
732       -1,   112,    -1,   202,    -1,   216,    -1,   147,    -1,    87,
733      122,   176,   123,    -1,   100,   122,   147,   123,    -1,   100,
734      122,   154,   123,    -1,    66,    -1,    82,    -1,    83,    -1,
735       46,    -1,    34,    -1,    35,    -1,    36,    -1,    37,    -1,
736       38,    -1,    47,    -1,    39,    -1,    42,    -1,    43,    -1,
737       40,    -1,    41,    -1,    85,    -1,   113,    -1,   112,    -1,
738      202,    -1,   216,    -1,   149,    -1,    87,   122,   176,   123,
739       -1,   100,   122,   147,   123,    -1,   100,   122,   154,   123,
740       -1,    66,    -1,   208,   154,   142,   209,   143,    -1,   208,
741      142,   209,   143,    -1,   208,   154,   142,   143,    -1,   208,
742      142,   143,    -1,   208,   148,   142,   209,   143,    -1,   208,
743      191,   154,   142,   209,   143,    -1,   208,   191,   142,   209,
744      143,    -1,   208,   191,   154,   142,   143,    -1,   208,   191,
745      142,   143,    -1,   208,   191,   149,   142,   209,   143,    -1,
746      208,   154,    -1,   208,   149,    -1,   208,   191,   154,    -1,
747      208,   191,   149,    -1,   184,    -1,   184,   222,    -1,   184,
748       -1,   184,   222,    -1,   166,    -1,   205,    -1,   204,    -1,
749      154,   140,   205,    -1,   154,   140,   204,    -1,   203,   140,
750      205,    -1,   203,   140,   204,    -1,   206,    -1,   207,   129,
751      206,    -1,    48,    -1,    49,    -1,   213,    -1,   209,   213,
752       -1,   157,   140,   240,    -1,   210,    -1,   211,   129,   210,
753       -1,    68,   186,   154,   142,    69,   248,    70,   248,   143,
754       -1,    68,   186,   154,   142,    70,   248,    69,   248,   143,
755       -1,    68,   186,   154,   142,    69,   248,   143,    -1,    68,
756      186,   154,   142,    70,   248,   143,    -1,    68,   186,   154,
757      142,   143,    -1,    68,   186,   222,   154,   142,    69,   248,
758       70,   248,   143,    -1,    68,   186,   222,   154,   142,    70,
759      248,    69,   248,   143,    -1,    68,   186,   222,   154,   142,
760       69,   248,   143,    -1,    68,   186,   222,   154,   142,    70,
761      248,   143,    -1,    68,   186,   222,   154,   142,   143,    -1,
762       68,   186,   142,    69,   248,    70,   248,   143,    -1,    68,
763      186,   142,    70,   248,    69,   248,   143,    -1,    68,   186,
764      142,    69,   248,   143,    -1,    68,   186,   142,    70,   248,
765      143,    -1,    68,   186,   142,   143,    -1,    68,   186,   222,
766      142,    69,   248,    70,   248,   143,    -1,    68,   186,   222,
767      142,    70,   248,    69,   248,   143,    -1,    68,   186,   222,
768      142,    69,   248,   143,    -1,    68,   186,   222,   142,    70,
769      248,   143,    -1,    68,   186,   222,   142,   143,    -1,   184,
770      214,   141,    -1,   184,   141,    -1,   256,   141,    -1,   255,
771      141,    -1,   258,    -1,   211,   141,    -1,   212,    -1,   141,
772       -1,   215,    -1,   214,   129,   215,    -1,   230,    -1,   230,
773      196,    -1,   139,   179,    -1,   230,   139,   179,    -1,   230,
774      139,   179,   139,   179,    -1,    50,   154,    -1,    50,   149,
775       -1,    50,   142,   218,   143,    -1,    50,   154,   142,   218,
776      143,    -1,    50,   154,   142,   218,   141,   209,   143,    -1,
777       50,   149,   142,   218,   141,   209,   143,    -1,    50,   149,
778      142,   218,   143,    -1,   219,    -1,   218,   129,   219,    -1,
779      154,    -1,   154,   140,   179,    -1,   122,   222,   123,    -1,
780      127,   128,    -1,   127,   179,   128,    -1,   127,   147,   128,
781       -1,   220,   127,   128,    -1,   220,   127,   179,   128,    -1,
782      220,   127,   147,   128,    -1,   122,   123,    -1,   122,   233,
783      123,    -1,   220,   122,   123,    -1,   220,   122,   233,   123,
784       -1,   122,   223,   123,    -1,   122,   123,    -1,   122,   233,
785      123,    -1,   221,   122,   123,    -1,   221,   122,   233,   123,
786       -1,   232,    -1,   220,    -1,   232,   220,    -1,   191,   232,
787       -1,   191,   220,    -1,   191,   232,   220,    -1,   232,    -1,
788      221,    -1,   232,   221,    -1,   191,   232,    -1,   191,   221,
789       -1,   191,   232,   221,    -1,   229,    -1,   232,   229,    -1,
790      191,   232,   229,    -1,   224,   191,    -1,   154,    -1,   122,
791      224,   123,    -1,   225,   127,   179,   128,    -1,   225,   127,
792      128,    -1,   225,   127,   147,   128,    -1,   228,    -1,   232,
793      228,    -1,   191,   228,    -1,   191,   232,   228,    -1,   232,
794      191,   228,    -1,   225,   122,    -1,   227,   233,   123,    -1,
795      227,   236,   123,    -1,   227,   123,    -1,   228,    -1,   225,
796       -1,   191,   228,    -1,   191,   225,    -1,   225,    -1,   232,
797      225,    -1,   191,   225,    -1,   191,   232,   225,    -1,   232,
798      191,   225,    -1,   198,    -1,   231,   198,    -1,   119,    -1,
799      119,   231,    -1,   119,   232,    -1,   119,   231,   232,    -1,
800      234,    -1,   234,   129,    51,    -1,   235,    -1,   234,   129,
801      235,    -1,   184,   224,    -1,   184,   222,    -1,   184,   130,
802       -1,   184,   130,   224,    -1,   185,    -1,    65,    -1,   154,
803       -1,   236,   129,   154,    -1,   181,    -1,   181,   222,    -1,
804      182,    -1,   182,   222,    -1,   176,    -1,   142,   241,   143,
805       -1,   142,   241,   129,   143,    -1,   175,    -1,   158,    -1,
806      239,    -1,   241,   129,   239,    -1,   243,    -1,   248,    -1,
807      249,    -1,   250,    -1,   251,    -1,   252,    -1,   154,   139,
808      242,    -1,    52,   179,   139,   242,    -1,    53,   139,   242,
809       -1,   180,    -1,   244,   180,    -1,   242,    -1,   245,   242,
810       -1,   245,   180,    -1,   245,    -1,   244,    -1,   244,   245,
811       -1,   142,    -1,   142,   143,    -1,   247,   246,   143,    -1,
812      141,    -1,   178,   141,    -1,    54,   122,   178,   123,   242,
813       -1,    54,   122,   178,   123,   242,    64,   242,    -1,    55,
814      122,   178,   123,   242,    -1,    56,   122,   178,   123,   242,
815       -1,    57,   242,    56,   122,   178,   123,   141,    -1,    58,
816      122,   249,   249,   123,   242,    -1,    58,   122,   249,   249,
817      178,   123,   242,    -1,    56,   122,   123,   242,    -1,    58,
818      122,   249,   123,   242,    -1,    58,   122,   123,   242,    -1,
819       59,   154,   141,    -1,    60,   141,    -1,    61,   141,    -1,
820       62,   141,    -1,    62,   178,   141,    -1,     5,    -1,   183,
821      154,   142,   265,   143,    -1,   183,   154,   142,   143,    -1,
822      184,   154,   142,   265,   143,    -1,   184,   154,   142,   143,
823       -1,   147,   142,   265,   143,    -1,   147,   142,   143,    -1,
824      154,   142,   265,   143,    -1,   154,   142,   143,    -1,   142,
825      265,   143,    -1,   142,   143,    -1,   150,   248,    -1,   153,
826      248,    -1,   153,   141,    -1,   151,   248,    -1,   152,   248,
827       -1,   183,   226,    -1,   183,   230,    -1,   259,   248,    -1,
828      157,   140,   240,    -1,   240,    -1,   261,    -1,   262,   129,
829      261,    -1,   262,   141,    -1,   263,    -1,   260,    -1,   264,
830      263,    -1,   264,   260,    -1,   141,    -1,   264,   141,    -1,
831      264,    -1,   262,    -1,   264,   262,    -1,   235,    -1,   235,
832      139,   179,    -1
833 };
834
835 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
836 static const yytype_uint16 yyrline[] =
837 {
838        0,   229,   229,   247,   281,   331,   332,   359,   363,   364,
839      365,   382,   384,   389,   394,   399,   401,   406,   411,   412,
840      417,   419,   421,   423,   424,   426,   427,   428,   431,   432,
841      433,   434,   435,   436,   437,   438,   439,   443,   444,   445,
842      446,   447,   448,   461,   462,   463,   467,   496,   497,   498,
843      499,   503,   504,   505,   507,   508,   510,   511,   515,   516,
844      525,   526,   527,   528,   529,   530,   531,   535,   536,   540,
845      541,   542,   543,   547,   548,   549,   553,   554,   555,   559,
846      567,   568,   569,   570,   571,   575,   576,   577,   581,   582,
847      586,   587,   591,   592,   596,   597,   601,   602,   606,   607,
848      611,   612,   613,   617,   618,   619,   620,   621,   622,   623,
849      624,   625,   626,   627,   631,   632,   636,   640,   641,   642,
850      643,   647,   648,   649,   650,   651,   652,   653,   654,   658,
851      659,   660,   661,   662,   663,   664,   665,   666,   667,   671,
852      672,   673,   674,   675,   676,   677,   678,   679,   680,   684,
853      685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
854      695,   699,   700,   704,   705,   706,   707,   708,   709,   710,
855      711,   712,   730,   747,   748,   749,   750,   751,   752,   753,
856      754,   755,   756,   757,   758,   759,   777,   794,   795,   799,
857      800,   804,   805,   806,   807,   808,   809,   813,   814,   815,
858      819,   820,   821,   826,   827,   828,   829,   830,   834,   835,
859      839,   840,   841,   845,   846,   850,   854,   855,   856,   861,
860      862,   863,   864,   865,   866,   867,   868,   869,   870,   871,
861      872,   873,   874,   875,   876,   877,   878,   879,   880,   881,
862      882,   883,   884,   888,   889,   890,   891,   892,   893,   894,
863      895,   896,   897,   898,   899,   900,   901,   902,   903,   904,
864      905,   906,   907,   908,   909,   914,   915,   916,   917,   918,
865      921,   922,   923,   924,   925,   930,   931,   934,   936,   941,
866      942,   947,   948,   959,   963,   965,   966,   968,   969,   993,
867     1008,  1009,  1013,  1014,  1018,  1019,  1023,  1027,  1028,  1032,
868     1034,  1036,  1038,  1040,  1043,  1045,  1047,  1049,  1051,  1054,
869     1056,  1058,  1060,  1062,  1065,  1067,  1069,  1071,  1073,  1078,
870     1079,  1080,  1081,  1082,  1083,  1084,  1085,  1089,  1091,  1096,
871     1098,  1100,  1102,  1104,  1109,  1110,  1114,  1116,  1117,  1118,
872     1119,  1123,  1125,  1130,  1132,  1138,  1140,  1142,  1144,  1146,
873     1148,  1150,  1152,  1154,  1156,  1158,  1163,  1165,  1167,  1169,
874     1171,  1176,  1177,  1178,  1179,  1180,  1181,  1185,  1186,  1187,
875     1188,  1189,  1190,  1236,  1237,  1239,  1241,  1246,  1248,  1250,
876     1252,  1254,  1259,  1260,  1263,  1265,  1267,  1273,  1277,  1279,
877     1281,  1286,  1287,  1288,  1290,  1295,  1296,  1297,  1298,  1299,
878     1303,  1304,  1308,  1309,  1310,  1311,  1315,  1316,  1320,  1321,
879     1325,  1326,  1327,  1328,  1329,  1340,  1365,  1366,  1370,  1371,
880     1375,  1376,  1380,  1382,  1384,  1400,  1402,  1424,  1426,  1431,
881     1432,  1433,  1434,  1435,  1436,  1440,  1442,  1444,  1449,  1450,
882     1454,  1455,  1458,  1462,  1463,  1464,  1468,  1472,  1480,  1485,
883     1486,  1490,  1491,  1492,  1496,  1497,  1498,  1499,  1501,  1502,
884     1503,  1507,  1508,  1509,  1510,  1511,  1515,  1519,  1521,  1526,
885     1528,  1553,  1555,  1557,  1559,  1564,  1566,  1570,  1572,  1574,
886     1576,  1578,  1584,  1586,  1591,  1596,  1597,  1601,  1603,  1608,
887     1613,  1614,  1615,  1616,  1617,  1618,  1622,  1623,  1624,  1628,
888     1629
889 };
890 #endif
891
892 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
893 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
894    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
895 static const char *const yytname[] =
896 {
897   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
898   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
899   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
900   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
901   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
902   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
903   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
904   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
905   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
906   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
907   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
908   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
909   "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT",
910   "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING",
911   "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION",
912   "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY",
913   "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS",
914   "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD",
915   "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "BOOL",
916   "_BOOL", "_COMPLEX", "_IMAGINARY", "RESTRICT", "THREAD",
917   "WIDE_STRING_LITERAL", "'*'", "'<'", "'>'", "'('", "')'", "'~'", "'$'",
918   "'.'", "'['", "']'", "','", "'&'", "'+'", "'-'", "'!'", "'/'", "'%'",
919   "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
920   "guess_type", "real_guess_type", "type", "base_strict_type",
921   "strict_type", "class_function_definition_start",
922   "constructor_function_definition_start",
923   "destructor_function_definition_start",
924   "virtual_class_function_definition_start", "identifier",
925   "primary_expression", "simple_primary_expression", "postfix_expression",
926   "anon_instantiation_expression", "argument_expression_list",
927   "common_unary_expression", "unary_expression", "unary_operator",
928   "cast_expression", "multiplicative_expression", "additive_expression",
929   "shift_expression", "relational_expression_smaller_than",
930   "relational_expression", "equality_expression", "and_expression",
931   "exclusive_or_expression", "inclusive_or_expression",
932   "logical_and_expression", "logical_or_expression",
933   "conditional_expression", "assignment_expression", "assignment_operator",
934   "expression", "constant_expression", "declaration",
935   "specifier_qualifier_list", "guess_specifier_qualifier_list",
936   "declaration_specifiers", "guess_declaration_specifiers",
937   "real_guess_declaration_specifiers", "property_specifiers",
938   "renew_specifiers", "init_declarator_list", "init_declarator",
939   "storage_class_specifier", "ext_decl", "_attrib", "attribute_word",
940   "attribute", "attribs_list", "attrib", "ext_storage", "type_qualifier",
941   "type_specifier", "strict_type_specifier",
942   "struct_or_union_specifier_compound",
943   "struct_or_union_specifier_nocompound", "template_datatype",
944   "template_type_argument", "template_expression_argument",
945   "template_argument", "template_arguments_list", "struct_or_union",
946   "struct_declaration_list", "default_property", "default_property_list",
947   "property", "struct_declaration", "struct_declarator_list",
948   "struct_declarator", "enum_specifier_nocompound",
949   "enum_specifier_compound", "enumerator_list", "enumerator",
950   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
951   "abstract_declarator", "abstract_declarator_noarray", "declarator",
952   "direct_declarator_nofunction", "declarator_function",
953   "direct_declarator_function_start", "direct_declarator_function",
954   "direct_declarator", "declarator_nofunction", "type_qualifier_list",
955   "pointer", "parameter_type_list", "parameter_list",
956   "parameter_declaration", "identifier_list", "type_name",
957   "guess_type_name", "initializer", "initializer_condition",
958   "initializer_list", "statement", "labeled_statement", "declaration_list",
959   "statement_list", "compound_inside", "compound_start",
960   "compound_statement", "expression_statement", "selection_statement",
961   "iteration_statement", "jump_statement", "string_literal",
962   "instantiation_named", "guess_instantiation_named",
963   "instantiation_unnamed", "instantiation_anon",
964   "class_function_definition", "instance_class_function_definition_start",
965   "instance_class_function_definition", "data_member_initialization",
966   "data_member_initialization_list",
967   "data_member_initialization_list_coloned",
968   "members_initialization_list_coloned", "members_initialization_list",
969   "type_unit", 0
970 };
971 #endif
972
973 # ifdef YYPRINT
974 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
975    token YYLEX-NUM.  */
976 static const yytype_uint16 yytoknum[] =
977 {
978        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
979      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
980      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
981      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
982      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
983      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
984      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
985      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
986      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
987      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
988      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
989      365,   366,   367,   368,   369,   370,   371,   372,   373,    42,
990       60,    62,    40,    41,   126,    36,    46,    91,    93,    44,
991       38,    43,    45,    33,    47,    37,    94,   124,    63,    58,
992       61,    59,   123,   125
993 };
994 # endif
995
996 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
997 static const yytype_uint16 yyr1[] =
998 {
999        0,   144,   145,   145,   146,   147,   147,   148,   149,   149,
1000      149,   150,   150,   151,   152,   153,   153,   154,   155,   155,
1001      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
1002      156,   156,   156,   156,   156,   156,   156,   157,   157,   157,
1003      157,   157,   157,   157,   157,   157,   158,   159,   159,   159,
1004      159,   160,   160,   160,   160,   160,   160,   160,   161,   161,
1005      162,   162,   162,   162,   162,   162,   162,   163,   163,   164,
1006      164,   164,   164,   165,   165,   165,   166,   166,   166,   167,
1007      168,   168,   168,   168,   168,   169,   169,   169,   170,   170,
1008      171,   171,   172,   172,   173,   173,   174,   174,   175,   175,
1009      176,   176,   176,   177,   177,   177,   177,   177,   177,   177,
1010      177,   177,   177,   177,   178,   178,   179,   180,   180,   180,
1011      180,   181,   181,   181,   181,   181,   181,   181,   181,   182,
1012      182,   182,   182,   182,   182,   182,   182,   182,   182,   183,
1013      183,   183,   183,   183,   183,   183,   183,   183,   183,   184,
1014      184,   184,   184,   184,   184,   184,   184,   184,   184,   184,
1015      184,   185,   185,   186,   186,   186,   186,   186,   186,   186,
1016      186,   186,   186,   187,   187,   187,   187,   187,   187,   187,
1017      187,   187,   187,   187,   187,   187,   187,   188,   188,   189,
1018      189,   190,   190,   190,   190,   190,   190,   191,   191,   191,
1019      192,   192,   192,   193,   193,   193,   193,   193,   194,   194,
1020      195,   195,   195,   196,   196,   197,   198,   198,   198,   199,
1021      199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
1022      199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
1023      199,   199,   199,   200,   200,   200,   200,   200,   200,   200,
1024      200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
1025      200,   200,   200,   200,   200,   201,   201,   201,   201,   201,
1026      201,   201,   201,   201,   201,   202,   202,   202,   202,   203,
1027      203,   204,   204,   205,   206,   206,   206,   206,   206,   206,
1028      207,   207,   208,   208,   209,   209,   210,   211,   211,   212,
1029      212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
1030      212,   212,   212,   212,   212,   212,   212,   212,   212,   213,
1031      213,   213,   213,   213,   213,   213,   213,   214,   214,   215,
1032      215,   215,   215,   215,   216,   216,   217,   217,   217,   217,
1033      217,   218,   218,   219,   219,   220,   220,   220,   220,   220,
1034      220,   220,   220,   220,   220,   220,   221,   221,   221,   221,
1035      221,   222,   222,   222,   222,   222,   222,   223,   223,   223,
1036      223,   223,   223,   224,   224,   224,   224,   225,   225,   225,
1037      225,   225,   226,   226,   226,   226,   226,   227,   228,   228,
1038      228,   229,   229,   229,   229,   230,   230,   230,   230,   230,
1039      231,   231,   232,   232,   232,   232,   233,   233,   234,   234,
1040      235,   235,   235,   235,   235,   235,   236,   236,   237,   237,
1041      238,   238,   239,   239,   239,   240,   240,   241,   241,   242,
1042      242,   242,   242,   242,   242,   243,   243,   243,   244,   244,
1043      245,   245,   245,   246,   246,   246,   247,   248,   248,   249,
1044      249,   250,   250,   250,   251,   251,   251,   251,   251,   251,
1045      251,   252,   252,   252,   252,   252,   253,   254,   254,   255,
1046      255,   256,   256,   256,   256,   257,   257,   258,   258,   258,
1047      258,   258,   259,   259,   260,   261,   261,   262,   262,   263,
1048      264,   264,   264,   264,   264,   264,   265,   265,   265,   266,
1049      266
1050 };
1051
1052 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1053 static const yytype_uint8 yyr2[] =
1054 {
1055        0,     2,     2,     2,     2,     1,     2,     1,     1,     4,
1056        4,     2,     1,     3,     4,     3,     2,     1,     1,     3,
1057        1,     1,     1,     1,     1,     2,     4,     2,     6,     5,
1058        6,     5,     7,     6,     7,     6,     1,     1,     4,     3,
1059        4,     3,     2,     3,     2,     2,     1,     1,     1,     3,
1060        3,     2,     2,     2,     2,     4,     2,     4,     1,     1,
1061        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1062        3,     3,     3,     1,     3,     3,     1,     3,     3,     2,
1063        1,     2,     3,     3,     3,     1,     3,     3,     1,     3,
1064        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
1065        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1066        1,     1,     1,     1,     1,     3,     1,     2,     3,     2,
1067        5,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1068        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1069        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1070        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1071        2,     1,     1,     1,     2,     1,     2,     1,     2,     1,
1072        2,     4,     5,     1,     2,     1,     2,     1,     2,     1,
1073        2,     1,     2,     1,     2,     4,     5,     1,     3,     1,
1074        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1075        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1076        1,     2,     3,     6,     5,     1,     1,     1,     1,     1,
1077        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1078        1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1079        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1080        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1081        1,     4,     4,     4,     1,     5,     4,     4,     3,     5,
1082        6,     5,     5,     4,     6,     2,     2,     3,     3,     1,
1083        2,     1,     2,     1,     1,     1,     3,     3,     3,     3,
1084        1,     3,     1,     1,     1,     2,     3,     1,     3,     9,
1085        9,     7,     7,     5,    10,    10,     8,     8,     6,     8,
1086        8,     6,     6,     4,     9,     9,     7,     7,     5,     3,
1087        2,     2,     2,     1,     2,     1,     1,     1,     3,     1,
1088        2,     2,     3,     5,     2,     2,     4,     5,     7,     7,
1089        5,     1,     3,     1,     3,     3,     2,     3,     3,     3,
1090        4,     4,     2,     3,     3,     4,     3,     2,     3,     3,
1091        4,     1,     1,     2,     2,     2,     3,     1,     1,     2,
1092        2,     2,     3,     1,     2,     3,     2,     1,     3,     4,
1093        3,     4,     1,     2,     2,     3,     3,     2,     3,     3,
1094        2,     1,     1,     2,     2,     1,     2,     2,     3,     3,
1095        1,     2,     1,     2,     2,     3,     1,     3,     1,     3,
1096        2,     2,     2,     3,     1,     1,     1,     3,     1,     2,
1097        1,     2,     1,     3,     4,     1,     1,     1,     3,     1,
1098        1,     1,     1,     1,     1,     3,     4,     3,     1,     2,
1099        1,     2,     2,     1,     1,     2,     1,     2,     3,     1,
1100        2,     5,     7,     5,     5,     7,     6,     7,     4,     5,
1101        4,     3,     2,     2,     2,     3,     1,     5,     4,     5,
1102        4,     4,     3,     4,     3,     3,     2,     2,     2,     2,
1103        2,     2,     2,     2,     2,     3,     1,     1,     3,     2,
1104        1,     1,     2,     2,     1,     2,     1,     1,     2,     1,
1105        3
1106 };
1107
1108 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1109    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1110    means the default is an error.  */
1111 static const yytype_uint16 yydefact[] =
1112 {
1113        0,    17,     7,   191,   192,   193,   194,   195,   220,   221,
1114      222,   223,   224,   226,   229,   230,   227,   228,   216,   217,
1115      219,   225,   292,   293,     0,   415,   240,   197,   198,   200,
1116      241,   242,   231,     0,     0,   201,   202,   233,   232,   196,
1117      155,   162,   236,     8,     5,     0,   161,   414,   149,   215,
1118        0,   199,   218,   151,   153,   157,   234,     0,   235,   159,
1119      499,     0,     0,   335,   334,     0,     0,     0,     4,     2,
1120        3,     6,   402,     0,     0,   412,   156,   377,   150,   215,
1121      152,   154,   158,   160,   362,   411,   410,   392,     0,   391,
1122      373,   361,     0,     0,     8,   276,   275,     0,     0,     1,
1123      343,     0,   341,     0,     0,    36,    22,   466,     0,     0,
1124        0,     0,     0,    66,     0,     0,     0,    23,    61,     0,
1125       64,     0,    60,    62,    63,    65,     0,    20,    37,    18,
1126       59,    58,    67,     0,    69,    73,    76,    80,     0,    85,
1127       88,    90,    92,    94,    96,    98,   100,     0,    24,    21,
1128        0,     0,   236,    20,    67,   283,   281,     0,   285,   284,
1129      290,     0,   400,   403,   404,   352,     0,     0,     0,     0,
1130      406,   408,   346,     0,   116,     0,     0,   377,     0,   413,
1131        0,   365,   394,   393,   364,     0,     0,   376,   387,     0,
1132      390,     0,     0,     0,     0,   363,   374,     0,     0,     0,
1133        0,     0,   326,   268,     0,     0,     0,     0,    20,     0,
1134        0,   215,     0,   297,     0,   325,   294,     0,    12,   382,
1135        0,     0,    21,   323,     0,     0,     0,   278,   277,   500,
1136        0,     0,   336,     0,     0,     0,    54,     0,    51,    52,
1137        0,     0,     0,     0,     0,     0,    56,    27,   114,     0,
1138      418,   121,   123,   127,   125,     0,    25,     0,     0,     0,
1139       44,    45,     0,     0,     0,    42,   104,   105,   106,   107,
1140      108,   109,   110,   111,   112,   113,   103,     0,    53,     0,
1141        0,     0,     0,     0,     0,     0,    81,     0,     0,    79,
1142        0,     0,     0,     0,     0,     0,     0,     0,     0,   237,
1143      238,   239,     0,     0,   215,   282,   361,     0,    10,     9,
1144        0,   401,   405,   345,   378,   353,     0,   348,   347,     0,
1145      366,   375,   354,     0,   349,     0,     0,   380,     0,     0,
1146      388,   389,     0,   203,   204,   207,   206,   205,     0,   208,
1147      210,     0,   244,   245,   246,   247,   248,   250,   253,   254,
1148      251,   252,   243,   249,     0,   264,   255,     0,     0,   257,
1149      256,   260,   169,     0,   163,   165,   167,   258,     0,   259,
1150        0,    16,    61,     0,    20,     0,   446,     0,   477,   480,
1151      481,   479,   478,     0,     0,     0,   320,   377,   215,     0,
1152      327,   395,    11,   329,     0,   384,     0,   266,   295,     0,
1153      324,     0,   383,   322,   321,     0,   267,     0,   273,     0,
1154        0,     0,   344,   342,     0,   340,     0,   337,   133,    20,
1155      420,   129,   131,   137,   135,     0,     0,     0,   215,   368,
1156        0,   367,   183,     0,   173,   175,   177,   179,   181,     0,
1157        0,     0,     0,    19,     0,     0,   122,   124,   128,   126,
1158      419,     0,     0,   494,     0,   472,    59,   426,   425,     0,
1159      139,   141,   143,   147,   145,   486,    46,     0,   491,   487,
1160      497,   490,     0,     0,   474,     0,    43,    39,    48,     0,
1161       47,    41,     0,   102,   101,    70,    71,    72,    74,    75,
1162       77,    78,    83,    84,    82,    86,    87,    89,    91,    93,
1163       95,    97,     0,   281,   287,   286,   364,   289,   288,   291,
1164      407,   409,   355,   351,   350,   381,   379,   417,   214,     0,
1165        0,     0,   211,   335,   334,     0,     0,     0,     0,   170,
1166      164,   166,   168,     0,   275,     0,    15,   215,     0,   447,
1167        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1168        0,     0,   449,    20,     0,   438,     0,   440,   429,     0,
1169        0,     0,   430,   431,   432,   433,   434,     0,   296,    13,
1170      331,     0,   397,     0,     0,   319,     0,   330,     0,   396,
1171      385,   298,   386,   269,   265,   271,     0,   272,     0,     0,
1172        0,   134,   130,   132,   138,   136,   421,    55,   357,     0,
1173        0,     0,   371,   370,     0,     0,   369,     0,     0,   184,
1174      174,   176,   178,   180,   182,     0,     0,     0,     0,     0,
1175       57,   115,    68,    26,   476,     0,     0,   377,   140,   142,
1176      144,   148,   146,   482,   483,   484,     0,   489,   495,   493,
1177      498,   492,   471,   473,    40,     0,    38,     0,   282,     0,
1178      213,   212,     0,     0,     0,     0,     0,     0,   313,     0,
1179        0,     0,     0,   278,   277,    14,     0,     0,     0,     0,
1180        0,     0,     0,     0,   462,   463,   464,     0,     0,     0,
1181      450,   117,   377,     0,   187,   189,   439,     0,   442,   441,
1182      448,   119,   470,     0,   398,     0,   328,   395,     0,   332,
1183      399,   274,   270,   339,   338,   356,   358,    29,   372,   359,
1184        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
1185      475,   485,   488,    50,    49,    99,   209,   261,   262,   263,
1186      171,     0,     0,     0,     0,     0,   303,     0,     0,   318,
1187        0,     0,   437,     0,     0,     0,     0,     0,     0,     0,
1188      461,   465,     0,   435,     0,     0,   118,     0,   469,   397,
1189        0,     0,   396,     0,   360,    28,   185,    33,     0,     0,
1190       30,    35,     0,     0,   311,     0,   312,   172,     0,     0,
1191        0,     0,     0,     0,   308,   436,     0,     0,   458,     0,
1192        0,   460,     0,     0,     0,   468,     0,   188,     0,   422,
1193      190,   398,   399,   333,   186,    32,    34,     0,     0,     0,
1194      301,     0,   302,     0,   316,     0,   317,     0,     0,   451,
1195      453,   454,     0,   459,     0,     0,   120,   467,   427,     0,
1196      309,   310,     0,     0,     0,     0,     0,   306,     0,   307,
1197        0,     0,   456,     0,     0,   423,   299,   300,   314,   315,
1198        0,     0,   452,   455,   457,   424,   428,   304,   305
1199 };
1200
1201 /* YYDEFGOTO[NTERM-NUM].  */
1202 static const yytype_int16 yydefgoto[] =
1203 {
1204       -1,    40,    41,   126,    43,    44,   204,   205,   206,   207,
1205      127,   128,   129,   130,   457,   479,   131,   154,   133,   134,
1206      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1207      145,   146,   248,   277,   554,   175,   688,   250,   420,   459,
1208      210,    47,   363,   433,   683,   684,    48,    49,    50,   339,
1209      340,   341,    51,    52,    53,    54,   436,    55,    56,   157,
1210      158,   159,   160,   161,    57,   212,   213,   214,   215,   216,
1211      389,   390,    58,    59,   101,   102,    84,   429,   167,   430,
1212      168,   217,   218,    88,   219,    90,   393,   163,   220,   169,
1213      170,   171,   193,   255,   425,   800,   465,   829,   557,   558,
1214      559,   560,   561,   377,   562,   563,   564,   565,   566,   148,
1215      567,   221,   149,   466,   223,   467,   468,   469,   470,   471,
1216      472,   473,    61
1217 };
1218
1219 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1220    STATE-NUM.  */
1221 #define YYPACT_NINF -760
1222 static const yytype_int16 yypact[] =
1223 {
1224     8770,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,
1225     -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,
1226     -760,  -760,  -760,  -760,    35,  -760,  -760,  -760,  -760,  -760,
1227     -760,  -760,  -760,    -3,     6,  -760,  -760,  -760,  -760,  -760,
1228     -760,  -760,  -760,  -100,  -760,   303,  7208,  -760,  -760,  -760,
1229       45,  -760,  -760,  -760,  -760,  -760,  -760,   563,  -760,  -760,
1230       77,   137,   138,   112,   136,  6963,    79,  6256,  -760,  -760,
1231     -760,  -760,  1002,  7311,   933,  1035,  -760,   102,  -760,   216,
1232     -760,  -760,  -760,  -760,   -21,  -760,   807,   178,  8202,  -760,
1233     -760,   748,   158,  3556,   -59,  -760,   159,    37,  6963,  -760,
1234      180,   117,  -760,   138,   138,  -760,  -760,  -760,  7019,  7045,
1235     7045,  8860,  6963,  -760,  8860,  6963,  7101,  -760,  -760,  6389,
1236     -760,   334,  -760,  -760,  -760,  -760,   247,    39,  -760,  -760,
1237      642,  -760,  1003,  6963,  -760,   160,   191,   512,  6963,   245,
1238      534,   261,   270,   271,   401,     2,  -760,   338,  -760,  -760,
1239      348,    27,   247,    15,  -760,   512,  6136,   345,  -760,  -760,
1240     -760,   251,  -760,  1002,  -760,  -760,   773,   365,   852,   367,
1241      363,  -760,  -760,   146,  -760,   371,  1035,  -760,    84,   807,
1242       38,   -21,   178,  -760,   748,  8298,  6664,  -760,  -760,  6697,
1243     -760,   483,   379,   253,    95,   -21,  -760,   454,  8950,  8490,
1244     6609,  8860,  -760,  -760,   378,   378,   378,   420,    19,   443,
1245     5906,    84,  3681,  -760,   -57,  -760,  -760,   178,  -760,  -760,
1246       38,   384,   391,  -760,  5514,  3806,  3931,   392,   397,  -760,
1247     6963,   138,  -760,   170,   204,  6389,  -760,  6804,  -760,  -760,
1248      102,  7511,  9040,  7611,  9040,  6389,  -760,  -760,  -760,   301,
1249     8006,  -760,  -760,  -760,  -760,   418,   417,  2708,  2851,   138,
1250     -760,  -760,  5233,   138,  6963,  -760,  -760,  -760,  -760,  -760,
1251     -760,  -760,  -760,  -760,  -760,  -760,  -760,  5274,  -760,  6963,
1252     6963,  6963,  6963,  6963,  6963,  6963,   512,  6963,  6963,  -760,
1253     6963,  6963,  6963,  6963,  6963,  6963,  6963,  6963,  6963,  -760,
1254     -760,  -760,  6256,  7411,   320,   406,   346,  6256,  -760,  -760,
1255     6256,  -760,  -760,  -760,  -760,  -760,  8680,  -760,  -760,    38,
1256      -21,  -760,  -760,   427,  -760,   214,   424,  -760,   218,   429,
1257     -760,  -760,   138,  -760,  -760,  -760,  -760,  -760,   432,   445,
1258     -760,   325,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,
1259     -760,  -760,  -760,  -760,    79,  -760,  -760,   470,   473,  -760,
1260     -760,  -760,   456,  5791,  -760,  -760,  -760,  -760,   706,  -760,
1261     8490,  -760,  1002,  6522,   155,  8585,   455,  5056,  -760,  -760,
1262     -760,  -760,  -760,  5274,  1085,  6963,  -760,    51,    84,   140,
1263     -760,   178,  -760,   -30,    38,  -760,    95,  -760,  -760,  1389,
1264     -760,    95,  -760,  -760,  -760,  4056,  -760,  4181,  -760,  4306,
1265     5514,  4431,  -760,  -760,  5514,  -760,  5514,  -760,  -760,    19,
1266     8006,  -760,  -760,  -760,  -760,   477,  8106,  6963,   -48,   488,
1267      487,   494,   498,  7811,  -760,  -760,  -760,  -760,  -760,  6963,
1268      492,  7911,   497,  -760,  6963,   138,  -760,  -760,  -760,  -760,
1269     -760,  6963,   334,  -760,  2994,  -760,   508,  -760,  -760,  8490,
1270     -760,  -760,  -760,  -760,  -760,  -760,  -760,   378,  -760,  -760,
1271      230,  -760,  3137,   479,  -760,   480,  -760,  -760,  -760,   314,
1272     -760,  -760,   451,  -760,  -760,  -760,  -760,  -760,   160,   160,
1273      191,   191,   512,   512,   512,   245,   245,   534,   261,   270,
1274      271,   401,   286,  7711,  -760,  -760,   346,  -760,  -760,  -760,
1275     -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  6963,
1276      501,   510,  -760,  -760,  -760,  6963,    79,  6256,   -33,   -50,
1277     -760,  -760,  -760,    40,  -760,    79,  -760,    84,   503,  -760,
1278     6963,   490,   514,   519,   521,  5198,   522,   138,   506,   515,
1279     5677,   138,  -760,    26,   249,  -760,  6021,  -760,  -760,  2279,
1280     2422,   520,  -760,  -760,  -760,  -760,  -760,   516,  -760,  -760,
1281     -760,  3280,   178,    95,   614,  -760,  6963,  -760,    95,   178,
1282     -760,  -760,  -760,  -760,  -760,  -760,  4556,  -760,  4681,  4806,
1283     4931,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,   523,
1284      530,   538,   488,   494,  8394,  6963,   488,  6256,  6963,   548,
1285     -760,  -760,  -760,  -760,  -760,   542,   543,  6963,  6963,   545,
1286     -760,  -760,  -760,  -760,  -760,   527,  5274,   138,  -760,  -760,
1287     -760,  -760,  -760,  -760,  -760,  -760,  5274,  -760,  -760,  -760,
1288      230,  -760,  -760,  -760,  -760,  5274,  -760,  6963,  -760,   326,
1289     -760,  -760,   552,   554,    66,   132,   378,   378,  -760,  6256,
1290      -18,   -10,   536,  -760,  -760,  -760,   541,  5198,  6963,  6963,
1291     6830,   625,  5570,   544,  -760,  -760,  -760,   252,   550,  5198,
1292     -760,  -760,    53,   257,  -760,   691,  -760,  2565,  -760,  -760,
1293     -760,  -760,  -760,   540,   178,    84,  -760,   557,    38,   558,
1294      178,  -760,  -760,  -760,  -760,  -760,  -760,  -760,   488,  -760,
1295      568,   571,   197,   572,  6256,  6963,  -760,   573,   574,  6963,
1296     -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,  -760,
1297     -760,   -12,   -14,   292,   378,   378,  -760,   378,   378,  -760,
1298       20,  5198,  -760,   335,   340,  5198,   343,   581,  5198,  5643,
1299     -760,  -760,  6963,  -760,  3423,  1035,  -760,  5381,  -760,   557,
1300       95,    95,   557,  6963,  -760,  -760,  -760,  -760,   311,   576,
1301     -760,  -760,   578,   378,  -760,   378,  -760,  -760,    94,    -1,
1302      153,     9,   378,   378,  -760,  -760,  5198,  5198,  -760,  5198,
1303     6963,  -760,  5198,  6886,   570,  -760,   575,  -760,  5381,  -760,
1304     -760,   557,   557,  -760,  -760,  -760,  -760,   577,   579,   378,
1305     -760,   378,  -760,   378,  -760,   378,  -760,   181,   149,   651,
1306     -760,  -760,   364,  -760,  5198,   413,  -760,  -760,  -760,   219,
1307     -760,  -760,   580,   585,   586,   589,   378,  -760,   378,  -760,
1308     5198,   594,  -760,  5198,  2012,  -760,  -760,  -760,  -760,  -760,
1309      596,   599,  -760,  -760,  -760,  -760,  -760,  -760,  -760
1310 };
1311
1312 /* YYPGOTO[NTERM-NUM].  */
1313 static const yytype_int16 yypgoto[] =
1314 {
1315     -760,   193,  -760,   664,   659,    29,  -760,  -760,  -760,  -760,
1316        0,  -760,  -760,  1461,  -260,  -760,  -760,   167,  -760,  -107,
1317      289,   297,   -20,  -760,   302,   426,   449,   459,   425,   447,
1318     -760,  1542,   -49,  -760,   260,   -87,  -363,  -760,  -760,  -372,
1319       48,  -760,  -760,   502,  -760,    -5,  1452,   927,  -760,  -760,
1320     -307,  -760,   370,  -760,  1302,  1532,  -177,  1156,  -148,  -760,
1321      173,   176,   446,  -512,  -188,  -102,   359,  -760,  -760,    72,
1322     -760,   198,    -6,  1194,   505,   546,   -15,  -396,    -2,  -236,
1323      -42,   421,  -187,  -760,  1083,   -64,   312,  -760,  1146,   -85,
1324     -760,     1,  -760,  -760,   528,  -759,  -374,  -760,    80,  -760,
1325     -760,   223,  -760,  -760,  1157,  -641,  -760,  -760,  -760,  -115,
1326     -760,  -760,   -80,  -760,  -760,  -760,   316,   148,   318,   319,
1327     -760,  -250,  -760
1328 };
1329
1330 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1331    positive, shift that token.  If negative, reduce the rule which
1332    number is the opposite.  If zero, do what YYDEFACT says.
1333    If YYTABLE_NINF, syntax error.  */
1334 #define YYTABLE_NINF -497
1335 static const yytype_int16 yytable[] =
1336 {
1337       45,    60,   478,   192,    86,   556,   256,   440,   475,   568,
1338      368,   229,   371,   222,   555,   655,   147,   483,     1,   297,
1339       67,   366,     1,   392,    64,   242,   278,   196,   244,     1,
1340        1,   749,   602,   179,   522,   606,   656,   657,     1,   828,
1341        1,     1,     1,     1,    85,    71,    77,   155,    46,    29,
1342      367,   734,   735,    63,     1,   775,     1,    96,   773,   737,
1343      738,    67,   100,     2,   181,     2,   151,   153,   811,     1,
1344      659,    72,   399,   166,   426,   177,   195,    71,   815,   177,
1345       35,    36,     1,   224,   400,   856,    95,     1,   191,   782,
1346      783,   177,   660,   208,   367,   712,   367,   228,     1,   326,
1347      323,   185,   329,   100,   100,     1,   186,     2,   793,   576,
1348      658,   240,    27,    28,   240,   156,   196,    29,   286,    65,
1349      321,    46,   405,   407,   409,   736,   227,    71,    66,   776,
1350      265,   774,   222,   739,    69,    70,    46,    99,    69,    70,
1351      298,     1,   812,   412,   222,   222,   222,   733,    35,    36,
1352      301,    71,   816,    71,   305,   302,   240,   258,     1,   241,
1353      176,   258,   243,   784,   809,   679,    71,    92,   258,   320,
1354       69,    70,   485,   486,   487,   368,   177,    62,   177,   226,
1355      177,   258,   661,   536,   177,    45,   532,   556,   556,   729,
1356      599,    71,   369,   571,   177,   754,   686,   615,   362,    77,
1357      374,   240,   768,    72,   625,   619,   176,   708,    71,   265,
1358      387,   177,   208,   480,   651,   367,    98,   176,   838,     1,
1359      177,    69,    70,   813,   208,   208,   208,   361,   484,  -377,
1360     -377,   100,   132,    46,  -377,   419,   369,   810,   369,    76,
1361       71,   240,   432,   240,   432,   419,   231,   370,   450,   375,
1362      445,   836,   721,   730,   103,   321,   612,   287,   288,   476,
1363      232,   310,   308,   481,   612,  -377,  -377,   492,   493,   574,
1364      494,   361,   633,   361,   317,   236,   238,   239,   104,   279,
1365      197,   575,   155,   246,   398,   367,   132,   155,   257,   181,
1366      155,   195,   839,   367,   280,   281,   814,   258,   570,   231,
1367      188,   225,   419,    45,    68,   189,     1,   419,   586,   588,
1368      153,   414,   589,   415,   590,   556,    45,   511,   766,   177,
1369      230,   693,   282,   283,   837,   222,   310,   222,   333,   222,
1370      222,   222,   517,   231,   222,    72,   222,   623,    73,   107,
1371      601,   600,   513,    74,   622,   416,   515,   417,   844,    76,
1372      503,    46,   616,   334,   524,   503,   257,   369,   156,   636,
1373      257,   533,   845,   529,    46,   289,   290,   132,   534,   335,
1374       77,   637,   309,   374,    71,   240,   331,   553,   444,   249,
1375      310,   444,   332,   523,   177,   723,   755,    71,   177,   257,
1376      680,   293,   361,   751,   177,   621,   177,    95,   756,   336,
1377      337,   177,   132,    76,   132,   208,   294,   208,   295,   208,
1378      208,   208,   132,   777,   208,   444,   208,   296,   596,    71,
1379      240,   310,    69,    70,   443,   647,    45,   369,   418,   132,
1380      444,   132,   804,   609,    76,   369,    76,   644,   418,    72,
1381      310,   609,   303,   645,   132,    71,     1,    74,   520,   726,
1382      259,   260,   261,   666,   521,   444,   265,   333,   786,   627,
1383      249,   299,   361,   787,   444,   132,   789,    87,   303,   444,
1384      361,   300,   444,    74,    46,   504,   652,   398,   505,   398,
1385      507,   398,   334,   508,    68,   307,     1,   841,   313,   699,
1386      315,   320,   316,   444,    87,   249,    87,   249,   335,   318,
1387      182,   648,   330,   240,   796,   249,   222,   155,   222,   222,
1388      222,     1,    87,   333,   685,   259,   260,   261,   711,   710,
1389      376,   713,   284,   285,   482,   403,   654,   153,   336,   337,
1390      717,   718,   404,   662,   410,   664,   843,   177,   334,   411,
1391      132,   451,   444,   452,   132,   553,  -280,   673,   291,   292,
1392      512,   678,   514,    71,   335,   518,   682,   516,   502,   553,
1393      553,   381,   376,    76,   663,   262,     1,   519,    76,   263,
1394      264,   488,   489,   177,   177,   156,   527,   338,   177,   646,
1395      444,   490,   491,   383,   336,   337,   208,   155,   208,   208,
1396      208,     2,   525,   495,   496,   526,   724,    87,   539,   182,
1397      597,    87,    69,    70,    45,    87,  -416,   153,   233,   234,
1398      604,   132,  -416,   591,   605,   182,   426,     1,   607,   617,
1399      620,    87,   642,   643,   650,   671,   665,    71,   769,   667,
1400      262,   391,   772,   249,   263,   264,   668,    27,    28,   155,
1401      689,   669,    29,   670,   672,     1,   705,   674,   626,   259,
1402      260,   261,    46,   706,    71,   156,   675,   691,   398,   153,
1403      398,   398,   398,   690,    42,   794,   707,   553,   714,   715,
1404      720,   716,   719,    35,    36,   727,   803,   728,   740,   553,
1405      741,   747,    71,   758,   189,   750,   132,   553,    27,    28,
1406      752,   764,   132,    29,   155,   177,    76,   763,   177,   765,
1407      767,   770,   771,   790,   805,    93,   806,   156,   799,     1,
1408       42,   826,   132,   685,   153,   840,    94,   132,   827,   497,
1409      830,   500,   831,   846,    35,    36,   132,   132,   847,   848,
1410      150,   152,   849,    72,     2,   853,   176,    42,   173,   857,
1411       87,   553,   858,   498,   501,   553,   441,   742,   553,   799,
1412      797,     1,    42,   385,   499,   177,   509,   152,   581,   753,
1413      177,   177,   156,   577,   262,    27,    28,   689,   263,   264,
1414       29,   634,   696,   442,    68,    42,     1,   413,    42,   649,
1415       27,    28,   687,   152,   722,    29,   553,   553,   639,   553,
1416      640,   641,   553,     0,    87,   799,     0,     0,     0,     0,
1417        0,    35,    36,     0,     0,    87,     0,     0,     0,   572,
1418      677,     0,   132,     0,     0,   579,    35,    36,     0,     0,
1419       42,   785,    27,    28,   553,   788,     0,    29,   791,     0,
1420        0,   757,     0,     0,   132,   132,   132,   132,     0,   132,
1421      553,     0,     0,   553,     0,     0,   132,  -377,  -377,    42,
1422      325,     0,  -377,   328,   132,     0,     0,     0,    35,    36,
1423        0,     0,     0,    42,     0,    42,   819,   820,     0,   821,
1424       73,     0,   823,     0,    42,    74,   152,     0,     0,     0,
1425      391,    27,    28,  -377,  -377,     0,    29,     0,   152,   152,
1426      152,     0,    69,    70,     0,  -377,  -377,     0,     0,   152,
1427     -377,     0,     0,     0,   842,    42,     0,    42,   132,   152,
1428        0,     0,   132,     0,    42,   132,   132,    35,    36,     0,
1429      852,   152,   152,   854,   132,     0,    27,    28,   743,   744,
1430      746,    29,     0,     0,   105,     0,     1,   106,   107,   108,
1431        0,   109,   110,     0,     0,     0,     0,     0,     0,     0,
1432        0,     0,     0,   132,   132,     0,   132,   132,   182,   132,
1433      132,     2,    35,    36,     0,   132,   152,    42,     0,     0,
1434        0,   152,     0,    79,   152,   314,     0,    87,     0,     0,
1435       42,     0,     0,     0,    97,     0,     0,     0,     0,     0,
1436        0,   132,     0,     0,   694,   697,     0,     0,     0,   700,
1437       79,     0,   178,     0,   111,   112,   113,   132,     0,     0,
1438      132,   132,     0,   187,     0,     0,     0,     0,   194,     0,
1439      211,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1440      275,     0,     0,     0,    42,   114,   115,   152,     1,    42,
1441        0,   152,   116,     0,     0,     0,    18,    19,     0,     0,
1442      822,   117,   118,   825,     0,   119,     0,   120,   121,     0,
1443        0,   172,     0,   122,   123,   124,   125,     0,     0,   152,
1444        0,   152,     0,   152,   152,   152,    27,    28,   152,     0,
1445      152,    29,     0,   304,    42,     0,     0,     0,     1,     0,
1446       42,     0,     0,     0,     0,   187,     0,     0,     0,     0,
1447        0,     0,     0,   178,     0,     0,   187,   194,     0,    27,
1448       28,   194,    35,    36,    29,     0,   759,     0,   152,   762,
1449        0,    72,     0,    42,     0,     0,   211,   178,     0,    89,
1450        0,     0,     0,     0,     0,     0,   152,   388,     0,   211,
1451        0,     0,     0,   276,     0,    35,    36,   401,     0,     0,
1452        0,   211,   211,   211,    72,     0,    89,   176,    89,    27,
1453       28,     0,   183,     0,    29,     0,     0,    42,   428,     0,
1454      428,     0,     0,     0,    89,     0,    87,   304,     0,     0,
1455        0,   801,   802,     0,     0,     0,     0,     0,     0,     0,
1456      653,   152,    91,     0,     0,    35,    36,     0,     0,     0,
1457        0,     0,    82,     0,    72,     0,     0,   176,   569,     0,
1458        0,     0,     0,     0,     0,     0,     0,     0,   164,    91,
1459       42,   180,     0,   152,   152,   184,     0,     0,     0,     0,
1460      304,     0,     0,     0,     0,   152,     0,     0,     0,     0,
1461       83,     0,     0,     0,     0,     0,   194,     0,     0,     0,
1462      152,     0,   152,   152,   152,     0,     0,     0,     0,    89,
1463        0,   183,     0,    89,     0,     0,     0,    89,    42,     0,
1464        0,   152,     0,     0,     0,   253,     0,   183,     0,     0,
1465        0,     0,     0,    89,     0,     0,     0,     0,     0,     0,
1466      304,     0,     0,     0,   395,   535,     0,   211,     0,     0,
1467      537,     0,   306,   402,     0,     0,     0,     0,     0,   312,
1468        0,   178,    82,   254,     0,     0,     0,     0,     0,     0,
1469        0,   578,   180,   152,   319,     0,     0,     0,     0,     0,
1470        0,     0,   211,     0,   211,     0,   211,   211,   211,     0,
1471        0,   211,     0,   211,     0,     0,   180,   304,    80,     0,
1472       83,   152,     0,   428,     0,     0,   394,   396,     0,     0,
1473      428,   378,   379,   380,   382,     0,    82,     0,   428,     0,
1474        0,     0,     0,     0,   162,     0,     0,     0,   152,     0,
1475        0,     0,     0,     0,     0,     0,   388,   431,     0,   431,
1476      105,   423,     1,   106,   107,     0,   306,    82,   437,    82,
1477      437,   423,    89,     0,    83,     0,   448,     0,     0,     0,
1478        0,     0,     0,   463,   463,     0,     0,     2,   152,     0,
1479        0,   251,     0,     0,     0,     0,     0,     0,     0,   424,
1480      304,     0,     0,     0,     0,    83,   438,    83,   438,   424,
1481        0,     0,     0,     0,   449,     0,     0,     0,     0,   306,
1482      506,   464,   464,     0,     0,     0,    89,     0,    80,     0,
1483      111,   112,     0,     0,     0,   311,     0,    89,     0,     0,
1484        0,   395,     0,     0,     0,     0,     0,   402,     0,   580,
1485        0,     0,     0,   537,   582,     0,     0,     0,     0,     0,
1486        0,   114,   115,     0,     0,     0,     0,     0,    78,     0,
1487      365,   695,     0,     0,     0,     0,     0,   117,     0,   306,
1488        0,   237,    80,   211,   121,   211,   211,   211,   164,   180,
1489        0,     0,     0,     0,     0,     0,    82,     0,     0,   253,
1490      180,    82,     0,   463,   573,     0,     0,   421,     0,     0,
1491        0,     0,     0,    80,   435,    80,   435,   421,     0,     0,
1492        0,     0,   446,     0,   209,     0,     0,     0,     0,   461,
1493      461,     0,     0,     0,    83,     0,   306,   254,     0,    83,
1494        0,   464,   431,     0,   603,     0,   594,     0,    81,   431,
1495        0,     0,     0,     0,     0,     0,     0,   431,     0,   613,
1496        0,     0,     0,     0,     0,     0,     0,   613,     0,     0,
1497        0,     0,     0,     0,     0,   394,     0,     0,    78,     0,
1498      463,     0,   187,     0,   595,   631,   174,     0,     0,     0,
1499      183,     0,     0,     0,   635,   761,     0,   614,   463,     0,
1500        0,     0,     0,     0,     0,   614,     0,     0,     0,    89,
1501      174,     0,     0,     0,     0,     0,     0,     0,   464,   306,
1502      364,   252,     0,   632,   174,     0,   580,   174,     0,    82,
1503        0,   582,    78,     0,     0,   531,   464,     0,     0,     0,
1504        0,     0,    80,   209,   162,   251,     0,    80,     0,   461,
1505        0,     0,   178,   319,     0,   209,   209,   209,    81,     0,
1506        0,     0,     0,    78,   434,    78,   434,    83,     0,     0,
1507        0,     0,   180,     0,     0,     0,     0,     0,     0,   460,
1508      460,     0,   631,     0,     0,   463,   463,     0,   456,   456,
1509      698,     0,   592,     0,     0,     0,     0,   463,   174,     0,
1510        0,   174,     0,     0,     0,   611,     0,     0,     0,     0,
1511        0,     0,    81,   611,     0,     0,     0,     0,     0,     0,
1512      632,     0,     0,   464,   464,     0,   461,     0,     0,     0,
1513        0,   629,     0,     0,     0,   464,     0,   422,     0,     0,
1514        0,     0,   174,    81,   461,    81,     0,   422,     0,     0,
1515        0,     0,   447,     0,     0,     0,     0,     0,     0,   462,
1516      462,     0,     0,     0,     0,     0,     0,     0,     0,   458,
1517      458,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1518        0,     0,     0,   731,   732,   530,     0,     0,     0,     0,
1519        0,     0,    78,     0,     0,     0,     0,    78,     0,   460,
1520        0,     0,     0,     0,     0,     0,     0,     0,    89,     0,
1521        0,   760,     0,   463,     0,     0,     0,     0,     0,     0,
1522        0,     0,     0,     0,     0,     0,     0,     0,   629,     0,
1523      209,   461,   461,     0,     0,     0,   209,     0,   209,     0,
1524      209,   209,   209,   461,     0,   209,     0,   209,     0,     0,
1525        0,   464,     0,     0,     0,   610,     0,     0,     0,     0,
1526        0,   778,   779,   610,   780,   781,     0,     0,     0,     0,
1527        0,   180,    81,     0,     0,   252,   460,    81,     0,   462,
1528      463,   628,     0,     0,     0,   456,     0,     0,     0,     0,
1529        0,     0,     0,     0,   460,   458,     0,   174,     0,     0,
1530      807,     0,   808,   456,     0,     0,     0,     0,     0,   817,
1531      818,     0,     0,     0,     0,     0,     0,     0,   464,     0,
1532        0,     0,   593,     0,     0,    78,     0,     0,     0,     0,
1533        0,     0,     0,     0,     0,     0,   832,     0,   833,   174,
1534      834,     0,   835,     0,     0,     0,     0,     0,     0,     0,
1535        0,   174,     0,     0,     0,     0,   462,     0,     0,   461,
1536        0,   630,     0,   850,     0,   851,   458,     0,     0,     0,
1537        0,     0,     0,     0,   462,     0,     0,     0,   628,     0,
1538        0,   460,   460,   105,   458,     1,   106,   107,   108,     0,
1539      109,   110,     0,   460,     0,     0,     0,     0,     0,     0,
1540        0,     0,   456,     0,     0,    81,     0,     0,     0,     0,
1541        2,     0,     0,     0,     0,     0,     0,   209,     0,   209,
1542      209,   209,     0,     0,     0,     0,   461,     0,     0,     0,
1543        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1544        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1545        0,     0,   174,   111,   112,   113,     0,     0,   630,     0,
1546        0,   462,   462,     0,     0,     0,     0,   456,     0,     0,
1547        0,     0,     0,   462,     0,     0,     0,     0,     0,     0,
1548        0,     0,     0,   458,   114,   115,     0,     0,   174,     0,
1549        0,   116,     0,     0,     0,     0,     0,     0,     0,     0,
1550      117,   118,     0,     0,   119,     0,   120,   121,     0,   460,
1551        0,     0,   122,   123,   124,   125,     0,   174,     0,     0,
1552      174,     0,     0,     0,   798,   855,     0,     0,     0,   174,
1553      174,     0,     0,     0,     0,     0,     0,     0,   458,     0,
1554        0,     0,     0,     0,     0,     0,     0,     0,   458,     0,
1555        0,     0,     0,     0,     0,     0,     0,     0,     0,   725,
1556        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1557        0,     0,     0,     0,     0,     0,   460,     0,     0,     0,
1558        0,     0,     0,     0,     0,   456,     0,     0,     0,   462,
1559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1561        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1562        0,     0,     0,     0,     0,     0,     0,   174,     0,     0,
1563        0,   174,     0,     0,     0,     0,     0,     0,     0,     0,
1564        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1565      105,     0,     1,   106,   107,   108,   462,   109,   110,     0,
1566        0,     0,     0,     0,   174,     0,   458,     0,     0,     0,
1567        0,     0,     0,     0,     0,   174,     0,     2,     3,     4,
1568        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1569       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1570        0,   540,   541,   542,   543,   544,   545,   546,   547,   548,
1571      549,   550,     0,     0,     0,    26,     0,     0,     0,     0,
1572      111,   112,   113,    27,    28,     0,   551,     0,    29,     0,
1573        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
1574        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1575        0,   114,   115,     0,     0,     0,     0,     0,   116,    35,
1576       36,    37,    38,     0,     0,     0,    39,   117,   118,     0,
1577        0,   119,     0,   120,   121,     0,     0,     0,     0,   122,
1578      123,   124,   125,     0,     0,     0,     0,     0,     0,     0,
1579      552,   376,  -444,   105,     0,     1,   106,   107,   108,     0,
1580      109,   110,     0,     0,     0,     0,     0,     0,     0,     0,
1581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1582        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1583       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1584       22,    23,    24,     0,   540,   541,   542,   543,   544,   545,
1585      546,   547,   548,   549,   550,     0,     0,     0,    26,     0,
1586        0,     0,     0,   111,   112,   113,    27,    28,     0,   551,
1587        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1588        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1589        0,     0,    34,     0,   114,   115,     0,     0,     0,     0,
1590        0,   116,    35,    36,    37,    38,     0,     0,     0,    39,
1591      117,   118,     0,     0,   119,     0,   120,   121,     0,     0,
1592        0,     0,   122,   123,   124,   125,     0,     0,     0,     0,
1593        0,     0,     0,   552,   376,  -443,   105,     0,     1,   106,
1594      107,   108,     0,   109,   110,     0,     0,     0,     0,     0,
1595        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1596        0,     0,     0,     2,     3,     4,     5,     6,     7,     8,
1597        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1598       19,    20,    21,    22,    23,    24,     0,   540,   541,   542,
1599      543,   544,   545,   546,   547,   548,   549,   550,     0,     0,
1600        0,    26,     0,     0,     0,     0,   111,   112,   113,    27,
1601       28,     0,   551,     0,    29,     0,     0,    30,    31,     0,
1602       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
1603        0,     0,     0,     0,     0,    34,     0,   114,   115,     0,
1604        0,     0,     0,     0,   116,    35,    36,    37,    38,     0,
1605        0,     0,    39,   117,   118,     0,     0,   119,     0,   120,
1606      121,     0,     0,     0,     0,   122,   123,   124,   125,     0,
1607        0,     0,     0,     0,     0,     0,   552,   376,  -445,   105,
1608        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
1609        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1610        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1611        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1612       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1613        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1614        0,     0,     0,     0,    26,     0,     0,     0,     0,   111,
1615      112,   113,    27,    28,     0,     0,     0,    29,     0,     0,
1616       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1617        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1618      114,   115,     0,     0,     0,     0,     0,   116,    35,    36,
1619       37,    38,     0,     0,     0,    39,   117,   118,     0,     0,
1620      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1621      124,   125,     0,     0,     0,     0,     0,     0,     0,   453,
1622      454,   455,   105,     0,     1,   106,   107,   108,     0,   109,
1623      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1624        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1625        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1626       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1627       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1628        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1629        0,     0,   111,   112,   113,    27,    28,     0,     0,     0,
1630       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1631        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1632        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1633      116,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1634      118,     0,     0,   119,     0,   120,   121,     0,     0,     0,
1635        0,   122,   123,   124,   125,     0,     0,     0,     0,     0,
1636        0,     0,   453,   454,   474,   105,     0,     1,   106,   107,
1637      108,     0,   109,   110,     0,     0,     0,     0,     0,     0,
1638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1639        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1640       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1641       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1642        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1643       26,     0,     0,     0,     0,   111,   112,   113,    27,    28,
1644        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1645        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1646        0,     0,     0,     0,    34,     0,   114,   115,     0,     0,
1647        0,     0,     0,   116,    35,    36,    37,    38,     0,     0,
1648        0,    39,   117,   118,     0,     0,   119,     0,   120,   121,
1649        0,     0,     0,     0,   122,   123,   124,   125,     0,     0,
1650        0,     0,     0,     0,     0,   453,   454,   624,   105,     0,
1651        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
1652        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1653        0,     0,     0,     0,     0,     2,     3,     4,     5,     6,
1654        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1655       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
1656        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1657        0,     0,     0,    26,     0,     0,     0,     0,   111,   112,
1658      113,    27,    28,     0,     0,     0,    29,     0,     0,    30,
1659       31,     0,    32,     0,    33,     0,     0,     0,     0,     0,
1660        0,     0,     0,     0,     0,     0,     0,    34,     0,   114,
1661      115,     0,     0,     0,     0,     0,   116,    35,    36,    37,
1662       38,     0,     0,     0,    39,   117,   118,     0,     0,   119,
1663        0,   120,   121,     0,     0,     0,     0,   122,   123,   124,
1664      125,     0,     0,     0,     0,     0,     0,     0,   638,   454,
1665     -496,   105,     0,     1,   106,   107,   108,     0,   109,   110,
1666        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1667        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1668        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1669       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1670       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1671        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1672        0,   111,   112,   113,    27,    28,     0,     0,     0,    29,
1673        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1674        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675       34,     0,   114,   115,     0,     0,     0,     0,     0,   116,
1676       35,    36,    37,    38,     0,     0,     0,    39,   117,   118,
1677        0,     0,   119,     0,   120,   121,     0,     0,     0,     0,
1678      122,   123,   124,   125,     0,     0,     0,     0,     0,     0,
1679        0,   453,   454,   692,   105,     0,     1,   106,   107,   108,
1680        0,   109,   110,     0,     0,     0,     0,     0,     0,     0,
1681        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682        0,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1683       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1684       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
1685        0,     0,     0,     0,     0,     0,     0,     0,     0,    26,
1686        0,     0,     0,     0,   111,   112,   113,    27,    28,     0,
1687        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
1688       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1689        0,     0,     0,    34,     0,   114,   115,     0,     0,     0,
1690        0,     0,   116,    35,    36,    37,    38,     0,     0,     0,
1691       39,   117,   118,     0,     0,   119,     0,   120,   121,     0,
1692        0,     0,     0,   122,   123,   124,   125,   105,     0,     1,
1693      106,   107,     0,     0,   453,   454,   795,     0,     0,     0,
1694        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1696        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1697       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1698        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1699        0,     0,    26,     0,   198,     0,     0,   111,   112,     0,
1700       27,    28,     0,     0,   199,    29,     0,     0,    30,    31,
1701        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1702        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1703        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1704        0,     0,     0,    39,   117,    72,     0,     0,   200,     0,
1705      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1706        0,     0,     0,     0,     0,     0,     0,   202,     0,   203,
1707        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1708        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1709       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1710       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1711        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1712        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1713       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1714        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1716        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1717       72,     0,     0,   200,     0,   201,   121,   105,     0,     1,
1718      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1719        0,     0,   202,     0,   397,     0,     0,     0,     0,     0,
1720        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1721        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1722       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1723        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724        0,     0,    26,     0,   198,     0,     0,   111,   112,     0,
1725       27,    28,     0,     0,   199,    29,     0,     0,    30,    31,
1726        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1727        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1728        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1729        0,     0,     0,    39,   117,    72,     0,     0,   200,     0,
1730      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1731        0,     0,     0,     0,     0,     0,     0,   202,     0,   406,
1732        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1733        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1734       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1735       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1736        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1737        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1738       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1739        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1740        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1741        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1742       72,     0,     0,   200,     0,   201,   121,   105,     0,     1,
1743      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1744        0,     0,   202,     0,   408,     0,     0,     0,     0,     0,
1745        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1746        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1747       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1748        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749        0,     0,    26,     0,   198,     0,     0,   111,   112,     0,
1750       27,    28,     0,     0,   199,    29,     0,     0,    30,    31,
1751        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1752        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1753        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1754        0,     0,     0,    39,   117,    72,     0,     0,   200,     0,
1755      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1756        0,     0,     0,     0,     0,     0,     0,   202,     0,   583,
1757        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1758        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1759       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1760       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1761        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1762        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1763       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1764        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1766        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1767       72,     0,     0,   200,     0,   201,   121,   105,     0,     1,
1768      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1769        0,     0,   202,     0,   584,     0,     0,     0,     0,     0,
1770        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1771        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1772       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1773        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774        0,     0,    26,     0,   198,     0,     0,   111,   112,     0,
1775       27,    28,     0,     0,   199,    29,     0,     0,    30,    31,
1776        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1777        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1778        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1779        0,     0,     0,    39,   117,    72,     0,     0,   200,     0,
1780      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1781        0,     0,     0,     0,     0,     0,     0,   202,     0,   585,
1782        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1783        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1784       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1785       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1786        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1787        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1788       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1790        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1791        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1792       72,     0,     0,   200,     0,   201,   121,   105,     0,     1,
1793      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1794        0,     0,   202,     0,   587,     0,     0,     0,     0,     0,
1795        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1796        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1797       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1798        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1799        0,     0,    26,     0,   198,     0,     0,   111,   112,     0,
1800       27,    28,     0,     0,   199,    29,     0,     0,    30,    31,
1801        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1802        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1803        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1804        0,     0,     0,    39,   117,    72,     0,     0,   200,     0,
1805      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1806        0,     0,     0,     0,     0,     0,     0,   202,     0,   701,
1807        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1808        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1809       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1810       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1811        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1812        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1813       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1814        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1816        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1817       72,     0,     0,   200,     0,   201,   121,   105,     0,     1,
1818      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1819        0,     0,   202,     0,   702,     0,     0,     0,     0,     0,
1820        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1821        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1822       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1823        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824        0,     0,    26,     0,   198,     0,     0,   111,   112,     0,
1825       27,    28,     0,     0,   199,    29,     0,     0,    30,    31,
1826        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1827        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1828        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1829        0,     0,     0,    39,   117,    72,     0,     0,   200,     0,
1830      201,   121,   105,     0,     1,   106,   107,     0,     0,     0,
1831        0,     0,     0,     0,     0,     0,     0,   202,     0,   703,
1832        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1833        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1834       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1835       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1836        0,     0,     0,     0,     0,     0,     0,    26,     0,   198,
1837        0,     0,   111,   112,     0,    27,    28,     0,     0,   199,
1838       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1839        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1840        0,    34,     0,   114,   115,     0,     0,     0,     0,     0,
1841        0,    35,    36,    37,    38,     0,     0,     0,    39,   117,
1842       72,     0,     0,   200,     0,   201,   121,   105,     0,     1,
1843      106,   107,   108,     0,   109,   110,     0,     0,     0,     0,
1844        0,     0,   202,     0,   704,     0,     0,     0,     0,     0,
1845        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1846        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1847       18,    19,    20,    21,    22,    23,    24,     0,   540,   541,
1848      542,   543,   544,   545,   546,   547,   548,   549,   550,     0,
1849        0,     0,    26,     0,     0,     0,     0,   111,   112,   113,
1850       27,    28,     0,   551,     0,    29,     0,     0,    30,    31,
1851        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1852        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1853        0,     0,     0,     0,     0,   116,    35,    36,    37,    38,
1854        0,     0,     0,    39,   117,   118,     0,     0,   119,     0,
1855      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
1856        0,     0,     0,     0,     0,     0,     0,   552,   376,   105,
1857        0,     1,   106,   107,   108,     0,   109,   110,     0,     0,
1858        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1859        0,     0,     0,     0,     0,     0,     2,     0,     0,     0,
1860        0,     0,     0,     0,   105,     0,     1,   106,   107,   108,
1861        0,   109,   110,     0,     0,     0,     0,     0,     0,     0,
1862      540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
1863      550,     2,     0,     0,     0,     0,     0,     0,     0,   111,
1864      112,   113,     0,     0,     0,   105,     0,     1,   106,   107,
1865      108,     0,   109,   110,     0,     0,     0,     0,     0,     0,
1866        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1867      114,   115,     2,     0,   111,   112,   113,   116,     0,     0,
1868        0,     0,     0,     0,     0,     0,   117,   118,     0,     0,
1869      119,     0,   120,   121,     0,     0,     0,     0,   122,   123,
1870      124,   125,     0,     0,     0,   114,   115,     0,     0,   552,
1871      376,     0,   116,     0,     0,   111,   112,   113,     0,     0,
1872        0,   117,   118,     0,     0,   119,   477,   120,   121,     0,
1873        0,     0,     0,   122,   123,   124,   125,     0,     0,     0,
1874        0,     0,     0,     0,     0,   454,   114,   115,     0,     0,
1875        0,     0,   105,   116,     1,   106,   107,   108,     0,   109,
1876      110,     0,   117,   118,     0,     0,   119,     0,   120,   121,
1877        0,     0,     0,     0,   122,   123,   124,   125,     0,     2,
1878        0,     0,     0,     0,     0,     0,   454,     0,     0,     0,
1879        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1880        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1881        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1882        0,     0,   111,   112,   113,     0,     0,     0,     0,     0,
1883        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1884        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1885        0,     0,     0,   114,   115,     0,     0,     0,     0,     0,
1886      116,     0,     0,     0,     0,     0,     0,     0,     0,   117,
1887      118,     0,     0,   119,     0,   120,   121,     0,     0,     0,
1888        0,   122,   123,   124,   125,   105,     0,     1,   106,   107,
1889        0,     0,     0,   798,     0,     0,     0,     0,     0,     0,
1890        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1891        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1892       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1893       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1894        0,   105,     0,     1,   106,   107,   108,     0,   109,   110,
1895       26,     0,   198,     0,     0,   111,   112,     0,    27,    28,
1896        0,     0,   199,    29,     0,     0,    30,    31,     2,    32,
1897        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1898        0,     0,     0,     0,    34,     0,   114,   115,     0,     0,
1899        0,     0,     0,     0,    35,    36,    37,    38,     0,     0,
1900        0,    39,   117,    72,     0,     0,   200,     0,   201,   121,
1901        0,   111,   112,   113,   105,     0,     1,   106,   107,   108,
1902        0,   109,   110,     0,     0,   202,     0,     0,     0,     0,
1903        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1904        0,     2,   114,   115,     0,     0,     0,     0,   105,   116,
1905        1,   106,   107,   108,     0,   109,   110,     0,   117,   118,
1906        0,     0,   119,   748,   120,   121,     0,     0,     0,     0,
1907      122,   123,   124,   125,     0,     2,     0,     0,     0,     0,
1908        0,   552,     0,     0,   111,   112,   113,     0,     0,     0,
1909        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1910        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1911        0,     0,     0,     0,     0,   114,   115,     0,   111,   112,
1912      113,     0,   116,     0,     0,     0,     0,     0,     0,     0,
1913        0,   117,   118,     0,     0,   119,   792,   120,   121,     0,
1914        0,     0,     0,   122,   123,   124,   125,     0,     0,   114,
1915      115,     0,     0,     0,   552,     0,   116,     0,     0,     0,
1916        0,     0,     0,     0,     1,   117,   118,     0,     0,   119,
1917        0,   120,   121,     0,     0,     0,     0,   122,   123,   124,
1918      125,     0,     0,     0,     0,     0,     0,     0,   676,     2,
1919        3,     4,     5,     6,     7,   342,   343,   344,   345,   346,
1920      347,   348,   349,   350,   351,    18,    19,   352,   353,    22,
1921       23,   354,     0,     0,     0,     0,     0,     0,     0,     0,
1922        0,     0,     0,     0,     0,     0,     0,   355,     0,     0,
1923        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1924       29,     0,     0,     0,     0,     0,   356,     0,   357,     0,
1925        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1926        0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
1927        0,    35,    36,   359,   360,     0,     0,     0,    39,     1,
1928       72,     0,     0,   303,     0,     0,     0,     0,    74,     0,
1929        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1930        0,     0,     0,   528,     2,     3,     4,     5,     6,     7,
1931        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1932       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1933        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1934        0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1935       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1936        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1937        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
1938        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1939        0,     0,     0,    39,     1,    72,     0,     0,   384,     0,
1940        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1941        0,     0,     0,     0,     0,   385,     0,   386,     0,     2,
1942        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1943       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1944       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1945        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1946        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1947       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1948        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1949        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1950        0,    35,    36,    37,    38,     0,     0,     0,    39,     1,
1951       72,     0,     0,   176,     0,     0,     0,     0,     0,     0,
1952        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1953        0,     0,   681,     0,     2,     3,     4,     5,     6,     7,
1954        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1955       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1956        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1957        0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1958       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1959        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1960        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
1961        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
1962        0,     0,     0,    39,     0,    72,     0,   105,   303,     1,
1963      106,   107,   108,    74,   109,   110,     0,     0,     0,     0,
1964        0,     0,     0,     0,     0,     0,  -279,     0,     0,     0,
1965        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1966        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1967       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1968        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1969        0,     0,    26,     0,     0,     0,     0,   111,   112,   113,
1970       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1971        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1972        0,     0,     0,     0,     0,     0,    34,     0,   114,   115,
1973        0,     0,     0,     0,     0,   116,    35,    36,    37,    38,
1974        0,     0,     0,    39,   117,   118,     0,     0,   119,     0,
1975      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
1976      105,     0,     1,   106,   107,   108,     0,   109,   110,     0,
1977        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1978        0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
1979        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
1980       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1981        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1982        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1983      111,   112,   113,    27,    28,     0,     0,     0,    29,     0,
1984        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
1985        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1986        0,   114,   115,     0,     0,     0,     0,     0,   116,    35,
1987       36,    37,    38,     0,     0,     0,     0,   117,   118,     0,
1988        0,   119,   247,   120,   121,     0,     0,     0,     0,   122,
1989      123,   124,   125,   105,     0,     1,   106,   107,   108,     0,
1990      109,   110,     0,     0,     0,     0,     0,     0,     0,     0,
1991        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1992        2,     0,     0,     0,     0,     0,     8,     9,    10,    11,
1993       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1994       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1995        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1996        0,     0,     0,   111,   112,   113,    27,    28,     0,     0,
1997        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1998      105,     0,     1,   106,   107,   108,     0,   109,   110,     0,
1999        0,     0,    34,     0,   114,   115,     0,     0,     0,     0,
2000        0,   116,    35,    36,    37,    38,     0,     2,     0,     0,
2001      117,   372,     0,     0,   373,   247,   120,   121,     0,     0,
2002        0,     0,   122,   123,   124,   125,     0,     0,     0,     0,
2003        0,     0,     0,     0,     0,   105,     0,     1,   106,   107,
2004      108,     0,   109,   110,     0,     0,     0,     0,     0,     0,
2005      111,   112,   113,    27,    28,     0,     0,     0,    29,     0,
2006        0,     0,     2,     0,     0,     0,     0,     0,   105,     0,
2007        1,   106,   107,   108,     0,   109,   110,     0,     0,     0,
2008        0,   114,   115,     0,     0,     0,     0,     0,   116,    35,
2009       36,     0,     0,     0,     0,     2,     0,   117,   372,     0,
2010        0,   373,   247,   120,   121,   111,   112,   113,     0,   122,
2011      123,   124,   125,     0,     0,     0,     0,     0,     0,     0,
2012        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2013        0,     0,     0,     0,     0,     0,   114,   115,   111,   112,
2014      113,     0,     0,   116,     0,     0,     0,     0,     0,     0,
2015        0,     0,   117,   118,     0,     0,   119,     0,   120,   121,
2016        0,     0,   324,     0,   122,   123,   124,   125,     0,   114,
2017      115,     0,     0,     0,     0,   105,   116,     1,   106,   107,
2018      108,     0,   109,   110,     0,   117,   118,     0,     0,   119,
2019        0,   120,   121,     0,     0,   327,     0,   122,   123,   124,
2020      125,   105,     2,     1,   106,   107,   108,     0,   109,   110,
2021        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2022        0,     0,     0,     0,     0,     0,     0,     0,     2,     0,
2023        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2024        0,     0,     0,     0,     0,   111,   112,   113,     0,     0,
2025        0,     0,     0,     0,     0,     0,     0,   105,     0,     1,
2026      106,   107,   108,     0,   109,   110,     0,     0,     0,     0,
2027        0,   111,   112,   113,     0,     0,   114,   115,     0,     0,
2028        0,     0,     0,   116,     2,     0,     0,     0,     0,     0,
2029        0,     0,   117,   118,     0,     0,   119,   247,   120,   121,
2030        0,     0,   114,   115,   122,   123,   124,   125,     0,   116,
2031        0,     0,     0,     0,     0,     0,     0,     0,   117,   118,
2032        0,     0,   119,   745,   120,   121,     0,   111,   112,   113,
2033      122,   123,   124,   125,   105,     0,     1,   106,   107,   108,
2034        0,   109,   110,     0,     0,     0,     0,     0,     0,     0,
2035        0,     0,     0,     0,     0,     0,     0,     0,   114,   115,
2036        0,     2,     0,     0,     0,   116,     0,     0,     0,     0,
2037        0,     0,     0,     0,   117,   118,     0,     0,   119,   824,
2038      120,   121,     0,     0,     0,     0,   122,   123,   124,   125,
2039      105,     0,     1,   106,   107,   108,     0,   109,   110,     0,
2040        0,     0,     0,     0,   111,   112,   113,     0,     0,     0,
2041        0,     0,     0,     0,     0,     0,   105,     2,     1,   106,
2042      107,   108,     0,   109,   110,     0,     0,     0,     0,     0,
2043        0,     0,     0,     0,     0,   114,   115,     0,     0,     0,
2044        0,     0,   116,     2,     0,     0,     0,     0,     0,     0,
2045        0,   117,   118,     0,     0,   119,     0,   120,   121,     0,
2046      111,   112,   113,   122,   123,   124,   125,     0,     0,     0,
2047        0,     0,   105,     0,     1,   106,   107,   108,     0,   109,
2048      110,     0,     0,     0,     0,     0,   111,   112,   113,     0,
2049        0,   114,   115,     0,     0,     0,     0,     0,   116,     2,
2050        0,     0,     0,     0,     0,     0,     0,   117,   118,     0,
2051        0,   235,     0,   120,   121,     0,     0,   114,   115,   122,
2052      123,   124,   125,     0,   116,     0,     0,     0,     0,     0,
2053        0,     0,     0,   117,   118,     0,     0,   237,     0,   120,
2054      121,     0,   111,   112,   113,   122,   123,   124,   125,     0,
2055        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2056        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2057        0,     0,     0,   114,   115,     0,     0,     0,     0,     0,
2058      116,     1,     0,     0,     0,     0,     0,     0,     0,   117,
2059      118,     0,     0,   245,     0,   120,   121,     0,     0,     0,
2060        0,   122,   123,   124,   125,     0,     2,     3,     4,     5,
2061        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2062       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
2063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2064        0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
2065        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
2066       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
2067        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
2068        0,     0,     0,     0,     1,     0,     0,     0,    35,    36,
2069       37,    38,     0,     0,     0,    39,     0,    72,     0,     0,
2070       73,     0,     0,     0,     0,    74,     0,     0,    75,     2,
2071        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2072       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2073       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2074        0,     0,     0,     0,     0,     0,    25,    26,     0,     0,
2075        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2076       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2077        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2078        0,    34,     0,     0,     1,     0,     0,     0,     0,     0,
2079        0,    35,    36,    37,    38,     0,     0,     0,    39,     0,
2080       72,     0,     0,    73,   165,     0,     0,     0,    74,     2,
2081        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2082       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2083       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2084        0,     0,     0,     0,     0,     0,    25,    26,     0,     0,
2085        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2086       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2087        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2088        0,    34,     0,     0,     1,     0,     0,     0,     0,     0,
2089        0,    35,    36,    37,    38,     0,     0,     0,    39,     0,
2090       72,     0,     0,   303,   165,     0,     0,     0,    74,     2,
2091        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2092       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2093       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2094        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2095        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2096       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2097        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2098        0,    34,     0,     0,     1,     0,     0,     0,     0,     0,
2099        0,    35,    36,    37,    38,     0,     0,     0,    39,     0,
2100       72,     0,     0,   426,     0,     0,     0,     0,   427,     2,
2101        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2102       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2103       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2104        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2105        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2106       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2107        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2108        0,    34,     0,     0,     1,     0,     0,     0,     0,     0,
2109        0,    35,    36,    37,    38,     0,     0,     0,    39,     0,
2110       72,     0,     0,   426,     0,     0,     0,     0,   439,     2,
2111        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2112       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2113       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2114        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2115        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2116       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2117        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2118        0,    34,     0,     0,     1,     0,     0,     0,     0,     0,
2119        0,    35,    36,    37,    38,     0,     0,     0,    39,     0,
2120       72,     0,     0,   303,     0,     0,     0,     0,    74,     2,
2121        3,     4,     5,     6,     7,   342,   343,   344,   345,   346,
2122      347,   348,   349,   350,   351,    18,    19,   352,   353,    22,
2123       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2124        0,     0,     0,     0,     0,     0,     0,   355,     0,     0,
2125        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2126       29,     0,     0,     0,     0,     0,   356,     0,   357,     0,
2127        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2128        0,   358,     0,     0,     1,     0,     0,     0,     0,     0,
2129        0,    35,    36,   359,   360,     0,     0,     0,    39,     0,
2130       72,     0,     0,   426,     0,     0,     0,     0,   608,     2,
2131        3,     4,     5,     6,     7,   342,   343,   344,   345,   346,
2132      347,   348,   349,   350,   351,    18,    19,   352,   353,    22,
2133       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2134        0,     0,     0,     0,     0,     0,     0,   355,     0,     0,
2135        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2136       29,     0,     0,     0,     0,     0,   356,     0,   357,     0,
2137        0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
2138        0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
2139        0,    35,    36,   359,   360,     0,     0,     0,    39,     0,
2140       72,     0,     0,   426,     2,     0,     0,     0,   618,     0,
2141        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2142       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2143        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2144        0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
2145       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2146        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
2147        0,     0,     0,     0,     0,     0,    34,     0,     0,     1,
2148        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
2149        0,     0,     0,     0,     0,    72,     0,     0,   303,     0,
2150        0,     0,     0,    74,     2,     3,     4,     5,     6,     7,
2151        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2152       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
2155       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2156        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
2157        0,     0,     0,     0,     0,     1,    34,     0,     0,     0,
2158        0,     0,     0,     0,     0,     0,    35,    36,    37,    38,
2159        0,     0,     0,    39,     0,    72,     0,     0,   426,   598,
2160        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2161       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2162       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2163        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2164        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2165        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2166        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2167        0,     1,    34,     0,     0,     0,     0,     0,     0,     0,
2168        0,     0,    35,    36,    37,    38,     0,     0,     0,    39,
2169        0,     0,     0,     0,     0,   190,     2,     3,     4,     5,
2170        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2171       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
2172        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2173        0,     0,     0,    25,    26,     0,     0,     0,     0,     0,
2174        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
2175       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
2176        0,     0,     0,     0,     0,     0,     0,     1,    34,     0,
2177        0,     0,     0,     0,     0,     0,     0,     0,    35,    36,
2178       37,    38,     0,     0,     0,    39,     0,     0,     0,     0,
2179        0,   322,     2,     3,     4,     5,     6,     7,     8,     9,
2180       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2181       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
2182        0,     0,     0,     0,     0,     0,     0,     0,     0,    25,
2183       26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2184        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
2185        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
2186        0,     0,     0,     1,    34,     0,     0,     0,     0,     0,
2187        0,     0,     0,     0,    35,    36,    37,    38,     0,     0,
2188        0,    39,     0,     0,     0,     0,     0,   709,     2,     3,
2189        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2190       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2191       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2192        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2193        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2194        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2195        0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
2196       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2197       35,    36,    37,    38,     0,     0,     0,    39,     0,    72,
2198        0,     0,   176,     2,     3,     4,     5,     6,     7,     8,
2199        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2200       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2201        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2202        0,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2203       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2204       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
2205        0,     0,     0,     1,     0,    34,     0,     0,     0,     0,
2206        0,     0,     0,     0,     0,    35,    36,    37,    38,     0,
2207        0,     0,    39,     0,     0,     0,     0,   538,     2,     3,
2208        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2209       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2210       24,   510,     0,     0,     0,     0,     0,     0,     0,     0,
2211        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
2212        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2213        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2214        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2215       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2216       35,    36,    37,    38,     0,     0,     0,    39,     2,     3,
2217        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2218       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2219       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2220        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
2221        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2222        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2223        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2224       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2225       35,    36,    37,    38,     0,     0,     0,    39,     2,     3,
2226        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2227       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2228       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2229        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2230        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2231        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2232        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2233       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2234       35,    36,    37,    38,     0,     0,     0,    39,     2,     3,
2235        4,     5,     6,     7,   342,   343,   344,   345,   346,   347,
2236      348,   349,   350,   351,    18,    19,   352,   353,    22,    23,
2237      354,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2238        0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
2239        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2240        0,     0,     0,     0,     0,   356,     0,   357,     0,     0,
2241        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
2242      358,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2243       35,    36,   359,   360,     0,     0,     0,    39,     2,     3,
2244        4,     5,     6,     7,   342,   343,   344,   345,   346,   347,
2245      348,   349,   350,   351,    18,    19,   352,   353,    22,    23,
2246       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2247        0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
2248        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2249        0,     0,     0,     0,     0,   356,     0,   357,     0,     0,
2250        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2251      358,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2252       35,    36,   359,   360,     0,     0,     0,    39
2253 };
2254
2255 static const yytype_int16 yycheck[] =
2256 {
2257        0,     0,   262,    88,    46,   377,   121,   243,   258,   383,
2258      198,    98,   199,    93,   377,   527,    65,   277,     3,    17,
2259      120,   198,     3,   210,    24,   112,   133,    91,   115,     3,
2260        3,   672,   428,    75,   341,   431,    69,    70,     3,   798,
2261        3,     3,     3,     3,    46,    45,    46,    67,     0,    79,
2262      198,    69,    70,    24,     3,    69,     3,    57,    70,    69,
2263       70,   120,    62,    28,    79,    28,    66,    67,    69,     3,
2264      120,   119,   129,    73,   122,    75,    91,    77,    69,    79,
2265      110,   111,     3,   142,   141,   844,    57,     3,    88,    69,
2266       70,    91,   142,    93,   242,   607,   244,    97,     3,   186,
2267      185,   122,   189,   103,   104,     3,   127,    28,   749,   139,
2268      143,   111,    74,    75,   114,    67,   180,    79,   138,   122,
2269      184,    73,   224,   225,   226,   143,    97,   127,   122,   143,
2270      130,   143,   212,   143,   119,   120,    88,     0,   119,   120,
2271      138,     3,   143,   230,   224,   225,   226,   659,   110,   111,
2272      123,   151,   143,   153,   156,   140,   156,   142,     3,   111,
2273      122,   142,   114,   143,    70,   139,   166,   122,   142,   184,
2274      119,   120,   279,   280,   281,   363,   176,   142,   178,   142,
2275      180,   142,   142,   370,   184,   185,   363,   559,   560,   123,
2276      426,   191,   198,   142,   194,   142,   559,   433,   198,   199,
2277      200,   201,   714,   119,   454,   441,   122,   603,   208,   209,
2278      210,   211,   212,   262,   521,   363,   139,   122,    69,     3,
2279      220,   119,   120,    70,   224,   225,   226,   198,   277,    74,
2280       75,   231,    65,   185,    79,   235,   242,   143,   244,    46,
2281      240,   241,   242,   243,   244,   245,   129,   199,   250,   201,
2282      250,    70,   626,   121,   142,   319,   433,    12,    13,   259,
2283      143,   129,    11,   263,   441,   110,   111,   287,   288,   129,
2284      290,   242,   459,   244,   128,   108,   109,   110,   142,   119,
2285      122,   141,   302,   116,   212,   433,   119,   307,   142,   304,
2286      310,   306,   143,   441,   134,   135,   143,   142,   385,   129,
2287      122,   142,   302,   303,     1,   127,     3,   307,   410,   411,
2288      310,   141,   414,   143,   416,   687,   316,   316,   121,   319,
2289      140,   571,   131,   132,   143,   405,   129,   407,     3,   409,
2290      410,   411,   332,   129,   414,   119,   416,   452,   122,     5,
2291      427,   426,   128,   127,   451,   141,   128,   143,   129,   156,
2292      302,   303,   439,    28,   354,   307,   142,   363,   310,   129,
2293      142,   363,   143,   363,   316,   120,   121,   200,   368,    44,
2294      370,   141,   121,   373,   374,   375,   123,   377,   129,   119,
2295      129,   129,   129,   354,   384,   645,   129,   387,   388,   142,
2296      141,   130,   363,   141,   394,   444,   396,   368,   141,    74,
2297       75,   401,   235,   210,   237,   405,   136,   407,   137,   409,
2298      410,   411,   245,   121,   414,   129,   416,    16,   420,   419,
2299      420,   129,   119,   120,   123,   139,   426,   433,   235,   262,
2300      129,   264,   121,   433,   241,   441,   243,   123,   245,   119,
2301      129,   441,   122,   129,   277,   445,     3,   127,   123,   123,
2302        7,     8,     9,   540,   129,   129,   456,     3,   123,   459,
2303      200,   123,   433,   123,   129,   298,   123,    46,   122,   129,
2304      441,   123,   129,   127,   426,   302,   525,   405,   302,   407,
2305      307,   409,    28,   307,     1,   140,     3,   123,   123,   576,
2306      123,   506,   129,   129,    73,   235,    75,   237,    44,   128,
2307       79,   503,   123,   503,   754,   245,   586,   527,   588,   589,
2308      590,     3,    91,     3,   556,     7,     8,     9,   605,   604,
2309      142,   608,    10,    11,   264,   141,   526,   527,    74,    75,
2310      617,   618,   141,   533,   142,   535,   123,   537,    28,   142,
2311      373,   123,   129,   126,   377,   545,   140,   547,    14,    15,
2312      123,   551,   128,   553,    44,   123,   556,   128,   298,   559,
2313      560,   141,   142,   370,   535,   122,     3,   122,   375,   126,
2314      127,   282,   283,   573,   574,   527,   120,   123,   578,   128,
2315      129,   284,   285,   140,    74,    75,   586,   607,   588,   589,
2316      590,    28,   122,   291,   292,   122,   645,   176,   143,   178,
2317      123,   180,   119,   120,   604,   184,   123,   607,   103,   104,
2318      122,   444,   129,   420,   127,   194,   122,     3,   120,   127,
2319      123,   200,   143,   143,   123,   545,   123,   627,   715,   139,
2320      122,   210,   719,   373,   126,   127,   122,    74,    75,   659,
2321      560,   122,    79,   122,   122,     3,   123,   141,   140,     7,
2322        8,     9,   604,   123,   654,   607,   141,   141,   586,   659,
2323      588,   589,   590,   143,     0,   752,   128,   667,   120,   127,
2324      143,   128,   127,   110,   111,   123,   763,   123,   142,   679,
2325      139,    56,   682,   143,   127,   141,   519,   687,    74,    75,
2326      140,   123,   525,    79,   714,   695,   503,   139,   698,   128,
2327      128,   128,   128,   122,   128,   142,   128,   659,   757,     3,
2328       46,   141,   545,   755,   714,    64,    57,   550,   143,   293,
2329      143,   296,   143,   143,   110,   111,   559,   560,   143,   143,
2330       66,    67,   143,   119,    28,   141,   122,    73,    74,   143,
2331      319,   741,   143,   294,   297,   745,   244,   667,   748,   798,
2332      755,     3,    88,   139,   295,   755,   310,    93,   399,   679,
2333      760,   761,   714,   393,   122,    74,    75,   687,   126,   127,
2334       79,   459,   574,   245,     1,   111,     3,   231,   114,   519,
2335       74,    75,   559,   119,   636,    79,   786,   787,   472,   789,
2336      472,   472,   792,    -1,   373,   844,    -1,    -1,    -1,    -1,
2337       -1,   110,   111,    -1,    -1,   384,    -1,    -1,    -1,   388,
2338      550,    -1,   645,    -1,    -1,   394,   110,   111,    -1,    -1,
2339      156,   741,    74,    75,   824,   745,    -1,    79,   748,    -1,
2340       -1,   140,    -1,    -1,   667,   668,   669,   670,    -1,   672,
2341      840,    -1,    -1,   843,    -1,    -1,   679,    74,    75,   185,
2342      186,    -1,    79,   189,   687,    -1,    -1,    -1,   110,   111,
2343       -1,    -1,    -1,   199,    -1,   201,   786,   787,    -1,   789,
2344      122,    -1,   792,    -1,   210,   127,   212,    -1,    -1,    -1,
2345      459,    74,    75,   110,   111,    -1,    79,    -1,   224,   225,
2346      226,    -1,   119,   120,    -1,   122,   123,    -1,    -1,   235,
2347      127,    -1,    -1,    -1,   824,   241,    -1,   243,   741,   245,
2348       -1,    -1,   745,    -1,   250,   748,   749,   110,   111,    -1,
2349      840,   257,   258,   843,   757,    -1,    74,    75,   668,   669,
2350      670,    79,    -1,    -1,     1,    -1,     3,     4,     5,     6,
2351       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2352       -1,    -1,    -1,   786,   787,    -1,   789,   790,   537,   792,
2353      793,    28,   110,   111,    -1,   798,   302,   303,    -1,    -1,
2354       -1,   307,    -1,    46,   310,   123,    -1,   556,    -1,    -1,
2355      316,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,
2356       -1,   824,    -1,    -1,   573,   574,    -1,    -1,    -1,   578,
2357       73,    -1,    75,    -1,    71,    72,    73,   840,    -1,    -1,
2358      843,   844,    -1,    86,    -1,    -1,    -1,    -1,    91,    -1,
2359       93,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2360       27,    -1,    -1,    -1,   370,   102,   103,   373,     3,   375,
2361       -1,   377,   109,    -1,    -1,    -1,    44,    45,    -1,    -1,
2362      790,   118,   119,   793,    -1,   122,    -1,   124,   125,    -1,
2363       -1,   128,    -1,   130,   131,   132,   133,    -1,    -1,   405,
2364       -1,   407,    -1,   409,   410,   411,    74,    75,   414,    -1,
2365      416,    79,    -1,   156,   420,    -1,    -1,    -1,     3,    -1,
2366      426,    -1,    -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,
2367       -1,    -1,    -1,   176,    -1,    -1,   179,   180,    -1,    74,
2368       75,   184,   110,   111,    79,    -1,   695,    -1,   454,   698,
2369       -1,   119,    -1,   459,    -1,    -1,   199,   200,    -1,    46,
2370       -1,    -1,    -1,    -1,    -1,    -1,   472,   210,    -1,   212,
2371       -1,    -1,    -1,   140,    -1,   110,   111,   220,    -1,    -1,
2372       -1,   224,   225,   226,   119,    -1,    73,   122,    75,    74,
2373       75,    -1,    79,    -1,    79,    -1,    -1,   503,   241,    -1,
2374      243,    -1,    -1,    -1,    91,    -1,   755,   250,    -1,    -1,
2375       -1,   760,   761,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2376      526,   527,    46,    -1,    -1,   110,   111,    -1,    -1,    -1,
2377       -1,    -1,    46,    -1,   119,    -1,    -1,   122,   123,    -1,
2378       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
2379      556,    75,    -1,   559,   560,    79,    -1,    -1,    -1,    -1,
2380      303,    -1,    -1,    -1,    -1,   571,    -1,    -1,    -1,    -1,
2381       46,    -1,    -1,    -1,    -1,    -1,   319,    -1,    -1,    -1,
2382      586,    -1,   588,   589,   590,    -1,    -1,    -1,    -1,   176,
2383       -1,   178,    -1,   180,    -1,    -1,    -1,   184,   604,    -1,
2384       -1,   607,    -1,    -1,    -1,   119,    -1,   194,    -1,    -1,
2385       -1,    -1,    -1,   200,    -1,    -1,    -1,    -1,    -1,    -1,
2386      363,    -1,    -1,    -1,   211,   368,    -1,   370,    -1,    -1,
2387      373,    -1,   156,   220,    -1,    -1,    -1,    -1,    -1,   163,
2388       -1,   384,   156,   119,    -1,    -1,    -1,    -1,    -1,    -1,
2389       -1,   394,   176,   659,   178,    -1,    -1,    -1,    -1,    -1,
2390       -1,    -1,   405,    -1,   407,    -1,   409,   410,   411,    -1,
2391       -1,   414,    -1,   416,    -1,    -1,   200,   420,    46,    -1,
2392      156,   687,    -1,   426,    -1,    -1,   210,   211,    -1,    -1,
2393      433,   204,   205,   206,   207,    -1,   210,    -1,   441,    -1,
2394       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,   714,    -1,
2395       -1,    -1,    -1,    -1,    -1,    -1,   459,   241,    -1,   243,
2396        1,   235,     3,     4,     5,    -1,   250,   241,   242,   243,
2397      244,   245,   319,    -1,   210,    -1,   250,    -1,    -1,    -1,
2398       -1,    -1,    -1,   257,   258,    -1,    -1,    28,   754,    -1,
2399       -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   235,
2400      503,    -1,    -1,    -1,    -1,   241,   242,   243,   244,   245,
2401       -1,    -1,    -1,    -1,   250,    -1,    -1,    -1,    -1,   303,
2402      304,   257,   258,    -1,    -1,    -1,   373,    -1,   156,    -1,
2403       71,    72,    -1,    -1,    -1,   163,    -1,   384,    -1,    -1,
2404       -1,   388,    -1,    -1,    -1,    -1,    -1,   394,    -1,   396,
2405       -1,    -1,    -1,   556,   401,    -1,    -1,    -1,    -1,    -1,
2406       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    46,    -1,
2407      198,   574,    -1,    -1,    -1,    -1,    -1,   118,    -1,   363,
2408       -1,   122,   210,   586,   125,   588,   589,   590,   372,   373,
2409       -1,    -1,    -1,    -1,    -1,    -1,   370,    -1,    -1,   373,
2410      384,   375,    -1,   377,   388,    -1,    -1,   235,    -1,    -1,
2411       -1,    -1,    -1,   241,   242,   243,   244,   245,    -1,    -1,
2412       -1,    -1,   250,    -1,    93,    -1,    -1,    -1,    -1,   257,
2413      258,    -1,    -1,    -1,   370,    -1,   420,   373,    -1,   375,
2414       -1,   377,   426,    -1,   428,    -1,   420,    -1,    46,   433,
2415       -1,    -1,    -1,    -1,    -1,    -1,    -1,   441,    -1,   433,
2416       -1,    -1,    -1,    -1,    -1,    -1,    -1,   441,    -1,    -1,
2417       -1,    -1,    -1,    -1,    -1,   459,    -1,    -1,   156,    -1,
2418      454,    -1,   685,    -1,   420,   459,    74,    -1,    -1,    -1,
2419      537,    -1,    -1,    -1,   467,   698,    -1,   433,   472,    -1,
2420       -1,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,   556,
2421       98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,   503,
2422      198,   119,    -1,   459,   112,    -1,   573,   115,    -1,   503,
2423       -1,   578,   210,    -1,    -1,   363,   472,    -1,    -1,    -1,
2424       -1,    -1,   370,   212,   372,   373,    -1,   375,    -1,   377,
2425       -1,    -1,   755,   537,    -1,   224,   225,   226,   156,    -1,
2426       -1,    -1,    -1,   241,   242,   243,   244,   503,    -1,    -1,
2427       -1,    -1,   556,    -1,    -1,    -1,    -1,    -1,    -1,   257,
2428      258,    -1,   556,    -1,    -1,   559,   560,    -1,   257,   258,
2429      574,    -1,   420,    -1,    -1,    -1,    -1,   571,   186,    -1,
2430       -1,   189,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,
2431       -1,    -1,   210,   441,    -1,    -1,    -1,    -1,    -1,    -1,
2432      556,    -1,    -1,   559,   560,    -1,   454,    -1,    -1,    -1,
2433       -1,   459,    -1,    -1,    -1,   571,    -1,   235,    -1,    -1,
2434       -1,    -1,   230,   241,   472,   243,    -1,   245,    -1,    -1,
2435       -1,    -1,   250,    -1,    -1,    -1,    -1,    -1,    -1,   257,
2436      258,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   257,
2437      258,    -1,    -1,    -1,    -1,   503,    -1,    -1,    -1,    -1,
2438       -1,    -1,    -1,   656,   657,   363,    -1,    -1,    -1,    -1,
2439       -1,    -1,   370,    -1,    -1,    -1,    -1,   375,    -1,   377,
2440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   755,    -1,
2441       -1,   695,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
2442       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   556,    -1,
2443      399,   559,   560,    -1,    -1,    -1,   405,    -1,   407,    -1,
2444      409,   410,   411,   571,    -1,   414,    -1,   416,    -1,    -1,
2445       -1,   687,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,
2446       -1,   734,   735,   441,   737,   738,    -1,    -1,    -1,    -1,
2447       -1,   755,   370,    -1,    -1,   373,   454,   375,    -1,   377,
2448      754,   459,    -1,    -1,    -1,   454,    -1,    -1,    -1,    -1,
2449       -1,    -1,    -1,    -1,   472,   383,    -1,   385,    -1,    -1,
2450      773,    -1,   775,   472,    -1,    -1,    -1,    -1,    -1,   782,
2451      783,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   754,    -1,
2452       -1,    -1,   420,    -1,    -1,   503,    -1,    -1,    -1,    -1,
2453       -1,    -1,    -1,    -1,    -1,    -1,   809,    -1,   811,   427,
2454      813,    -1,   815,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2455       -1,   439,    -1,    -1,    -1,    -1,   454,    -1,    -1,   687,
2456       -1,   459,    -1,   836,    -1,   838,   454,    -1,    -1,    -1,
2457       -1,    -1,    -1,    -1,   472,    -1,    -1,    -1,   556,    -1,
2458       -1,   559,   560,     1,   472,     3,     4,     5,     6,    -1,
2459        8,     9,    -1,   571,    -1,    -1,    -1,    -1,    -1,    -1,
2460       -1,    -1,   571,    -1,    -1,   503,    -1,    -1,    -1,    -1,
2461       28,    -1,    -1,    -1,    -1,    -1,    -1,   586,    -1,   588,
2462      589,   590,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,
2463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2464       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2465       -1,    -1,   540,    71,    72,    73,    -1,    -1,   556,    -1,
2466       -1,   559,   560,    -1,    -1,    -1,    -1,   636,    -1,    -1,
2467       -1,    -1,    -1,   571,    -1,    -1,    -1,    -1,    -1,    -1,
2468       -1,    -1,    -1,   571,   102,   103,    -1,    -1,   576,    -1,
2469       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2470      118,   119,    -1,    -1,   122,    -1,   124,   125,    -1,   687,
2471       -1,    -1,   130,   131,   132,   133,    -1,   605,    -1,    -1,
2472      608,    -1,    -1,    -1,   142,   143,    -1,    -1,    -1,   617,
2473      618,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,
2474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,    -1,
2475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   647,
2476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2477       -1,    -1,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,
2478       -1,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,   687,
2479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2482       -1,    -1,    -1,    -1,    -1,    -1,    -1,   715,    -1,    -1,
2483       -1,   719,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2484       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2485        1,    -1,     3,     4,     5,     6,   754,     8,     9,    -1,
2486       -1,    -1,    -1,    -1,   752,    -1,   754,    -1,    -1,    -1,
2487       -1,    -1,    -1,    -1,    -1,   763,    -1,    28,    29,    30,
2488       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2489       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2490       -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2491       61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2492       71,    72,    73,    74,    75,    -1,    77,    -1,    79,    -1,
2493       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2495       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,
2496      111,   112,   113,    -1,    -1,    -1,   117,   118,   119,    -1,
2497       -1,   122,    -1,   124,   125,    -1,    -1,    -1,    -1,   130,
2498      131,   132,   133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2499      141,   142,   143,     1,    -1,     3,     4,     5,     6,    -1,
2500        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2502       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2503       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2504       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
2505       58,    59,    60,    61,    62,    -1,    -1,    -1,    66,    -1,
2506       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    77,
2507       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2508       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2509       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2510       -1,   109,   110,   111,   112,   113,    -1,    -1,    -1,   117,
2511      118,   119,    -1,    -1,   122,    -1,   124,   125,    -1,    -1,
2512       -1,    -1,   130,   131,   132,   133,    -1,    -1,    -1,    -1,
2513       -1,    -1,    -1,   141,   142,   143,     1,    -1,     3,     4,
2514        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2515       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2516       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2517       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2518       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
2519       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
2520       -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,
2521       75,    -1,    77,    -1,    79,    -1,    -1,    82,    83,    -1,
2522       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2523       -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,
2524       -1,    -1,    -1,    -1,   109,   110,   111,   112,   113,    -1,
2525       -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,   124,
2526      125,    -1,    -1,    -1,    -1,   130,   131,   132,   133,    -1,
2527       -1,    -1,    -1,    -1,    -1,    -1,   141,   142,   143,     1,
2528       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2529       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2530       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2531       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2532       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2534       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2535       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2536       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2537       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2538      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2539      112,   113,    -1,    -1,    -1,   117,   118,   119,    -1,    -1,
2540      122,    -1,   124,   125,    -1,    -1,    -1,    -1,   130,   131,
2541      132,   133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,
2542      142,   143,     1,    -1,     3,     4,     5,     6,    -1,     8,
2543        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2544       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2545       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2546       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2547       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2548       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2549       -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,
2550       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2551       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2552       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2553      109,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2554      119,    -1,    -1,   122,    -1,   124,   125,    -1,    -1,    -1,
2555       -1,   130,   131,   132,   133,    -1,    -1,    -1,    -1,    -1,
2556       -1,    -1,   141,   142,   143,     1,    -1,     3,     4,     5,
2557        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2558       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2559       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2560       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2561       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2562       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2563       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2564       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2565       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2566       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2567       -1,    -1,    -1,   109,   110,   111,   112,   113,    -1,    -1,
2568       -1,   117,   118,   119,    -1,    -1,   122,    -1,   124,   125,
2569       -1,    -1,    -1,    -1,   130,   131,   132,   133,    -1,    -1,
2570       -1,    -1,    -1,    -1,    -1,   141,   142,   143,     1,    -1,
2571        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2573       -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,
2574       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2575       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2576       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2577       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
2578       73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
2579       83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
2580       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
2581      103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,
2582      113,    -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,
2583       -1,   124,   125,    -1,    -1,    -1,    -1,   130,   131,   132,
2584      133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,   142,
2585      143,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2586       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2588       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2589       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2590       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2591       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2592       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2593       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2594       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2595      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2596      110,   111,   112,   113,    -1,    -1,    -1,   117,   118,   119,
2597       -1,    -1,   122,    -1,   124,   125,    -1,    -1,    -1,    -1,
2598      130,   131,   132,   133,    -1,    -1,    -1,    -1,    -1,    -1,
2599       -1,   141,   142,   143,     1,    -1,     3,     4,     5,     6,
2600       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2601       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2602       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2603       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2604       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2606       -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,
2607       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2608       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2609       -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,
2610       -1,    -1,   109,   110,   111,   112,   113,    -1,    -1,    -1,
2611      117,   118,   119,    -1,    -1,   122,    -1,   124,   125,    -1,
2612       -1,    -1,    -1,   130,   131,   132,   133,     1,    -1,     3,
2613        4,     5,    -1,    -1,   141,   142,   143,    -1,    -1,    -1,
2614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2616       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2617       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2618       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2619       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2620       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2621       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2622       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2623       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2624       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2625      124,   125,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2626       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,   143,
2627       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2628       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2629       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2630       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2631       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2632       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2633       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2634       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2635       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2636       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2637      119,    -1,    -1,   122,    -1,   124,   125,     1,    -1,     3,
2638        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2639       -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,
2640       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2641       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2642       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2643       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2644       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2645       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2646       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2647       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2648       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2649       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2650      124,   125,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2651       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,   143,
2652       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2653       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2654       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2655       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2656       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2657       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2658       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2659       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2660       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2661       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2662      119,    -1,    -1,   122,    -1,   124,   125,     1,    -1,     3,
2663        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2664       -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,
2665       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2666       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2667       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2669       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2670       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2671       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2672       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2673       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2674       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2675      124,   125,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2676       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,   143,
2677       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2678       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2679       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2680       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2682       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2683       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2684       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2685       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2686       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2687      119,    -1,    -1,   122,    -1,   124,   125,     1,    -1,     3,
2688        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2689       -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,
2690       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2691       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2692       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2694       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2695       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2696       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2697       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2698       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2699       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2700      124,   125,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2701       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,   143,
2702       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2703       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2704       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2705       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2706       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2707       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2708       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2709       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2710       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2711       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2712      119,    -1,    -1,   122,    -1,   124,   125,     1,    -1,     3,
2713        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2714       -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,
2715       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2716       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2717       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2718       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2719       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2720       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2721       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2722       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2723       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2724       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2725      124,   125,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2726       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,   143,
2727       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2728       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2729       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2730       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2732       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2733       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2734       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2735       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2736       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2737      119,    -1,    -1,   122,    -1,   124,   125,     1,    -1,     3,
2738        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2739       -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,
2740       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2741       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2742       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2743       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2744       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2745       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2746       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2747       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2748       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2749       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2750      124,   125,     1,    -1,     3,     4,     5,    -1,    -1,    -1,
2751       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    -1,   143,
2752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2753       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2754       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2755       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2756       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
2757       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2758       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2759       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2760       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2761       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,   118,
2762      119,    -1,    -1,   122,    -1,   124,   125,     1,    -1,     3,
2763        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2764       -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,
2765       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2766       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2767       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
2768       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
2769       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2770       74,    75,    -1,    77,    -1,    79,    -1,    -1,    82,    83,
2771       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2772       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2773       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,   113,
2774       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2775      124,   125,    -1,    -1,    -1,    -1,   130,   131,   132,   133,
2776       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,   142,     1,
2777       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
2780       -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,
2781       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2782       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2783       62,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
2784       72,    73,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2785        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2787      102,   103,    28,    -1,    71,    72,    73,   109,    -1,    -1,
2788       -1,    -1,    -1,    -1,    -1,    -1,   118,   119,    -1,    -1,
2789      122,    -1,   124,   125,    -1,    -1,    -1,    -1,   130,   131,
2790      132,   133,    -1,    -1,    -1,   102,   103,    -1,    -1,   141,
2791      142,    -1,   109,    -1,    -1,    71,    72,    73,    -1,    -1,
2792       -1,   118,   119,    -1,    -1,   122,   123,   124,   125,    -1,
2793       -1,    -1,    -1,   130,   131,   132,   133,    -1,    -1,    -1,
2794       -1,    -1,    -1,    -1,    -1,   142,   102,   103,    -1,    -1,
2795       -1,    -1,     1,   109,     3,     4,     5,     6,    -1,     8,
2796        9,    -1,   118,   119,    -1,    -1,   122,    -1,   124,   125,
2797       -1,    -1,    -1,    -1,   130,   131,   132,   133,    -1,    28,
2798       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
2799       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2802       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2803       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2805       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2806      109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
2807      119,    -1,    -1,   122,    -1,   124,   125,    -1,    -1,    -1,
2808       -1,   130,   131,   132,   133,     1,    -1,     3,     4,     5,
2809       -1,    -1,    -1,   142,    -1,    -1,    -1,    -1,    -1,    -1,
2810       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2811       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2812       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2813       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2814       -1,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2815       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2816       -1,    -1,    78,    79,    -1,    -1,    82,    83,    28,    85,
2817       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2818       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2819       -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,
2820       -1,   117,   118,   119,    -1,    -1,   122,    -1,   124,   125,
2821       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
2822       -1,     8,     9,    -1,    -1,   141,    -1,    -1,    -1,    -1,
2823       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2824       -1,    28,   102,   103,    -1,    -1,    -1,    -1,     1,   109,
2825        3,     4,     5,     6,    -1,     8,     9,    -1,   118,   119,
2826       -1,    -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,
2827      130,   131,   132,   133,    -1,    28,    -1,    -1,    -1,    -1,
2828       -1,   141,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
2829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2831       -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    71,    72,
2832       73,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2833       -1,   118,   119,    -1,    -1,   122,   123,   124,   125,    -1,
2834       -1,    -1,    -1,   130,   131,   132,   133,    -1,    -1,   102,
2835      103,    -1,    -1,    -1,   141,    -1,   109,    -1,    -1,    -1,
2836       -1,    -1,    -1,    -1,     3,   118,   119,    -1,    -1,   122,
2837       -1,   124,   125,    -1,    -1,    -1,    -1,   130,   131,   132,
2838      133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,    28,
2839       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2840       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2841       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2842       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2843       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2844       79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,
2845       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2846       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2847       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,     3,
2848      119,    -1,    -1,   122,    -1,    -1,    -1,    -1,   127,    -1,
2849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2850       -1,    -1,    -1,   142,    28,    29,    30,    31,    32,    33,
2851       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2852       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2854       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2855       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2856       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2857       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
2858       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2859       -1,    -1,    -1,   117,     3,   119,    -1,    -1,   122,    -1,
2860       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2861       -1,    -1,    -1,    -1,    -1,   139,    -1,   141,    -1,    28,
2862       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2863       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2864       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2866       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2867       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2868       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2869       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2870       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,     3,
2871      119,    -1,    -1,   122,    -1,    -1,    -1,    -1,    -1,    -1,
2872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2873       -1,    -1,   141,    -1,    28,    29,    30,    31,    32,    33,
2874       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2875       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2876       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2877       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2878       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2879       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2880       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
2881       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
2882       -1,    -1,    -1,   117,    -1,   119,    -1,     1,   122,     3,
2883        4,     5,     6,   127,     8,     9,    -1,    -1,    -1,    -1,
2884       -1,    -1,    -1,    -1,    -1,    -1,   140,    -1,    -1,    -1,
2885       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2886       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2887       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2888       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2889       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2890       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2891       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2892       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2893       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,   113,
2894       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   122,    -1,
2895      124,   125,    -1,    -1,    -1,    -1,   130,   131,   132,   133,
2896        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2897       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,
2899       -1,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
2900       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2902       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2903       71,    72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,
2904       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2906       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,
2907      111,   112,   113,    -1,    -1,    -1,    -1,   118,   119,    -1,
2908       -1,   122,   123,   124,   125,    -1,    -1,    -1,    -1,   130,
2909      131,   132,   133,     1,    -1,     3,     4,     5,     6,    -1,
2910        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2912       28,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
2913       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2914       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2916       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2917       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2918        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2919       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2920       -1,   109,   110,   111,   112,   113,    -1,    28,    -1,    -1,
2921      118,   119,    -1,    -1,   122,   123,   124,   125,    -1,    -1,
2922       -1,    -1,   130,   131,   132,   133,    -1,    -1,    -1,    -1,
2923       -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2924        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2925       71,    72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,
2926       -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,     1,    -1,
2927        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2928       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,
2929      111,    -1,    -1,    -1,    -1,    28,    -1,   118,   119,    -1,
2930       -1,   122,   123,   124,   125,    71,    72,    73,    -1,   130,
2931      131,   132,   133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2933       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    71,    72,
2934       73,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
2935       -1,    -1,   118,   119,    -1,    -1,   122,    -1,   124,   125,
2936       -1,    -1,   128,    -1,   130,   131,   132,   133,    -1,   102,
2937      103,    -1,    -1,    -1,    -1,     1,   109,     3,     4,     5,
2938        6,    -1,     8,     9,    -1,   118,   119,    -1,    -1,   122,
2939       -1,   124,   125,    -1,    -1,   128,    -1,   130,   131,   132,
2940      133,     1,    28,     3,     4,     5,     6,    -1,     8,     9,
2941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2942       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
2943       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2944       -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
2945       -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
2946        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2947       -1,    71,    72,    73,    -1,    -1,   102,   103,    -1,    -1,
2948       -1,    -1,    -1,   109,    28,    -1,    -1,    -1,    -1,    -1,
2949       -1,    -1,   118,   119,    -1,    -1,   122,   123,   124,   125,
2950       -1,    -1,   102,   103,   130,   131,   132,   133,    -1,   109,
2951       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
2952       -1,    -1,   122,   123,   124,   125,    -1,    71,    72,    73,
2953      130,   131,   132,   133,     1,    -1,     3,     4,     5,     6,
2954       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2955       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,
2956       -1,    28,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
2957       -1,    -1,    -1,    -1,   118,   119,    -1,    -1,   122,   123,
2958      124,   125,    -1,    -1,    -1,    -1,   130,   131,   132,   133,
2959        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2960       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
2961       -1,    -1,    -1,    -1,    -1,    -1,     1,    28,     3,     4,
2962        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2963       -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,    -1,
2964       -1,    -1,   109,    28,    -1,    -1,    -1,    -1,    -1,    -1,
2965       -1,   118,   119,    -1,    -1,   122,    -1,   124,   125,    -1,
2966       71,    72,    73,   130,   131,   132,   133,    -1,    -1,    -1,
2967       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
2968        9,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
2969       -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,    28,
2970       -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,    -1,
2971       -1,   122,    -1,   124,   125,    -1,    -1,   102,   103,   130,
2972      131,   132,   133,    -1,   109,    -1,    -1,    -1,    -1,    -1,
2973       -1,    -1,    -1,   118,   119,    -1,    -1,   122,    -1,   124,
2974      125,    -1,    71,    72,    73,   130,   131,   132,   133,    -1,
2975       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2976       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2977       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2978      109,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
2979      119,    -1,    -1,   122,    -1,   124,   125,    -1,    -1,    -1,
2980       -1,   130,   131,   132,   133,    -1,    28,    29,    30,    31,
2981       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2982       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2983       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2984       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2985       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2986       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2988       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   110,   111,
2989      112,   113,    -1,    -1,    -1,   117,    -1,   119,    -1,    -1,
2990      122,    -1,    -1,    -1,    -1,   127,    -1,    -1,   130,    28,
2991       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2992       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2993       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2994       -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,
2995       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2996       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2997       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2998       -1,   100,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
2999       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3000      119,    -1,    -1,   122,   123,    -1,    -1,    -1,   127,    28,
3001       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3002       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3003       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3004       -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,
3005       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3006       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3008       -1,   100,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3009       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3010      119,    -1,    -1,   122,   123,    -1,    -1,    -1,   127,    28,
3011       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3012       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3013       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3015       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3016       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3017       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3018       -1,   100,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3019       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3020      119,    -1,    -1,   122,    -1,    -1,    -1,    -1,   127,    28,
3021       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3022       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3023       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3024       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3025       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3026       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3027       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3028       -1,   100,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3029       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3030      119,    -1,    -1,   122,    -1,    -1,    -1,    -1,   127,    28,
3031       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3032       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3033       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3034       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3035       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3036       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3037       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3038       -1,   100,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3039       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3040      119,    -1,    -1,   122,    -1,    -1,    -1,    -1,   127,    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,    -1,    -1,    -1,    85,    -1,    87,    -1,
3047       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3048       -1,   100,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3049       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3050      119,    -1,    -1,   122,    -1,    -1,    -1,    -1,   127,    28,
3051       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3052       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3053       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3054       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3055       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3056       79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,
3057       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
3058       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3059       -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,
3060      119,    -1,    -1,   122,    28,    -1,    -1,    -1,   127,    -1,
3061       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3062       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3063       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3064       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3065       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
3066       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
3067       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,     3,
3068       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3069       -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,   122,    -1,
3070       -1,    -1,    -1,   127,    28,    29,    30,    31,    32,    33,
3071       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3072       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
3073       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3074       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3075       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
3076       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
3077       -1,    -1,    -1,    -1,    -1,     3,   100,    -1,    -1,    -1,
3078       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
3079       -1,    -1,    -1,   117,    -1,   119,    -1,    -1,   122,   123,
3080       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3081       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3082       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3083       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3084       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3085       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3086       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3087       -1,     3,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3088       -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,   117,
3089       -1,    -1,    -1,    -1,    -1,   123,    28,    29,    30,    31,
3090       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
3091       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
3092       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3093       -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,
3094       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
3095       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
3096       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,   100,    -1,
3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
3098      112,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,
3099       -1,   123,    28,    29,    30,    31,    32,    33,    34,    35,
3100       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3101       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
3102       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
3103       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
3104       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
3105       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3106       -1,    -1,    -1,     3,   100,    -1,    -1,    -1,    -1,    -1,
3107       -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,
3108       -1,   117,    -1,    -1,    -1,    -1,    -1,   123,    28,    29,
3109       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3110       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3111       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3112       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3113       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3114       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3115       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
3116      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3117      110,   111,   112,   113,    -1,    -1,    -1,   117,    -1,   119,
3118       -1,    -1,   122,    28,    29,    30,    31,    32,    33,    34,
3119       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3120       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
3121       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3122       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
3123       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
3124       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3125       -1,    -1,    -1,     3,    -1,   100,    -1,    -1,    -1,    -1,
3126       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,    -1,
3127       -1,    -1,   117,    -1,    -1,    -1,    -1,   122,    28,    29,
3128       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3129       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3130       50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3131       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
3132       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3133       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3134       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3135      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3136      110,   111,   112,   113,    -1,    -1,    -1,   117,    28,    29,
3137       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3138       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3139       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3140       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,
3141       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3142       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3143       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3144      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3145      110,   111,   112,   113,    -1,    -1,    -1,   117,    28,    29,
3146       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3147       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3148       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3149       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3150       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3151       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
3152       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3153      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3154      110,   111,   112,   113,    -1,    -1,    -1,   117,    28,    29,
3155       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3156       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3157       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3158       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3159       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3160       -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,    -1,
3161       -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
3162      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3163      110,   111,   112,   113,    -1,    -1,    -1,   117,    28,    29,
3164       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3165       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3166       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3167       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
3168       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
3169       -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,    -1,
3170       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3171      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3172      110,   111,   112,   113,    -1,    -1,    -1,   117
3173 };
3174
3175 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3176    symbol of state STATE-NUM.  */
3177 static const yytype_uint16 yystos[] =
3178 {
3179        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
3180       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3181       46,    47,    48,    49,    50,    65,    66,    74,    75,    79,
3182       82,    83,    85,    87,   100,   110,   111,   112,   113,   117,
3183      145,   146,   147,   148,   149,   154,   184,   185,   190,   191,
3184      192,   196,   197,   198,   199,   201,   202,   208,   216,   217,
3185      235,   266,   142,   149,   154,   122,   122,   120,     1,   119,
3186      120,   154,   119,   122,   127,   130,   145,   154,   190,   191,
3187      198,   199,   201,   217,   220,   222,   224,   225,   227,   228,
3188      229,   232,   122,   142,   148,   149,   154,   191,   139,     0,
3189      154,   218,   219,   142,   142,     1,     4,     5,     6,     8,
3190        9,    71,    72,    73,   102,   103,   109,   118,   119,   122,
3191      124,   125,   130,   131,   132,   133,   147,   154,   155,   156,
3192      157,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3193      169,   170,   171,   172,   173,   174,   175,   176,   253,   256,
3194      147,   154,   147,   154,   161,   166,   184,   203,   204,   205,
3195      206,   207,   198,   231,   232,   123,   154,   222,   224,   233,
3196      234,   235,   128,   147,   175,   179,   122,   154,   191,   224,
3197      232,   220,   225,   228,   232,   122,   127,   191,   122,   127,
3198      123,   154,   233,   236,   191,   220,   229,   122,    68,    78,
3199      122,   124,   141,   143,   150,   151,   152,   153,   154,   157,
3200      184,   191,   209,   210,   211,   212,   213,   225,   226,   228,
3201      232,   255,   256,   258,   142,   142,   142,   149,   154,   179,
3202      140,   129,   143,   218,   218,   122,   161,   122,   161,   161,
3203      154,   184,   179,   184,   179,   122,   161,   123,   176,   178,
3204      181,   198,   199,   201,   217,   237,   253,   142,   142,     7,
3205        8,     9,   122,   126,   127,   154,    18,    19,    20,    21,
3206       22,    23,    24,    25,    26,    27,   140,   177,   163,   119,
3207      134,   135,   131,   132,    10,    11,   166,    12,    13,   120,
3208      121,    14,    15,   130,   136,   137,    16,    17,   138,   123,
3209      123,   123,   140,   122,   191,   222,   232,   140,    11,   121,
3210      129,   198,   232,   123,   123,   123,   129,   128,   128,   232,
3211      220,   229,   123,   233,   128,   147,   179,   128,   147,   179,
3212      123,   123,   129,     3,    28,    44,    74,    75,   123,   193,
3213      194,   195,    34,    35,    36,    37,    38,    39,    40,    41,
3214       42,    43,    46,    47,    50,    66,    85,    87,   100,   112,
3215      113,   149,   154,   186,   190,   198,   200,   202,   208,   216,
3216      184,   226,   119,   122,   154,   184,   142,   247,   248,   248,
3217      248,   141,   248,   140,   122,   139,   141,   154,   191,   214,
3218      215,   225,   226,   230,   232,   228,   232,   143,   213,   129,
3219      141,   191,   228,   141,   141,   209,   143,   209,   143,   209,
3220      142,   142,   179,   219,   141,   143,   141,   143,   145,   154,
3221      182,   198,   199,   201,   217,   238,   122,   127,   191,   221,
3222      223,   232,   154,   187,   190,   198,   200,   201,   217,   127,
3223      223,   187,   238,   123,   129,   154,   198,   199,   201,   217,
3224      222,   123,   126,   141,   142,   143,   157,   158,   175,   183,
3225      190,   198,   199,   201,   217,   240,   257,   259,   260,   261,
3226      262,   263,   264,   265,   143,   265,   154,   123,   158,   159,
3227      176,   154,   178,   158,   176,   163,   163,   163,   164,   164,
3228      165,   165,   166,   166,   166,   168,   168,   169,   170,   171,
3229      172,   173,   178,   184,   204,   205,   232,   204,   205,   206,
3230       51,   235,   123,   128,   128,   128,   128,   154,   123,   122,
3231      123,   129,   194,   149,   154,   122,   122,   120,   142,   154,
3232      190,   198,   200,   222,   154,   191,   226,   191,   122,   143,
3233       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
3234       62,    77,   141,   154,   178,   180,   183,   242,   243,   244,
3235      245,   246,   248,   249,   250,   251,   252,   254,   240,   123,
3236      179,   142,   225,   232,   129,   141,   139,   196,   191,   225,
3237      228,   210,   228,   143,   143,   143,   209,   143,   209,   209,
3238      209,   145,   198,   199,   201,   217,   222,   123,   123,   223,
3239      233,   179,   221,   232,   122,   127,   221,   120,   127,   154,
3240      190,   198,   200,   201,   217,   223,   179,   127,   127,   223,
3241      123,   176,   163,   253,   143,   265,   140,   154,   190,   198,
3242      199,   201,   217,   226,   230,   248,   129,   141,   141,   260,
3243      262,   263,   143,   143,   123,   129,   128,   139,   222,   178,
3244      123,   194,   176,   147,   154,   207,    69,    70,   143,   120,
3245      142,   142,   154,   149,   154,   123,   179,   139,   122,   122,
3246      122,   242,   122,   154,   141,   141,   141,   178,   154,   139,
3247      141,   141,   154,   188,   189,   224,   180,   245,   180,   242,
3248      143,   141,   143,   265,   225,   191,   215,   225,   232,   179,
3249      225,   143,   143,   143,   143,   123,   123,   128,   221,   123,
3250      233,   179,   207,   179,   120,   127,   128,   179,   179,   127,
3251      143,   240,   261,   158,   176,   175,   123,   123,   123,   123,
3252      121,   248,   248,   207,    69,    70,   143,    69,    70,   143,
3253      142,   139,   242,   178,   178,   123,   178,    56,   123,   249,
3254      141,   141,   140,   242,   142,   129,   141,   140,   143,   225,
3255      232,   191,   225,   139,   123,   128,   121,   128,   207,   179,
3256      128,   128,   179,    70,   143,    69,   143,   121,   248,   248,
3257      248,   248,    69,    70,   143,   242,   123,   123,   242,   123,
3258      122,   242,   123,   249,   179,   143,   265,   189,   142,   176,
3259      239,   225,   225,   179,   121,   128,   128,   248,   248,    70,
3260      143,    69,   143,    70,   143,    69,   143,   248,   248,   242,
3261      242,   242,   178,   242,   123,   178,   141,   143,   239,   241,
3262      143,   143,   248,   248,   248,   248,    70,   143,    69,   143,
3263       64,   123,   242,   123,   129,   143,   143,   143,   143,   143,
3264      248,   248,   242,   141,   242,   143,   239,   143,   143
3265 };
3266
3267 #define yyerrok         (yyerrstatus = 0)
3268 #define yyclearin       (yychar = YYEMPTY)
3269 #define YYEMPTY         (-2)
3270 #define YYEOF           0
3271
3272 #define YYACCEPT        goto yyacceptlab
3273 #define YYABORT         goto yyabortlab
3274 #define YYERROR         goto yyerrorlab
3275
3276
3277 /* Like YYERROR except do call yyerror.  This remains here temporarily
3278    to ease the transition to the new meaning of YYERROR, for GCC.
3279    Once GCC version 2 has supplanted version 1, this can go.  However,
3280    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
3281    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
3282    discussed.  */
3283
3284 #define YYFAIL          goto yyerrlab
3285 #if defined YYFAIL
3286   /* This is here to suppress warnings from the GCC cpp's
3287      -Wunused-macros.  Normally we don't worry about that warning, but
3288      some users do, and we want to make it easy for users to remove
3289      YYFAIL uses, which will produce warnings from Bison 2.5.  */
3290 #endif
3291
3292 #define YYRECOVERING()  (!!yyerrstatus)
3293
3294 #define YYBACKUP(Token, Value)                                  \
3295 do                                                              \
3296   if (yychar == YYEMPTY && yylen == 1)                          \
3297     {                                                           \
3298       yychar = (Token);                                         \
3299       yylval = (Value);                                         \
3300       yytoken = YYTRANSLATE (yychar);                           \
3301       YYPOPSTACK (1);                                           \
3302       goto yybackup;                                            \
3303     }                                                           \
3304   else                                                          \
3305     {                                                           \
3306       yyerror (YY_("syntax error: cannot back up")); \
3307       YYERROR;                                                  \
3308     }                                                           \
3309 while (YYID (0))
3310
3311
3312 #define YYTERROR        1
3313 #define YYERRCODE       256
3314
3315
3316 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3317    If N is 0, then set CURRENT to the empty location which ends
3318    the previous symbol: RHS[0] (always defined).  */
3319
3320 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3321 #ifndef YYLLOC_DEFAULT
3322 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
3323     do                                                                  \
3324       if (YYID (N))                                                    \
3325         {                                                               \
3326           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
3327           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
3328           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
3329           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
3330         }                                                               \
3331       else                                                              \
3332         {                                                               \
3333           (Current).first_line   = (Current).last_line   =              \
3334             YYRHSLOC (Rhs, 0).last_line;                                \
3335           (Current).first_column = (Current).last_column =              \
3336             YYRHSLOC (Rhs, 0).last_column;                              \
3337         }                                                               \
3338     while (YYID (0))
3339 #endif
3340
3341
3342 /* YY_LOCATION_PRINT -- Print the location on the stream.
3343    This macro was not mandated originally: define only if we know
3344    we won't break user code: when these are the locations we know.  */
3345
3346 #ifndef YY_LOCATION_PRINT
3347 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3348 #  define YY_LOCATION_PRINT(File, Loc)                  \
3349      fprintf (File, "%d.%d-%d.%d",                      \
3350               (Loc).first_line, (Loc).first_column,     \
3351               (Loc).last_line,  (Loc).last_column)
3352 # else
3353 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3354 # endif
3355 #endif
3356
3357
3358 /* YYLEX -- calling `yylex' with the right arguments.  */
3359
3360 #ifdef YYLEX_PARAM
3361 # define YYLEX yylex (YYLEX_PARAM)
3362 #else
3363 # define YYLEX yylex ()
3364 #endif
3365
3366 /* Enable debugging if requested.  */
3367 #if YYDEBUG
3368
3369 # ifndef YYFPRINTF
3370 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3371 #  define YYFPRINTF fprintf
3372 # endif
3373
3374 # define YYDPRINTF(Args)                        \
3375 do {                                            \
3376   if (yydebug)                                  \
3377     YYFPRINTF Args;                             \
3378 } while (YYID (0))
3379
3380 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3381 do {                                                                      \
3382   if (yydebug)                                                            \
3383     {                                                                     \
3384       YYFPRINTF (stderr, "%s ", Title);                                   \
3385       yy_symbol_print (stderr,                                            \
3386                   Type, Value, Location); \
3387       YYFPRINTF (stderr, "\n");                                           \
3388     }                                                                     \
3389 } while (YYID (0))
3390
3391
3392 /*--------------------------------.
3393 | Print this symbol on YYOUTPUT.  |
3394 `--------------------------------*/
3395
3396 /*ARGSUSED*/
3397 #if (defined __STDC__ || defined __C99__FUNC__ \
3398      || defined __cplusplus || defined _MSC_VER)
3399 static void
3400 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3401 #else
3402 static void
3403 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
3404     FILE *yyoutput;
3405     int yytype;
3406     YYSTYPE const * const yyvaluep;
3407     YYLTYPE const * const yylocationp;
3408 #endif
3409 {
3410   if (!yyvaluep)
3411     return;
3412   YYUSE (yylocationp);
3413 # ifdef YYPRINT
3414   if (yytype < YYNTOKENS)
3415     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3416 # else
3417   YYUSE (yyoutput);
3418 # endif
3419   switch (yytype)
3420     {
3421       default:
3422         break;
3423     }
3424 }
3425
3426
3427 /*--------------------------------.
3428 | Print this symbol on YYOUTPUT.  |
3429 `--------------------------------*/
3430
3431 #if (defined __STDC__ || defined __C99__FUNC__ \
3432      || defined __cplusplus || defined _MSC_VER)
3433 static void
3434 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3435 #else
3436 static void
3437 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
3438     FILE *yyoutput;
3439     int yytype;
3440     YYSTYPE const * const yyvaluep;
3441     YYLTYPE const * const yylocationp;
3442 #endif
3443 {
3444   if (yytype < YYNTOKENS)
3445     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3446   else
3447     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3448
3449   YY_LOCATION_PRINT (yyoutput, *yylocationp);
3450   YYFPRINTF (yyoutput, ": ");
3451   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
3452   YYFPRINTF (yyoutput, ")");
3453 }
3454
3455 /*------------------------------------------------------------------.
3456 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3457 | TOP (included).                                                   |
3458 `------------------------------------------------------------------*/
3459
3460 #if (defined __STDC__ || defined __C99__FUNC__ \
3461      || defined __cplusplus || defined _MSC_VER)
3462 static void
3463 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3464 #else
3465 static void
3466 yy_stack_print (yybottom, yytop)
3467     yytype_int16 *yybottom;
3468     yytype_int16 *yytop;
3469 #endif
3470 {
3471   YYFPRINTF (stderr, "Stack now");
3472   for (; yybottom <= yytop; yybottom++)
3473     {
3474       int yybot = *yybottom;
3475       YYFPRINTF (stderr, " %d", yybot);
3476     }
3477   YYFPRINTF (stderr, "\n");
3478 }
3479
3480 # define YY_STACK_PRINT(Bottom, Top)                            \
3481 do {                                                            \
3482   if (yydebug)                                                  \
3483     yy_stack_print ((Bottom), (Top));                           \
3484 } while (YYID (0))
3485
3486
3487 /*------------------------------------------------.
3488 | Report that the YYRULE is going to be reduced.  |
3489 `------------------------------------------------*/
3490
3491 #if (defined __STDC__ || defined __C99__FUNC__ \
3492      || defined __cplusplus || defined _MSC_VER)
3493 static void
3494 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3495 #else
3496 static void
3497 yy_reduce_print (yyvsp, yylsp, yyrule)
3498     YYSTYPE *yyvsp;
3499     YYLTYPE *yylsp;
3500     int yyrule;
3501 #endif
3502 {
3503   int yynrhs = yyr2[yyrule];
3504   int yyi;
3505   unsigned long int yylno = yyrline[yyrule];
3506   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3507              yyrule - 1, yylno);
3508   /* The symbols being reduced.  */
3509   for (yyi = 0; yyi < yynrhs; yyi++)
3510     {
3511       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3512       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3513                        &(yyvsp[(yyi + 1) - (yynrhs)])
3514                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3515       YYFPRINTF (stderr, "\n");
3516     }
3517 }
3518
3519 # define YY_REDUCE_PRINT(Rule)          \
3520 do {                                    \
3521   if (yydebug)                          \
3522     yy_reduce_print (yyvsp, yylsp, Rule); \
3523 } while (YYID (0))
3524
3525 /* Nonzero means print parse trace.  It is left uninitialized so that
3526    multiple parsers can coexist.  */
3527 int yydebug;
3528 #else /* !YYDEBUG */
3529 # define YYDPRINTF(Args)
3530 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3531 # define YY_STACK_PRINT(Bottom, Top)
3532 # define YY_REDUCE_PRINT(Rule)
3533 #endif /* !YYDEBUG */
3534
3535
3536 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3537 #ifndef YYINITDEPTH
3538 # define YYINITDEPTH 200
3539 #endif
3540
3541 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3542    if the built-in stack extension method is used).
3543
3544    Do not make this value too large; the results are undefined if
3545    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3546    evaluated with infinite-precision integer arithmetic.  */
3547
3548 #ifndef YYMAXDEPTH
3549 # define YYMAXDEPTH 10000
3550 #endif
3551
3552 \f
3553
3554 #if YYERROR_VERBOSE
3555
3556 # ifndef yystrlen
3557 #  if defined __GLIBC__ && defined _STRING_H
3558 #   define yystrlen strlen
3559 #  else
3560 /* Return the length of YYSTR.  */
3561 #if (defined __STDC__ || defined __C99__FUNC__ \
3562      || defined __cplusplus || defined _MSC_VER)
3563 static YYSIZE_T
3564 yystrlen (const char *yystr)
3565 #else
3566 static YYSIZE_T
3567 yystrlen (yystr)
3568     const char *yystr;
3569 #endif
3570 {
3571   YYSIZE_T yylen;
3572   for (yylen = 0; yystr[yylen]; yylen++)
3573     continue;
3574   return yylen;
3575 }
3576 #  endif
3577 # endif
3578
3579 # ifndef yystpcpy
3580 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3581 #   define yystpcpy stpcpy
3582 #  else
3583 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3584    YYDEST.  */
3585 #if (defined __STDC__ || defined __C99__FUNC__ \
3586      || defined __cplusplus || defined _MSC_VER)
3587 static char *
3588 yystpcpy (char *yydest, const char *yysrc)
3589 #else
3590 static char *
3591 yystpcpy (yydest, yysrc)
3592     char *yydest;
3593     const char *yysrc;
3594 #endif
3595 {
3596   char *yyd = yydest;
3597   const char *yys = yysrc;
3598
3599   while ((*yyd++ = *yys++) != '\0')
3600     continue;
3601
3602   return yyd - 1;
3603 }
3604 #  endif
3605 # endif
3606
3607 # ifndef yytnamerr
3608 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3609    quotes and backslashes, so that it's suitable for yyerror.  The
3610    heuristic is that double-quoting is unnecessary unless the string
3611    contains an apostrophe, a comma, or backslash (other than
3612    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3613    null, do not copy; instead, return the length of what the result
3614    would have been.  */
3615 static YYSIZE_T
3616 yytnamerr (char *yyres, const char *yystr)
3617 {
3618   if (*yystr == '"')
3619     {
3620       YYSIZE_T yyn = 0;
3621       char const *yyp = yystr;
3622
3623       for (;;)
3624         switch (*++yyp)
3625           {
3626           case '\'':
3627           case ',':
3628             goto do_not_strip_quotes;
3629
3630           case '\\':
3631             if (*++yyp != '\\')
3632               goto do_not_strip_quotes;
3633             /* Fall through.  */
3634           default:
3635             if (yyres)
3636               yyres[yyn] = *yyp;
3637             yyn++;
3638             break;
3639
3640           case '"':
3641             if (yyres)
3642               yyres[yyn] = '\0';
3643             return yyn;
3644           }
3645     do_not_strip_quotes: ;
3646     }
3647
3648   if (! yyres)
3649     return yystrlen (yystr);
3650
3651   return yystpcpy (yyres, yystr) - yyres;
3652 }
3653 # endif
3654
3655 /* Copy into YYRESULT an error message about the unexpected token
3656    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3657    including the terminating null byte.  If YYRESULT is null, do not
3658    copy anything; just return the number of bytes that would be
3659    copied.  As a special case, return 0 if an ordinary "syntax error"
3660    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3661    size calculation.  */
3662 static YYSIZE_T
3663 yysyntax_error (char *yyresult, int yystate, int yychar)
3664 {
3665   int yyn = yypact[yystate];
3666
3667   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3668     return 0;
3669   else
3670     {
3671       int yytype = YYTRANSLATE (yychar);
3672       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3673       YYSIZE_T yysize = yysize0;
3674       YYSIZE_T yysize1;
3675       int yysize_overflow = 0;
3676       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3677       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3678       int yyx;
3679
3680 # if 0
3681       /* This is so xgettext sees the translatable formats that are
3682          constructed on the fly.  */
3683       YY_("syntax error, unexpected %s");
3684       YY_("syntax error, unexpected %s, expecting %s");
3685       YY_("syntax error, unexpected %s, expecting %s or %s");
3686       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3687       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3688 # endif
3689       char *yyfmt;
3690       char const *yyf;
3691       static char const yyunexpected[] = "syntax error, unexpected %s";
3692       static char const yyexpecting[] = ", expecting %s";
3693       static char const yyor[] = " or %s";
3694       char yyformat[sizeof yyunexpected
3695                     + sizeof yyexpecting - 1
3696                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3697                        * (sizeof yyor - 1))];
3698       char const *yyprefix = yyexpecting;
3699
3700       /* Start YYX at -YYN if negative to avoid negative indexes in
3701          YYCHECK.  */
3702       int yyxbegin = yyn < 0 ? -yyn : 0;
3703
3704       /* Stay within bounds of both yycheck and yytname.  */
3705       int yychecklim = YYLAST - yyn + 1;
3706       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3707       int yycount = 1;
3708
3709       yyarg[0] = yytname[yytype];
3710       yyfmt = yystpcpy (yyformat, yyunexpected);
3711
3712       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3713         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3714           {
3715             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3716               {
3717                 yycount = 1;
3718                 yysize = yysize0;
3719                 yyformat[sizeof yyunexpected - 1] = '\0';
3720                 break;
3721               }
3722             yyarg[yycount++] = yytname[yyx];
3723             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3724             yysize_overflow |= (yysize1 < yysize);
3725             yysize = yysize1;
3726             yyfmt = yystpcpy (yyfmt, yyprefix);
3727             yyprefix = yyor;
3728           }
3729
3730       yyf = YY_(yyformat);
3731       yysize1 = yysize + yystrlen (yyf);
3732       yysize_overflow |= (yysize1 < yysize);
3733       yysize = yysize1;
3734
3735       if (yysize_overflow)
3736         return YYSIZE_MAXIMUM;
3737
3738       if (yyresult)
3739         {
3740           /* Avoid sprintf, as that infringes on the user's name space.
3741              Don't have undefined behavior even if the translation
3742              produced a string with the wrong number of "%s"s.  */
3743           char *yyp = yyresult;
3744           int yyi = 0;
3745           while ((*yyp = *yyf) != '\0')
3746             {
3747               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3748                 {
3749                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3750                   yyf += 2;
3751                 }
3752               else
3753                 {
3754                   yyp++;
3755                   yyf++;
3756                 }
3757             }
3758         }
3759       return yysize;
3760     }
3761 }
3762 #endif /* YYERROR_VERBOSE */
3763 \f
3764
3765 /*-----------------------------------------------.
3766 | Release the memory associated to this symbol.  |
3767 `-----------------------------------------------*/
3768
3769 /*ARGSUSED*/
3770 #if (defined __STDC__ || defined __C99__FUNC__ \
3771      || defined __cplusplus || defined _MSC_VER)
3772 static void
3773 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3774 #else
3775 static void
3776 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3777     const char *yymsg;
3778     int yytype;
3779     YYSTYPE *yyvaluep;
3780     YYLTYPE *yylocationp;
3781 #endif
3782 {
3783   YYUSE (yyvaluep);
3784   YYUSE (yylocationp);
3785
3786   if (!yymsg)
3787     yymsg = "Deleting";
3788   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3789
3790   switch (yytype)
3791     {
3792       case 145: /* "guess_type" */
3793
3794 /* Line 1009 of yacc.c  */
3795 #line 174 "type.y"
3796         { FreeSpecifier((yyvaluep->specifier)); };
3797
3798 /* Line 1009 of yacc.c  */
3799 #line 3800 "type.ec"
3800         break;
3801       case 147: /* "type" */
3802
3803 /* Line 1009 of yacc.c  */
3804 #line 174 "type.y"
3805         { FreeSpecifier((yyvaluep->specifier)); };
3806
3807 /* Line 1009 of yacc.c  */
3808 #line 3809 "type.ec"
3809         break;
3810       case 148: /* "base_strict_type" */
3811
3812 /* Line 1009 of yacc.c  */
3813 #line 174 "type.y"
3814         { FreeSpecifier((yyvaluep->specifier)); };
3815
3816 /* Line 1009 of yacc.c  */
3817 #line 3818 "type.ec"
3818         break;
3819       case 149: /* "strict_type" */
3820
3821 /* Line 1009 of yacc.c  */
3822 #line 174 "type.y"
3823         { FreeSpecifier((yyvaluep->specifier)); };
3824
3825 /* Line 1009 of yacc.c  */
3826 #line 3827 "type.ec"
3827         break;
3828       case 150: /* "class_function_definition_start" */
3829
3830 /* Line 1009 of yacc.c  */
3831 #line 195 "type.y"
3832         { FreeClassFunction((yyvaluep->classFunction)); };
3833
3834 /* Line 1009 of yacc.c  */
3835 #line 3836 "type.ec"
3836         break;
3837       case 151: /* "constructor_function_definition_start" */
3838
3839 /* Line 1009 of yacc.c  */
3840 #line 195 "type.y"
3841         { FreeClassFunction((yyvaluep->classFunction)); };
3842
3843 /* Line 1009 of yacc.c  */
3844 #line 3845 "type.ec"
3845         break;
3846       case 152: /* "destructor_function_definition_start" */
3847
3848 /* Line 1009 of yacc.c  */
3849 #line 195 "type.y"
3850         { FreeClassFunction((yyvaluep->classFunction)); };
3851
3852 /* Line 1009 of yacc.c  */
3853 #line 3854 "type.ec"
3854         break;
3855       case 153: /* "virtual_class_function_definition_start" */
3856
3857 /* Line 1009 of yacc.c  */
3858 #line 195 "type.y"
3859         { FreeClassFunction((yyvaluep->classFunction)); };
3860
3861 /* Line 1009 of yacc.c  */
3862 #line 3863 "type.ec"
3863         break;
3864       case 154: /* "identifier" */
3865
3866 /* Line 1009 of yacc.c  */
3867 #line 166 "type.y"
3868         { FreeIdentifier((yyvaluep->id)); };
3869
3870 /* Line 1009 of yacc.c  */
3871 #line 3872 "type.ec"
3872         break;
3873       case 155: /* "primary_expression" */
3874
3875 /* Line 1009 of yacc.c  */
3876 #line 168 "type.y"
3877         { FreeExpression((yyvaluep->exp)); };
3878
3879 /* Line 1009 of yacc.c  */
3880 #line 3881 "type.ec"
3881         break;
3882       case 157: /* "postfix_expression" */
3883
3884 /* Line 1009 of yacc.c  */
3885 #line 168 "type.y"
3886         { FreeExpression((yyvaluep->exp)); };
3887
3888 /* Line 1009 of yacc.c  */
3889 #line 3890 "type.ec"
3890         break;
3891       case 159: /* "argument_expression_list" */
3892
3893 /* Line 1009 of yacc.c  */
3894 #line 203 "type.y"
3895         { FreeList((yyvaluep->list), FreeExpression); };
3896
3897 /* Line 1009 of yacc.c  */
3898 #line 3899 "type.ec"
3899         break;
3900       case 161: /* "unary_expression" */
3901
3902 /* Line 1009 of yacc.c  */
3903 #line 168 "type.y"
3904         { FreeExpression((yyvaluep->exp)); };
3905
3906 /* Line 1009 of yacc.c  */
3907 #line 3908 "type.ec"
3908         break;
3909       case 163: /* "cast_expression" */
3910
3911 /* Line 1009 of yacc.c  */
3912 #line 168 "type.y"
3913         { FreeExpression((yyvaluep->exp)); };
3914
3915 /* Line 1009 of yacc.c  */
3916 #line 3917 "type.ec"
3917         break;
3918       case 164: /* "multiplicative_expression" */
3919
3920 /* Line 1009 of yacc.c  */
3921 #line 168 "type.y"
3922         { FreeExpression((yyvaluep->exp)); };
3923
3924 /* Line 1009 of yacc.c  */
3925 #line 3926 "type.ec"
3926         break;
3927       case 165: /* "additive_expression" */
3928
3929 /* Line 1009 of yacc.c  */
3930 #line 168 "type.y"
3931         { FreeExpression((yyvaluep->exp)); };
3932
3933 /* Line 1009 of yacc.c  */
3934 #line 3935 "type.ec"
3935         break;
3936       case 166: /* "shift_expression" */
3937
3938 /* Line 1009 of yacc.c  */
3939 #line 168 "type.y"
3940         { FreeExpression((yyvaluep->exp)); };
3941
3942 /* Line 1009 of yacc.c  */
3943 #line 3944 "type.ec"
3944         break;
3945       case 168: /* "relational_expression" */
3946
3947 /* Line 1009 of yacc.c  */
3948 #line 168 "type.y"
3949         { FreeExpression((yyvaluep->exp)); };
3950
3951 /* Line 1009 of yacc.c  */
3952 #line 3953 "type.ec"
3953         break;
3954       case 169: /* "equality_expression" */
3955
3956 /* Line 1009 of yacc.c  */
3957 #line 168 "type.y"
3958         { FreeExpression((yyvaluep->exp)); };
3959
3960 /* Line 1009 of yacc.c  */
3961 #line 3962 "type.ec"
3962         break;
3963       case 170: /* "and_expression" */
3964
3965 /* Line 1009 of yacc.c  */
3966 #line 168 "type.y"
3967         { FreeExpression((yyvaluep->exp)); };
3968
3969 /* Line 1009 of yacc.c  */
3970 #line 3971 "type.ec"
3971         break;
3972       case 171: /* "exclusive_or_expression" */
3973
3974 /* Line 1009 of yacc.c  */
3975 #line 168 "type.y"
3976         { FreeExpression((yyvaluep->exp)); };
3977
3978 /* Line 1009 of yacc.c  */
3979 #line 3980 "type.ec"
3980         break;
3981       case 172: /* "inclusive_or_expression" */
3982
3983 /* Line 1009 of yacc.c  */
3984 #line 168 "type.y"
3985         { FreeExpression((yyvaluep->exp)); };
3986
3987 /* Line 1009 of yacc.c  */
3988 #line 3989 "type.ec"
3989         break;
3990       case 173: /* "logical_and_expression" */
3991
3992 /* Line 1009 of yacc.c  */
3993 #line 168 "type.y"
3994         { FreeExpression((yyvaluep->exp)); };
3995
3996 /* Line 1009 of yacc.c  */
3997 #line 3998 "type.ec"
3998         break;
3999       case 174: /* "logical_or_expression" */
4000
4001 /* Line 1009 of yacc.c  */
4002 #line 168 "type.y"
4003         { FreeExpression((yyvaluep->exp)); };
4004
4005 /* Line 1009 of yacc.c  */
4006 #line 4007 "type.ec"
4007         break;
4008       case 175: /* "conditional_expression" */
4009
4010 /* Line 1009 of yacc.c  */
4011 #line 168 "type.y"
4012         { FreeExpression((yyvaluep->exp)); };
4013
4014 /* Line 1009 of yacc.c  */
4015 #line 4016 "type.ec"
4016         break;
4017       case 176: /* "assignment_expression" */
4018
4019 /* Line 1009 of yacc.c  */
4020 #line 168 "type.y"
4021         { FreeExpression((yyvaluep->exp)); };
4022
4023 /* Line 1009 of yacc.c  */
4024 #line 4025 "type.ec"
4025         break;
4026       case 178: /* "expression" */
4027
4028 /* Line 1009 of yacc.c  */
4029 #line 203 "type.y"
4030         { FreeList((yyvaluep->list), FreeExpression); };
4031
4032 /* Line 1009 of yacc.c  */
4033 #line 4034 "type.ec"
4034         break;
4035       case 179: /* "constant_expression" */
4036
4037 /* Line 1009 of yacc.c  */
4038 #line 168 "type.y"
4039         { FreeExpression((yyvaluep->exp)); };
4040
4041 /* Line 1009 of yacc.c  */
4042 #line 4043 "type.ec"
4043         break;
4044       case 180: /* "declaration" */
4045
4046 /* Line 1009 of yacc.c  */
4047 #line 189 "type.y"
4048         { FreeDeclaration((yyvaluep->declaration)); };
4049
4050 /* Line 1009 of yacc.c  */
4051 #line 4052 "type.ec"
4052         break;
4053       case 181: /* "specifier_qualifier_list" */
4054
4055 /* Line 1009 of yacc.c  */
4056 #line 205 "type.y"
4057         { FreeList((yyvaluep->list), FreeSpecifier); };
4058
4059 /* Line 1009 of yacc.c  */
4060 #line 4061 "type.ec"
4061         break;
4062       case 182: /* "guess_specifier_qualifier_list" */
4063
4064 /* Line 1009 of yacc.c  */
4065 #line 205 "type.y"
4066         { FreeList((yyvaluep->list), FreeSpecifier); };
4067
4068 /* Line 1009 of yacc.c  */
4069 #line 4070 "type.ec"
4070         break;
4071       case 183: /* "declaration_specifiers" */
4072
4073 /* Line 1009 of yacc.c  */
4074 #line 205 "type.y"
4075         { FreeList((yyvaluep->list), FreeSpecifier); };
4076
4077 /* Line 1009 of yacc.c  */
4078 #line 4079 "type.ec"
4079         break;
4080       case 184: /* "guess_declaration_specifiers" */
4081
4082 /* Line 1009 of yacc.c  */
4083 #line 205 "type.y"
4084         { FreeList((yyvaluep->list), FreeSpecifier); };
4085
4086 /* Line 1009 of yacc.c  */
4087 #line 4088 "type.ec"
4088         break;
4089       case 188: /* "init_declarator_list" */
4090
4091 /* Line 1009 of yacc.c  */
4092 #line 210 "type.y"
4093         { FreeList((yyvaluep->list), FreeInitDeclarator); };
4094
4095 /* Line 1009 of yacc.c  */
4096 #line 4097 "type.ec"
4097         break;
4098       case 189: /* "init_declarator" */
4099
4100 /* Line 1009 of yacc.c  */
4101 #line 184 "type.y"
4102         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
4103
4104 /* Line 1009 of yacc.c  */
4105 #line 4106 "type.ec"
4106         break;
4107       case 190: /* "storage_class_specifier" */
4108
4109 /* Line 1009 of yacc.c  */
4110 #line 174 "type.y"
4111         { FreeSpecifier((yyvaluep->specifier)); };
4112
4113 /* Line 1009 of yacc.c  */
4114 #line 4115 "type.ec"
4115         break;
4116       case 191: /* "ext_decl" */
4117
4118 /* Line 1009 of yacc.c  */
4119 #line 220 "type.y"
4120         { FreeExtDecl((yyvaluep->extDecl)); };
4121
4122 /* Line 1009 of yacc.c  */
4123 #line 4124 "type.ec"
4124         break;
4125       case 193: /* "attribute_word" */
4126
4127 /* Line 1009 of yacc.c  */
4128 #line 200 "type.y"
4129         { delete (yyvaluep->string); };
4130
4131 /* Line 1009 of yacc.c  */
4132 #line 4133 "type.ec"
4133         break;
4134       case 194: /* "attribute" */
4135
4136 /* Line 1009 of yacc.c  */
4137 #line 221 "type.y"
4138         { FreeAttribute((yyvaluep->attribute)); };
4139
4140 /* Line 1009 of yacc.c  */
4141 #line 4142 "type.ec"
4142         break;
4143       case 195: /* "attribs_list" */
4144
4145 /* Line 1009 of yacc.c  */
4146 #line 222 "type.y"
4147         { FreeList((yyvaluep->list), FreeAttribute); };
4148
4149 /* Line 1009 of yacc.c  */
4150 #line 4151 "type.ec"
4151         break;
4152       case 196: /* "attrib" */
4153
4154 /* Line 1009 of yacc.c  */
4155 #line 219 "type.y"
4156         { FreeAttrib((yyvaluep->attrib)); };
4157
4158 /* Line 1009 of yacc.c  */
4159 #line 4160 "type.ec"
4160         break;
4161       case 197: /* "ext_storage" */
4162
4163 /* Line 1009 of yacc.c  */
4164 #line 174 "type.y"
4165         { FreeSpecifier((yyvaluep->specifier)); };
4166
4167 /* Line 1009 of yacc.c  */
4168 #line 4169 "type.ec"
4169         break;
4170       case 198: /* "type_qualifier" */
4171
4172 /* Line 1009 of yacc.c  */
4173 #line 174 "type.y"
4174         { FreeSpecifier((yyvaluep->specifier)); };
4175
4176 /* Line 1009 of yacc.c  */
4177 #line 4178 "type.ec"
4178         break;
4179       case 199: /* "type_specifier" */
4180
4181 /* Line 1009 of yacc.c  */
4182 #line 174 "type.y"
4183         { FreeSpecifier((yyvaluep->specifier)); };
4184
4185 /* Line 1009 of yacc.c  */
4186 #line 4187 "type.ec"
4187         break;
4188       case 200: /* "strict_type_specifier" */
4189
4190 /* Line 1009 of yacc.c  */
4191 #line 174 "type.y"
4192         { FreeSpecifier((yyvaluep->specifier)); };
4193
4194 /* Line 1009 of yacc.c  */
4195 #line 4196 "type.ec"
4196         break;
4197       case 201: /* "struct_or_union_specifier_compound" */
4198
4199 /* Line 1009 of yacc.c  */
4200 #line 174 "type.y"
4201         { FreeSpecifier((yyvaluep->specifier)); };
4202
4203 /* Line 1009 of yacc.c  */
4204 #line 4205 "type.ec"
4205         break;
4206       case 202: /* "struct_or_union_specifier_nocompound" */
4207
4208 /* Line 1009 of yacc.c  */
4209 #line 174 "type.y"
4210         { FreeSpecifier((yyvaluep->specifier)); };
4211
4212 /* Line 1009 of yacc.c  */
4213 #line 4214 "type.ec"
4214         break;
4215       case 203: /* "template_datatype" */
4216
4217 /* Line 1009 of yacc.c  */
4218 #line 218 "type.y"
4219         { FreeTemplateDataType((yyvaluep->templateDatatype)); };
4220
4221 /* Line 1009 of yacc.c  */
4222 #line 4223 "type.ec"
4223         break;
4224       case 204: /* "template_type_argument" */
4225
4226 /* Line 1009 of yacc.c  */
4227 #line 217 "type.y"
4228         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4229
4230 /* Line 1009 of yacc.c  */
4231 #line 4232 "type.ec"
4232         break;
4233       case 205: /* "template_expression_argument" */
4234
4235 /* Line 1009 of yacc.c  */
4236 #line 217 "type.y"
4237         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4238
4239 /* Line 1009 of yacc.c  */
4240 #line 4241 "type.ec"
4241         break;
4242       case 206: /* "template_argument" */
4243
4244 /* Line 1009 of yacc.c  */
4245 #line 217 "type.y"
4246         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4247
4248 /* Line 1009 of yacc.c  */
4249 #line 4250 "type.ec"
4250         break;
4251       case 209: /* "struct_declaration_list" */
4252
4253 /* Line 1009 of yacc.c  */
4254 #line 213 "type.y"
4255         { FreeList((yyvaluep->list), FreeClassDef); };
4256
4257 /* Line 1009 of yacc.c  */
4258 #line 4259 "type.ec"
4259         break;
4260       case 210: /* "default_property" */
4261
4262 /* Line 1009 of yacc.c  */
4263 #line 193 "type.y"
4264         { FreeMemberInit((yyvaluep->memberInit)); };
4265
4266 /* Line 1009 of yacc.c  */
4267 #line 4268 "type.ec"
4268         break;
4269       case 211: /* "default_property_list" */
4270
4271 /* Line 1009 of yacc.c  */
4272 #line 214 "type.y"
4273         { FreeList((yyvaluep->list), FreeMemberInit); };
4274
4275 /* Line 1009 of yacc.c  */
4276 #line 4277 "type.ec"
4277         break;
4278       case 212: /* "property" */
4279
4280 /* Line 1009 of yacc.c  */
4281 #line 201 "type.y"
4282         { FreeProperty((yyvaluep->prop)); };
4283
4284 /* Line 1009 of yacc.c  */
4285 #line 4286 "type.ec"
4286         break;
4287       case 213: /* "struct_declaration" */
4288
4289 /* Line 1009 of yacc.c  */
4290 #line 199 "type.y"
4291         { FreeClassDef((yyvaluep->classDef)); };
4292
4293 /* Line 1009 of yacc.c  */
4294 #line 4295 "type.ec"
4295         break;
4296       case 214: /* "struct_declarator_list" */
4297
4298 /* Line 1009 of yacc.c  */
4299 #line 207 "type.y"
4300         { FreeList((yyvaluep->list), FreeDeclarator); };
4301
4302 /* Line 1009 of yacc.c  */
4303 #line 4304 "type.ec"
4304         break;
4305       case 215: /* "struct_declarator" */
4306
4307 /* Line 1009 of yacc.c  */
4308 #line 178 "type.y"
4309         { FreeDeclarator((yyvaluep->declarator)); };
4310
4311 /* Line 1009 of yacc.c  */
4312 #line 4313 "type.ec"
4313         break;
4314       case 216: /* "enum_specifier_nocompound" */
4315
4316 /* Line 1009 of yacc.c  */
4317 #line 174 "type.y"
4318         { FreeSpecifier((yyvaluep->specifier)); };
4319
4320 /* Line 1009 of yacc.c  */
4321 #line 4322 "type.ec"
4322         break;
4323       case 217: /* "enum_specifier_compound" */
4324
4325 /* Line 1009 of yacc.c  */
4326 #line 174 "type.y"
4327         { FreeSpecifier((yyvaluep->specifier)); };
4328
4329 /* Line 1009 of yacc.c  */
4330 #line 4331 "type.ec"
4331         break;
4332       case 218: /* "enumerator_list" */
4333
4334 /* Line 1009 of yacc.c  */
4335 #line 204 "type.y"
4336         { FreeList((yyvaluep->list), FreeEnumerator); };
4337
4338 /* Line 1009 of yacc.c  */
4339 #line 4340 "type.ec"
4340         break;
4341       case 219: /* "enumerator" */
4342
4343 /* Line 1009 of yacc.c  */
4344 #line 177 "type.y"
4345         { FreeEnumerator((yyvaluep->enumerator)); };
4346
4347 /* Line 1009 of yacc.c  */
4348 #line 4349 "type.ec"
4349         break;
4350       case 220: /* "direct_abstract_declarator" */
4351
4352 /* Line 1009 of yacc.c  */
4353 #line 178 "type.y"
4354         { FreeDeclarator((yyvaluep->declarator)); };
4355
4356 /* Line 1009 of yacc.c  */
4357 #line 4358 "type.ec"
4358         break;
4359       case 221: /* "direct_abstract_declarator_noarray" */
4360
4361 /* Line 1009 of yacc.c  */
4362 #line 178 "type.y"
4363         { FreeDeclarator((yyvaluep->declarator)); };
4364
4365 /* Line 1009 of yacc.c  */
4366 #line 4367 "type.ec"
4367         break;
4368       case 222: /* "abstract_declarator" */
4369
4370 /* Line 1009 of yacc.c  */
4371 #line 178 "type.y"
4372         { FreeDeclarator((yyvaluep->declarator)); };
4373
4374 /* Line 1009 of yacc.c  */
4375 #line 4376 "type.ec"
4376         break;
4377       case 223: /* "abstract_declarator_noarray" */
4378
4379 /* Line 1009 of yacc.c  */
4380 #line 178 "type.y"
4381         { FreeDeclarator((yyvaluep->declarator)); };
4382
4383 /* Line 1009 of yacc.c  */
4384 #line 4385 "type.ec"
4385         break;
4386       case 224: /* "declarator" */
4387
4388 /* Line 1009 of yacc.c  */
4389 #line 178 "type.y"
4390         { FreeDeclarator((yyvaluep->declarator)); };
4391
4392 /* Line 1009 of yacc.c  */
4393 #line 4394 "type.ec"
4394         break;
4395       case 225: /* "direct_declarator_nofunction" */
4396
4397 /* Line 1009 of yacc.c  */
4398 #line 178 "type.y"
4399         { FreeDeclarator((yyvaluep->declarator)); };
4400
4401 /* Line 1009 of yacc.c  */
4402 #line 4403 "type.ec"
4403         break;
4404       case 226: /* "declarator_function" */
4405
4406 /* Line 1009 of yacc.c  */
4407 #line 178 "type.y"
4408         { FreeDeclarator((yyvaluep->declarator)); };
4409
4410 /* Line 1009 of yacc.c  */
4411 #line 4412 "type.ec"
4412         break;
4413       case 227: /* "direct_declarator_function_start" */
4414
4415 /* Line 1009 of yacc.c  */
4416 #line 178 "type.y"
4417         { FreeDeclarator((yyvaluep->declarator)); };
4418
4419 /* Line 1009 of yacc.c  */
4420 #line 4421 "type.ec"
4421         break;
4422       case 228: /* "direct_declarator_function" */
4423
4424 /* Line 1009 of yacc.c  */
4425 #line 178 "type.y"
4426         { FreeDeclarator((yyvaluep->declarator)); };
4427
4428 /* Line 1009 of yacc.c  */
4429 #line 4430 "type.ec"
4430         break;
4431       case 229: /* "direct_declarator" */
4432
4433 /* Line 1009 of yacc.c  */
4434 #line 178 "type.y"
4435         { FreeDeclarator((yyvaluep->declarator)); };
4436
4437 /* Line 1009 of yacc.c  */
4438 #line 4439 "type.ec"
4439         break;
4440       case 230: /* "declarator_nofunction" */
4441
4442 /* Line 1009 of yacc.c  */
4443 #line 178 "type.y"
4444         { FreeDeclarator((yyvaluep->declarator)); };
4445
4446 /* Line 1009 of yacc.c  */
4447 #line 4448 "type.ec"
4448         break;
4449       case 231: /* "type_qualifier_list" */
4450
4451 /* Line 1009 of yacc.c  */
4452 #line 205 "type.y"
4453         { FreeList((yyvaluep->list), FreeSpecifier); };
4454
4455 /* Line 1009 of yacc.c  */
4456 #line 4457 "type.ec"
4457         break;
4458       case 232: /* "pointer" */
4459
4460 /* Line 1009 of yacc.c  */
4461 #line 167 "type.y"
4462         { FreePointer((yyvaluep->pointer)); };
4463
4464 /* Line 1009 of yacc.c  */
4465 #line 4466 "type.ec"
4466         break;
4467       case 233: /* "parameter_type_list" */
4468
4469 /* Line 1009 of yacc.c  */
4470 #line 211 "type.y"
4471         { FreeList((yyvaluep->list), FreeTypeName); };
4472
4473 /* Line 1009 of yacc.c  */
4474 #line 4475 "type.ec"
4475         break;
4476       case 234: /* "parameter_list" */
4477
4478 /* Line 1009 of yacc.c  */
4479 #line 211 "type.y"
4480         { FreeList((yyvaluep->list), FreeTypeName); };
4481
4482 /* Line 1009 of yacc.c  */
4483 #line 4484 "type.ec"
4484         break;
4485       case 235: /* "parameter_declaration" */
4486
4487 /* Line 1009 of yacc.c  */
4488 #line 185 "type.y"
4489         { FreeTypeName((yyvaluep->typeName)); };
4490
4491 /* Line 1009 of yacc.c  */
4492 #line 4493 "type.ec"
4493         break;
4494       case 236: /* "identifier_list" */
4495
4496 /* Line 1009 of yacc.c  */
4497 #line 211 "type.y"
4498         { FreeList((yyvaluep->list), FreeTypeName); };
4499
4500 /* Line 1009 of yacc.c  */
4501 #line 4502 "type.ec"
4502         break;
4503       case 237: /* "type_name" */
4504
4505 /* Line 1009 of yacc.c  */
4506 #line 185 "type.y"
4507         { FreeTypeName((yyvaluep->typeName)); };
4508
4509 /* Line 1009 of yacc.c  */
4510 #line 4511 "type.ec"
4511         break;
4512       case 238: /* "guess_type_name" */
4513
4514 /* Line 1009 of yacc.c  */
4515 #line 185 "type.y"
4516         { FreeTypeName((yyvaluep->typeName)); };
4517
4518 /* Line 1009 of yacc.c  */
4519 #line 4520 "type.ec"
4520         break;
4521       case 239: /* "initializer" */
4522
4523 /* Line 1009 of yacc.c  */
4524 #line 183 "type.y"
4525         { FreeInitializer((yyvaluep->initializer)); };
4526
4527 /* Line 1009 of yacc.c  */
4528 #line 4529 "type.ec"
4529         break;
4530       case 240: /* "initializer_condition" */
4531
4532 /* Line 1009 of yacc.c  */
4533 #line 183 "type.y"
4534         { FreeInitializer((yyvaluep->initializer)); };
4535
4536 /* Line 1009 of yacc.c  */
4537 #line 4538 "type.ec"
4538         break;
4539       case 241: /* "initializer_list" */
4540
4541 /* Line 1009 of yacc.c  */
4542 #line 209 "type.y"
4543         { FreeList((yyvaluep->list), FreeInitializer); };
4544
4545 /* Line 1009 of yacc.c  */
4546 #line 4547 "type.ec"
4547         break;
4548       case 242: /* "statement" */
4549
4550 /* Line 1009 of yacc.c  */
4551 #line 186 "type.y"
4552         { FreeStatement((yyvaluep->stmt)); };
4553
4554 /* Line 1009 of yacc.c  */
4555 #line 4556 "type.ec"
4556         break;
4557       case 243: /* "labeled_statement" */
4558
4559 /* Line 1009 of yacc.c  */
4560 #line 186 "type.y"
4561         { FreeStatement((yyvaluep->stmt)); };
4562
4563 /* Line 1009 of yacc.c  */
4564 #line 4565 "type.ec"
4565         break;
4566       case 244: /* "declaration_list" */
4567
4568 /* Line 1009 of yacc.c  */
4569 #line 208 "type.y"
4570         { FreeList((yyvaluep->list), FreeDeclaration); };
4571
4572 /* Line 1009 of yacc.c  */
4573 #line 4574 "type.ec"
4574         break;
4575       case 245: /* "statement_list" */
4576
4577 /* Line 1009 of yacc.c  */
4578 #line 212 "type.y"
4579         { FreeList((yyvaluep->list), FreeStatement); };
4580
4581 /* Line 1009 of yacc.c  */
4582 #line 4583 "type.ec"
4583         break;
4584       case 246: /* "compound_inside" */
4585
4586 /* Line 1009 of yacc.c  */
4587 #line 186 "type.y"
4588         { FreeStatement((yyvaluep->stmt)); };
4589
4590 /* Line 1009 of yacc.c  */
4591 #line 4592 "type.ec"
4592         break;
4593       case 247: /* "compound_start" */
4594
4595 /* Line 1009 of yacc.c  */
4596 #line 216 "type.y"
4597         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
4598
4599 /* Line 1009 of yacc.c  */
4600 #line 4601 "type.ec"
4601         break;
4602       case 248: /* "compound_statement" */
4603
4604 /* Line 1009 of yacc.c  */
4605 #line 186 "type.y"
4606         { FreeStatement((yyvaluep->stmt)); };
4607
4608 /* Line 1009 of yacc.c  */
4609 #line 4610 "type.ec"
4610         break;
4611       case 249: /* "expression_statement" */
4612
4613 /* Line 1009 of yacc.c  */
4614 #line 186 "type.y"
4615         { FreeStatement((yyvaluep->stmt)); };
4616
4617 /* Line 1009 of yacc.c  */
4618 #line 4619 "type.ec"
4619         break;
4620       case 250: /* "selection_statement" */
4621
4622 /* Line 1009 of yacc.c  */
4623 #line 186 "type.y"
4624         { FreeStatement((yyvaluep->stmt)); };
4625
4626 /* Line 1009 of yacc.c  */
4627 #line 4628 "type.ec"
4628         break;
4629       case 251: /* "iteration_statement" */
4630
4631 /* Line 1009 of yacc.c  */
4632 #line 186 "type.y"
4633         { FreeStatement((yyvaluep->stmt)); };
4634
4635 /* Line 1009 of yacc.c  */
4636 #line 4637 "type.ec"
4637         break;
4638       case 252: /* "jump_statement" */
4639
4640 /* Line 1009 of yacc.c  */
4641 #line 186 "type.y"
4642         { FreeStatement((yyvaluep->stmt)); };
4643
4644 /* Line 1009 of yacc.c  */
4645 #line 4646 "type.ec"
4646         break;
4647       case 253: /* "string_literal" */
4648
4649 /* Line 1009 of yacc.c  */
4650 #line 200 "type.y"
4651         { delete (yyvaluep->string); };
4652
4653 /* Line 1009 of yacc.c  */
4654 #line 4655 "type.ec"
4655         break;
4656       case 254: /* "instantiation_named" */
4657
4658 /* Line 1009 of yacc.c  */
4659 #line 191 "type.y"
4660         { FreeInstance((yyvaluep->instance)); };
4661
4662 /* Line 1009 of yacc.c  */
4663 #line 4664 "type.ec"
4664         break;
4665       case 256: /* "instantiation_unnamed" */
4666
4667 /* Line 1009 of yacc.c  */
4668 #line 191 "type.y"
4669         { FreeInstance((yyvaluep->instance)); };
4670
4671 /* Line 1009 of yacc.c  */
4672 #line 4673 "type.ec"
4673         break;
4674       case 258: /* "class_function_definition" */
4675
4676 /* Line 1009 of yacc.c  */
4677 #line 195 "type.y"
4678         { FreeClassFunction((yyvaluep->classFunction)); };
4679
4680 /* Line 1009 of yacc.c  */
4681 #line 4682 "type.ec"
4682         break;
4683       case 259: /* "instance_class_function_definition_start" */
4684
4685 /* Line 1009 of yacc.c  */
4686 #line 195 "type.y"
4687         { FreeClassFunction((yyvaluep->classFunction)); };
4688
4689 /* Line 1009 of yacc.c  */
4690 #line 4691 "type.ec"
4691         break;
4692       case 260: /* "instance_class_function_definition" */
4693
4694 /* Line 1009 of yacc.c  */
4695 #line 195 "type.y"
4696         { FreeClassFunction((yyvaluep->classFunction)); };
4697
4698 /* Line 1009 of yacc.c  */
4699 #line 4700 "type.ec"
4700         break;
4701       case 261: /* "data_member_initialization" */
4702
4703 /* Line 1009 of yacc.c  */
4704 #line 193 "type.y"
4705         { FreeMemberInit((yyvaluep->memberInit)); };
4706
4707 /* Line 1009 of yacc.c  */
4708 #line 4709 "type.ec"
4709         break;
4710       case 262: /* "data_member_initialization_list" */
4711
4712 /* Line 1009 of yacc.c  */
4713 #line 214 "type.y"
4714         { FreeList((yyvaluep->list), FreeMemberInit); };
4715
4716 /* Line 1009 of yacc.c  */
4717 #line 4718 "type.ec"
4718         break;
4719       case 263: /* "data_member_initialization_list_coloned" */
4720
4721 /* Line 1009 of yacc.c  */
4722 #line 214 "type.y"
4723         { FreeList((yyvaluep->list), FreeMemberInit); };
4724
4725 /* Line 1009 of yacc.c  */
4726 #line 4727 "type.ec"
4727         break;
4728       case 264: /* "members_initialization_list_coloned" */
4729
4730 /* Line 1009 of yacc.c  */
4731 #line 215 "type.y"
4732         { FreeList((yyvaluep->list), FreeMembersInit); };
4733
4734 /* Line 1009 of yacc.c  */
4735 #line 4736 "type.ec"
4736         break;
4737       case 265: /* "members_initialization_list" */
4738
4739 /* Line 1009 of yacc.c  */
4740 #line 215 "type.y"
4741         { FreeList((yyvaluep->list), FreeMembersInit); };
4742
4743 /* Line 1009 of yacc.c  */
4744 #line 4745 "type.ec"
4745         break;
4746
4747       default:
4748         break;
4749     }
4750 }
4751
4752 /* Prevent warnings from -Wmissing-prototypes.  */
4753 #ifdef YYPARSE_PARAM
4754 #if defined __STDC__ || defined __cplusplus
4755 int yyparse (void *YYPARSE_PARAM);
4756 #else
4757 int yyparse ();
4758 #endif
4759 #else /* ! YYPARSE_PARAM */
4760 #if defined __STDC__ || defined __cplusplus
4761 int yyparse (void);
4762 #else
4763 int yyparse ();
4764 #endif
4765 #endif /* ! YYPARSE_PARAM */
4766
4767
4768 /* The lookahead symbol.  */
4769 int yychar;
4770
4771 /* The semantic value of the lookahead symbol.  */
4772 YYSTYPE yylval;
4773
4774 /* Location data for the lookahead symbol.  */
4775 YYLTYPE yylloc;
4776
4777 /* Number of syntax errors so far.  */
4778 int yynerrs;
4779
4780
4781
4782 /*-------------------------.
4783 | yyparse or yypush_parse.  |
4784 `-------------------------*/
4785
4786 #ifdef YYPARSE_PARAM
4787 #if (defined __STDC__ || defined __C99__FUNC__ \
4788      || defined __cplusplus || defined _MSC_VER)
4789 int
4790 yyparse (void *YYPARSE_PARAM)
4791 #else
4792 int
4793 yyparse (YYPARSE_PARAM)
4794     void *YYPARSE_PARAM;
4795 #endif
4796 #else /* ! YYPARSE_PARAM */
4797 #if (defined __STDC__ || defined __C99__FUNC__ \
4798      || defined __cplusplus || defined _MSC_VER)
4799 int
4800 yyparse (void)
4801 #else
4802 int
4803 yyparse ()
4804
4805 #endif
4806 #endif
4807 {
4808
4809
4810     int yystate;
4811     /* Number of tokens to shift before error messages enabled.  */
4812     int yyerrstatus;
4813
4814     /* The stacks and their tools:
4815        `yyss': related to states.
4816        `yyvs': related to semantic values.
4817        `yyls': related to locations.
4818
4819        Refer to the stacks thru separate pointers, to allow yyoverflow
4820        to reallocate them elsewhere.  */
4821
4822     /* The state stack.  */
4823     yytype_int16 yyssa[YYINITDEPTH];
4824     yytype_int16 *yyss;
4825     yytype_int16 *yyssp;
4826
4827     /* The semantic value stack.  */
4828     YYSTYPE yyvsa[YYINITDEPTH];
4829     YYSTYPE *yyvs;
4830     YYSTYPE *yyvsp;
4831
4832     /* The location stack.  */
4833     YYLTYPE yylsa[YYINITDEPTH];
4834     YYLTYPE *yyls;
4835     YYLTYPE *yylsp;
4836
4837     /* The locations where the error started and ended.  */
4838     YYLTYPE yyerror_range[2];
4839
4840     YYSIZE_T yystacksize;
4841
4842   int yyn;
4843   int yyresult;
4844   /* Lookahead token as an internal (translated) token number.  */
4845   int yytoken;
4846   /* The variables used to return semantic value and location from the
4847      action routines.  */
4848   YYSTYPE yyval;
4849   YYLTYPE yyloc;
4850
4851 #if YYERROR_VERBOSE
4852   /* Buffer for error messages, and its allocated size.  */
4853   char yymsgbuf[128];
4854   char *yymsg = yymsgbuf;
4855   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4856 #endif
4857
4858 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4859
4860   /* The number of symbols on the RHS of the reduced rule.
4861      Keep to zero when no symbol should be popped.  */
4862   int yylen = 0;
4863
4864   yytoken = 0;
4865   yyss = yyssa;
4866   yyvs = yyvsa;
4867   yyls = yylsa;
4868   yystacksize = YYINITDEPTH;
4869
4870   YYDPRINTF ((stderr, "Starting parse\n"));
4871
4872   yystate = 0;
4873   yyerrstatus = 0;
4874   yynerrs = 0;
4875   yychar = YYEMPTY; /* Cause a token to be read.  */
4876
4877   /* Initialize stack pointers.
4878      Waste one element of value and location stack
4879      so that they stay on the same level as the state stack.
4880      The wasted elements are never initialized.  */
4881   yyssp = yyss;
4882   yyvsp = yyvs;
4883   yylsp = yyls;
4884
4885 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4886   /* Initialize the default location before parsing starts.  */
4887   yylloc.first_line   = yylloc.last_line   = 1;
4888   yylloc.first_column = yylloc.last_column = 1;
4889 #endif
4890
4891   goto yysetstate;
4892
4893 /*------------------------------------------------------------.
4894 | yynewstate -- Push a new state, which is found in yystate.  |
4895 `------------------------------------------------------------*/
4896  yynewstate:
4897   /* In all cases, when you get here, the value and location stacks
4898      have just been pushed.  So pushing a state here evens the stacks.  */
4899   yyssp++;
4900
4901  yysetstate:
4902   *yyssp = yystate;
4903
4904   if (yyss + yystacksize - 1 <= yyssp)
4905     {
4906       /* Get the current used size of the three stacks, in elements.  */
4907       YYSIZE_T yysize = yyssp - yyss + 1;
4908
4909 #ifdef yyoverflow
4910       {
4911         /* Give user a chance to reallocate the stack.  Use copies of
4912            these so that the &'s don't force the real ones into
4913            memory.  */
4914         YYSTYPE *yyvs1 = yyvs;
4915         yytype_int16 *yyss1 = yyss;
4916         YYLTYPE *yyls1 = yyls;
4917
4918         /* Each stack pointer address is followed by the size of the
4919            data in use in that stack, in bytes.  This used to be a
4920            conditional around just the two extra args, but that might
4921            be undefined if yyoverflow is a macro.  */
4922         yyoverflow (YY_("memory exhausted"),
4923                     &yyss1, yysize * sizeof (*yyssp),
4924                     &yyvs1, yysize * sizeof (*yyvsp),
4925                     &yyls1, yysize * sizeof (*yylsp),
4926                     &yystacksize);
4927
4928         yyls = yyls1;
4929         yyss = yyss1;
4930         yyvs = yyvs1;
4931       }
4932 #else /* no yyoverflow */
4933 # ifndef YYSTACK_RELOCATE
4934       goto yyexhaustedlab;
4935 # else
4936       /* Extend the stack our own way.  */
4937       if (YYMAXDEPTH <= yystacksize)
4938         goto yyexhaustedlab;
4939       yystacksize *= 2;
4940       if (YYMAXDEPTH < yystacksize)
4941         yystacksize = YYMAXDEPTH;
4942
4943       {
4944         yytype_int16 *yyss1 = yyss;
4945         union yyalloc *yyptr =
4946           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4947         if (! yyptr)
4948           goto yyexhaustedlab;
4949         YYSTACK_RELOCATE (yyss_alloc, yyss);
4950         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4951         YYSTACK_RELOCATE (yyls_alloc, yyls);
4952 #  undef YYSTACK_RELOCATE
4953         if (yyss1 != yyssa)
4954           YYSTACK_FREE (yyss1);
4955       }
4956 # endif
4957 #endif /* no yyoverflow */
4958
4959       yyssp = yyss + yysize - 1;
4960       yyvsp = yyvs + yysize - 1;
4961       yylsp = yyls + yysize - 1;
4962
4963       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4964                   (unsigned long int) yystacksize));
4965
4966       if (yyss + yystacksize - 1 <= yyssp)
4967         YYABORT;
4968     }
4969
4970   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4971
4972   if (yystate == YYFINAL)
4973     YYACCEPT;
4974
4975   goto yybackup;
4976
4977 /*-----------.
4978 | yybackup.  |
4979 `-----------*/
4980 yybackup:
4981
4982   /* Do appropriate processing given the current state.  Read a
4983      lookahead token if we need one and don't already have one.  */
4984
4985   /* First try to decide what to do without reference to lookahead token.  */
4986   yyn = yypact[yystate];
4987   if (yyn == YYPACT_NINF)
4988     goto yydefault;
4989
4990   /* Not known => get a lookahead token if don't already have one.  */
4991
4992   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4993   if (yychar == YYEMPTY)
4994     {
4995       YYDPRINTF ((stderr, "Reading a token: "));
4996       yychar = YYLEX;
4997     }
4998
4999   if (yychar <= YYEOF)
5000     {
5001       yychar = yytoken = YYEOF;
5002       YYDPRINTF ((stderr, "Now at end of input.\n"));
5003     }
5004   else
5005     {
5006       yytoken = YYTRANSLATE (yychar);
5007       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5008     }
5009
5010   /* If the proper action on seeing token YYTOKEN is to reduce or to
5011      detect an error, take that action.  */
5012   yyn += yytoken;
5013   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5014     goto yydefault;
5015   yyn = yytable[yyn];
5016   if (yyn <= 0)
5017     {
5018       if (yyn == 0 || yyn == YYTABLE_NINF)
5019         goto yyerrlab;
5020       yyn = -yyn;
5021       goto yyreduce;
5022     }
5023
5024   /* Count tokens shifted since error; after three, turn off error
5025      status.  */
5026   if (yyerrstatus)
5027     yyerrstatus--;
5028
5029   /* Shift the lookahead token.  */
5030   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5031
5032   /* Discard the shifted token.  */
5033   yychar = YYEMPTY;
5034
5035   yystate = yyn;
5036   *++yyvsp = yylval;
5037   *++yylsp = yylloc;
5038   goto yynewstate;
5039
5040
5041 /*-----------------------------------------------------------.
5042 | yydefault -- do the default action for the current state.  |
5043 `-----------------------------------------------------------*/
5044 yydefault:
5045   yyn = yydefact[yystate];
5046   if (yyn == 0)
5047     goto yyerrlab;
5048   goto yyreduce;
5049
5050
5051 /*-----------------------------.
5052 | yyreduce -- Do a reduction.  |
5053 `-----------------------------*/
5054 yyreduce:
5055   /* yyn is the number of a rule to reduce with.  */
5056   yylen = yyr2[yyn];
5057
5058   /* If YYLEN is nonzero, implement the default value of the action:
5059      `$$ = $1'.
5060
5061      Otherwise, the following line sets YYVAL to garbage.
5062      This behavior is undocumented and Bison
5063      users should not rely upon it.  Assigning to YYVAL
5064      unconditionally makes the parser a bit smaller, and it avoids a
5065      GCC warning that YYVAL may be used uninitialized.  */
5066   yyval = yyvsp[1-yylen];
5067
5068   /* Default location.  */
5069   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
5070   YY_REDUCE_PRINT (yyn);
5071   switch (yyn)
5072     {
5073         case 2:
5074
5075 /* Line 1464 of yacc.c  */
5076 #line 230 "type.y"
5077     {
5078       (yyval.specifier) = null;
5079       DeclClass((yyvsp[(1) - (2)].id).string);
5080       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5081       resetScannerPos(&(yylsp[(1) - (2)]).start);
5082       yyclearin;
5083
5084       FreeIdentifier((yyvsp[(1) - (2)].id));
5085
5086       YYPOPSTACK(1);
5087       yystate = *yyssp;
5088       YY_STACK_PRINT (yyss, yyssp);
5089       YYPOPSTACK(1);
5090       yystate = *yyssp;
5091       YY_STACK_PRINT (yyss, yyssp);
5092       goto yysetstate;
5093    ;}
5094     break;
5095
5096   case 3:
5097
5098 /* Line 1464 of yacc.c  */
5099 #line 248 "type.y"
5100     {
5101       (yyval.specifier) = null;
5102    #ifdef PRECOMPILER
5103       // if($1._class && !$1._class.name)
5104       if((yyvsp[(1) - (2)].id)._class)
5105       {
5106          char name[1024];
5107          strcpy(name,  (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
5108          strcat(name, "::");
5109          strcat(name, (yyvsp[(1) - (2)].id).string);
5110          _DeclClass(name);
5111       }
5112       else
5113          _DeclClass((yyvsp[(1) - (2)].id).string);
5114
5115       FreeIdentifier((yyvsp[(1) - (2)].id));
5116
5117       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5118       resetScannerPos(&(yylsp[(1) - (2)]).start);
5119       yyclearin;
5120
5121       YYPOPSTACK(1);
5122       yystate = *yyssp;
5123       YY_STACK_PRINT (yyss, yyssp);
5124       YYPOPSTACK(1);
5125       yystate = *yyssp;
5126       YY_STACK_PRINT (yyss, yyssp);
5127       goto yysetstate;
5128    #endif
5129    ;}
5130     break;
5131
5132   case 4:
5133
5134 /* Line 1464 of yacc.c  */
5135 #line 282 "type.y"
5136     {
5137       DeclClass((yyvsp[(1) - (2)].id).string);
5138       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5139       parseTypeError = 0;
5140       resetScannerPos(&(yylsp[(1) - (2)]).start);
5141       yyclearin;
5142       FreeIdentifier((yyvsp[(1) - (2)].id));
5143
5144       YYPOPSTACK(1);
5145       yystate = *yyssp;
5146       YY_STACK_PRINT (yyss, yyssp);
5147       YYPOPSTACK(1);
5148       yystate = *yyssp;
5149       YY_STACK_PRINT (yyss, yyssp);
5150       goto yysetstate;
5151    ;}
5152     break;
5153
5154   case 5:
5155
5156 /* Line 1464 of yacc.c  */
5157 #line 331 "type.y"
5158     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5159     break;
5160
5161   case 6:
5162
5163 /* Line 1464 of yacc.c  */
5164 #line 333 "type.y"
5165     {
5166    #ifdef PRECOMPILER
5167       DeclClass((yyvsp[(1) - (2)].id).string);
5168       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start);
5169       resetScannerPos(&(yylsp[(1) - (2)]).start);
5170       yyclearin;
5171
5172       FreeIdentifier((yyvsp[(1) - (2)].id));
5173       FreeIdentifier((yyvsp[(2) - (2)].id));
5174
5175       YYPOPSTACK(1);
5176       yystate = *yyssp;
5177       YY_STACK_PRINT (yyss, yyssp);
5178       YYPOPSTACK(1);
5179       yystate = *yyssp;
5180       YY_STACK_PRINT (yyss, yyssp);
5181       goto yysetstate;
5182    #else
5183       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[(2) - (2)].id); yylloc = (yylsp[(1) - (2)]);
5184       Compiler_Error($"Not a type: %s\n", (yyvsp[(1) - (2)].id).string);
5185       yylloc = tmpLoc; (yyvsp[(2) - (2)].id).badID = (yyvsp[(1) - (2)].id); // FreeIdentifier($1);
5186    #endif
5187    ;}
5188     break;
5189
5190   case 7:
5191
5192 /* Line 1464 of yacc.c  */
5193 #line 359 "type.y"
5194     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5195     break;
5196
5197   case 9:
5198
5199 /* Line 1464 of yacc.c  */
5200 #line 364 "type.y"
5201     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
5202     break;
5203
5204   case 10:
5205
5206 /* Line 1464 of yacc.c  */
5207 #line 366 "type.y"
5208     {
5209       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
5210       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
5211       (yyval.specifier).loc = (yyloc);
5212
5213       (yylsp[(4) - (4)]).end.pos--;
5214       fileInput.Seek((yylsp[(4) - (4)]).end.pos, start);
5215       resetScannerPos(&(yylsp[(4) - (4)]).end);
5216       yyclearin;
5217     ;}
5218     break;
5219
5220   case 11:
5221
5222 /* Line 1464 of yacc.c  */
5223 #line 383 "type.y"
5224     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
5225     break;
5226
5227   case 12:
5228
5229 /* Line 1464 of yacc.c  */
5230 #line 385 "type.y"
5231     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
5232     break;
5233
5234   case 13:
5235
5236 /* Line 1464 of yacc.c  */
5237 #line 390 "type.y"
5238     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
5239     break;
5240
5241   case 14:
5242
5243 /* Line 1464 of yacc.c  */
5244 #line 395 "type.y"
5245     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
5246     break;
5247
5248   case 15:
5249
5250 /* Line 1464 of yacc.c  */
5251 #line 400 "type.y"
5252     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
5253     break;
5254
5255   case 16:
5256
5257 /* Line 1464 of yacc.c  */
5258 #line 402 "type.y"
5259     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
5260     break;
5261
5262   case 17:
5263
5264 /* Line 1464 of yacc.c  */
5265 #line 407 "type.y"
5266     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
5267     break;
5268
5269   case 19:
5270
5271 /* Line 1464 of yacc.c  */
5272 #line 413 "type.y"
5273     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
5274     break;
5275
5276   case 20:
5277
5278 /* Line 1464 of yacc.c  */
5279 #line 418 "type.y"
5280     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
5281     break;
5282
5283   case 21:
5284
5285 /* Line 1464 of yacc.c  */
5286 #line 420 "type.y"
5287     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5288     break;
5289
5290   case 22:
5291
5292 /* Line 1464 of yacc.c  */
5293 #line 422 "type.y"
5294     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
5295     break;
5296
5297   case 23:
5298
5299 /* Line 1464 of yacc.c  */
5300 #line 423 "type.y"
5301     { (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
5302     break;
5303
5304   case 24:
5305
5306 /* Line 1464 of yacc.c  */
5307 #line 425 "type.y"
5308     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
5309     break;
5310
5311   case 25:
5312
5313 /* Line 1464 of yacc.c  */
5314 #line 426 "type.y"
5315     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
5316     break;
5317
5318   case 26:
5319
5320 /* Line 1464 of yacc.c  */
5321 #line 427 "type.y"
5322     { (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); ;}
5323     break;
5324
5325   case 27:
5326
5327 /* Line 1464 of yacc.c  */
5328 #line 429 "type.y"
5329     { 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(); ;}
5330     break;
5331
5332   case 28:
5333
5334 /* Line 1464 of yacc.c  */
5335 #line 431 "type.y"
5336     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5337     break;
5338
5339   case 29:
5340
5341 /* Line 1464 of yacc.c  */
5342 #line 432 "type.y"
5343     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5344     break;
5345
5346   case 30:
5347
5348 /* Line 1464 of yacc.c  */
5349 #line 433 "type.y"
5350     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5351     break;
5352
5353   case 31:
5354
5355 /* Line 1464 of yacc.c  */
5356 #line 434 "type.y"
5357     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5358     break;
5359
5360   case 32:
5361
5362 /* Line 1464 of yacc.c  */
5363 #line 435 "type.y"
5364     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5365     break;
5366
5367   case 33:
5368
5369 /* Line 1464 of yacc.c  */
5370 #line 436 "type.y"
5371     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5372     break;
5373
5374   case 34:
5375
5376 /* Line 1464 of yacc.c  */
5377 #line 437 "type.y"
5378     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5379     break;
5380
5381   case 35:
5382
5383 /* Line 1464 of yacc.c  */
5384 #line 438 "type.y"
5385     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5386     break;
5387
5388   case 36:
5389
5390 /* Line 1464 of yacc.c  */
5391 #line 439 "type.y"
5392     { (yyval.exp) = MkExpDummy(); ;}
5393     break;
5394
5395   case 38:
5396
5397 /* Line 1464 of yacc.c  */
5398 #line 444 "type.y"
5399     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5400     break;
5401
5402   case 39:
5403
5404 /* Line 1464 of yacc.c  */
5405 #line 445 "type.y"
5406     { (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); ;}
5407     break;
5408
5409   case 40:
5410
5411 /* Line 1464 of yacc.c  */
5412 #line 446 "type.y"
5413     { (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); ;}
5414     break;
5415
5416   case 41:
5417
5418 /* Line 1464 of yacc.c  */
5419 #line 447 "type.y"
5420     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5421     break;
5422
5423   case 42:
5424
5425 /* Line 1464 of yacc.c  */
5426 #line 449 "type.y"
5427     {
5428       char * constant = (yyvsp[(1) - (2)].exp).type == constantExp ? (yyvsp[(1) - (2)].exp).constant : null;
5429       int len = constant ? strlen(constant) : 0;
5430       if(constant && constant[len-1] == '.')
5431       {
5432          constant[len-1] = 0;
5433          (yyval.exp) = MkExpMember((yyvsp[(1) - (2)].exp), (yyvsp[(2) - (2)].id));
5434          (yyval.exp).loc = (yyloc);
5435       }
5436       else
5437          yyerror();
5438    ;}
5439     break;
5440
5441   case 43:
5442
5443 /* Line 1464 of yacc.c  */
5444 #line 461 "type.y"
5445     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5446     break;
5447
5448   case 44:
5449
5450 /* Line 1464 of yacc.c  */
5451 #line 462 "type.y"
5452     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5453     break;
5454
5455   case 45:
5456
5457 /* Line 1464 of yacc.c  */
5458 #line 463 "type.y"
5459     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5460     break;
5461
5462   case 46:
5463
5464 /* Line 1464 of yacc.c  */
5465 #line 467 "type.y"
5466     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5467     break;
5468
5469   case 47:
5470
5471 /* Line 1464 of yacc.c  */
5472 #line 496 "type.y"
5473     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5474     break;
5475
5476   case 48:
5477
5478 /* Line 1464 of yacc.c  */
5479 #line 497 "type.y"
5480     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5481     break;
5482
5483   case 49:
5484
5485 /* Line 1464 of yacc.c  */
5486 #line 498 "type.y"
5487     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5488     break;
5489
5490   case 50:
5491
5492 /* Line 1464 of yacc.c  */
5493 #line 499 "type.y"
5494     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5495     break;
5496
5497   case 51:
5498
5499 /* Line 1464 of yacc.c  */
5500 #line 503 "type.y"
5501     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5502     break;
5503
5504   case 52:
5505
5506 /* Line 1464 of yacc.c  */
5507 #line 504 "type.y"
5508     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5509     break;
5510
5511   case 53:
5512
5513 /* Line 1464 of yacc.c  */
5514 #line 505 "type.y"
5515     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5516     break;
5517
5518   case 54:
5519
5520 /* Line 1464 of yacc.c  */
5521 #line 507 "type.y"
5522     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5523     break;
5524
5525   case 55:
5526
5527 /* Line 1464 of yacc.c  */
5528 #line 508 "type.y"
5529     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5530     break;
5531
5532   case 56:
5533
5534 /* Line 1464 of yacc.c  */
5535 #line 510 "type.y"
5536     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5537     break;
5538
5539   case 57:
5540
5541 /* Line 1464 of yacc.c  */
5542 #line 511 "type.y"
5543     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5544     break;
5545
5546   case 60:
5547
5548 /* Line 1464 of yacc.c  */
5549 #line 525 "type.y"
5550     { (yyval.i) = '&'; ;}
5551     break;
5552
5553   case 61:
5554
5555 /* Line 1464 of yacc.c  */
5556 #line 526 "type.y"
5557     { (yyval.i) = '*'; ;}
5558     break;
5559
5560   case 62:
5561
5562 /* Line 1464 of yacc.c  */
5563 #line 527 "type.y"
5564     { (yyval.i) = '+'; ;}
5565     break;
5566
5567   case 63:
5568
5569 /* Line 1464 of yacc.c  */
5570 #line 528 "type.y"
5571     { (yyval.i) = '-'; ;}
5572     break;
5573
5574   case 64:
5575
5576 /* Line 1464 of yacc.c  */
5577 #line 529 "type.y"
5578     { (yyval.i) = '~'; ;}
5579     break;
5580
5581   case 65:
5582
5583 /* Line 1464 of yacc.c  */
5584 #line 530 "type.y"
5585     { (yyval.i) = '!'; ;}
5586     break;
5587
5588   case 66:
5589
5590 /* Line 1464 of yacc.c  */
5591 #line 531 "type.y"
5592     { (yyval.i) = DELETE; ;}
5593     break;
5594
5595   case 68:
5596
5597 /* Line 1464 of yacc.c  */
5598 #line 536 "type.y"
5599     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5600     break;
5601
5602   case 70:
5603
5604 /* Line 1464 of yacc.c  */
5605 #line 541 "type.y"
5606     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5607     break;
5608
5609   case 71:
5610
5611 /* Line 1464 of yacc.c  */
5612 #line 542 "type.y"
5613     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5614     break;
5615
5616   case 72:
5617
5618 /* Line 1464 of yacc.c  */
5619 #line 543 "type.y"
5620     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5621     break;
5622
5623   case 74:
5624
5625 /* Line 1464 of yacc.c  */
5626 #line 548 "type.y"
5627     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5628     break;
5629
5630   case 75:
5631
5632 /* Line 1464 of yacc.c  */
5633 #line 549 "type.y"
5634     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5635     break;
5636
5637   case 77:
5638
5639 /* Line 1464 of yacc.c  */
5640 #line 554 "type.y"
5641     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5642     break;
5643
5644   case 78:
5645
5646 /* Line 1464 of yacc.c  */
5647 #line 555 "type.y"
5648     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5649     break;
5650
5651   case 79:
5652
5653 /* Line 1464 of yacc.c  */
5654 #line 560 "type.y"
5655     {
5656       (yyval.exp) = (yyvsp[(1) - (2)].exp);
5657       skipErrors = true;
5658    ;}
5659     break;
5660
5661   case 81:
5662
5663 /* Line 1464 of yacc.c  */
5664 #line 568 "type.y"
5665     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
5666     break;
5667
5668   case 82:
5669
5670 /* Line 1464 of yacc.c  */
5671 #line 569 "type.y"
5672     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5673     break;
5674
5675   case 83:
5676
5677 /* Line 1464 of yacc.c  */
5678 #line 570 "type.y"
5679     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5680     break;
5681
5682   case 84:
5683
5684 /* Line 1464 of yacc.c  */
5685 #line 571 "type.y"
5686     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5687     break;
5688
5689   case 86:
5690
5691 /* Line 1464 of yacc.c  */
5692 #line 576 "type.y"
5693     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5694     break;
5695
5696   case 87:
5697
5698 /* Line 1464 of yacc.c  */
5699 #line 577 "type.y"
5700     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5701     break;
5702
5703   case 89:
5704
5705 /* Line 1464 of yacc.c  */
5706 #line 582 "type.y"
5707     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5708     break;
5709
5710   case 91:
5711
5712 /* Line 1464 of yacc.c  */
5713 #line 587 "type.y"
5714     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5715     break;
5716
5717   case 93:
5718
5719 /* Line 1464 of yacc.c  */
5720 #line 592 "type.y"
5721     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5722     break;
5723
5724   case 95:
5725
5726 /* Line 1464 of yacc.c  */
5727 #line 597 "type.y"
5728     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5729     break;
5730
5731   case 97:
5732
5733 /* Line 1464 of yacc.c  */
5734 #line 602 "type.y"
5735     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5736     break;
5737
5738   case 99:
5739
5740 /* Line 1464 of yacc.c  */
5741 #line 607 "type.y"
5742     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5743     break;
5744
5745   case 101:
5746
5747 /* Line 1464 of yacc.c  */
5748 #line 612 "type.y"
5749     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5750     break;
5751
5752   case 102:
5753
5754 /* Line 1464 of yacc.c  */
5755 #line 613 "type.y"
5756     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5757     break;
5758
5759   case 103:
5760
5761 /* Line 1464 of yacc.c  */
5762 #line 617 "type.y"
5763     { (yyval.i) = '='; ;}
5764     break;
5765
5766   case 104:
5767
5768 /* Line 1464 of yacc.c  */
5769 #line 618 "type.y"
5770     { (yyval.i) = MUL_ASSIGN; ;}
5771     break;
5772
5773   case 105:
5774
5775 /* Line 1464 of yacc.c  */
5776 #line 619 "type.y"
5777     { (yyval.i) = DIV_ASSIGN; ;}
5778     break;
5779
5780   case 106:
5781
5782 /* Line 1464 of yacc.c  */
5783 #line 620 "type.y"
5784     { (yyval.i) = MOD_ASSIGN; ;}
5785     break;
5786
5787   case 107:
5788
5789 /* Line 1464 of yacc.c  */
5790 #line 621 "type.y"
5791     { (yyval.i) = ADD_ASSIGN; ;}
5792     break;
5793
5794   case 108:
5795
5796 /* Line 1464 of yacc.c  */
5797 #line 622 "type.y"
5798     { (yyval.i) = SUB_ASSIGN; ;}
5799     break;
5800
5801   case 109:
5802
5803 /* Line 1464 of yacc.c  */
5804 #line 623 "type.y"
5805     { (yyval.i) = LEFT_ASSIGN; ;}
5806     break;
5807
5808   case 110:
5809
5810 /* Line 1464 of yacc.c  */
5811 #line 624 "type.y"
5812     { (yyval.i) = RIGHT_ASSIGN; ;}
5813     break;
5814
5815   case 111:
5816
5817 /* Line 1464 of yacc.c  */
5818 #line 625 "type.y"
5819     { (yyval.i) = AND_ASSIGN; ;}
5820     break;
5821
5822   case 112:
5823
5824 /* Line 1464 of yacc.c  */
5825 #line 626 "type.y"
5826     { (yyval.i) = XOR_ASSIGN; ;}
5827     break;
5828
5829   case 113:
5830
5831 /* Line 1464 of yacc.c  */
5832 #line 627 "type.y"
5833     { (yyval.i) = OR_ASSIGN; ;}
5834     break;
5835
5836   case 114:
5837
5838 /* Line 1464 of yacc.c  */
5839 #line 631 "type.y"
5840     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5841     break;
5842
5843   case 115:
5844
5845 /* Line 1464 of yacc.c  */
5846 #line 632 "type.y"
5847     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5848     break;
5849
5850   case 117:
5851
5852 /* Line 1464 of yacc.c  */
5853 #line 640 "type.y"
5854     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5855     break;
5856
5857   case 118:
5858
5859 /* Line 1464 of yacc.c  */
5860 #line 641 "type.y"
5861     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5862     break;
5863
5864   case 119:
5865
5866 /* Line 1464 of yacc.c  */
5867 #line 642 "type.y"
5868     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5869     break;
5870
5871   case 120:
5872
5873 /* Line 1464 of yacc.c  */
5874 #line 643 "type.y"
5875     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5876     break;
5877
5878   case 121:
5879
5880 /* Line 1464 of yacc.c  */
5881 #line 647 "type.y"
5882     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5883     break;
5884
5885   case 122:
5886
5887 /* Line 1464 of yacc.c  */
5888 #line 648 "type.y"
5889     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5890     break;
5891
5892   case 123:
5893
5894 /* Line 1464 of yacc.c  */
5895 #line 649 "type.y"
5896     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5897     break;
5898
5899   case 124:
5900
5901 /* Line 1464 of yacc.c  */
5902 #line 650 "type.y"
5903     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5904     break;
5905
5906   case 125:
5907
5908 /* Line 1464 of yacc.c  */
5909 #line 651 "type.y"
5910     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5911     break;
5912
5913   case 126:
5914
5915 /* Line 1464 of yacc.c  */
5916 #line 652 "type.y"
5917     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5918     break;
5919
5920   case 127:
5921
5922 /* Line 1464 of yacc.c  */
5923 #line 653 "type.y"
5924     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5925     break;
5926
5927   case 128:
5928
5929 /* Line 1464 of yacc.c  */
5930 #line 654 "type.y"
5931     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5932     break;
5933
5934   case 129:
5935
5936 /* Line 1464 of yacc.c  */
5937 #line 658 "type.y"
5938     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5939     break;
5940
5941   case 130:
5942
5943 /* Line 1464 of yacc.c  */
5944 #line 659 "type.y"
5945     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5946     break;
5947
5948   case 131:
5949
5950 /* Line 1464 of yacc.c  */
5951 #line 660 "type.y"
5952     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5953     break;
5954
5955   case 132:
5956
5957 /* Line 1464 of yacc.c  */
5958 #line 661 "type.y"
5959     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5960     break;
5961
5962   case 133:
5963
5964 /* Line 1464 of yacc.c  */
5965 #line 662 "type.y"
5966     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5967     break;
5968
5969   case 134:
5970
5971 /* Line 1464 of yacc.c  */
5972 #line 663 "type.y"
5973     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5974     break;
5975
5976   case 135:
5977
5978 /* Line 1464 of yacc.c  */
5979 #line 664 "type.y"
5980     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5981     break;
5982
5983   case 136:
5984
5985 /* Line 1464 of yacc.c  */
5986 #line 665 "type.y"
5987     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5988     break;
5989
5990   case 137:
5991
5992 /* Line 1464 of yacc.c  */
5993 #line 666 "type.y"
5994     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5995     break;
5996
5997   case 138:
5998
5999 /* Line 1464 of yacc.c  */
6000 #line 667 "type.y"
6001     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6002     break;
6003
6004   case 139:
6005
6006 /* Line 1464 of yacc.c  */
6007 #line 671 "type.y"
6008     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6009     break;
6010
6011   case 140:
6012
6013 /* Line 1464 of yacc.c  */
6014 #line 672 "type.y"
6015     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6016     break;
6017
6018   case 141:
6019
6020 /* Line 1464 of yacc.c  */
6021 #line 673 "type.y"
6022     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6023     break;
6024
6025   case 142:
6026
6027 /* Line 1464 of yacc.c  */
6028 #line 674 "type.y"
6029     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6030     break;
6031
6032   case 143:
6033
6034 /* Line 1464 of yacc.c  */
6035 #line 675 "type.y"
6036     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6037     break;
6038
6039   case 144:
6040
6041 /* Line 1464 of yacc.c  */
6042 #line 676 "type.y"
6043     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6044     break;
6045
6046   case 145:
6047
6048 /* Line 1464 of yacc.c  */
6049 #line 677 "type.y"
6050     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6051     break;
6052
6053   case 146:
6054
6055 /* Line 1464 of yacc.c  */
6056 #line 678 "type.y"
6057     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6058     break;
6059
6060   case 147:
6061
6062 /* Line 1464 of yacc.c  */
6063 #line 679 "type.y"
6064     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6065     break;
6066
6067   case 148:
6068
6069 /* Line 1464 of yacc.c  */
6070 #line 680 "type.y"
6071     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6072     break;
6073
6074   case 149:
6075
6076 /* Line 1464 of yacc.c  */
6077 #line 684 "type.y"
6078     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6079     break;
6080
6081   case 150:
6082
6083 /* Line 1464 of yacc.c  */
6084 #line 685 "type.y"
6085     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6086     break;
6087
6088   case 151:
6089
6090 /* Line 1464 of yacc.c  */
6091 #line 686 "type.y"
6092     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6093     break;
6094
6095   case 152:
6096
6097 /* Line 1464 of yacc.c  */
6098 #line 687 "type.y"
6099     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6100     break;
6101
6102   case 153:
6103
6104 /* Line 1464 of yacc.c  */
6105 #line 688 "type.y"
6106     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6107     break;
6108
6109   case 154:
6110
6111 /* Line 1464 of yacc.c  */
6112 #line 689 "type.y"
6113     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6114     break;
6115
6116   case 155:
6117
6118 /* Line 1464 of yacc.c  */
6119 #line 690 "type.y"
6120     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6121     break;
6122
6123   case 156:
6124
6125 /* Line 1464 of yacc.c  */
6126 #line 691 "type.y"
6127     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6128     break;
6129
6130   case 157:
6131
6132 /* Line 1464 of yacc.c  */
6133 #line 692 "type.y"
6134     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6135     break;
6136
6137   case 158:
6138
6139 /* Line 1464 of yacc.c  */
6140 #line 693 "type.y"
6141     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6142     break;
6143
6144   case 159:
6145
6146 /* Line 1464 of yacc.c  */
6147 #line 694 "type.y"
6148     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6149     break;
6150
6151   case 160:
6152
6153 /* Line 1464 of yacc.c  */
6154 #line 695 "type.y"
6155     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6156     break;
6157
6158   case 161:
6159
6160 /* Line 1464 of yacc.c  */
6161 #line 699 "type.y"
6162     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
6163     break;
6164
6165   case 162:
6166
6167 /* Line 1464 of yacc.c  */
6168 #line 700 "type.y"
6169     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6170     break;
6171
6172   case 163:
6173
6174 /* Line 1464 of yacc.c  */
6175 #line 704 "type.y"
6176     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6177     break;
6178
6179   case 164:
6180
6181 /* Line 1464 of yacc.c  */
6182 #line 705 "type.y"
6183     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6184     break;
6185
6186   case 165:
6187
6188 /* Line 1464 of yacc.c  */
6189 #line 706 "type.y"
6190     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6191     break;
6192
6193   case 166:
6194
6195 /* Line 1464 of yacc.c  */
6196 #line 707 "type.y"
6197     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6198     break;
6199
6200   case 167:
6201
6202 /* Line 1464 of yacc.c  */
6203 #line 708 "type.y"
6204     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6205     break;
6206
6207   case 168:
6208
6209 /* Line 1464 of yacc.c  */
6210 #line 709 "type.y"
6211     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6212     break;
6213
6214   case 169:
6215
6216 /* Line 1464 of yacc.c  */
6217 #line 710 "type.y"
6218     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6219     break;
6220
6221   case 170:
6222
6223 /* Line 1464 of yacc.c  */
6224 #line 711 "type.y"
6225     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
6226     break;
6227
6228   case 171:
6229
6230 /* Line 1464 of yacc.c  */
6231 #line 713 "type.y"
6232     {
6233          // if($1._class && !$1._class.name)
6234          if((yyvsp[(1) - (4)].id)._class)
6235          {
6236             char name[1024];
6237             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6238             strcat(name, "::");
6239             strcat(name, (yyvsp[(1) - (4)].id).string);
6240             _DeclClass(name);
6241          }
6242          else
6243             _DeclClass((yyvsp[(1) - (4)].id).string);
6244
6245          (yyval.list) = MkList();
6246          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6247          FreeIdentifier((yyvsp[(1) - (4)].id));
6248       ;}
6249     break;
6250
6251   case 172:
6252
6253 /* Line 1464 of yacc.c  */
6254 #line 731 "type.y"
6255     {
6256          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6257          {
6258             char name[1024];
6259             strcpy(name, "::");
6260             strcat(name, (yyvsp[(2) - (5)].id).string);
6261             _DeclClass(name);
6262          }
6263          else
6264             _DeclClass((yyvsp[(2) - (5)].id).string);
6265          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6266          FreeIdentifier((yyvsp[(2) - (5)].id));
6267       ;}
6268     break;
6269
6270   case 173:
6271
6272 /* Line 1464 of yacc.c  */
6273 #line 747 "type.y"
6274     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6275     break;
6276
6277   case 174:
6278
6279 /* Line 1464 of yacc.c  */
6280 #line 748 "type.y"
6281     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6282     break;
6283
6284   case 175:
6285
6286 /* Line 1464 of yacc.c  */
6287 #line 749 "type.y"
6288     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6289     break;
6290
6291   case 176:
6292
6293 /* Line 1464 of yacc.c  */
6294 #line 750 "type.y"
6295     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6296     break;
6297
6298   case 177:
6299
6300 /* Line 1464 of yacc.c  */
6301 #line 751 "type.y"
6302     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6303     break;
6304
6305   case 178:
6306
6307 /* Line 1464 of yacc.c  */
6308 #line 752 "type.y"
6309     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6310     break;
6311
6312   case 179:
6313
6314 /* Line 1464 of yacc.c  */
6315 #line 753 "type.y"
6316     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6317     break;
6318
6319   case 180:
6320
6321 /* Line 1464 of yacc.c  */
6322 #line 754 "type.y"
6323     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6324     break;
6325
6326   case 181:
6327
6328 /* Line 1464 of yacc.c  */
6329 #line 755 "type.y"
6330     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6331     break;
6332
6333   case 182:
6334
6335 /* Line 1464 of yacc.c  */
6336 #line 756 "type.y"
6337     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6338     break;
6339
6340   case 183:
6341
6342 /* Line 1464 of yacc.c  */
6343 #line 757 "type.y"
6344     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6345     break;
6346
6347   case 184:
6348
6349 /* Line 1464 of yacc.c  */
6350 #line 758 "type.y"
6351     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
6352     break;
6353
6354   case 185:
6355
6356 /* Line 1464 of yacc.c  */
6357 #line 760 "type.y"
6358     {
6359          // if($1._class && !$1._class.name)
6360          if((yyvsp[(1) - (4)].id)._class)
6361          {
6362             char name[1024];
6363             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6364             strcat(name, "::");
6365             strcat(name, (yyvsp[(1) - (4)].id).string);
6366             _DeclClass(name);
6367          }
6368          else
6369             _DeclClass((yyvsp[(1) - (4)].id).string);
6370
6371          (yyval.list) = MkList();
6372          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6373          FreeIdentifier((yyvsp[(1) - (4)].id));
6374       ;}
6375     break;
6376
6377   case 186:
6378
6379 /* Line 1464 of yacc.c  */
6380 #line 778 "type.y"
6381     {
6382          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6383          {
6384             char name[1024];
6385             strcpy(name, "::");
6386             strcat(name, (yyvsp[(2) - (5)].id).string);
6387             _DeclClass(name);
6388          }
6389          else
6390             _DeclClass((yyvsp[(2) - (5)].id).string);
6391          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6392          FreeIdentifier((yyvsp[(2) - (5)].id));
6393       ;}
6394     break;
6395
6396   case 187:
6397
6398 /* Line 1464 of yacc.c  */
6399 #line 794 "type.y"
6400     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
6401     break;
6402
6403   case 188:
6404
6405 /* Line 1464 of yacc.c  */
6406 #line 795 "type.y"
6407     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
6408     break;
6409
6410   case 189:
6411
6412 /* Line 1464 of yacc.c  */
6413 #line 799 "type.y"
6414     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
6415     break;
6416
6417   case 190:
6418
6419 /* Line 1464 of yacc.c  */
6420 #line 800 "type.y"
6421     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
6422     break;
6423
6424   case 191:
6425
6426 /* Line 1464 of yacc.c  */
6427 #line 804 "type.y"
6428     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
6429     break;
6430
6431   case 192:
6432
6433 /* Line 1464 of yacc.c  */
6434 #line 805 "type.y"
6435     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
6436     break;
6437
6438   case 193:
6439
6440 /* Line 1464 of yacc.c  */
6441 #line 806 "type.y"
6442     { (yyval.specifier) = MkSpecifier(STATIC); ;}
6443     break;
6444
6445   case 194:
6446
6447 /* Line 1464 of yacc.c  */
6448 #line 807 "type.y"
6449     { (yyval.specifier) = MkSpecifier(AUTO); ;}
6450     break;
6451
6452   case 195:
6453
6454 /* Line 1464 of yacc.c  */
6455 #line 808 "type.y"
6456     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
6457     break;
6458
6459   case 196:
6460
6461 /* Line 1464 of yacc.c  */
6462 #line 809 "type.y"
6463     { (yyval.specifier) = MkSpecifier(THREAD); ;}
6464     break;
6465
6466   case 197:
6467
6468 /* Line 1464 of yacc.c  */
6469 #line 813 "type.y"
6470     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6471     break;
6472
6473   case 198:
6474
6475 /* Line 1464 of yacc.c  */
6476 #line 814 "type.y"
6477     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6478     break;
6479
6480   case 199:
6481
6482 /* Line 1464 of yacc.c  */
6483 #line 815 "type.y"
6484     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
6485     break;
6486
6487   case 200:
6488
6489 /* Line 1464 of yacc.c  */
6490 #line 819 "type.y"
6491     { (yyval.i) = ATTRIB; ;}
6492     break;
6493
6494   case 201:
6495
6496 /* Line 1464 of yacc.c  */
6497 #line 820 "type.y"
6498     { (yyval.i) = ATTRIB_DEP; ;}
6499     break;
6500
6501   case 202:
6502
6503 /* Line 1464 of yacc.c  */
6504 #line 821 "type.y"
6505     { (yyval.i) = __ATTRIB; ;}
6506     break;
6507
6508   case 203:
6509
6510 /* Line 1464 of yacc.c  */
6511 #line 826 "type.y"
6512     { (yyval.string)  = CopyString(yytext); ;}
6513     break;
6514
6515   case 204:
6516
6517 /* Line 1464 of yacc.c  */
6518 #line 827 "type.y"
6519     { (yyval.string)  = CopyString(yytext); ;}
6520     break;
6521
6522   case 205:
6523
6524 /* Line 1464 of yacc.c  */
6525 #line 828 "type.y"
6526     { (yyval.string)  = CopyString(yytext); ;}
6527     break;
6528
6529   case 206:
6530
6531 /* Line 1464 of yacc.c  */
6532 #line 829 "type.y"
6533     { (yyval.string)  = CopyString(yytext); ;}
6534     break;
6535
6536   case 207:
6537
6538 /* Line 1464 of yacc.c  */
6539 #line 830 "type.y"
6540     { (yyval.string)  = CopyString(yytext); ;}
6541     break;
6542
6543   case 208:
6544
6545 /* Line 1464 of yacc.c  */
6546 #line 834 "type.y"
6547     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
6548     break;
6549
6550   case 209:
6551
6552 /* Line 1464 of yacc.c  */
6553 #line 835 "type.y"
6554     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
6555     break;
6556
6557   case 210:
6558
6559 /* Line 1464 of yacc.c  */
6560 #line 839 "type.y"
6561     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
6562     break;
6563
6564   case 211:
6565
6566 /* Line 1464 of yacc.c  */
6567 #line 840 "type.y"
6568     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
6569     break;
6570
6571   case 212:
6572
6573 /* Line 1464 of yacc.c  */
6574 #line 841 "type.y"
6575     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
6576     break;
6577
6578   case 213:
6579
6580 /* Line 1464 of yacc.c  */
6581 #line 845 "type.y"
6582     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
6583     break;
6584
6585   case 214:
6586
6587 /* Line 1464 of yacc.c  */
6588 #line 846 "type.y"
6589     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
6590     break;
6591
6592   case 215:
6593
6594 /* Line 1464 of yacc.c  */
6595 #line 850 "type.y"
6596     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
6597     break;
6598
6599   case 216:
6600
6601 /* Line 1464 of yacc.c  */
6602 #line 854 "type.y"
6603     { (yyval.specifier) = MkSpecifier(CONST); ;}
6604     break;
6605
6606   case 217:
6607
6608 /* Line 1464 of yacc.c  */
6609 #line 855 "type.y"
6610     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
6611     break;
6612
6613   case 218:
6614
6615 /* Line 1464 of yacc.c  */
6616 #line 856 "type.y"
6617     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
6618     break;
6619
6620   case 219:
6621
6622 /* Line 1464 of yacc.c  */
6623 #line 861 "type.y"
6624     { (yyval.specifier) = MkSpecifier(VOID); ;}
6625     break;
6626
6627   case 220:
6628
6629 /* Line 1464 of yacc.c  */
6630 #line 862 "type.y"
6631     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6632     break;
6633
6634   case 221:
6635
6636 /* Line 1464 of yacc.c  */
6637 #line 863 "type.y"
6638     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6639     break;
6640
6641   case 222:
6642
6643 /* Line 1464 of yacc.c  */
6644 #line 864 "type.y"
6645     { (yyval.specifier) = MkSpecifier(INT); ;}
6646     break;
6647
6648   case 223:
6649
6650 /* Line 1464 of yacc.c  */
6651 #line 865 "type.y"
6652     { (yyval.specifier) = MkSpecifier(UINT); ;}
6653     break;
6654
6655   case 224:
6656
6657 /* Line 1464 of yacc.c  */
6658 #line 866 "type.y"
6659     { (yyval.specifier) = MkSpecifier(INT64); ;}
6660     break;
6661
6662   case 225:
6663
6664 /* Line 1464 of yacc.c  */
6665 #line 867 "type.y"
6666     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6667     break;
6668
6669   case 226:
6670
6671 /* Line 1464 of yacc.c  */
6672 #line 868 "type.y"
6673     { (yyval.specifier) = MkSpecifier(LONG); ;}
6674     break;
6675
6676   case 227:
6677
6678 /* Line 1464 of yacc.c  */
6679 #line 869 "type.y"
6680     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6681     break;
6682
6683   case 228:
6684
6685 /* Line 1464 of yacc.c  */
6686 #line 870 "type.y"
6687     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6688     break;
6689
6690   case 229:
6691
6692 /* Line 1464 of yacc.c  */
6693 #line 871 "type.y"
6694     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6695     break;
6696
6697   case 230:
6698
6699 /* Line 1464 of yacc.c  */
6700 #line 872 "type.y"
6701     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6702     break;
6703
6704   case 231:
6705
6706 /* Line 1464 of yacc.c  */
6707 #line 873 "type.y"
6708     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6709     break;
6710
6711   case 232:
6712
6713 /* Line 1464 of yacc.c  */
6714 #line 874 "type.y"
6715     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
6716     break;
6717
6718   case 233:
6719
6720 /* Line 1464 of yacc.c  */
6721 #line 875 "type.y"
6722     { (yyval.specifier) = MkSpecifier(BOOL); ;}
6723     break;
6724
6725   case 237:
6726
6727 /* Line 1464 of yacc.c  */
6728 #line 879 "type.y"
6729     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6730     break;
6731
6732   case 238:
6733
6734 /* Line 1464 of yacc.c  */
6735 #line 880 "type.y"
6736     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6737     break;
6738
6739   case 239:
6740
6741 /* Line 1464 of yacc.c  */
6742 #line 881 "type.y"
6743     { _DeclClass((yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6744     break;
6745
6746   case 240:
6747
6748 /* Line 1464 of yacc.c  */
6749 #line 882 "type.y"
6750     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6751     break;
6752
6753   case 241:
6754
6755 /* Line 1464 of yacc.c  */
6756 #line 883 "type.y"
6757     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
6758     break;
6759
6760   case 242:
6761
6762 /* Line 1464 of yacc.c  */
6763 #line 884 "type.y"
6764     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
6765     break;
6766
6767   case 243:
6768
6769 /* Line 1464 of yacc.c  */
6770 #line 888 "type.y"
6771     { (yyval.specifier) = MkSpecifier(VOID); ;}
6772     break;
6773
6774   case 244:
6775
6776 /* Line 1464 of yacc.c  */
6777 #line 889 "type.y"
6778     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6779     break;
6780
6781   case 245:
6782
6783 /* Line 1464 of yacc.c  */
6784 #line 890 "type.y"
6785     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6786     break;
6787
6788   case 246:
6789
6790 /* Line 1464 of yacc.c  */
6791 #line 891 "type.y"
6792     { (yyval.specifier) = MkSpecifier(INT); ;}
6793     break;
6794
6795   case 247:
6796
6797 /* Line 1464 of yacc.c  */
6798 #line 892 "type.y"
6799     { (yyval.specifier) = MkSpecifier(UINT); ;}
6800     break;
6801
6802   case 248:
6803
6804 /* Line 1464 of yacc.c  */
6805 #line 893 "type.y"
6806     { (yyval.specifier) = MkSpecifier(INT64); ;}
6807     break;
6808
6809   case 249:
6810
6811 /* Line 1464 of yacc.c  */
6812 #line 894 "type.y"
6813     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6814     break;
6815
6816   case 250:
6817
6818 /* Line 1464 of yacc.c  */
6819 #line 895 "type.y"
6820     { (yyval.specifier) = MkSpecifier(LONG); ;}
6821     break;
6822
6823   case 251:
6824
6825 /* Line 1464 of yacc.c  */
6826 #line 896 "type.y"
6827     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6828     break;
6829
6830   case 252:
6831
6832 /* Line 1464 of yacc.c  */
6833 #line 897 "type.y"
6834     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6835     break;
6836
6837   case 253:
6838
6839 /* Line 1464 of yacc.c  */
6840 #line 898 "type.y"
6841     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6842     break;
6843
6844   case 254:
6845
6846 /* Line 1464 of yacc.c  */
6847 #line 899 "type.y"
6848     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6849     break;
6850
6851   case 255:
6852
6853 /* Line 1464 of yacc.c  */
6854 #line 900 "type.y"
6855     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6856     break;
6857
6858   case 256:
6859
6860 /* Line 1464 of yacc.c  */
6861 #line 901 "type.y"
6862     { (yyval.specifier) = MkSpecifier(_BOOL); ;}
6863     break;
6864
6865   case 257:
6866
6867 /* Line 1464 of yacc.c  */
6868 #line 902 "type.y"
6869     { (yyval.specifier) = MkSpecifier(BOOL); ;}
6870     break;
6871
6872   case 261:
6873
6874 /* Line 1464 of yacc.c  */
6875 #line 906 "type.y"
6876     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6877     break;
6878
6879   case 262:
6880
6881 /* Line 1464 of yacc.c  */
6882 #line 907 "type.y"
6883     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6884     break;
6885
6886   case 263:
6887
6888 /* Line 1464 of yacc.c  */
6889 #line 908 "type.y"
6890     { _DeclClass((yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6891     break;
6892
6893   case 264:
6894
6895 /* Line 1464 of yacc.c  */
6896 #line 909 "type.y"
6897     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6898     break;
6899
6900   case 265:
6901
6902 /* Line 1464 of yacc.c  */
6903 #line 914 "type.y"
6904     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id).string); ;}
6905     break;
6906
6907   case 266:
6908
6909 /* Line 1464 of yacc.c  */
6910 #line 915 "type.y"
6911     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
6912     break;
6913
6914   case 267:
6915
6916 /* Line 1464 of yacc.c  */
6917 #line 916 "type.y"
6918     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass((yyvsp[(2) - (4)].id).string); ;}
6919     break;
6920
6921   case 268:
6922
6923 /* Line 1464 of yacc.c  */
6924 #line 917 "type.y"
6925     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
6926     break;
6927
6928   case 269:
6929
6930 /* Line 1464 of yacc.c  */
6931 #line 919 "type.y"
6932     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
6933     break;
6934
6935   case 270:
6936
6937 /* Line 1464 of yacc.c  */
6938 #line 921 "type.y"
6939     { (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).string); ;}
6940     break;
6941
6942   case 271:
6943
6944 /* Line 1464 of yacc.c  */
6945 #line 922 "type.y"
6946     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
6947     break;
6948
6949   case 272:
6950
6951 /* Line 1464 of yacc.c  */
6952 #line 923 "type.y"
6953     { (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).string); ;}
6954     break;
6955
6956   case 273:
6957
6958 /* Line 1464 of yacc.c  */
6959 #line 924 "type.y"
6960     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
6961     break;
6962
6963   case 274:
6964
6965 /* Line 1464 of yacc.c  */
6966 #line 926 "type.y"
6967     { (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).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); ;}
6968     break;
6969
6970   case 275:
6971
6972 /* Line 1464 of yacc.c  */
6973 #line 930 "type.y"
6974     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id).string); ;}
6975     break;
6976
6977   case 276:
6978
6979 /* Line 1464 of yacc.c  */
6980 #line 932 "type.y"
6981     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
6982     break;
6983
6984   case 277:
6985
6986 /* Line 1464 of yacc.c  */
6987 #line 935 "type.y"
6988     { (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).string); ;}
6989     break;
6990
6991   case 278:
6992
6993 /* Line 1464 of yacc.c  */
6994 #line 937 "type.y"
6995     { (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).name); FreeSpecifier((yyvsp[(3) - (3)].specifier)); ;}
6996     break;
6997
6998   case 279:
6999
7000 /* Line 1464 of yacc.c  */
7001 #line 941 "type.y"
7002     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
7003     break;
7004
7005   case 280:
7006
7007 /* Line 1464 of yacc.c  */
7008 #line 942 "type.y"
7009     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7010     break;
7011
7012   case 281:
7013
7014 /* Line 1464 of yacc.c  */
7015 #line 947 "type.y"
7016     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
7017     break;
7018
7019   case 282:
7020
7021 /* Line 1464 of yacc.c  */
7022 #line 948 "type.y"
7023     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
7024     break;
7025
7026   case 283:
7027
7028 /* Line 1464 of yacc.c  */
7029 #line 959 "type.y"
7030     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
7031     break;
7032
7033   case 286:
7034
7035 /* Line 1464 of yacc.c  */
7036 #line 966 "type.y"
7037     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
7038     break;
7039
7040   case 287:
7041
7042 /* Line 1464 of yacc.c  */
7043 #line 968 "type.y"
7044     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
7045     break;
7046
7047   case 288:
7048
7049 /* Line 1464 of yacc.c  */
7050 #line 970 "type.y"
7051     {
7052       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
7053       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7054       {
7055          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7056          if(spec.type == nameSpecifier)
7057             (yyval.templateArgument).name = MkIdentifier(spec.name);
7058       }
7059       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7060       (yyval.templateArgument).loc = (yyloc);
7061    ;}
7062     break;
7063
7064   case 289:
7065
7066 /* Line 1464 of yacc.c  */
7067 #line 994 "type.y"
7068     {
7069       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument);
7070       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
7071       {
7072          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
7073          if(spec.type == nameSpecifier)
7074             (yyval.templateArgument).name = MkIdentifier(spec.name);
7075       }
7076       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
7077       (yyval.templateArgument).loc = (yyloc);
7078    ;}
7079     break;
7080
7081   case 290:
7082
7083 /* Line 1464 of yacc.c  */
7084 #line 1008 "type.y"
7085     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
7086     break;
7087
7088   case 291:
7089
7090 /* Line 1464 of yacc.c  */
7091 #line 1009 "type.y"
7092     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
7093     break;
7094
7095   case 292:
7096
7097 /* Line 1464 of yacc.c  */
7098 #line 1013 "type.y"
7099     { (yyval.specifierType) = structSpecifier; ;}
7100     break;
7101
7102   case 293:
7103
7104 /* Line 1464 of yacc.c  */
7105 #line 1014 "type.y"
7106     { (yyval.specifierType) = unionSpecifier; ;}
7107     break;
7108
7109   case 294:
7110
7111 /* Line 1464 of yacc.c  */
7112 #line 1018 "type.y"
7113     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
7114     break;
7115
7116   case 295:
7117
7118 /* Line 1464 of yacc.c  */
7119 #line 1019 "type.y"
7120     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
7121     break;
7122
7123   case 296:
7124
7125 /* Line 1464 of yacc.c  */
7126 #line 1023 "type.y"
7127     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
7128     break;
7129
7130   case 297:
7131
7132 /* Line 1464 of yacc.c  */
7133 #line 1027 "type.y"
7134     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
7135     break;
7136
7137   case 298:
7138
7139 /* Line 1464 of yacc.c  */
7140 #line 1028 "type.y"
7141     { ((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); ;}
7142     break;
7143
7144   case 299:
7145
7146 /* Line 1464 of yacc.c  */
7147 #line 1033 "type.y"
7148     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7149     break;
7150
7151   case 300:
7152
7153 /* Line 1464 of yacc.c  */
7154 #line 1035 "type.y"
7155     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7156     break;
7157
7158   case 301:
7159
7160 /* Line 1464 of yacc.c  */
7161 #line 1037 "type.y"
7162     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7163     break;
7164
7165   case 302:
7166
7167 /* Line 1464 of yacc.c  */
7168 #line 1039 "type.y"
7169     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7170     break;
7171
7172   case 303:
7173
7174 /* Line 1464 of yacc.c  */
7175 #line 1041 "type.y"
7176     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7177     break;
7178
7179   case 304:
7180
7181 /* Line 1464 of yacc.c  */
7182 #line 1044 "type.y"
7183     { (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); ;}
7184     break;
7185
7186   case 305:
7187
7188 /* Line 1464 of yacc.c  */
7189 #line 1046 "type.y"
7190     { (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); ;}
7191     break;
7192
7193   case 306:
7194
7195 /* Line 1464 of yacc.c  */
7196 #line 1048 "type.y"
7197     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7198     break;
7199
7200   case 307:
7201
7202 /* Line 1464 of yacc.c  */
7203 #line 1050 "type.y"
7204     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7205     break;
7206
7207   case 308:
7208
7209 /* Line 1464 of yacc.c  */
7210 #line 1052 "type.y"
7211     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7212     break;
7213
7214   case 309:
7215
7216 /* Line 1464 of yacc.c  */
7217 #line 1055 "type.y"
7218     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7219     break;
7220
7221   case 310:
7222
7223 /* Line 1464 of yacc.c  */
7224 #line 1057 "type.y"
7225     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7226     break;
7227
7228   case 311:
7229
7230 /* Line 1464 of yacc.c  */
7231 #line 1059 "type.y"
7232     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7233     break;
7234
7235   case 312:
7236
7237 /* Line 1464 of yacc.c  */
7238 #line 1061 "type.y"
7239     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
7240     break;
7241
7242   case 313:
7243
7244 /* Line 1464 of yacc.c  */
7245 #line 1063 "type.y"
7246     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
7247     break;
7248
7249   case 314:
7250
7251 /* Line 1464 of yacc.c  */
7252 #line 1066 "type.y"
7253     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7254     break;
7255
7256   case 315:
7257
7258 /* Line 1464 of yacc.c  */
7259 #line 1068 "type.y"
7260     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7261     break;
7262
7263   case 316:
7264
7265 /* Line 1464 of yacc.c  */
7266 #line 1070 "type.y"
7267     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7268     break;
7269
7270   case 317:
7271
7272 /* Line 1464 of yacc.c  */
7273 #line 1072 "type.y"
7274     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7275     break;
7276
7277   case 318:
7278
7279 /* Line 1464 of yacc.c  */
7280 #line 1074 "type.y"
7281     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
7282     break;
7283
7284   case 319:
7285
7286 /* Line 1464 of yacc.c  */
7287 #line 1078 "type.y"
7288     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7289     break;
7290
7291   case 320:
7292
7293 /* Line 1464 of yacc.c  */
7294 #line 1079 "type.y"
7295     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7296     break;
7297
7298   case 321:
7299
7300 /* Line 1464 of yacc.c  */
7301 #line 1080 "type.y"
7302     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7303     break;
7304
7305   case 322:
7306
7307 /* Line 1464 of yacc.c  */
7308 #line 1081 "type.y"
7309     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7310     break;
7311
7312   case 323:
7313
7314 /* Line 1464 of yacc.c  */
7315 #line 1082 "type.y"
7316     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
7317     break;
7318
7319   case 324:
7320
7321 /* Line 1464 of yacc.c  */
7322 #line 1083 "type.y"
7323     { (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); ;}
7324     break;
7325
7326   case 325:
7327
7328 /* Line 1464 of yacc.c  */
7329 #line 1084 "type.y"
7330     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
7331     break;
7332
7333   case 326:
7334
7335 /* Line 1464 of yacc.c  */
7336 #line 1085 "type.y"
7337     { (yyval.classDef) = null; ;}
7338     break;
7339
7340   case 327:
7341
7342 /* Line 1464 of yacc.c  */
7343 #line 1090 "type.y"
7344     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
7345     break;
7346
7347   case 328:
7348
7349 /* Line 1464 of yacc.c  */
7350 #line 1092 "type.y"
7351     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
7352     break;
7353
7354   case 329:
7355
7356 /* Line 1464 of yacc.c  */
7357 #line 1097 "type.y"
7358     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
7359     break;
7360
7361   case 330:
7362
7363 /* Line 1464 of yacc.c  */
7364 #line 1099 "type.y"
7365     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
7366     break;
7367
7368   case 331:
7369
7370 /* Line 1464 of yacc.c  */
7371 #line 1101 "type.y"
7372     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
7373     break;
7374
7375   case 332:
7376
7377 /* Line 1464 of yacc.c  */
7378 #line 1103 "type.y"
7379     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
7380     break;
7381
7382   case 333:
7383
7384 /* Line 1464 of yacc.c  */
7385 #line 1105 "type.y"
7386     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
7387     break;
7388
7389   case 334:
7390
7391 /* Line 1464 of yacc.c  */
7392 #line 1109 "type.y"
7393     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass((yyvsp[(2) - (2)].id).string); ;}
7394     break;
7395
7396   case 335:
7397
7398 /* Line 1464 of yacc.c  */
7399 #line 1110 "type.y"
7400     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
7401     break;
7402
7403   case 336:
7404
7405 /* Line 1464 of yacc.c  */
7406 #line 1115 "type.y"
7407     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
7408     break;
7409
7410   case 337:
7411
7412 /* Line 1464 of yacc.c  */
7413 #line 1116 "type.y"
7414     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].id).string); ;}
7415     break;
7416
7417   case 338:
7418
7419 /* Line 1464 of yacc.c  */
7420 #line 1117 "type.y"
7421     { (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).string); ;}
7422     break;
7423
7424   case 339:
7425
7426 /* Line 1464 of yacc.c  */
7427 #line 1118 "type.y"
7428     { (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).name); FreeSpecifier((yyvsp[(2) - (7)].specifier)); ;}
7429     break;
7430
7431   case 340:
7432
7433 /* Line 1464 of yacc.c  */
7434 #line 1119 "type.y"
7435     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass((yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
7436     break;
7437
7438   case 341:
7439
7440 /* Line 1464 of yacc.c  */
7441 #line 1124 "type.y"
7442     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
7443     break;
7444
7445   case 342:
7446
7447 /* Line 1464 of yacc.c  */
7448 #line 1126 "type.y"
7449     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
7450     break;
7451
7452   case 343:
7453
7454 /* Line 1464 of yacc.c  */
7455 #line 1131 "type.y"
7456     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
7457     break;
7458
7459   case 344:
7460
7461 /* Line 1464 of yacc.c  */
7462 #line 1133 "type.y"
7463     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
7464     break;
7465
7466   case 345:
7467
7468 /* Line 1464 of yacc.c  */
7469 #line 1139 "type.y"
7470     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7471     break;
7472
7473   case 346:
7474
7475 /* Line 1464 of yacc.c  */
7476 #line 1141 "type.y"
7477     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
7478     break;
7479
7480   case 347:
7481
7482 /* Line 1464 of yacc.c  */
7483 #line 1143 "type.y"
7484     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
7485     break;
7486
7487   case 348:
7488
7489 /* Line 1464 of yacc.c  */
7490 #line 1145 "type.y"
7491     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
7492     break;
7493
7494   case 349:
7495
7496 /* Line 1464 of yacc.c  */
7497 #line 1147 "type.y"
7498     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7499     break;
7500
7501   case 350:
7502
7503 /* Line 1464 of yacc.c  */
7504 #line 1149 "type.y"
7505     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7506     break;
7507
7508   case 351:
7509
7510 /* Line 1464 of yacc.c  */
7511 #line 1151 "type.y"
7512     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7513     break;
7514
7515   case 352:
7516
7517 /* Line 1464 of yacc.c  */
7518 #line 1153 "type.y"
7519     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7520     break;
7521
7522   case 353:
7523
7524 /* Line 1464 of yacc.c  */
7525 #line 1155 "type.y"
7526     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7527     break;
7528
7529   case 354:
7530
7531 /* Line 1464 of yacc.c  */
7532 #line 1157 "type.y"
7533     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7534     break;
7535
7536   case 355:
7537
7538 /* Line 1464 of yacc.c  */
7539 #line 1159 "type.y"
7540     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7541     break;
7542
7543   case 356:
7544
7545 /* Line 1464 of yacc.c  */
7546 #line 1164 "type.y"
7547     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7548     break;
7549
7550   case 357:
7551
7552 /* Line 1464 of yacc.c  */
7553 #line 1166 "type.y"
7554     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7555     break;
7556
7557   case 358:
7558
7559 /* Line 1464 of yacc.c  */
7560 #line 1168 "type.y"
7561     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7562     break;
7563
7564   case 359:
7565
7566 /* Line 1464 of yacc.c  */
7567 #line 1170 "type.y"
7568     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7569     break;
7570
7571   case 360:
7572
7573 /* Line 1464 of yacc.c  */
7574 #line 1172 "type.y"
7575     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7576     break;
7577
7578   case 361:
7579
7580 /* Line 1464 of yacc.c  */
7581 #line 1176 "type.y"
7582     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7583     break;
7584
7585   case 363:
7586
7587 /* Line 1464 of yacc.c  */
7588 #line 1178 "type.y"
7589     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7590     break;
7591
7592   case 364:
7593
7594 /* Line 1464 of yacc.c  */
7595 #line 1179 "type.y"
7596     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7597     break;
7598
7599   case 365:
7600
7601 /* Line 1464 of yacc.c  */
7602 #line 1180 "type.y"
7603     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7604     break;
7605
7606   case 366:
7607
7608 /* Line 1464 of yacc.c  */
7609 #line 1181 "type.y"
7610     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7611     break;
7612
7613   case 367:
7614
7615 /* Line 1464 of yacc.c  */
7616 #line 1185 "type.y"
7617     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7618     break;
7619
7620   case 369:
7621
7622 /* Line 1464 of yacc.c  */
7623 #line 1187 "type.y"
7624     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7625     break;
7626
7627   case 370:
7628
7629 /* Line 1464 of yacc.c  */
7630 #line 1188 "type.y"
7631     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7632     break;
7633
7634   case 371:
7635
7636 /* Line 1464 of yacc.c  */
7637 #line 1189 "type.y"
7638     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7639     break;
7640
7641   case 372:
7642
7643 /* Line 1464 of yacc.c  */
7644 #line 1190 "type.y"
7645     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7646     break;
7647
7648   case 374:
7649
7650 /* Line 1464 of yacc.c  */
7651 #line 1238 "type.y"
7652     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7653     break;
7654
7655   case 375:
7656
7657 /* Line 1464 of yacc.c  */
7658 #line 1240 "type.y"
7659     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7660     break;
7661
7662   case 376:
7663
7664 /* Line 1464 of yacc.c  */
7665 #line 1242 "type.y"
7666     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
7667     break;
7668
7669   case 377:
7670
7671 /* Line 1464 of yacc.c  */
7672 #line 1247 "type.y"
7673     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
7674     break;
7675
7676   case 378:
7677
7678 /* Line 1464 of yacc.c  */
7679 #line 1249 "type.y"
7680     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7681     break;
7682
7683   case 379:
7684
7685 /* Line 1464 of yacc.c  */
7686 #line 1251 "type.y"
7687     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7688     break;
7689
7690   case 380:
7691
7692 /* Line 1464 of yacc.c  */
7693 #line 1253 "type.y"
7694     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7695     break;
7696
7697   case 381:
7698
7699 /* Line 1464 of yacc.c  */
7700 #line 1255 "type.y"
7701     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7702     break;
7703
7704   case 383:
7705
7706 /* Line 1464 of yacc.c  */
7707 #line 1261 "type.y"
7708     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7709     break;
7710
7711   case 384:
7712
7713 /* Line 1464 of yacc.c  */
7714 #line 1264 "type.y"
7715     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7716     break;
7717
7718   case 385:
7719
7720 /* Line 1464 of yacc.c  */
7721 #line 1266 "type.y"
7722     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7723     break;
7724
7725   case 386:
7726
7727 /* Line 1464 of yacc.c  */
7728 #line 1268 "type.y"
7729     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7730     break;
7731
7732   case 388:
7733
7734 /* Line 1464 of yacc.c  */
7735 #line 1278 "type.y"
7736     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7737     break;
7738
7739   case 389:
7740
7741 /* Line 1464 of yacc.c  */
7742 #line 1280 "type.y"
7743     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7744     break;
7745
7746   case 390:
7747
7748 /* Line 1464 of yacc.c  */
7749 #line 1282 "type.y"
7750     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
7751     break;
7752
7753   case 393:
7754
7755 /* Line 1464 of yacc.c  */
7756 #line 1289 "type.y"
7757     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7758     break;
7759
7760   case 394:
7761
7762 /* Line 1464 of yacc.c  */
7763 #line 1291 "type.y"
7764     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7765     break;
7766
7767   case 396:
7768
7769 /* Line 1464 of yacc.c  */
7770 #line 1296 "type.y"
7771     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7772     break;
7773
7774   case 397:
7775
7776 /* Line 1464 of yacc.c  */
7777 #line 1297 "type.y"
7778     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7779     break;
7780
7781   case 398:
7782
7783 /* Line 1464 of yacc.c  */
7784 #line 1298 "type.y"
7785     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7786     break;
7787
7788   case 399:
7789
7790 /* Line 1464 of yacc.c  */
7791 #line 1299 "type.y"
7792     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7793     break;
7794
7795   case 400:
7796
7797 /* Line 1464 of yacc.c  */
7798 #line 1303 "type.y"
7799     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
7800     break;
7801
7802   case 401:
7803
7804 /* Line 1464 of yacc.c  */
7805 #line 1304 "type.y"
7806     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
7807     break;
7808
7809   case 402:
7810
7811 /* Line 1464 of yacc.c  */
7812 #line 1308 "type.y"
7813     { (yyval.pointer) = MkPointer(null, null); ;}
7814     break;
7815
7816   case 403:
7817
7818 /* Line 1464 of yacc.c  */
7819 #line 1309 "type.y"
7820     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
7821     break;
7822
7823   case 404:
7824
7825 /* Line 1464 of yacc.c  */
7826 #line 1310 "type.y"
7827     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
7828     break;
7829
7830   case 405:
7831
7832 /* Line 1464 of yacc.c  */
7833 #line 1311 "type.y"
7834     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
7835     break;
7836
7837   case 407:
7838
7839 /* Line 1464 of yacc.c  */
7840 #line 1316 "type.y"
7841     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
7842     break;
7843
7844   case 408:
7845
7846 /* Line 1464 of yacc.c  */
7847 #line 1320 "type.y"
7848     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
7849     break;
7850
7851   case 409:
7852
7853 /* Line 1464 of yacc.c  */
7854 #line 1321 "type.y"
7855     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
7856     break;
7857
7858   case 410:
7859
7860 /* Line 1464 of yacc.c  */
7861 #line 1325 "type.y"
7862     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7863     break;
7864
7865   case 411:
7866
7867 /* Line 1464 of yacc.c  */
7868 #line 1326 "type.y"
7869     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7870     break;
7871
7872   case 412:
7873
7874 /* Line 1464 of yacc.c  */
7875 #line 1327 "type.y"
7876     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
7877     break;
7878
7879   case 413:
7880
7881 /* Line 1464 of yacc.c  */
7882 #line 1328 "type.y"
7883     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
7884     break;
7885
7886   case 414:
7887
7888 /* Line 1464 of yacc.c  */
7889 #line 1329 "type.y"
7890     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7891     break;
7892
7893   case 415:
7894
7895 /* Line 1464 of yacc.c  */
7896 #line 1341 "type.y"
7897     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
7898     break;
7899
7900   case 416:
7901
7902 /* Line 1464 of yacc.c  */
7903 #line 1365 "type.y"
7904     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
7905     break;
7906
7907   case 417:
7908
7909 /* Line 1464 of yacc.c  */
7910 #line 1366 "type.y"
7911     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
7912     break;
7913
7914   case 418:
7915
7916 /* Line 1464 of yacc.c  */
7917 #line 1370 "type.y"
7918     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7919     break;
7920
7921   case 419:
7922
7923 /* Line 1464 of yacc.c  */
7924 #line 1371 "type.y"
7925     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7926     break;
7927
7928   case 420:
7929
7930 /* Line 1464 of yacc.c  */
7931 #line 1375 "type.y"
7932     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7933     break;
7934
7935   case 421:
7936
7937 /* Line 1464 of yacc.c  */
7938 #line 1376 "type.y"
7939     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7940     break;
7941
7942   case 422:
7943
7944 /* Line 1464 of yacc.c  */
7945 #line 1381 "type.y"
7946     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7947     break;
7948
7949   case 423:
7950
7951 /* Line 1464 of yacc.c  */
7952 #line 1383 "type.y"
7953     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
7954     break;
7955
7956   case 424:
7957
7958 /* Line 1464 of yacc.c  */
7959 #line 1385 "type.y"
7960     {
7961          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
7962          (yyval.initializer).loc = (yyloc);
7963
7964          {
7965             Expression exp = MkExpDummy();
7966             Initializer init = MkInitializerAssignment(exp);
7967             init.loc = (yylsp[(3) - (4)]);
7968             exp.loc = (yylsp[(3) - (4)]);
7969             ListAdd((yyvsp[(2) - (4)].list), init);
7970          }
7971       ;}
7972     break;
7973
7974   case 425:
7975
7976 /* Line 1464 of yacc.c  */
7977 #line 1401 "type.y"
7978     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7979     break;
7980
7981   case 426:
7982
7983 /* Line 1464 of yacc.c  */
7984 #line 1403 "type.y"
7985     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7986     break;
7987
7988   case 427:
7989
7990 /* Line 1464 of yacc.c  */
7991 #line 1425 "type.y"
7992     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
7993     break;
7994
7995   case 428:
7996
7997 /* Line 1464 of yacc.c  */
7998 #line 1427 "type.y"
7999     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
8000     break;
8001
8002   case 435:
8003
8004 /* Line 1464 of yacc.c  */
8005 #line 1441 "type.y"
8006     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8007     break;
8008
8009   case 436:
8010
8011 /* Line 1464 of yacc.c  */
8012 #line 1443 "type.y"
8013     { (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; ;}
8014     break;
8015
8016   case 437:
8017
8018 /* Line 1464 of yacc.c  */
8019 #line 1445 "type.y"
8020     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8021     break;
8022
8023   case 438:
8024
8025 /* Line 1464 of yacc.c  */
8026 #line 1449 "type.y"
8027     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
8028     break;
8029
8030   case 439:
8031
8032 /* Line 1464 of yacc.c  */
8033 #line 1450 "type.y"
8034     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
8035     break;
8036
8037   case 440:
8038
8039 /* Line 1464 of yacc.c  */
8040 #line 1454 "type.y"
8041     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
8042     break;
8043
8044   case 441:
8045
8046 /* Line 1464 of yacc.c  */
8047 #line 1455 "type.y"
8048     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
8049     break;
8050
8051   case 442:
8052
8053 /* Line 1464 of yacc.c  */
8054 #line 1458 "type.y"
8055     { 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); ;}
8056     break;
8057
8058   case 443:
8059
8060 /* Line 1464 of yacc.c  */
8061 #line 1462 "type.y"
8062     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
8063     break;
8064
8065   case 444:
8066
8067 /* Line 1464 of yacc.c  */
8068 #line 1463 "type.y"
8069     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
8070     break;
8071
8072   case 445:
8073
8074 /* Line 1464 of yacc.c  */
8075 #line 1464 "type.y"
8076     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
8077     break;
8078
8079   case 446:
8080
8081 /* Line 1464 of yacc.c  */
8082 #line 1468 "type.y"
8083     { (yyval.context) = PushContext(); ;}
8084     break;
8085
8086   case 447:
8087
8088 /* Line 1464 of yacc.c  */
8089 #line 1473 "type.y"
8090     {
8091       (yyval.stmt) = MkCompoundStmt(null, null);
8092       (yyval.stmt).compound.context = PushContext();
8093       PopContext((yyval.stmt).compound.context);
8094       (yyval.stmt).loc = (yyloc);
8095    ;}
8096     break;
8097
8098   case 448:
8099
8100 /* Line 1464 of yacc.c  */
8101 #line 1481 "type.y"
8102     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
8103     break;
8104
8105   case 449:
8106
8107 /* Line 1464 of yacc.c  */
8108 #line 1485 "type.y"
8109     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
8110     break;
8111
8112   case 450:
8113
8114 /* Line 1464 of yacc.c  */
8115 #line 1486 "type.y"
8116     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
8117     break;
8118
8119   case 451:
8120
8121 /* Line 1464 of yacc.c  */
8122 #line 1490 "type.y"
8123     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
8124     break;
8125
8126   case 452:
8127
8128 /* Line 1464 of yacc.c  */
8129 #line 1491 "type.y"
8130     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8131     break;
8132
8133   case 453:
8134
8135 /* Line 1464 of yacc.c  */
8136 #line 1492 "type.y"
8137     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8138     break;
8139
8140   case 454:
8141
8142 /* Line 1464 of yacc.c  */
8143 #line 1496 "type.y"
8144     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8145     break;
8146
8147   case 455:
8148
8149 /* Line 1464 of yacc.c  */
8150 #line 1497 "type.y"
8151     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
8152     break;
8153
8154   case 456:
8155
8156 /* Line 1464 of yacc.c  */
8157 #line 1498 "type.y"
8158     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8159     break;
8160
8161   case 457:
8162
8163 /* Line 1464 of yacc.c  */
8164 #line 1499 "type.y"
8165     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8166     break;
8167
8168   case 458:
8169
8170 /* Line 1464 of yacc.c  */
8171 #line 1501 "type.y"
8172     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8173     break;
8174
8175   case 459:
8176
8177 /* Line 1464 of yacc.c  */
8178 #line 1502 "type.y"
8179     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8180     break;
8181
8182   case 460:
8183
8184 /* Line 1464 of yacc.c  */
8185 #line 1503 "type.y"
8186     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8187     break;
8188
8189   case 461:
8190
8191 /* Line 1464 of yacc.c  */
8192 #line 1507 "type.y"
8193     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
8194     break;
8195
8196   case 462:
8197
8198 /* Line 1464 of yacc.c  */
8199 #line 1508 "type.y"
8200     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
8201     break;
8202
8203   case 463:
8204
8205 /* Line 1464 of yacc.c  */
8206 #line 1509 "type.y"
8207     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
8208     break;
8209
8210   case 464:
8211
8212 /* Line 1464 of yacc.c  */
8213 #line 1510 "type.y"
8214     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
8215     break;
8216
8217   case 465:
8218
8219 /* Line 1464 of yacc.c  */
8220 #line 1511 "type.y"
8221     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
8222     break;
8223
8224   case 466:
8225
8226 /* Line 1464 of yacc.c  */
8227 #line 1515 "type.y"
8228     { (yyval.string) = CopyString(yytext); ;}
8229     break;
8230
8231   case 467:
8232
8233 /* Line 1464 of yacc.c  */
8234 #line 1520 "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 468:
8239
8240 /* Line 1464 of yacc.c  */
8241 #line 1522 "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 469:
8246
8247 /* Line 1464 of yacc.c  */
8248 #line 1527 "type.y"
8249     { (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;;}
8250     break;
8251
8252   case 470:
8253
8254 /* Line 1464 of yacc.c  */
8255 #line 1529 "type.y"
8256     { (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;;}
8257     break;
8258
8259   case 471:
8260
8261 /* Line 1464 of yacc.c  */
8262 #line 1554 "type.y"
8263     { (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; ;}
8264     break;
8265
8266   case 472:
8267
8268 /* Line 1464 of yacc.c  */
8269 #line 1556 "type.y"
8270     { (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;;}
8271     break;
8272
8273   case 473:
8274
8275 /* Line 1464 of yacc.c  */
8276 #line 1558 "type.y"
8277     { 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)); ;}
8278     break;
8279
8280   case 474:
8281
8282 /* Line 1464 of yacc.c  */
8283 #line 1560 "type.y"
8284     { 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)); ;}
8285     break;
8286
8287   case 475:
8288
8289 /* Line 1464 of yacc.c  */
8290 #line 1565 "type.y"
8291     { (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; ;}
8292     break;
8293
8294   case 476:
8295
8296 /* Line 1464 of yacc.c  */
8297 #line 1567 "type.y"
8298     { (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;;}
8299     break;
8300
8301   case 477:
8302
8303 /* Line 1464 of yacc.c  */
8304 #line 1571 "type.y"
8305     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8306     break;
8307
8308   case 478:
8309
8310 /* Line 1464 of yacc.c  */
8311 #line 1573 "type.y"
8312     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8313     break;
8314
8315   case 479:
8316
8317 /* Line 1464 of yacc.c  */
8318 #line 1575 "type.y"
8319     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
8320     break;
8321
8322   case 480:
8323
8324 /* Line 1464 of yacc.c  */
8325 #line 1577 "type.y"
8326     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8327     break;
8328
8329   case 481:
8330
8331 /* Line 1464 of yacc.c  */
8332 #line 1579 "type.y"
8333     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8334     break;
8335
8336   case 482:
8337
8338 /* Line 1464 of yacc.c  */
8339 #line 1585 "type.y"
8340     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
8341     break;
8342
8343   case 483:
8344
8345 /* Line 1464 of yacc.c  */
8346 #line 1587 "type.y"
8347     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
8348     break;
8349
8350   case 484:
8351
8352 /* Line 1464 of yacc.c  */
8353 #line 1592 "type.y"
8354     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8355     break;
8356
8357   case 485:
8358
8359 /* Line 1464 of yacc.c  */
8360 #line 1596 "type.y"
8361     { (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;;}
8362     break;
8363
8364   case 486:
8365
8366 /* Line 1464 of yacc.c  */
8367 #line 1597 "type.y"
8368     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
8369     break;
8370
8371   case 487:
8372
8373 /* Line 1464 of yacc.c  */
8374 #line 1602 "type.y"
8375     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
8376     break;
8377
8378   case 488:
8379
8380 /* Line 1464 of yacc.c  */
8381 #line 1604 "type.y"
8382     { ((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); ;}
8383     break;
8384
8385   case 489:
8386
8387 /* Line 1464 of yacc.c  */
8388 #line 1609 "type.y"
8389     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8390     break;
8391
8392   case 490:
8393
8394 /* Line 1464 of yacc.c  */
8395 #line 1613 "type.y"
8396     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
8397     break;
8398
8399   case 491:
8400
8401 /* Line 1464 of yacc.c  */
8402 #line 1614 "type.y"
8403     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8404     break;
8405
8406   case 492:
8407
8408 /* Line 1464 of yacc.c  */
8409 #line 1615 "type.y"
8410     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8411     break;
8412
8413   case 493:
8414
8415 /* Line 1464 of yacc.c  */
8416 #line 1616 "type.y"
8417     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8418     break;
8419
8420   case 494:
8421
8422 /* Line 1464 of yacc.c  */
8423 #line 1617 "type.y"
8424     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
8425     break;
8426
8427   case 495:
8428
8429 /* Line 1464 of yacc.c  */
8430 #line 1618 "type.y"
8431     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8432     break;
8433
8434   case 497:
8435
8436 /* Line 1464 of yacc.c  */
8437 #line 1623 "type.y"
8438     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8439     break;
8440
8441   case 498:
8442
8443 /* Line 1464 of yacc.c  */
8444 #line 1624 "type.y"
8445     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
8446     break;
8447
8448   case 499:
8449
8450 /* Line 1464 of yacc.c  */
8451 #line 1628 "type.y"
8452     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
8453     break;
8454
8455   case 500:
8456
8457 /* Line 1464 of yacc.c  */
8458 #line 1629 "type.y"
8459     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
8460     break;
8461
8462
8463
8464 /* Line 1464 of yacc.c  */
8465 #line 8466 "type.ec"
8466       default: break;
8467     }
8468   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
8469
8470   YYPOPSTACK (yylen);
8471   yylen = 0;
8472   YY_STACK_PRINT (yyss, yyssp);
8473
8474   *++yyvsp = yyval;
8475   *++yylsp = yyloc;
8476
8477   /* Now `shift' the result of the reduction.  Determine what state
8478      that goes to, based on the state we popped back to and the rule
8479      number reduced by.  */
8480
8481   yyn = yyr1[yyn];
8482
8483   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
8484   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8485     yystate = yytable[yystate];
8486   else
8487     yystate = yydefgoto[yyn - YYNTOKENS];
8488
8489   goto yynewstate;
8490
8491
8492 /*------------------------------------.
8493 | yyerrlab -- here on detecting error |
8494 `------------------------------------*/
8495 yyerrlab:
8496   /* If not already recovering from an error, report this error.  */
8497   if (!yyerrstatus)
8498     {
8499       ++yynerrs;
8500 #if ! YYERROR_VERBOSE
8501       yyerror (YY_("syntax error"));
8502 #else
8503       {
8504         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
8505         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
8506           {
8507             YYSIZE_T yyalloc = 2 * yysize;
8508             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
8509               yyalloc = YYSTACK_ALLOC_MAXIMUM;
8510             if (yymsg != yymsgbuf)
8511               YYSTACK_FREE (yymsg);
8512             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
8513             if (yymsg)
8514               yymsg_alloc = yyalloc;
8515             else
8516               {
8517                 yymsg = yymsgbuf;
8518                 yymsg_alloc = sizeof yymsgbuf;
8519               }
8520           }
8521
8522         if (0 < yysize && yysize <= yymsg_alloc)
8523           {
8524             (void) yysyntax_error (yymsg, yystate, yychar);
8525             yyerror (yymsg);
8526           }
8527         else
8528           {
8529             yyerror (YY_("syntax error"));
8530             if (yysize != 0)
8531               goto yyexhaustedlab;
8532           }
8533       }
8534 #endif
8535     }
8536
8537   yyerror_range[0] = yylloc;
8538
8539   if (yyerrstatus == 3)
8540     {
8541       /* If just tried and failed to reuse lookahead token after an
8542          error, discard it.  */
8543
8544       if (yychar <= YYEOF)
8545         {
8546           /* Return failure if at end of input.  */
8547           if (yychar == YYEOF)
8548             YYABORT;
8549         }
8550       else
8551         {
8552           yydestruct ("Error: discarding",
8553                       yytoken, &yylval, &yylloc);
8554           yychar = YYEMPTY;
8555         }
8556     }
8557
8558   /* Else will try to reuse lookahead token after shifting the error
8559      token.  */
8560   goto yyerrlab1;
8561
8562
8563 /*---------------------------------------------------.
8564 | yyerrorlab -- error raised explicitly by YYERROR.  |
8565 `---------------------------------------------------*/
8566 yyerrorlab:
8567
8568   /* Pacify compilers like GCC when the user code never invokes
8569      YYERROR and the label yyerrorlab therefore never appears in user
8570      code.  */
8571   if (/*CONSTCOND*/ 0)
8572      goto yyerrorlab;
8573
8574   yyerror_range[0] = yylsp[1-yylen];
8575   /* Do not reclaim the symbols of the rule which action triggered
8576      this YYERROR.  */
8577   YYPOPSTACK (yylen);
8578   yylen = 0;
8579   YY_STACK_PRINT (yyss, yyssp);
8580   yystate = *yyssp;
8581   goto yyerrlab1;
8582
8583
8584 /*-------------------------------------------------------------.
8585 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
8586 `-------------------------------------------------------------*/
8587 yyerrlab1:
8588   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
8589
8590   for (;;)
8591     {
8592       yyn = yypact[yystate];
8593       if (yyn != YYPACT_NINF)
8594         {
8595           yyn += YYTERROR;
8596           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8597             {
8598               yyn = yytable[yyn];
8599               if (0 < yyn)
8600                 break;
8601             }
8602         }
8603
8604       /* Pop the current state because it cannot handle the error token.  */
8605       if (yyssp == yyss)
8606         YYABORT;
8607
8608       yyerror_range[0] = *yylsp;
8609       yydestruct ("Error: popping",
8610                   yystos[yystate], yyvsp, yylsp);
8611       YYPOPSTACK (1);
8612       yystate = *yyssp;
8613       YY_STACK_PRINT (yyss, yyssp);
8614     }
8615
8616   *++yyvsp = yylval;
8617
8618   yyerror_range[1] = yylloc;
8619   /* Using YYLLOC is tempting, but would change the location of
8620      the lookahead.  YYLOC is available though.  */
8621   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
8622   *++yylsp = yyloc;
8623
8624   /* Shift the error token.  */
8625   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8626
8627   yystate = yyn;
8628   goto yynewstate;
8629
8630
8631 /*-------------------------------------.
8632 | yyacceptlab -- YYACCEPT comes here.  |
8633 `-------------------------------------*/
8634 yyacceptlab:
8635   yyresult = 0;
8636   goto yyreturn;
8637
8638 /*-----------------------------------.
8639 | yyabortlab -- YYABORT comes here.  |
8640 `-----------------------------------*/
8641 yyabortlab:
8642   yyresult = 1;
8643   goto yyreturn;
8644
8645 #if !defined(yyoverflow) || YYERROR_VERBOSE
8646 /*-------------------------------------------------.
8647 | yyexhaustedlab -- memory exhaustion comes here.  |
8648 `-------------------------------------------------*/
8649 yyexhaustedlab:
8650   yyerror (YY_("memory exhausted"));
8651   yyresult = 2;
8652   /* Fall through.  */
8653 #endif
8654
8655 yyreturn:
8656   if (yychar != YYEMPTY)
8657      yydestruct ("Cleanup: discarding lookahead",
8658                  yytoken, &yylval, &yylloc);
8659   /* Do not reclaim the symbols of the rule which action triggered
8660      this YYABORT or YYACCEPT.  */
8661   YYPOPSTACK (yylen);
8662   YY_STACK_PRINT (yyss, yyssp);
8663   while (yyssp != yyss)
8664     {
8665       yydestruct ("Cleanup: popping",
8666                   yystos[*yyssp], yyvsp, yylsp);
8667       YYPOPSTACK (1);
8668     }
8669 #ifndef yyoverflow
8670   if (yyss != yyssa)
8671     YYSTACK_FREE (yyss);
8672 #endif
8673 #if YYERROR_VERBOSE
8674   if (yymsg != yymsgbuf)
8675     YYSTACK_FREE (yymsg);
8676 #endif
8677   /* Make sure YYID is used.  */
8678   return YYID (yyresult);
8679 }
8680
8681
8682
8683 /* Line 1684 of yacc.c  */
8684 #line 1632 "type.y"
8685
8686