50c624cd1c0fc0c7bae745a4f7cbd0272f16830d
[sdk] / compiler / libec / src / type.ec
1 /* Code generated from Bison source file: type.y */
2 /* A Bison parser, made by GNU Bison 2.4.2.  */
3
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5    
6       Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
7    Foundation, Inc.
8    
9    This program is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13    
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18    
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21
22 /* As a special exception, you may create a larger work that contains
23    part or all of the Bison parser skeleton and distribute that work
24    under terms of your choice, so long as that work isn't itself a
25    parser generator using the skeleton or a modified version thereof
26    as a parser skeleton.  Alternatively, if you modify or redistribute
27    the parser skeleton itself, you may (at your option) remove this
28    special exception, which will cause the skeleton and the resulting
29    Bison output files to be licensed under the GNU General Public
30    License without this special exception.
31    
32    This special exception was added by the Free Software Foundation in
33    version 2.2 of Bison.  */
34
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36    simplifying the original so-called "semantic" parser.  */
37
38 /* All symbols defined below should begin with yy or YY, to avoid
39    infringing on user name space.  This should be done even for local
40    variables, as they might otherwise be expanded by user macros.
41    There are some unavoidable exceptions within include files to
42    define necessary library symbols; they are noted "INFRINGES ON
43    USER NAME SPACE" below.  */
44
45 /* Identify Bison output.  */
46 #define YYBISON 1
47
48 /* Bison version.  */
49 #define YYBISON_VERSION "2.4.2"
50
51 /* Skeleton name.  */
52 #define YYSKELETON_NAME "yacc.c"
53
54 /* Pure parsers.  */
55 #define YYPURE 0
56
57 /* Push parsers.  */
58 #define YYPUSH 0
59
60 /* Pull parsers.  */
61 #define YYPULL 1
62
63 /* Using locations.  */
64 #define YYLSP_NEEDED 1
65
66
67
68 /* Copy the first part of user declarations.  */
69
70 /* Line 189 of yacc.c  */
71 #line 1 "type.y"
72
73
74 import "ecdefs"
75
76 #define YYLTYPE Location
77 #include "grammar.h"
78
79 #ifndef YYLLOC_DEFAULT
80 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
81   (Current).start = (Rhs)[1].start;      \
82   (Current).end = (Rhs)[N].end;
83 #endif
84
85 TypeName parsedType;
86
87 #define PRECOMPILER
88
89 #define yyparse type_yyparse
90 #define yylval  type_yylval
91 #define yychar  type_yychar
92 #define yydebug type_yydebug
93 #define yynerrs type_yynerrs
94 #define yylloc  type_yylloc
95
96 extern bool parseTypeError;
97
98 extern File fileInput;
99 extern char * yytext;
100 int yylex();
101 int yyerror();
102
103 #define uint _uint
104 default:
105
106
107
108 /* Line 189 of yacc.c  */
109 #line 109 "type.ec"
110
111 /* Enabling traces.  */
112 #ifndef YYDEBUG
113 # define YYDEBUG 1
114 #endif
115
116 /* Enabling verbose error messages.  */
117 #ifdef YYERROR_VERBOSE
118 # undef YYERROR_VERBOSE
119 # define YYERROR_VERBOSE 1
120 #else
121 # define YYERROR_VERBOSE 0
122 #endif
123
124 /* Enabling the token table.  */
125 #ifndef YYTOKEN_TABLE
126 # define YYTOKEN_TABLE 0
127 #endif
128
129
130 /* Tokens.  */
131 #ifndef YYTOKENTYPE
132 # define YYTOKENTYPE
133    /* Put the tokens into the symbol table, so that GDB and other debuggers
134       know about them.  */
135    enum yytokentype {
136      IDENTIFIER = 258,
137      CONSTANT = 259,
138      STRING_LITERAL = 260,
139      SIZEOF = 261,
140      PTR_OP = 262,
141      INC_OP = 263,
142      DEC_OP = 264,
143      LEFT_OP = 265,
144      RIGHT_OP = 266,
145      LE_OP = 267,
146      GE_OP = 268,
147      EQ_OP = 269,
148      NE_OP = 270,
149      AND_OP = 271,
150      OR_OP = 272,
151      MUL_ASSIGN = 273,
152      DIV_ASSIGN = 274,
153      MOD_ASSIGN = 275,
154      ADD_ASSIGN = 276,
155      SUB_ASSIGN = 277,
156      LEFT_ASSIGN = 278,
157      RIGHT_ASSIGN = 279,
158      AND_ASSIGN = 280,
159      XOR_ASSIGN = 281,
160      OR_ASSIGN = 282,
161      TYPE_NAME = 283,
162      TYPEDEF = 284,
163      EXTERN = 285,
164      STATIC = 286,
165      AUTO = 287,
166      REGISTER = 288,
167      CHAR = 289,
168      SHORT = 290,
169      INT = 291,
170      UINT = 292,
171      INT64 = 293,
172      LONG = 294,
173      SIGNED = 295,
174      UNSIGNED = 296,
175      FLOAT = 297,
176      DOUBLE = 298,
177      CONST = 299,
178      VOLATILE = 300,
179      VOID = 301,
180      VALIST = 302,
181      STRUCT = 303,
182      UNION = 304,
183      ENUM = 305,
184      ELLIPSIS = 306,
185      CASE = 307,
186      DEFAULT = 308,
187      IF = 309,
188      SWITCH = 310,
189      WHILE = 311,
190      DO = 312,
191      FOR = 313,
192      GOTO = 314,
193      CONTINUE = 315,
194      BREAK = 316,
195      RETURN = 317,
196      IFX = 318,
197      ELSE = 319,
198      CLASS = 320,
199      THISCLASS = 321,
200      CLASS_NAME = 322,
201      PROPERTY = 323,
202      SETPROP = 324,
203      GETPROP = 325,
204      NEWOP = 326,
205      RENEW = 327,
206      DELETE = 328,
207      EXT_DECL = 329,
208      EXT_STORAGE = 330,
209      IMPORT = 331,
210      DEFINE = 332,
211      VIRTUAL = 333,
212      ATTRIB = 334,
213      PUBLIC = 335,
214      PRIVATE = 336,
215      TYPED_OBJECT = 337,
216      ANY_OBJECT = 338,
217      _INCREF = 339,
218      EXTENSION = 340,
219      ASM = 341,
220      TYPEOF = 342,
221      WATCH = 343,
222      STOPWATCHING = 344,
223      FIREWATCHERS = 345,
224      WATCHABLE = 346,
225      CLASS_DESIGNER = 347,
226      CLASS_NO_EXPANSION = 348,
227      CLASS_FIXED = 349,
228      ISPROPSET = 350,
229      CLASS_DEFAULT_PROPERTY = 351,
230      PROPERTY_CATEGORY = 352,
231      CLASS_DATA = 353,
232      CLASS_PROPERTY = 354,
233      SUBCLASS = 355,
234      NAMESPACE = 356,
235      NEW0OP = 357,
236      RENEW0 = 358,
237      VAARG = 359,
238      DBTABLE = 360,
239      DBFIELD = 361,
240      DBINDEX = 362,
241      DATABASE_OPEN = 363,
242      ALIGNOF = 364,
243      ATTRIB_DEP = 365,
244      __ATTRIB = 366
245    };
246 #endif
247
248
249
250 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
251 typedef union YYSTYPE
252 {
253
254 /* Line 214 of yacc.c  */
255 #line 39 "type.y"
256
257    int i;
258    SpecifierType specifierType;
259    Identifier id;
260    Expression exp;
261    Specifier specifier;
262    OldList * list;
263    Enumerator enumerator;
264    Declarator declarator;
265    Pointer pointer;
266    Initializer initializer;
267    InitDeclarator initDeclarator;
268    TypeName typeName;
269    Declaration declaration;
270    Statement stmt;
271    FunctionDefinition function;
272    External external;
273    Context context;
274    Attrib attrib;
275    ExtDecl extDecl;
276    Attribute attribute;
277
278    Instantiation instance;
279    MembersInit membersInit;
280    MemberInit memberInit;
281    ClassFunction classFunction;
282    ClassDefinition _class;
283    ClassDef classDef;
284    PropertyDef prop;
285    char * string;
286    Symbol symbol;
287    TemplateParameter templateParameter;
288    TemplateArgument templateArgument;
289    TemplateDatatype templateDatatype;
290
291
292
293 /* Line 214 of yacc.c  */
294 #line 294 "type.ec"
295 } YYSTYPE;
296 # define YYSTYPE_IS_TRIVIAL 1
297 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
298 # define YYSTYPE_IS_DECLARED 1
299 #endif
300
301 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
302 typedef struct YYLTYPE
303 {
304   int first_line;
305   int first_column;
306   int last_line;
307   int last_column;
308 } YYLTYPE;
309 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
310 # define YYLTYPE_IS_DECLARED 1
311 # define YYLTYPE_IS_TRIVIAL 1
312 #endif
313
314
315 /* Copy the second part of user declarations.  */
316
317
318 /* Line 264 of yacc.c  */
319 #line 319 "type.ec"
320
321 #ifdef short
322 # undef short
323 #endif
324
325 #ifdef YYTYPE_UINT8
326 typedef YYTYPE_UINT8 yytype_uint8;
327 #else
328 typedef unsigned char yytype_uint8;
329 #endif
330
331 #ifdef YYTYPE_INT8
332 typedef YYTYPE_INT8 yytype_int8;
333 #elif (defined __STDC__ || defined __C99__FUNC__ \
334      || defined __cplusplus || defined _MSC_VER)
335 typedef signed char yytype_int8;
336 #else
337 typedef short int yytype_int8;
338 #endif
339
340 #ifdef YYTYPE_UINT16
341 typedef YYTYPE_UINT16 yytype_uint16;
342 #else
343 typedef unsigned short int yytype_uint16;
344 #endif
345
346 #ifdef YYTYPE_INT16
347 typedef YYTYPE_INT16 yytype_int16;
348 #else
349 typedef short int yytype_int16;
350 #endif
351
352 #ifndef YYSIZE_T
353 # ifdef __SIZE_TYPE__
354 #  define YYSIZE_T __SIZE_TYPE__
355 # elif defined size_t
356 #  define YYSIZE_T size_t
357 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
358      || defined __cplusplus || defined _MSC_VER)
359 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
360 #  define YYSIZE_T size_t
361 # else
362 #  define YYSIZE_T unsigned int
363 # endif
364 #endif
365
366 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
367
368 #ifndef YY_
369 # if defined YYENABLE_NLS && YYENABLE_NLS
370 #  if ENABLE_NLS
371 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
372 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
373 #  endif
374 # endif
375 # ifndef YY_
376 #  define YY_(msgid) msgid
377 # endif
378 #endif
379
380 /* Suppress unused-variable warnings by "using" E.  */
381 #if ! defined lint || defined __GNUC__
382 # define YYUSE(e) ((void) (e))
383 #else
384 # define YYUSE(e) /* empty */
385 #endif
386
387 /* Identity function, used to suppress warnings about constant conditions.  */
388 #ifndef lint
389 # define YYID(n) (n)
390 #else
391 #if (defined __STDC__ || defined __C99__FUNC__ \
392      || defined __cplusplus || defined _MSC_VER)
393 static int
394 YYID (int yyi)
395 #else
396 static int
397 YYID (yyi)
398     int yyi;
399 #endif
400 {
401   return yyi;
402 }
403 #endif
404
405 #if ! defined yyoverflow || YYERROR_VERBOSE
406
407 /* The parser invokes alloca or malloc; define the necessary symbols.  */
408
409 # ifdef YYSTACK_USE_ALLOCA
410 #  if YYSTACK_USE_ALLOCA
411 #   ifdef __GNUC__
412 #    define YYSTACK_ALLOC __builtin_alloca
413 #   elif defined __BUILTIN_VA_ARG_INCR
414 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
415 #   elif defined _AIX
416 #    define YYSTACK_ALLOC __alloca
417 #   elif defined _MSC_VER
418 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
419 #    define alloca _alloca
420 #   else
421 #    define YYSTACK_ALLOC alloca
422 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
423      || defined __cplusplus || defined _MSC_VER)
424 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
425 #     ifndef _STDLIB_H
426 #      define _STDLIB_H 1
427 #     endif
428 #    endif
429 #   endif
430 #  endif
431 # endif
432
433 # ifdef YYSTACK_ALLOC
434    /* Pacify GCC's `empty if-body' warning.  */
435 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
436 #  ifndef YYSTACK_ALLOC_MAXIMUM
437     /* The OS might guarantee only one guard page at the bottom of the stack,
438        and a page size can be as small as 4096 bytes.  So we cannot safely
439        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
440        to allow for a few compiler-allocated temporary stack slots.  */
441 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
442 #  endif
443 # else
444 #  define YYSTACK_ALLOC YYMALLOC
445 #  define YYSTACK_FREE YYFREE
446 #  ifndef YYSTACK_ALLOC_MAXIMUM
447 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
448 #  endif
449 #  if (defined __cplusplus && ! defined _STDLIB_H \
450        && ! ((defined YYMALLOC || defined malloc) \
451              && (defined YYFREE || defined free)))
452 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
453 #   ifndef _STDLIB_H
454 #    define _STDLIB_H 1
455 #   endif
456 #  endif
457 #  ifndef YYMALLOC
458 #   define YYMALLOC malloc
459 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
460      || defined __cplusplus || defined _MSC_VER)
461 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
462 #   endif
463 #  endif
464 #  ifndef YYFREE
465 #   define YYFREE free
466 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
467      || defined __cplusplus || defined _MSC_VER)
468 void free (void *); /* INFRINGES ON USER NAME SPACE */
469 #   endif
470 #  endif
471 # endif
472 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
473
474
475 #if (! defined yyoverflow \
476      && (! defined __cplusplus \
477          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
478              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
479
480 /* A type that is properly aligned for any stack member.  */
481 union yyalloc
482 {
483   yytype_int16 yyss_alloc;
484   YYSTYPE yyvs_alloc;
485   YYLTYPE yyls_alloc;
486 };
487
488 /* The size of the maximum gap between one aligned stack and the next.  */
489 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
490
491 /* The size of an array large to enough to hold all stacks, each with
492    N elements.  */
493 # define YYSTACK_BYTES(N) \
494      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
495       + 2 * YYSTACK_GAP_MAXIMUM)
496
497 /* Copy COUNT objects from FROM to TO.  The source and destination do
498    not overlap.  */
499 # ifndef YYCOPY
500 #  if defined __GNUC__ && 1 < __GNUC__
501 #   define YYCOPY(To, From, Count) \
502       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
503 #  else
504 #   define YYCOPY(To, From, Count)              \
505       do                                        \
506         {                                       \
507           YYSIZE_T yyi;                         \
508           for (yyi = 0; yyi < (Count); yyi++)   \
509             (To)[yyi] = (From)[yyi];            \
510         }                                       \
511       while (YYID (0))
512 #  endif
513 # endif
514
515 /* Relocate STACK from its old location to the new one.  The
516    local variables YYSIZE and YYSTACKSIZE give the old and new number of
517    elements in the stack, and YYPTR gives the new location of the
518    stack.  Advance YYPTR to a properly aligned location for the next
519    stack.  */
520 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
521     do                                                                  \
522       {                                                                 \
523         YYSIZE_T yynewbytes;                                            \
524         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
525         Stack = &yyptr->Stack_alloc;                                    \
526         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
527         yyptr += yynewbytes / sizeof (*yyptr);                          \
528       }                                                                 \
529     while (YYID (0))
530
531 #endif
532
533 /* YYFINAL -- State number of the termination state.  */
534 #define YYFINAL  96
535 /* YYLAST -- Last index in YYTABLE.  */
536 #define YYLAST   8658
537
538 /* YYNTOKENS -- Number of terminals.  */
539 #define YYNTOKENS  137
540 /* YYNNTS -- Number of nonterminals.  */
541 #define YYNNTS  125
542 /* YYNRULES -- Number of rules.  */
543 #define YYNRULES  505
544 /* YYNRULES -- Number of states.  */
545 #define YYNSTATES  872
546
547 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
548 #define YYUNDEFTOK  2
549 #define YYMAXUTOK   366
550
551 #define YYTRANSLATE(YYX)                                                \
552   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
553
554 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
555 static const yytype_uint8 yytranslate[] =
556 {
557        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,   126,     2,     2,   118,   128,   123,     2,
561      115,   116,   112,   124,   122,   125,   119,   127,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
563      113,   133,   114,   131,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,   120,     2,   121,   129,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
569        2,     2,     2,   135,   130,   136,   117,     2,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
583        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
584       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
585       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
586       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
587       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
588       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
589       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
590       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
591       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
592       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
593      105,   106,   107,   108,   109,   110,   111
594 };
595
596 #if YYDEBUG
597 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
598    YYRHS.  */
599 static const yytype_uint16 yyprhs[] =
600 {
601        0,     0,     3,     6,     9,    12,    14,    17,    19,    21,
602       26,    31,    34,    36,    40,    45,    49,    52,    54,    56,
603       60,    62,    64,    66,    68,    71,    76,    79,    86,    92,
604       99,   105,   113,   120,   128,   135,   137,   139,   144,   148,
605      153,   157,   161,   164,   167,   169,   171,   176,   180,   185,
606      189,   193,   196,   199,   201,   203,   207,   211,   214,   217,
607      220,   225,   228,   233,   238,   241,   246,   248,   250,   252,
608      254,   256,   258,   260,   262,   264,   266,   268,   270,   275,
609      277,   281,   285,   289,   291,   295,   299,   301,   305,   309,
610      312,   314,   317,   321,   325,   329,   331,   335,   339,   341,
611      345,   347,   351,   353,   357,   359,   363,   365,   369,   371,
612      377,   379,   383,   387,   389,   391,   393,   395,   397,   399,
613      401,   403,   405,   407,   409,   411,   415,   417,   420,   424,
614      427,   433,   435,   438,   440,   443,   445,   448,   450,   453,
615      455,   458,   460,   463,   465,   468,   470,   473,   475,   478,
616      480,   483,   485,   488,   490,   493,   495,   498,   500,   503,
617      505,   508,   510,   513,   515,   518,   520,   523,   525,   528,
618      530,   533,   535,   537,   539,   542,   544,   547,   549,   552,
619      554,   557,   562,   568,   570,   573,   575,   578,   580,   583,
620      585,   588,   590,   593,   595,   598,   603,   609,   611,   615,
621      617,   621,   623,   625,   627,   629,   631,   633,   635,   637,
622      639,   641,   643,   645,   647,   649,   651,   653,   655,   660,
623      662,   665,   669,   676,   682,   684,   686,   688,   690,   692,
624      694,   696,   698,   700,   702,   704,   706,   708,   710,   712,
625      714,   716,   718,   720,   722,   727,   732,   737,   739,   741,
626      743,   745,   747,   749,   751,   753,   755,   757,   759,   761,
627      763,   765,   767,   769,   771,   773,   775,   780,   785,   790,
628      792,   798,   803,   808,   812,   818,   825,   831,   837,   842,
629      849,   852,   855,   859,   863,   865,   868,   870,   873,   875,
630      877,   879,   883,   887,   891,   895,   897,   901,   903,   905,
631      907,   910,   914,   916,   920,   930,   940,   948,   956,   962,
632      973,   984,   993,  1002,  1009,  1018,  1027,  1034,  1041,  1046,
633     1056,  1066,  1074,  1082,  1088,  1092,  1095,  1098,  1101,  1103,
634     1106,  1108,  1110,  1112,  1116,  1118,  1121,  1124,  1128,  1134,
635     1137,  1140,  1145,  1151,  1159,  1167,  1173,  1175,  1179,  1181,
636     1185,  1189,  1192,  1196,  1200,  1204,  1209,  1214,  1217,  1221,
637     1225,  1230,  1234,  1237,  1241,  1245,  1250,  1252,  1254,  1257,
638     1260,  1263,  1267,  1269,  1271,  1274,  1277,  1280,  1284,  1286,
639     1289,  1293,  1296,  1298,  1302,  1307,  1311,  1316,  1318,  1321,
640     1324,  1328,  1332,  1335,  1339,  1343,  1346,  1348,  1350,  1353,
641     1356,  1358,  1361,  1364,  1368,  1372,  1374,  1377,  1379,  1382,
642     1385,  1389,  1391,  1395,  1397,  1401,  1404,  1407,  1410,  1414,
643     1416,  1418,  1420,  1424,  1426,  1429,  1431,  1434,  1436,  1440,
644     1445,  1447,  1449,  1451,  1455,  1457,  1459,  1461,  1463,  1465,
645     1467,  1471,  1476,  1480,  1482,  1485,  1487,  1490,  1493,  1495,
646     1497,  1500,  1502,  1505,  1509,  1511,  1514,  1520,  1528,  1534,
647     1540,  1548,  1555,  1563,  1568,  1574,  1579,  1583,  1586,  1589,
648     1592,  1596,  1598,  1604,  1609,  1615,  1620,  1625,  1629,  1634,
649     1638,  1642,  1645,  1648,  1651,  1654,  1657,  1660,  1663,  1666,
650     1669,  1673,  1675,  1677,  1681,  1684,  1686,  1688,  1691,  1694,
651     1696,  1699,  1701,  1703,  1706,  1708
652 };
653
654 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
655 static const yytype_int16 yyrhs[] =
656 {
657      261,     0,    -1,   147,   112,    -1,   147,   113,    -1,   147,
658        1,    -1,   142,    -1,   147,   147,    -1,    28,    -1,   141,
659       -1,   141,   113,   202,   114,    -1,   141,   113,   202,    11,
660       -1,   179,   221,    -1,   221,    -1,   179,   115,   116,    -1,
661      117,   179,   115,   116,    -1,    78,   179,   221,    -1,    78,
662      221,    -1,     3,    -1,   149,    -1,   115,   173,   116,    -1,
663      147,    -1,   251,    -1,     4,    -1,   248,    -1,   118,   248,
664       -1,   118,   248,   119,   248,    -1,   115,   116,    -1,    71,
665      179,   218,   120,   174,   121,    -1,    71,   179,   120,   174,
666      121,    -1,   102,   179,   218,   120,   174,   121,    -1,   102,
667      179,   120,   174,   121,    -1,    72,   174,   182,   218,   120,
668      174,   121,    -1,    72,   174,   182,   120,   174,   121,    -1,
669      103,   174,   182,   218,   120,   174,   121,    -1,   103,   174,
670      182,   120,   174,   121,    -1,     1,    -1,   148,    -1,   150,
671      120,   173,   121,    -1,   150,   115,   116,    -1,   150,   115,
672      153,   116,    -1,   150,   119,   147,    -1,   150,     7,   147,
673       -1,   150,     8,    -1,   150,     9,    -1,   252,    -1,   149,
674       -1,   152,   120,   173,   121,    -1,   152,   115,   116,    -1,
675      152,   115,   153,   116,    -1,   152,   119,   147,    -1,   152,
676        7,   147,    -1,   152,     8,    -1,   152,     9,    -1,   171,
677       -1,   151,    -1,   153,   122,   171,    -1,   153,   122,   151,
678       -1,     8,   155,    -1,     9,   155,    -1,   157,   158,    -1,
679        6,   115,   155,   116,    -1,     6,   156,    -1,     6,   115,
680      233,   116,    -1,   109,   115,   155,   116,    -1,   109,   156,
681       -1,   109,   115,   233,   116,    -1,   154,    -1,   150,    -1,
682      154,    -1,   152,    -1,   123,    -1,   112,    -1,   124,    -1,
683      125,    -1,   117,    -1,   126,    -1,    73,    -1,   155,    -1,
684      115,   232,   116,   158,    -1,   158,    -1,   159,   112,   158,
685       -1,   159,   127,   158,    -1,   159,   128,   158,    -1,   159,
686       -1,   160,   124,   159,    -1,   160,   125,   159,    -1,   160,
687       -1,   161,    10,   160,    -1,   161,    11,   160,    -1,   163,
688      113,    -1,   161,    -1,   162,   161,    -1,   163,   114,   161,
689       -1,   163,    12,   161,    -1,   163,    13,   161,    -1,   163,
690       -1,   164,    14,   163,    -1,   164,    15,   163,    -1,   164,
691       -1,   165,   123,   164,    -1,   165,    -1,   166,   129,   165,
692       -1,   166,    -1,   167,   130,   166,    -1,   167,    -1,   168,
693       16,   167,    -1,   168,    -1,   169,    17,   168,    -1,   169,
694       -1,   169,   131,   173,   132,   170,    -1,   170,    -1,   155,
695      172,   171,    -1,   155,   172,   151,    -1,   133,    -1,    18,
696       -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,    23,
697       -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,   171,
698       -1,   173,   122,   171,    -1,   170,    -1,   178,   134,    -1,
699      178,   183,   134,    -1,   249,   134,    -1,    77,   147,   133,
700      174,   134,    -1,   193,    -1,   176,   193,    -1,   194,    -1,
701      176,   194,    -1,   212,    -1,   176,   212,    -1,   196,    -1,
702      176,   196,    -1,   193,    -1,   177,   193,    -1,   194,    -1,
703      177,   194,    -1,   138,    -1,   177,   138,    -1,   212,    -1,
704      177,   212,    -1,   196,    -1,   177,   196,    -1,   185,    -1,
705      178,   185,    -1,   193,    -1,   178,   193,    -1,   194,    -1,
706      178,   194,    -1,   212,    -1,   178,   212,    -1,   196,    -1,
707      178,   196,    -1,   185,    -1,   179,   185,    -1,   193,    -1,
708      179,   193,    -1,   194,    -1,   179,   194,    -1,   138,    -1,
709      179,   138,    -1,   196,    -1,   179,   196,    -1,   212,    -1,
710      179,   212,    -1,   179,    -1,   139,    -1,   185,    -1,   181,
711      185,    -1,   193,    -1,   181,   193,    -1,   195,    -1,   181,
712      195,    -1,   147,    -1,   181,   147,    -1,   147,   113,   202,
713      114,    -1,   181,   147,   113,   202,   114,    -1,   185,    -1,
714      182,   185,    -1,   193,    -1,   182,   193,    -1,   195,    -1,
715      182,   195,    -1,   196,    -1,   182,   196,    -1,   212,    -1,
716      182,   212,    -1,   147,    -1,   182,   147,    -1,   147,   113,
717      202,   114,    -1,   182,   147,   113,   202,   114,    -1,   184,
718       -1,   183,   122,   184,    -1,   219,    -1,   219,   133,   234,
719       -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,    33,
720       -1,    74,    -1,    75,    -1,   191,    -1,    79,    -1,   110,
721       -1,   111,    -1,     3,    -1,    28,    -1,    75,    -1,    74,
722       -1,    44,    -1,   188,    -1,   188,   115,   173,   116,    -1,
723      189,    -1,   190,   189,    -1,   190,   122,   189,    -1,   187,
724      115,   115,   190,   116,   116,    -1,   187,   115,   115,   116,
725      116,    -1,   186,    -1,    44,    -1,    45,    -1,   192,    -1,
726       46,    -1,    34,    -1,    35,    -1,    36,    -1,    37,    -1,
727       38,    -1,    47,    -1,    39,    -1,    42,    -1,    43,    -1,
728       40,    -1,    41,    -1,    85,    -1,   197,    -1,   211,    -1,
729      140,    -1,    87,   115,   171,   116,    -1,   100,   115,   140,
730      116,    -1,   100,   115,   147,   116,    -1,    66,    -1,    82,
731       -1,    83,    -1,    46,    -1,    34,    -1,    35,    -1,    36,
732       -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,
733       -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,   197,
734       -1,   211,    -1,   142,    -1,    87,   115,   171,   116,    -1,
735      100,   115,   140,   116,    -1,   100,   115,   147,   116,    -1,
736       66,    -1,   203,   147,   135,   204,   136,    -1,   203,   135,
737      204,   136,    -1,   203,   147,   135,   136,    -1,   203,   135,
738      136,    -1,   203,   141,   135,   204,   136,    -1,   203,   186,
739      147,   135,   204,   136,    -1,   203,   186,   135,   204,   136,
740       -1,   203,   186,   147,   135,   136,    -1,   203,   186,   135,
741      136,    -1,   203,   186,   142,   135,   204,   136,    -1,   203,
742      147,    -1,   203,   142,    -1,   203,   186,   147,    -1,   203,
743      186,   142,    -1,   179,    -1,   179,   217,    -1,   179,    -1,
744      179,   217,    -1,   161,    -1,   200,    -1,   199,    -1,   147,
745      133,   200,    -1,   147,   133,   199,    -1,   198,   133,   200,
746       -1,   198,   133,   199,    -1,   201,    -1,   202,   122,   201,
747       -1,    48,    -1,    49,    -1,   208,    -1,   204,   208,    -1,
748      150,   133,   235,    -1,   205,    -1,   206,   122,   205,    -1,
749       68,   181,   147,   135,    69,   243,    70,   243,   136,    -1,
750       68,   181,   147,   135,    70,   243,    69,   243,   136,    -1,
751       68,   181,   147,   135,    69,   243,   136,    -1,    68,   181,
752      147,   135,    70,   243,   136,    -1,    68,   181,   147,   135,
753      136,    -1,    68,   181,   217,   147,   135,    69,   243,    70,
754      243,   136,    -1,    68,   181,   217,   147,   135,    70,   243,
755       69,   243,   136,    -1,    68,   181,   217,   147,   135,    69,
756      243,   136,    -1,    68,   181,   217,   147,   135,    70,   243,
757      136,    -1,    68,   181,   217,   147,   135,   136,    -1,    68,
758      181,   135,    69,   243,    70,   243,   136,    -1,    68,   181,
759      135,    70,   243,    69,   243,   136,    -1,    68,   181,   135,
760       69,   243,   136,    -1,    68,   181,   135,    70,   243,   136,
761       -1,    68,   181,   135,   136,    -1,    68,   181,   217,   135,
762       69,   243,    70,   243,   136,    -1,    68,   181,   217,   135,
763       70,   243,    69,   243,   136,    -1,    68,   181,   217,   135,
764       69,   243,   136,    -1,    68,   181,   217,   135,    70,   243,
765      136,    -1,    68,   181,   217,   135,   136,    -1,   179,   209,
766      134,    -1,   179,   134,    -1,   251,   134,    -1,   250,   134,
767       -1,   253,    -1,   206,   134,    -1,   207,    -1,   134,    -1,
768      210,    -1,   209,   122,   210,    -1,   225,    -1,   225,   191,
769       -1,   132,   174,    -1,   225,   132,   174,    -1,   225,   132,
770      174,   132,   174,    -1,    50,   147,    -1,    50,   142,    -1,
771       50,   135,   213,   136,    -1,    50,   147,   135,   213,   136,
772       -1,    50,   147,   135,   213,   134,   204,   136,    -1,    50,
773      142,   135,   213,   134,   204,   136,    -1,    50,   142,   135,
774      213,   136,    -1,   214,    -1,   213,   122,   214,    -1,   147,
775       -1,   147,   133,   174,    -1,   115,   217,   116,    -1,   120,
776      121,    -1,   120,   174,   121,    -1,   120,   140,   121,    -1,
777      215,   120,   121,    -1,   215,   120,   174,   121,    -1,   215,
778      120,   140,   121,    -1,   115,   116,    -1,   115,   228,   116,
779       -1,   215,   115,   116,    -1,   215,   115,   228,   116,    -1,
780      115,   218,   116,    -1,   115,   116,    -1,   115,   228,   116,
781       -1,   216,   115,   116,    -1,   216,   115,   228,   116,    -1,
782      227,    -1,   215,    -1,   227,   215,    -1,   186,   227,    -1,
783      186,   215,    -1,   186,   227,   215,    -1,   227,    -1,   216,
784       -1,   227,   216,    -1,   186,   227,    -1,   186,   216,    -1,
785      186,   227,   216,    -1,   224,    -1,   227,   224,    -1,   186,
786      227,   224,    -1,   219,   186,    -1,   147,    -1,   115,   219,
787      116,    -1,   220,   120,   174,   121,    -1,   220,   120,   121,
788       -1,   220,   120,   140,   121,    -1,   223,    -1,   227,   223,
789       -1,   186,   223,    -1,   186,   227,   223,    -1,   227,   186,
790      223,    -1,   220,   115,    -1,   222,   228,   116,    -1,   222,
791      231,   116,    -1,   222,   116,    -1,   223,    -1,   220,    -1,
792      186,   223,    -1,   186,   220,    -1,   220,    -1,   227,   220,
793       -1,   186,   220,    -1,   186,   227,   220,    -1,   227,   186,
794      220,    -1,   193,    -1,   226,   193,    -1,   112,    -1,   112,
795      226,    -1,   112,   227,    -1,   112,   226,   227,    -1,   229,
796       -1,   229,   122,    51,    -1,   230,    -1,   229,   122,   230,
797       -1,   179,   219,    -1,   179,   217,    -1,   179,   123,    -1,
798      179,   123,   219,    -1,   180,    -1,    65,    -1,   147,    -1,
799      231,   122,   147,    -1,   176,    -1,   176,   217,    -1,   177,
800       -1,   177,   217,    -1,   171,    -1,   135,   236,   136,    -1,
801      135,   236,   122,   136,    -1,   170,    -1,   151,    -1,   234,
802       -1,   236,   122,   234,    -1,   238,    -1,   243,    -1,   244,
803       -1,   245,    -1,   246,    -1,   247,    -1,   147,   132,   237,
804       -1,    52,   174,   132,   237,    -1,    53,   132,   237,    -1,
805      175,    -1,   239,   175,    -1,   237,    -1,   240,   237,    -1,
806      240,   175,    -1,   240,    -1,   239,    -1,   239,   240,    -1,
807      135,    -1,   135,   136,    -1,   242,   241,   136,    -1,   134,
808       -1,   173,   134,    -1,    54,   115,   173,   116,   237,    -1,
809       54,   115,   173,   116,   237,    64,   237,    -1,    55,   115,
810      173,   116,   237,    -1,    56,   115,   173,   116,   237,    -1,
811       57,   237,    56,   115,   173,   116,   134,    -1,    58,   115,
812      244,   244,   116,   237,    -1,    58,   115,   244,   244,   173,
813      116,   237,    -1,    56,   115,   116,   237,    -1,    58,   115,
814      244,   116,   237,    -1,    58,   115,   116,   237,    -1,    59,
815      147,   134,    -1,    60,   134,    -1,    61,   134,    -1,    62,
816      134,    -1,    62,   173,   134,    -1,     5,    -1,   178,   147,
817      135,   260,   136,    -1,   178,   147,   135,   136,    -1,   179,
818      147,   135,   260,   136,    -1,   179,   147,   135,   136,    -1,
819      140,   135,   260,   136,    -1,   140,   135,   136,    -1,   147,
820      135,   260,   136,    -1,   147,   135,   136,    -1,   135,   260,
821      136,    -1,   135,   136,    -1,   143,   243,    -1,   146,   243,
822       -1,   146,   134,    -1,   144,   243,    -1,   145,   243,    -1,
823      178,   221,    -1,   178,   225,    -1,   254,   243,    -1,   150,
824      133,   235,    -1,   235,    -1,   256,    -1,   257,   122,   256,
825       -1,   257,   134,    -1,   258,    -1,   255,    -1,   259,   258,
826       -1,   259,   255,    -1,   134,    -1,   259,   134,    -1,   259,
827       -1,   257,    -1,   259,   257,    -1,   230,    -1,   230,   132,
828      174,    -1
829 };
830
831 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
832 static const yytype_uint16 yyrline[] =
833 {
834        0,   225,   225,   243,   277,   327,   328,   355,   359,   360,
835      361,   378,   380,   385,   390,   395,   397,   402,   407,   408,
836      413,   415,   417,   419,   421,   422,   423,   426,   427,   428,
837      429,   430,   431,   432,   433,   434,   438,   439,   440,   441,
838      442,   443,   444,   445,   449,   454,   455,   456,   457,   458,
839      459,   460,   461,   465,   466,   467,   468,   472,   473,   474,
840      475,   476,   477,   478,   479,   480,   484,   485,   489,   490,
841      494,   495,   496,   497,   498,   499,   500,   504,   505,   509,
842      510,   511,   512,   516,   517,   518,   522,   523,   524,   528,
843      536,   537,   538,   539,   540,   544,   545,   546,   550,   551,
844      555,   556,   560,   561,   565,   566,   570,   571,   575,   576,
845      580,   581,   582,   586,   587,   588,   589,   590,   591,   592,
846      593,   594,   595,   596,   600,   601,   605,   609,   610,   611,
847      612,   616,   617,   618,   619,   620,   621,   622,   623,   627,
848      628,   629,   630,   631,   632,   633,   634,   635,   636,   640,
849      641,   642,   643,   644,   645,   646,   647,   648,   649,   653,
850      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
851      664,   668,   669,   673,   674,   675,   676,   677,   678,   679,
852      680,   681,   699,   716,   717,   718,   719,   720,   721,   722,
853      723,   724,   725,   726,   727,   728,   746,   763,   764,   768,
854      769,   773,   774,   775,   776,   777,   781,   782,   783,   787,
855      788,   789,   794,   795,   796,   797,   798,   802,   803,   807,
856      808,   809,   813,   814,   818,   822,   823,   824,   829,   830,
857      831,   832,   833,   834,   835,   836,   837,   838,   839,   840,
858      841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
859      854,   855,   856,   857,   858,   859,   860,   861,   862,   863,
860      864,   865,   866,   867,   868,   869,   870,   871,   872,   873,
861      878,   879,   880,   881,   882,   885,   886,   887,   888,   889,
862      894,   895,   898,   900,   905,   906,   911,   912,   923,   927,
863      929,   930,   932,   933,   957,   972,   973,   977,   978,   982,
864      983,   987,   991,   992,   996,   998,  1000,  1002,  1004,  1007,
865     1009,  1011,  1013,  1015,  1018,  1020,  1022,  1024,  1026,  1029,
866     1031,  1033,  1035,  1037,  1042,  1043,  1044,  1045,  1046,  1047,
867     1048,  1049,  1053,  1055,  1060,  1062,  1064,  1066,  1068,  1073,
868     1074,  1078,  1080,  1081,  1082,  1083,  1087,  1089,  1094,  1096,
869     1102,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,  1120,
870     1122,  1127,  1129,  1131,  1133,  1135,  1140,  1141,  1142,  1143,
871     1144,  1145,  1149,  1150,  1151,  1152,  1153,  1154,  1200,  1201,
872     1203,  1205,  1210,  1212,  1214,  1216,  1218,  1223,  1224,  1227,
873     1229,  1231,  1237,  1241,  1243,  1245,  1250,  1251,  1252,  1254,
874     1259,  1260,  1261,  1262,  1263,  1267,  1268,  1272,  1273,  1274,
875     1275,  1279,  1280,  1284,  1285,  1289,  1290,  1291,  1292,  1293,
876     1304,  1329,  1330,  1334,  1335,  1339,  1340,  1344,  1346,  1348,
877     1364,  1366,  1388,  1390,  1395,  1396,  1397,  1398,  1399,  1400,
878     1404,  1406,  1408,  1413,  1414,  1418,  1419,  1422,  1426,  1427,
879     1428,  1432,  1436,  1444,  1449,  1450,  1454,  1455,  1456,  1460,
880     1461,  1462,  1463,  1465,  1466,  1467,  1471,  1472,  1473,  1474,
881     1475,  1479,  1483,  1485,  1490,  1492,  1517,  1519,  1521,  1523,
882     1528,  1530,  1534,  1536,  1538,  1540,  1542,  1548,  1550,  1555,
883     1560,  1561,  1565,  1567,  1572,  1577,  1578,  1579,  1580,  1581,
884     1582,  1586,  1587,  1588,  1592,  1593
885 };
886 #endif
887
888 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
889 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
890    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
891 static const char *const yytname[] =
892 {
893   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
894   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
895   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
896   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
897   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
898   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
899   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
900   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
901   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
902   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
903   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
904   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
905   "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT",
906   "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING",
907   "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION",
908   "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY",
909   "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS",
910   "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD",
911   "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "'*'",
912   "'<'", "'>'", "'('", "')'", "'~'", "'$'", "'.'", "'['", "']'", "','",
913   "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "':'",
914   "'='", "';'", "'{'", "'}'", "$accept", "guess_type", "real_guess_type",
915   "type", "base_strict_type", "strict_type",
916   "class_function_definition_start",
917   "constructor_function_definition_start",
918   "destructor_function_definition_start",
919   "virtual_class_function_definition_start", "identifier",
920   "primary_expression", "simple_primary_expression", "postfix_expression",
921   "anon_instantiation_expression", "simple_postfix_expression",
922   "argument_expression_list", "common_unary_expression",
923   "unary_expression", "simple_unary_expression", "unary_operator",
924   "cast_expression", "multiplicative_expression", "additive_expression",
925   "shift_expression", "relational_expression_smaller_than",
926   "relational_expression", "equality_expression", "and_expression",
927   "exclusive_or_expression", "inclusive_or_expression",
928   "logical_and_expression", "logical_or_expression",
929   "conditional_expression", "assignment_expression", "assignment_operator",
930   "expression", "constant_expression", "declaration",
931   "specifier_qualifier_list", "guess_specifier_qualifier_list",
932   "declaration_specifiers", "guess_declaration_specifiers",
933   "real_guess_declaration_specifiers", "property_specifiers",
934   "renew_specifiers", "init_declarator_list", "init_declarator",
935   "storage_class_specifier", "ext_decl", "_attrib", "attribute_word",
936   "attribute", "attribs_list", "attrib", "ext_storage", "type_qualifier",
937   "type_specifier", "strict_type_specifier",
938   "struct_or_union_specifier_compound",
939   "struct_or_union_specifier_nocompound", "template_datatype",
940   "template_type_argument", "template_expression_argument",
941   "template_argument", "template_arguments_list", "struct_or_union",
942   "struct_declaration_list", "default_property", "default_property_list",
943   "property", "struct_declaration", "struct_declarator_list",
944   "struct_declarator", "enum_specifier_nocompound",
945   "enum_specifier_compound", "enumerator_list", "enumerator",
946   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
947   "abstract_declarator", "abstract_declarator_noarray", "declarator",
948   "direct_declarator_nofunction", "declarator_function",
949   "direct_declarator_function_start", "direct_declarator_function",
950   "direct_declarator", "declarator_nofunction", "type_qualifier_list",
951   "pointer", "parameter_type_list", "parameter_list",
952   "parameter_declaration", "identifier_list", "type_name",
953   "guess_type_name", "initializer", "initializer_condition",
954   "initializer_list", "statement", "labeled_statement", "declaration_list",
955   "statement_list", "compound_inside", "compound_start",
956   "compound_statement", "expression_statement", "selection_statement",
957   "iteration_statement", "jump_statement", "string_literal",
958   "instantiation_named", "guess_instantiation_named",
959   "instantiation_unnamed", "instantiation_anon",
960   "class_function_definition", "instance_class_function_definition_start",
961   "instance_class_function_definition", "data_member_initialization",
962   "data_member_initialization_list",
963   "data_member_initialization_list_coloned",
964   "members_initialization_list_coloned", "members_initialization_list",
965   "type_unit", 0
966 };
967 #endif
968
969 # ifdef YYPRINT
970 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
971    token YYLEX-NUM.  */
972 static const yytype_uint16 yytoknum[] =
973 {
974        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
975      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
976      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
977      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
978      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
979      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
980      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
981      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
982      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
983      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
984      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
985      365,   366,    42,    60,    62,    40,    41,   126,    36,    46,
986       91,    93,    44,    38,    43,    45,    33,    47,    37,    94,
987      124,    63,    58,    61,    59,   123,   125
988 };
989 # endif
990
991 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
992 static const yytype_uint16 yyr1[] =
993 {
994        0,   137,   138,   138,   139,   140,   140,   141,   142,   142,
995      142,   143,   143,   144,   145,   146,   146,   147,   148,   148,
996      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
997      149,   149,   149,   149,   149,   149,   150,   150,   150,   150,
998      150,   150,   150,   150,   151,   152,   152,   152,   152,   152,
999      152,   152,   152,   153,   153,   153,   153,   154,   154,   154,
1000      154,   154,   154,   154,   154,   154,   155,   155,   156,   156,
1001      157,   157,   157,   157,   157,   157,   157,   158,   158,   159,
1002      159,   159,   159,   160,   160,   160,   161,   161,   161,   162,
1003      163,   163,   163,   163,   163,   164,   164,   164,   165,   165,
1004      166,   166,   167,   167,   168,   168,   169,   169,   170,   170,
1005      171,   171,   171,   172,   172,   172,   172,   172,   172,   172,
1006      172,   172,   172,   172,   173,   173,   174,   175,   175,   175,
1007      175,   176,   176,   176,   176,   176,   176,   176,   176,   177,
1008      177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
1009      178,   178,   178,   178,   178,   178,   178,   178,   178,   179,
1010      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
1011      179,   180,   180,   181,   181,   181,   181,   181,   181,   181,
1012      181,   181,   181,   182,   182,   182,   182,   182,   182,   182,
1013      182,   182,   182,   182,   182,   182,   182,   183,   183,   184,
1014      184,   185,   185,   185,   185,   185,   186,   186,   186,   187,
1015      187,   187,   188,   188,   188,   188,   188,   189,   189,   190,
1016      190,   190,   191,   191,   192,   193,   193,   193,   194,   194,
1017      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
1018      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
1019      195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
1020      195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
1021      196,   196,   196,   196,   196,   196,   196,   196,   196,   196,
1022      197,   197,   197,   197,   198,   198,   199,   199,   200,   201,
1023      201,   201,   201,   201,   201,   202,   202,   203,   203,   204,
1024      204,   205,   206,   206,   207,   207,   207,   207,   207,   207,
1025      207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
1026      207,   207,   207,   207,   208,   208,   208,   208,   208,   208,
1027      208,   208,   209,   209,   210,   210,   210,   210,   210,   211,
1028      211,   212,   212,   212,   212,   212,   213,   213,   214,   214,
1029      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1030      215,   216,   216,   216,   216,   216,   217,   217,   217,   217,
1031      217,   217,   218,   218,   218,   218,   218,   218,   219,   219,
1032      219,   219,   220,   220,   220,   220,   220,   221,   221,   221,
1033      221,   221,   222,   223,   223,   223,   224,   224,   224,   224,
1034      225,   225,   225,   225,   225,   226,   226,   227,   227,   227,
1035      227,   228,   228,   229,   229,   230,   230,   230,   230,   230,
1036      230,   231,   231,   232,   232,   233,   233,   234,   234,   234,
1037      235,   235,   236,   236,   237,   237,   237,   237,   237,   237,
1038      238,   238,   238,   239,   239,   240,   240,   240,   241,   241,
1039      241,   242,   243,   243,   244,   244,   245,   245,   245,   246,
1040      246,   246,   246,   246,   246,   246,   247,   247,   247,   247,
1041      247,   248,   249,   249,   250,   250,   251,   251,   251,   251,
1042      252,   252,   253,   253,   253,   253,   253,   254,   254,   255,
1043      256,   256,   257,   257,   258,   259,   259,   259,   259,   259,
1044      259,   260,   260,   260,   261,   261
1045 };
1046
1047 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1048 static const yytype_uint8 yyr2[] =
1049 {
1050        0,     2,     2,     2,     2,     1,     2,     1,     1,     4,
1051        4,     2,     1,     3,     4,     3,     2,     1,     1,     3,
1052        1,     1,     1,     1,     2,     4,     2,     6,     5,     6,
1053        5,     7,     6,     7,     6,     1,     1,     4,     3,     4,
1054        3,     3,     2,     2,     1,     1,     4,     3,     4,     3,
1055        3,     2,     2,     1,     1,     3,     3,     2,     2,     2,
1056        4,     2,     4,     4,     2,     4,     1,     1,     1,     1,
1057        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1058        3,     3,     3,     1,     3,     3,     1,     3,     3,     2,
1059        1,     2,     3,     3,     3,     1,     3,     3,     1,     3,
1060        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
1061        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1062        1,     1,     1,     1,     1,     3,     1,     2,     3,     2,
1063        5,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1064        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1065        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1066        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1067        2,     1,     1,     1,     2,     1,     2,     1,     2,     1,
1068        2,     4,     5,     1,     2,     1,     2,     1,     2,     1,
1069        2,     1,     2,     1,     2,     4,     5,     1,     3,     1,
1070        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1071        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1072        2,     3,     6,     5,     1,     1,     1,     1,     1,     1,
1073        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1074        1,     1,     1,     1,     4,     4,     4,     1,     1,     1,
1075        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1076        1,     1,     1,     1,     1,     1,     4,     4,     4,     1,
1077        5,     4,     4,     3,     5,     6,     5,     5,     4,     6,
1078        2,     2,     3,     3,     1,     2,     1,     2,     1,     1,
1079        1,     3,     3,     3,     3,     1,     3,     1,     1,     1,
1080        2,     3,     1,     3,     9,     9,     7,     7,     5,    10,
1081       10,     8,     8,     6,     8,     8,     6,     6,     4,     9,
1082        9,     7,     7,     5,     3,     2,     2,     2,     1,     2,
1083        1,     1,     1,     3,     1,     2,     2,     3,     5,     2,
1084        2,     4,     5,     7,     7,     5,     1,     3,     1,     3,
1085        3,     2,     3,     3,     3,     4,     4,     2,     3,     3,
1086        4,     3,     2,     3,     3,     4,     1,     1,     2,     2,
1087        2,     3,     1,     1,     2,     2,     2,     3,     1,     2,
1088        3,     2,     1,     3,     4,     3,     4,     1,     2,     2,
1089        3,     3,     2,     3,     3,     2,     1,     1,     2,     2,
1090        1,     2,     2,     3,     3,     1,     2,     1,     2,     2,
1091        3,     1,     3,     1,     3,     2,     2,     2,     3,     1,
1092        1,     1,     3,     1,     2,     1,     2,     1,     3,     4,
1093        1,     1,     1,     3,     1,     1,     1,     1,     1,     1,
1094        3,     4,     3,     1,     2,     1,     2,     2,     1,     1,
1095        2,     1,     2,     3,     1,     2,     5,     7,     5,     5,
1096        7,     6,     7,     4,     5,     4,     3,     2,     2,     2,
1097        3,     1,     5,     4,     5,     4,     4,     3,     4,     3,
1098        3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1099        3,     1,     1,     3,     2,     1,     1,     2,     2,     1,
1100        2,     1,     1,     2,     1,     3
1101 };
1102
1103 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1104    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1105    means the default is an error.  */
1106 static const yytype_uint16 yydefact[] =
1107 {
1108        0,    17,     7,   201,   202,   203,   204,   205,   229,   230,
1109      231,   232,   233,   235,   238,   239,   236,   237,   225,   226,
1110      228,   234,   297,   298,     0,   420,   247,   206,   207,   209,
1111      248,   249,   240,     0,     0,   210,   211,   165,   172,   243,
1112        8,     5,     0,   171,   419,   159,   224,     0,   208,   227,
1113      161,   163,   167,   241,     0,   242,   169,   504,     0,     0,
1114      340,   339,     0,     0,     0,     4,     2,     3,     6,   407,
1115        0,     0,   417,   166,   382,   160,   224,   162,   164,   168,
1116      170,   367,   416,   415,   397,     0,   396,   378,   366,     0,
1117        0,     8,   281,   280,     0,     0,     1,   348,     0,   346,
1118        0,     0,    35,    22,   471,     0,     0,     0,     0,     0,
1119       76,     0,     0,     0,    71,     0,    74,     0,    70,    72,
1120       73,    75,     0,    20,    36,    18,    67,    66,    77,     0,
1121       79,    83,    86,    90,     0,    95,    98,   100,   102,   104,
1122      106,   108,   110,     0,    23,    21,     0,     0,   243,    20,
1123       77,   288,   286,     0,   290,   289,   295,     0,   405,   408,
1124      409,   357,     0,     0,     0,     0,   411,   413,   351,     0,
1125      126,     0,     0,   382,     0,   418,     0,   370,   399,   398,
1126      369,     0,     0,   381,   392,     0,   395,     0,     0,     0,
1127        0,   368,   379,     0,     0,     0,     0,     0,   331,   273,
1128        0,     0,     0,     0,    20,     0,     0,   224,     0,   302,
1129        0,   330,   299,     0,    12,   387,     0,     0,    21,   328,
1130        0,     0,     0,   283,   282,   505,     0,     0,   341,     0,
1131        0,     0,    45,    69,    68,    61,     0,    57,    58,     0,
1132        0,     0,     0,     0,     0,    64,    26,   124,     0,   423,
1133      131,   133,   137,   135,     0,    24,     0,     0,     0,    42,
1134       43,     0,     0,     0,   114,   115,   116,   117,   118,   119,
1135      120,   121,   122,   123,   113,     0,    59,     0,     0,     0,
1136        0,     0,     0,     0,    91,     0,     0,    89,     0,     0,
1137        0,     0,     0,     0,     0,     0,     0,   244,   245,   246,
1138        0,     0,   224,   287,   366,     0,    10,     9,     0,   406,
1139      410,   350,   383,   358,     0,   353,   352,     0,   371,   380,
1140      359,     0,   354,     0,     0,   385,     0,     0,   393,   394,
1141        0,   212,   213,   216,   215,   214,     0,   217,   219,     0,
1142      251,   252,   253,   254,   255,   257,   260,   261,   258,   259,
1143      250,   256,     0,   269,   262,     0,     0,   265,   179,     0,
1144      173,   175,   177,   263,     0,   264,     0,    16,    71,     0,
1145       20,     0,   451,     0,   482,   485,   486,   484,   483,     0,
1146        0,     0,   325,   382,   224,     0,   332,   400,    11,   334,
1147        0,   389,     0,   271,   300,     0,   329,     0,   388,   327,
1148      326,     0,   272,     0,   278,     0,     0,     0,   349,   347,
1149        0,   345,     0,   342,   143,    20,     0,   425,   139,   141,
1150      147,   145,     0,     0,    51,    52,     0,     0,     0,     0,
1151        0,   224,   373,     0,   372,   193,     0,   183,   185,   187,
1152      189,   191,     0,     0,     0,     0,     0,    19,     0,     0,
1153      132,   134,   138,   136,   424,     0,     0,   499,     0,   477,
1154       67,   431,   430,     0,   149,   151,   153,   157,   155,   491,
1155       44,     0,   496,   492,   502,   495,     0,     0,   479,     0,
1156       41,    38,    54,     0,    53,    40,     0,   112,   111,    80,
1157       81,    82,    84,    85,    87,    88,    93,    94,    92,    96,
1158       97,    99,   101,   103,   105,   107,     0,   286,   292,   291,
1159      369,   294,   293,   296,   412,   414,   360,   356,   355,   386,
1160      384,   422,   223,     0,     0,     0,   220,   340,   339,     0,
1161        0,     0,     0,   180,   174,   176,   178,     0,   280,     0,
1162       15,   224,     0,   452,     0,     0,     0,     0,     0,     0,
1163        0,     0,     0,     0,     0,     0,   454,    20,     0,   443,
1164        0,   445,   434,     0,     0,     0,   435,   436,   437,   438,
1165      439,     0,   301,    13,   336,     0,   402,     0,     0,   324,
1166        0,   335,     0,   401,   390,   303,   391,   274,   270,   276,
1167        0,   277,     0,     0,     0,    60,   144,   140,   142,   148,
1168      146,   426,    62,    50,    47,     0,    49,     0,   362,     0,
1169        0,     0,   376,   375,     0,     0,   374,     0,     0,   194,
1170      184,   186,   188,   190,   192,     0,     0,     0,     0,     0,
1171       63,    65,   125,    78,    25,   481,     0,     0,   382,   150,
1172      152,   154,   158,   156,   487,   488,   489,     0,   494,   500,
1173      498,   503,   497,   476,   478,    39,     0,    37,     0,   287,
1174        0,   222,   221,     0,     0,     0,     0,     0,     0,   318,
1175        0,     0,     0,     0,   283,   282,    14,     0,     0,     0,
1176        0,     0,     0,     0,     0,   467,   468,   469,     0,     0,
1177        0,   455,   127,   382,     0,   197,   199,   444,     0,   447,
1178      446,   453,   129,   475,     0,   403,     0,   333,   400,     0,
1179      337,   404,   279,   275,   344,   343,    48,    46,   361,   363,
1180       28,   377,   364,     0,     0,     0,     0,     0,     0,    30,
1181        0,     0,     0,   480,   490,   493,    56,    55,   109,   218,
1182      266,   267,   268,   181,     0,     0,     0,     0,     0,   308,
1183        0,     0,   323,     0,     0,   442,     0,     0,     0,     0,
1184        0,     0,     0,   466,   470,     0,   440,     0,     0,   128,
1185        0,   474,   402,     0,     0,   401,     0,   365,    27,   195,
1186       32,     0,     0,    29,    34,     0,     0,   316,     0,   317,
1187      182,     0,     0,     0,     0,     0,     0,   313,   441,     0,
1188        0,   463,     0,     0,   465,     0,     0,     0,   473,     0,
1189      198,     0,   427,   200,   403,   404,   338,   196,    31,    33,
1190        0,     0,     0,   306,     0,   307,     0,   321,     0,   322,
1191        0,     0,   456,   458,   459,     0,   464,     0,     0,   130,
1192      472,   432,     0,   314,   315,     0,     0,     0,     0,     0,
1193      311,     0,   312,     0,     0,   461,     0,     0,   428,   304,
1194      305,   319,   320,     0,     0,   457,   460,   462,   429,   433,
1195      309,   310
1196 };
1197
1198 /* YYDEFGOTO[NTERM-NUM].  */
1199 static const yytype_int16 yydefgoto[] =
1200 {
1201       -1,    37,    38,   122,    40,    41,   200,   201,   202,   203,
1202      123,   124,   125,   126,   461,   233,   483,   127,   150,   235,
1203      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1204      139,   140,   141,   142,   247,   275,   558,   171,   699,   249,
1205      417,   463,   206,    44,   359,   436,   694,   695,    45,    46,
1206       47,   337,   338,   339,    48,    49,    50,    51,   439,    52,
1207       53,   153,   154,   155,   156,   157,    54,   208,   209,   210,
1208      211,   212,   385,   386,    55,    56,    98,    99,    81,   432,
1209      163,   433,   164,   213,   214,    85,   215,    87,   389,   159,
1210      216,   165,   166,   167,   189,   254,   422,   813,   469,   842,
1211      561,   562,   563,   564,   565,   373,   566,   567,   568,   569,
1212      570,   144,   571,   217,   145,   470,   219,   471,   472,   473,
1213      474,   475,   476,   477,    58
1214 };
1215
1216 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1217    STATE-NUM.  */
1218 #define YYPACT_NINF -778
1219 static const yytype_int16 yypact[] =
1220 {
1221     8292,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1222     -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1223     -778,  -778,  -778,  -778,    50,  -778,  -778,  -778,  -778,  -778,
1224     -778,  -778,  -778,   -69,   -40,  -778,  -778,  -778,  -778,  -778,
1225      -18,  -778,   227,  6840,  -778,  -778,  -778,     3,  -778,  -778,
1226     -778,  -778,  -778,  -778,    28,  -778,  -778,   -34,   136,   179,
1227       25,    57,  6590,    55,  5854,  -778,  -778,  -778,  -778,   822,
1228     6936,  6288,   551,  -778,   112,  -778,   183,  -778,  -778,  -778,
1229     -778,   114,  -778,   761,   211,  7764,  -778,  -778,   856,   104,
1230     2082,   -46,  -778,   140,    54,  6590,  -778,   144,  -100,  -778,
1231      179,   179,  -778,  -778,  -778,  6648,  6721,  6721,  8377,  6590,
1232     -778,  8377,  6590,  6739,  -778,  5980,  -778,   323,  -778,  -778,
1233     -778,  -778,   220,    36,  -778,  -778,   514,  -778,   959,  6590,
1234     -778,   -31,    85,   518,  6590,   272,   544,   258,   262,   281,
1235      397,    -3,  -778,   300,  -778,  -778,   310,    34,   220,    13,
1236     -778,   518,  5741,   297,  -778,  -778,  -778,   224,  -778,   822,
1237     -778,  -778,   714,   317,   578,   330,   313,  -778,  -778,     9,
1238     -778,   327,   551,  -778,   103,   761,   364,   114,   211,  -778,
1239      856,  7853,  6361,  -778,  -778,  6417,  -778,   457,   341,   235,
1240       26,   114,  -778,   334,  8462,  8031,  5392,  8377,  -778,  -778,
1241      326,   326,   326,   450,    22,   433,  5521,   103,  3522,  -778,
1242      -30,  -778,  -778,   211,  -778,  -778,   364,   338,   347,  -778,
1243     5170,  3640,  3758,   351,   358,  -778,  6590,   179,  -778,   123,
1244      156,  6106,  -778,   526,  -778,  -778,  6443,  -778,  -778,   112,
1245     7122,  8547,  7215,  8547,  6106,  -778,  -778,  -778,   282,  7582,
1246     -778,  -778,  -778,  -778,   388,   387,  2716,  2852,   179,  -778,
1247     -778,  4905,   179,  6590,  -778,  -778,  -778,  -778,  -778,  -778,
1248     -778,  -778,  -778,  -778,  -778,  4996,  -778,  6590,  6590,  6590,
1249     6590,  6590,  6590,  6590,   518,  6590,  6590,  -778,  6590,  6590,
1250     6590,  6590,  6590,  6590,  6590,  6590,  6590,  -778,  -778,  -778,
1251     5854,  7029,   230,   378,   257,  5854,  -778,  -778,  5854,  -778,
1252     -778,  -778,  -778,  -778,  8207,  -778,  -778,   364,   114,  -778,
1253     -778,   400,  -778,    67,   398,  -778,   181,   415,  -778,  -778,
1254      179,  -778,  -778,  -778,  -778,  -778,   424,   427,  -778,   674,
1255     -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1256     -778,  -778,    55,  -778,  -778,   429,   435,  -778,   443,  5411,
1257     -778,  -778,  -778,  -778,   645,  -778,  8031,  -778,   822,  6232,
1258      321,  8119,   425,  4820,  -778,  -778,  -778,  -778,  -778,  4996,
1259      938,  6590,  -778,    30,   103,    11,  -778,   211,  -778,   157,
1260      364,  -778,    26,  -778,  -778,   841,  -778,    26,  -778,  -778,
1261     -778,  3876,  -778,  3994,  -778,  4112,  5170,  4230,  -778,  -778,
1262     5170,  -778,  5170,  -778,  -778,    22,   456,  7582,  -778,  -778,
1263     -778,  -778,   458,   179,  -778,  -778,  4961,   179,  6590,  7675,
1264     6590,   135,   474,   476,   483,   489,  7401,  -778,  -778,  -778,
1265     -778,  -778,  6590,   487,  7494,   493,   505,  -778,  6590,   179,
1266     -778,  -778,  -778,  -778,  -778,  6590,   323,  -778,  2988,  -778,
1267      480,  -778,  -778,  8031,  -778,  -778,  -778,  -778,  -778,  -778,
1268     -778,   326,  -778,  -778,   148,  -778,  3124,   501,  -778,   504,
1269     -778,  -778,  -778,   312,  -778,  -778,   490,  -778,  -778,  -778,
1270     -778,  -778,   -31,   -31,    85,    85,   518,   518,   518,   272,
1271      272,   544,   258,   262,   281,   397,   -10,  7308,  -778,  -778,
1272      257,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1273     -778,  -778,  -778,  6590,   515,   636,  -778,  -778,  -778,  6590,
1274       55,  5854,    17,   -44,  -778,  -778,  -778,    42,  -778,    55,
1275     -778,   103,   531,  -778,  6590,   496,   543,   545,   553,  1924,
1276      557,   179,   525,   540,  5304,   179,  -778,    38,   184,  -778,
1277     5631,  -778,  -778,  2308,  2444,   548,  -778,  -778,  -778,  -778,
1278     -778,   542,  -778,  -778,  -778,  3260,   211,    26,   512,  -778,
1279     6590,  -778,    26,   211,  -778,  -778,  -778,  -778,  -778,  -778,
1280     4348,  -778,  4466,  4584,  4702,  -778,  -778,  -778,  -778,  -778,
1281     -778,  -778,  -778,  -778,  -778,   348,  -778,   497,  -778,   570,
1282      571,   574,   474,   483,  7942,  6590,   474,  5854,  6590,   579,
1283     -778,  -778,  -778,  -778,  -778,   577,   582,  6590,  6590,   580,
1284     -778,  -778,  -778,  -778,  -778,  -778,   568,  4996,   179,  -778,
1285     -778,  -778,  -778,  -778,  -778,  -778,  -778,  4996,  -778,  -778,
1286     -778,   148,  -778,  -778,  -778,  -778,  4996,  -778,  6590,  -778,
1287      349,  -778,  -778,   589,   591,    48,   159,   326,   326,  -778,
1288     5854,   319,   440,   581,  -778,  -778,  -778,   590,  1924,  6590,
1289     6590,  6499,   656,  5222,   587,  -778,  -778,  -778,   185,   592,
1290     1924,  -778,  -778,    58,   207,  -778,   840,  -778,  2580,  -778,
1291     -778,  -778,  -778,  -778,   593,   211,   103,  -778,   594,   364,
1292      596,   211,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1293     -778,   474,  -778,   618,   615,   221,   616,  5854,  6590,  -778,
1294      617,   619,  6590,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1295     -778,  -778,  -778,  -778,   -26,   -20,   239,   326,   326,  -778,
1296      326,   326,  -778,   444,  1924,  -778,   361,   369,  1924,   381,
1297      626,  1924,  5255,  -778,  -778,  6590,  -778,  3396,   551,  -778,
1298     5044,  -778,   594,    26,    26,   594,  6590,  -778,  -778,  -778,
1299     -778,   254,   622,  -778,  -778,   623,   326,  -778,   326,  -778,
1300     -778,   -15,   -17,    -5,     4,   326,   326,  -778,  -778,  1924,
1301     1924,  -778,  1924,  6590,  -778,  1924,  6572,   611,  -778,   621,
1302     -778,  5044,  -778,  -778,   594,   594,  -778,  -778,  -778,  -778,
1303      627,   628,   326,  -778,   326,  -778,   326,  -778,   326,  -778,
1304        1,    15,   683,  -778,  -778,   386,  -778,  1924,   404,  -778,
1305     -778,  -778,   -43,  -778,  -778,   629,   633,   634,   635,   326,
1306     -778,   326,  -778,  1924,   641,  -778,  1924,  1655,  -778,  -778,
1307     -778,  -778,  -778,   643,   644,  -778,  -778,  -778,  -778,  -778,
1308     -778,  -778
1309 };
1310
1311 /* YYPGOTO[NTERM-NUM].  */
1312 static const yytype_int16 yypgoto[] =
1313 {
1314     -778,    81,  -778,   696,   697,    23,  -778,  -778,  -778,  -778,
1315        0,  -778,   309,  1119,  -257,  -778,   336,   340,    52,   639,
1316     -778,  -123,   355,   360,   -14,  -778,   365,   462,   491,   498,
1317      500,   502,  -778,  1559,   -24,  -778,    97,   342,  -352,  -778,
1318     -778,  -364,   168,  -778,  -778,   552,  -778,    24,  1446,   957,
1319     -778,  -778,  -324,  -778,   409,  -778,  1238,  1493,  -184,  1199,
1320     -181,  -778,    -1,    74,   507,  -504,  -168,   198,   406,  -778,
1321     -778,   -47,  -778,   225,  -175,  1382,   549,   601,   -48,  -399,
1322      -23,  -231,   -42,   495,  -183,  -778,   818,   -71,   345,  -778,
1323     1069,   -82,  -778,     8,  -778,  -778,   565,  -777,  -372,  -778,
1324      492,  -778,  -778,   253,  -778,  -778,  1478,  -635,  -778,  -778,
1325     -778,  -112,  -778,  -778,    89,  -778,  -778,  -778,   343,   170,
1326      344,   356,  -778,  -255,  -778
1327 };
1328
1329 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1330    positive, shift that token.  If negative, reduce the rule which
1331    number is the opposite.  If zero, do what YYDEFACT says.
1332    If YYTABLE_NINF, syntax error.  */
1333 #define YYTABLE_NINF -502
1334 static const yytype_int16 yytable[] =
1335 {
1336       42,    83,   479,   188,   482,   255,   276,   572,    57,   560,
1337      362,   443,   367,   363,   295,   526,     1,   192,   487,   365,
1338       82,   559,   227,   388,    61,     1,   364,   666,   177,     1,
1339      175,     1,   612,     1,   841,   616,   228,     1,   143,     1,
1340      191,     1,    68,    74,   786,     1,    62,    60,   762,   788,
1341      151,     1,   824,     1,    93,   822,     2,     1,     1,    97,
1342      363,     1,   363,   147,   149,   826,   365,    64,   365,   670,
1343      162,   849,   173,   828,    68,    63,   173,    92,     2,   857,
1344      869,   277,     2,     2,   851,   187,   667,   668,   173,   220,
1345      204,   671,   395,   858,   224,    64,   278,   279,    95,   321,
1346       97,    97,    27,    28,   396,   192,     1,    29,   239,   319,
1347      787,   239,   448,   725,   128,     1,   789,   223,    89,   825,
1348      284,   823,   658,    68,    73,    66,    67,   806,   296,   303,
1349      315,   827,   318,   578,    66,    67,    96,   850,    35,    36,
1350      829,   172,    66,    67,   256,   579,   300,    68,   257,    68,
1351      299,   852,   239,   669,   489,   490,   491,   257,   237,   238,
1352      100,   394,    68,    90,   742,   575,   746,   128,    43,   482,
1353      690,   257,   173,   257,   173,   536,   173,   672,   363,   218,
1354      173,    42,     1,   540,   365,    59,     1,    68,   517,   222,
1355      173,   364,   101,   767,   358,    74,   370,   239,   609,   560,
1356      560,   662,   256,   636,    68,   625,   383,   173,   204,   280,
1357      281,   697,   248,   629,   721,    69,   173,   357,   172,   193,
1358      204,   204,   204,   781,    66,    67,   454,    97,    65,   181,
1359        1,   415,   152,    73,   182,   306,    29,   484,    43,    68,
1360      239,   435,   239,   435,   415,   227,   319,    69,   128,   449,
1361      429,   488,   622,    43,   177,   363,   191,   410,   480,   411,
1362      622,   365,   485,   363,   357,   734,   357,    35,    36,   365,
1363      647,   496,   497,   743,   498,   221,   240,   226,   227,   242,
1364      644,   308,   648,   416,   285,   286,   151,    73,   128,   580,
1365      412,   151,   413,   248,   151,    69,   445,   218,    70,   508,
1366      415,    42,   519,    71,   511,   415,   448,   448,   149,   218,
1367      218,   218,   414,   128,    42,   128,   256,   173,   691,   764,
1368      704,    73,   515,    73,     1,   414,   184,   128,   104,   768,
1369      521,   185,   633,   248,   560,   779,   537,   331,   307,    66,
1370       67,   769,    69,   308,   634,   301,   308,   610,   128,    43,
1371       71,   329,   528,   790,   394,   256,   394,   330,   394,   533,
1372      486,   308,   332,   366,   538,   371,    74,     1,   817,   370,
1373       68,   239,   301,   557,   509,   527,   308,    71,   333,   512,
1374      173,   291,   357,    68,   173,   287,   288,    92,   747,   748,
1375      173,   292,   173,   506,   601,  -382,  -382,   173,   447,   736,
1376     -382,   204,   484,   204,   448,   204,   204,   204,   334,   335,
1377      204,   293,   204,   294,   232,    68,   297,   239,   401,   403,
1378      405,   128,   232,   603,   632,   128,   298,   606,   655,    42,
1379      305,  -382,  -382,   311,   656,   314,   619,   225,    27,    28,
1380      258,   259,   260,    29,   619,   234,   313,    73,   316,    68,
1381      336,   241,    73,   234,   243,   749,   257,   328,    65,   357,
1382        1,   372,   318,   638,   716,   739,   248,   357,   507,    43,
1383      656,   448,   399,   507,    35,    36,   152,   799,   128,   172,
1384      128,   400,    43,   448,   659,   800,   406,   258,   259,   260,
1385      218,   448,   218,   407,   218,   218,   218,   802,   596,   218,
1386      128,   218,   854,   448,   455,   663,   456,   239,   448,   750,
1387      751,  -285,   809,   795,   796,     1,   516,   151,   696,   518,
1388      856,   258,   259,   260,   324,   607,   448,   327,   282,   283,
1389      665,   149,   723,   423,   424,   425,   520,   673,    84,   675,
1390      522,   173,   523,   394,   529,   394,   394,   394,   261,   557,
1391      530,   684,   262,   263,     1,   689,   531,    68,   289,   290,
1392      693,   543,   674,   557,   557,    84,   379,    84,   408,    66,
1393       67,   178,   595,  -421,   602,   128,   752,   173,   173,  -421,
1394      797,   128,   173,    84,   377,   372,    27,    28,    73,   614,
1395      204,    29,   204,   204,   204,   261,   615,    43,   429,   262,
1396      263,   128,   617,   151,   590,   592,   128,   627,   593,   630,
1397      594,   657,   448,   637,    42,   128,   128,   149,   717,   448,
1398      660,   631,    35,    36,    69,    27,    28,   172,   678,   261,
1399       29,   661,   737,   262,   263,   492,   493,   653,    68,   331,
1400      654,   426,   494,   495,   381,   427,   428,   676,     1,   229,
1401      230,   688,    27,    28,   499,   500,   151,    29,   679,   685,
1402      680,    35,    36,    69,   332,    68,   172,    84,   681,   178,
1403      149,    84,   683,     2,   686,    84,   702,   331,   557,   218,
1404      333,   218,   218,   218,   701,   178,   718,   719,    35,    36,
1405      557,    84,   727,    68,   312,   720,    39,   728,   557,   152,
1406      732,   387,   332,   729,   733,   740,   173,   741,   128,   173,
1407      334,   335,   760,   151,   185,    65,   753,     1,   333,    27,
1408       28,   763,   754,   574,    29,   765,   696,   149,   776,   771,
1409      128,   128,   128,   128,   777,   128,   778,   780,   783,    39,
1410      784,   803,   128,   818,   819,   839,   812,   853,   334,   335,
1411      128,    91,   245,   501,   557,    35,    36,   840,   557,   146,
1412      148,   557,   605,   843,   844,   859,    39,   169,   173,   860,
1413      861,   862,   611,   173,   173,   866,   756,   757,   759,   870,
1414      871,    39,    43,   502,   626,   152,   148,   812,  -382,  -382,
1415      524,   503,   810,  -382,   504,   444,   525,   505,   581,   557,
1416      557,   585,   557,   707,    39,   557,   128,    39,   645,   446,
1417      128,   148,    84,   128,   128,   513,   698,   735,     0,   650,
1418      651,     0,   128,     0,  -382,  -382,    66,    67,   409,  -382,
1419     -382,     0,   652,   812,  -382,    27,    28,   557,   152,     0,
1420       29,     0,   102,     0,     1,   103,   104,     0,    39,     0,
1421        0,   128,   128,   557,   128,   128,   557,   128,   128,     1,
1422        0,    86,     0,   128,    84,     0,    18,    19,     0,     2,
1423        0,    35,    36,     0,     0,    84,     0,    39,   323,   576,
1424        0,   326,     0,     0,     0,   583,   677,     0,    86,   128,
1425       86,    39,     0,    39,   179,   152,    27,    28,     0,     0,
1426      835,    29,    39,   838,   148,   128,    86,     0,   128,   128,
1427        0,     0,   108,   109,    27,    28,   148,   148,   148,    29,
1428        0,     0,   710,     0,     0,     0,     0,   148,     0,     0,
1429       27,    28,    35,    36,    69,    29,    39,     0,    39,     0,
1430      148,     1,     0,   111,   112,    39,     0,     0,     0,     0,
1431       35,    36,   148,   148,     0,     0,   236,   724,   387,   117,
1432      726,     0,     0,     0,     0,     0,    35,    36,     0,   730,
1433      731,    70,     0,   770,     0,     0,    71,   264,   265,   266,
1434      267,   268,   269,   270,   271,   272,   273,     0,     0,     0,
1435       86,     0,   179,     0,    86,     0,   148,    39,    86,     0,
1436       76,   148,     0,     0,   148,     0,     0,     0,   179,     0,
1437       39,    94,    27,    28,    86,     0,     0,    29,     0,     0,
1438        0,     0,     0,     0,     0,   391,     0,    76,     0,   174,
1439        0,     0,     0,     0,   398,     0,   178,     0,     0,     0,
1440      183,   682,     0,     0,     0,   190,     0,   207,    35,    36,
1441       69,     0,     0,   172,   573,    84,   700,     0,     0,     0,
1442        0,     0,    39,     0,     0,   148,     0,    39,     0,   148,
1443      782,     0,   705,   708,   785,     0,     0,   711,     0,     0,
1444        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445        0,     0,   274,     0,     0,     0,     0,   148,     0,   148,
1446        0,   148,   148,   148,     0,     0,   148,   807,   148,   302,
1447        0,     0,    88,    39,     0,     0,     0,     0,   816,     0,
1448        0,   183,     0,     0,     0,    39,     0,     0,     0,   174,
1449        0,     0,   183,   190,     0,    86,     0,   190,   160,    88,
1450        0,   176,     0,     0,     0,   180,     0,     0,     0,     0,
1451        0,     0,   207,   174,   148,     0,     0,     0,     0,    39,
1452        0,     0,     0,   384,     0,   207,     0,     0,     0,     0,
1453      755,     0,   148,   397,     0,     0,     0,   207,   207,   207,
1454        0,     0,   766,     0,     0,     0,     0,    86,     0,     0,
1455      700,     0,     0,     0,     0,     0,     0,   431,    86,   431,
1456        0,   772,   391,    39,   775,     0,   302,     0,   398,   205,
1457      584,     0,     0,     0,     0,   586,     0,     0,     0,     0,
1458        0,   304,     0,     0,     0,     0,   664,   148,   310,     0,
1459        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1460        0,   176,    79,   317,     0,     0,   798,     0,     0,     0,
1461      801,     0,     0,   804,     0,     0,    39,     0,   302,   148,
1462      148,     0,     0,    84,     0,   176,     0,     0,   814,   815,
1463        0,   148,     0,     0,   190,   390,   392,     0,     0,     0,
1464        0,    77,     0,     0,     0,     0,   148,     0,   148,   148,
1465      148,   832,   833,     0,   834,     0,     0,   836,     0,     0,
1466        0,     0,     0,     0,     0,     0,     0,   158,     0,   434,
1467       39,   434,     0,   148,   252,     0,   302,     0,   304,     0,
1468        0,   539,     0,   207,     0,     0,   541,   205,     0,   855,
1469        0,     0,     0,     0,     0,     0,     0,   174,     0,   205,
1470      205,   205,     0,     0,     0,   865,     0,   582,   867,     0,
1471        0,    79,     0,   250,     0,     0,     0,     0,   207,   179,
1472      207,     0,   207,   207,   207,     0,   148,   207,     0,   207,
1473      304,   510,     0,     0,   302,   460,   460,     0,    86,     0,
1474        0,     0,     0,     0,     0,     0,   431,     0,     0,     0,
1475       77,     0,     0,   431,   148,   584,     0,   309,     0,     0,
1476      586,   431,     0,     0,     0,    79,     0,     0,     0,     0,
1477        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1478      384,     0,     0,   148,     0,    80,     0,     0,   304,     0,
1479      420,     0,   361,     0,     0,     0,     0,   160,   176,    79,
1480      440,    79,   440,   420,    77,     0,     0,     0,   452,   176,
1481        0,     0,     0,   577,     0,   467,   467,     0,     0,     0,
1482        0,     0,     0,   148,   302,     0,     0,     0,     0,   418,
1483        0,     0,     0,     0,     0,     0,     0,     0,    77,   438,
1484       77,   438,   418,     0,     0,     0,   304,   450,     0,    75,
1485        0,     0,     0,     0,   465,   465,     0,   253,   434,     0,
1486      613,     0,     0,     0,     0,   434,     0,     0,     0,     0,
1487        0,     0,     0,   434,   205,     0,     0,   541,     0,     0,
1488      205,     0,   205,     0,   205,   205,   205,     0,     0,   205,
1489        0,   205,   390,     0,    80,   706,    78,     0,     0,     0,
1490        0,     0,     0,     0,     0,     0,     0,   207,     0,   207,
1491      207,   207,     0,     0,     0,     0,     0,     0,     0,     0,
1492        0,     0,     0,     0,     0,    79,     0,     0,   252,     0,
1493       79,     0,   467,     0,     0,     0,   304,   460,     0,     0,
1494        0,     0,     0,     0,     0,     0,    86,     0,    80,     0,
1495        0,     0,     0,     0,     0,   460,     0,   535,    75,     0,
1496        0,     0,     0,     0,    77,     0,   158,   250,   251,    77,
1497      317,   465,     0,   421,     0,     0,   599,     0,     0,     0,
1498        0,     0,    80,   441,    80,   441,   421,     0,     0,   176,
1499      170,   453,     0,     0,     0,   623,     0,     0,   468,   468,
1500      360,     0,     0,   623,     0,    78,     0,   709,     0,     0,
1501        0,     0,    75,   183,   170,   597,   102,   467,     1,   103,
1502      104,   105,   642,   106,   107,     0,   774,     0,   170,     0,
1503        0,   170,     0,     0,   621,   467,     0,     0,   374,   375,
1504      376,   378,   621,     2,     0,     0,    75,   437,    75,   437,
1505        0,     0,     0,     0,   460,     0,   465,     0,     0,    78,
1506        0,   640,   464,   464,     0,     0,    79,     0,     0,   205,
1507        0,   205,   205,   205,   465,     0,     0,     0,     0,     0,
1508        0,     0,     0,     0,   419,   174,   108,   109,   110,     0,
1509        0,     0,     0,    78,     0,    78,     0,   419,     0,     0,
1510        0,   170,   451,     0,   170,    77,     0,     0,    80,   466,
1511      466,   253,     0,    80,     0,   468,     0,   111,   112,   642,
1512        0,     0,   467,   467,   113,     0,   460,   114,     0,     0,
1513      115,     0,   116,   117,   467,   773,     0,     0,   118,   119,
1514      120,   121,     0,     0,     0,   170,     0,     0,     0,     0,
1515      811,   868,     0,     0,     0,     0,     0,     0,   640,   600,
1516        0,   465,   465,     0,     0,   534,     0,     0,     0,     0,
1517        0,     0,    75,   465,     0,   462,   462,    75,   624,   464,
1518        0,     0,     0,     0,     0,     0,   624,     0,     0,     0,
1519        0,     0,     0,     0,     0,     0,     0,   176,     0,     0,
1520      468,     0,     0,     0,     0,   643,     0,     0,     0,     0,
1521        0,     0,     0,     0,     0,     0,     0,     0,   468,    78,
1522        0,     0,   251,     0,    78,     0,   466,     0,     0,     0,
1523        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524        0,     0,   620,     0,     0,     0,   460,     0,     0,    80,
1525      620,     0,     0,     0,     0,     0,     0,   467,     0,     0,
1526        0,     0,     0,     0,   464,     0,     0,     0,     0,   639,
1527      598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1528        0,     0,   464,     0,     0,   102,     0,     1,   103,   104,
1529      105,     0,   106,   107,     0,     0,   465,     0,   462,     0,
1530      170,     0,   643,     0,     0,   468,   468,     0,     0,   646,
1531        0,   466,     2,    75,     0,     0,   641,   468,     0,     0,
1532        0,     0,     0,     0,     0,     0,   467,     0,     0,   466,
1533        0,     0,     0,     0,     0,     0,   544,   545,   546,   547,
1534      548,   549,   550,   551,   552,   553,   554,     0,     0,   170,
1535        0,     0,     0,     0,     0,   108,   109,   110,     0,     0,
1536       78,   170,     0,     0,     0,   465,   639,     0,     0,   464,
1537      464,     0,     0,     0,     0,     0,     0,   462,     0,     0,
1538        0,   464,     0,     0,     0,     0,   111,   112,     0,     0,
1539        0,     0,     0,   113,     0,   462,   114,     0,     0,   115,
1540        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1541      121,     0,     0,   641,     0,     0,   466,   466,   556,   372,
1542        0,     0,     0,     0,     0,     0,     0,     0,   466,     0,
1543        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1544      468,     0,     0,   102,     0,     1,   103,   104,     0,     0,
1545        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1546        0,     0,     0,   170,     0,     0,     0,     0,     0,     0,
1547        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1548       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1549       22,    23,    24,     0,   462,     0,     0,     0,     0,   170,
1550        0,     0,     0,     0,   464,   744,   745,     0,    26,   468,
1551      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1552      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1553        0,     0,     0,     0,   170,     0,     0,   170,     0,     0,
1554        0,     0,    34,     0,   111,   112,   170,   170,     0,     0,
1555        0,   466,    35,    36,    69,     0,   462,   196,     0,   197,
1556      117,     0,     0,     0,     0,     0,   462,     0,     0,     0,
1557        0,     0,     0,   464,     0,     0,   198,   738,   199,     0,
1558        0,     0,     0,     0,     0,   791,   792,     0,   793,   794,
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      466,     0,     0,     0,   820,     0,   821,     0,     0,     0,
1563        0,     0,     0,   830,   831,     0,     0,     0,     0,     0,
1564        0,     0,     0,     0,     0,     0,     0,   170,     0,     0,
1565        0,   170,     0,     0,     0,     0,     0,     0,     0,     0,
1566      845,     0,   846,     0,   847,     0,   848,     0,     0,   102,
1567        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1568        0,     0,     0,     0,   170,     0,   462,   863,     0,   864,
1569        0,     0,     0,     0,     0,   170,     2,     3,     4,     5,
1570        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1571       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1572      544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
1573      554,     0,     0,     0,    26,     0,     0,     0,     0,   108,
1574      109,   110,    27,    28,     0,   555,     0,    29,     0,     0,
1575       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1576        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1577      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1578      114,     0,     0,   115,     0,   116,   117,     0,     0,     0,
1579        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1580        0,     0,   556,   372,  -449,   102,     0,     1,   103,   104,
1581      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1582        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1583        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1584       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1585       20,    21,    22,    23,    24,     0,   544,   545,   546,   547,
1586      548,   549,   550,   551,   552,   553,   554,     0,     0,     0,
1587       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1588        0,   555,     0,    29,     0,     0,    30,    31,     0,    32,
1589        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1590        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1591        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1592        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1593      121,     0,     0,     0,     0,     0,     0,     0,   556,   372,
1594     -448,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1595        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1596        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1597        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1598       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1599       24,     0,   544,   545,   546,   547,   548,   549,   550,   551,
1600      552,   553,   554,     0,     0,     0,    26,     0,     0,     0,
1601        0,   108,   109,   110,    27,    28,     0,   555,     0,    29,
1602        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1603        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1604       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1605       35,    36,   114,     0,     0,   115,     0,   116,   117,     0,
1606        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1607        0,     0,     0,     0,   556,   372,  -450,   102,     0,     1,
1608      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1609        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1610        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1611        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1612       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1613        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1614        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1615       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1616        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1617        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1618        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1619        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1620      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1621      457,   458,   459,   102,     0,     1,   103,   104,   105,     0,
1622      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1624        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1625       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1626       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1627        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1628        0,     0,     0,   108,   109,   110,    27,    28,     0,     0,
1629        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1630        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1631        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1632        0,   113,    35,    36,   114,     0,     0,   115,     0,   116,
1633      117,     0,     0,     0,     0,   118,   119,   120,   121,     0,
1634        0,     0,     0,     0,     0,     0,   457,   458,   478,   102,
1635        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1636        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1638        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1639       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1640        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1641        0,     0,     0,     0,    26,     0,     0,     0,     0,   108,
1642      109,   110,    27,    28,     0,     0,     0,    29,     0,     0,
1643       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1644        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1645      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1646      114,     0,     0,   115,     0,   116,   117,     0,     0,     0,
1647        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1648        0,     0,   457,   458,   635,   102,     0,     1,   103,   104,
1649      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1651        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1652       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1653       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1654        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1655       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1656        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1657        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1658        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1659        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1660        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1661      121,     0,     0,     0,     0,     0,     0,     0,   649,   458,
1662     -501,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1663        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1665        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1666       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1667       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1669        0,   108,   109,   110,    27,    28,     0,     0,     0,    29,
1670        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1671        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1672       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1673       35,    36,   114,     0,     0,   115,     0,   116,   117,     0,
1674        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1675        0,     0,     0,     0,   457,   458,   703,   102,     0,     1,
1676      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1677        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1679        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1680       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1681        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1683       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1684        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1685        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1686        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1687        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1688      119,   120,   121,   102,     0,     1,   103,   104,     0,     0,
1689      457,   458,   808,     0,     0,     0,     0,     0,     0,     0,
1690        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1691        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1692       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1693       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1694        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1695      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1696      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1697        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1698        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1699        0,     0,    35,    36,    69,     0,     0,   196,     0,   197,
1700      117,   102,     0,     1,   103,   104,     0,     0,     0,     0,
1701        0,     0,     0,     0,     0,     0,   198,     0,   393,     0,
1702        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1703        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1704       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1705       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1706        0,     0,     0,     0,     0,     0,    26,     0,   194,     0,
1707        0,   108,   109,     0,    27,    28,     0,     0,   195,    29,
1708        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1709        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1710       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1711       35,    36,    69,     0,     0,   196,     0,   197,   117,   102,
1712        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1713        0,     0,     0,     0,   198,     0,   402,     0,     0,     0,
1714        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1715        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1716       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1717        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1718        0,     0,     0,     0,    26,     0,   194,     0,     0,   108,
1719      109,     0,    27,    28,     0,     0,   195,    29,     0,     0,
1720       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1721        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1722      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1723       69,     0,     0,   196,     0,   197,   117,   102,     0,     1,
1724      103,   104,     0,     0,     0,     0,     0,     0,     0,     0,
1725        0,     0,   198,     0,   404,     0,     0,     0,     0,     0,
1726        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1727        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1728       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1729        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730        0,     0,    26,     0,   194,     0,     0,   108,   109,     0,
1731       27,    28,     0,     0,   195,    29,     0,     0,    30,    31,
1732        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1733        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1734        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1735        0,   196,     0,   197,   117,   102,     0,     1,   103,   104,
1736        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737      198,     0,   587,     0,     0,     0,     0,     0,     0,     0,
1738        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1739       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1740       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1741        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1742       26,     0,   194,     0,     0,   108,   109,     0,    27,    28,
1743        0,     0,   195,    29,     0,     0,    30,    31,     0,    32,
1744        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1745        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1746        0,     0,     0,     0,    35,    36,    69,     0,     0,   196,
1747        0,   197,   117,   102,     0,     1,   103,   104,     0,     0,
1748        0,     0,     0,     0,     0,     0,     0,     0,   198,     0,
1749      588,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1750        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1751       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1752       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1753        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1754      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1755      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1758        0,     0,    35,    36,    69,     0,     0,   196,     0,   197,
1759      117,   102,     0,     1,   103,   104,     0,     0,     0,     0,
1760        0,     0,     0,     0,     0,     0,   198,     0,   589,     0,
1761        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1762        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1763       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1764       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,     0,     0,     0,     0,     0,    26,     0,   194,     0,
1766        0,   108,   109,     0,    27,    28,     0,     0,   195,    29,
1767        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1768        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1769       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1770       35,    36,    69,     0,     0,   196,     0,   197,   117,   102,
1771        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1772        0,     0,     0,     0,   198,     0,   591,     0,     0,     0,
1773        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1774        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1775       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1776        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777        0,     0,     0,     0,    26,     0,   194,     0,     0,   108,
1778      109,     0,    27,    28,     0,     0,   195,    29,     0,     0,
1779       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1780        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1781      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1782       69,     0,     0,   196,     0,   197,   117,   102,     0,     1,
1783      103,   104,     0,     0,     0,     0,     0,     0,     0,     0,
1784        0,     0,   198,     0,   712,     0,     0,     0,     0,     0,
1785        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1786        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1787       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1788        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1789        0,     0,    26,     0,   194,     0,     0,   108,   109,     0,
1790       27,    28,     0,     0,   195,    29,     0,     0,    30,    31,
1791        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1792        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1793        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1794        0,   196,     0,   197,   117,   102,     0,     1,   103,   104,
1795        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1796      198,     0,   713,     0,     0,     0,     0,     0,     0,     0,
1797        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1798       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1799       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1800        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1801       26,     0,   194,     0,     0,   108,   109,     0,    27,    28,
1802        0,     0,   195,    29,     0,     0,    30,    31,     0,    32,
1803        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1804        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1805        0,     0,     0,     0,    35,    36,    69,     0,     0,   196,
1806        0,   197,   117,   102,     0,     1,   103,   104,     0,     0,
1807        0,     0,     0,     0,     0,     0,     0,     0,   198,     0,
1808      714,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1809        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1810       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1811       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1812        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1813      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1814      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1815        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1817        0,     0,    35,    36,    69,     0,     0,   196,     0,   197,
1818      117,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1819        0,     0,     0,     0,     0,     0,   198,     0,   715,     0,
1820        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1821        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1822       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1823       24,     0,   544,   545,   546,   547,   548,   549,   550,   551,
1824      552,   553,   554,     0,     0,     0,    26,     0,     0,     0,
1825        0,   108,   109,   110,    27,    28,     0,   555,     0,    29,
1826        0,     0,    30,    31,     0,    32,   102,    33,     1,   103,
1827      104,   105,     0,   106,   107,     0,     0,     0,     0,     0,
1828       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1829       35,    36,   114,     2,     0,   115,     0,   116,   117,     0,
1830        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1831        0,     0,     0,     0,   556,   372,     0,     0,     0,     0,
1832        0,     0,   102,     0,     1,   103,   104,   105,     0,   106,
1833      107,     0,     0,     0,     0,     0,   108,   109,   110,     0,
1834        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1835        0,     0,     0,     0,     0,     0,     0,   102,     0,     1,
1836      103,   104,   105,     0,   106,   107,     0,   111,   112,     0,
1837        0,     0,     0,     0,   113,     0,     0,   114,     0,     0,
1838      115,   481,   116,   117,     2,     0,     0,     0,   118,   119,
1839      120,   121,   108,   109,   110,     0,     0,     0,     0,     0,
1840      458,     0,     0,     0,     0,   102,     0,     1,   103,   104,
1841      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1842        0,     0,     0,   111,   112,     0,     0,   108,   109,   110,
1843      113,     0,     2,   114,     0,     0,   115,   604,   116,   117,
1844        0,     0,     0,     0,   118,   119,   120,   121,     0,     0,
1845        0,     0,     0,     0,     0,     0,   458,     0,   111,   112,
1846        0,     0,     0,     0,     0,   113,     0,     0,   114,     0,
1847        0,   115,     0,   116,   117,   108,   109,   110,     0,   118,
1848      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1849        0,   458,     0,     0,     0,     0,     0,     0,     0,     0,
1850        0,     0,     0,     0,     0,     0,   111,   112,     0,     0,
1851        0,     0,     0,   113,     0,     0,   114,     0,     0,   115,
1852        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1853      121,   102,     0,     1,   103,   104,     0,     0,     0,   811,
1854        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1855        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1856        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1857       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1858       24,     0,     0,   102,     0,     1,   103,   104,   105,     0,
1859      106,   107,     0,     0,     0,     0,    26,     0,   194,     0,
1860        0,   108,   109,     0,    27,    28,     0,     0,   195,    29,
1861        2,     0,    30,    31,     0,    32,   102,    33,     1,   103,
1862      104,   105,     0,   106,   107,     0,     0,     0,     0,     0,
1863       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1864       35,    36,    69,     2,     0,   196,     0,   197,   117,     0,
1865        0,     0,     0,   108,   109,   110,     0,     0,     0,     0,
1866        0,     0,     0,     0,   198,   102,     0,     1,   103,   104,
1867      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1868        0,     0,     0,     0,   111,   112,   108,   109,   110,     0,
1869        0,   113,     2,     0,   114,     0,     0,   115,   761,   116,
1870      117,     0,     0,     0,     0,   118,   119,   120,   121,     0,
1871        0,     0,     0,     0,     0,     0,   556,   111,   112,     0,
1872        0,     0,     0,     0,   113,     0,     0,   114,     0,     0,
1873      115,   805,   116,   117,     0,   108,   109,   110,   118,   119,
1874      120,   121,     0,     0,     0,     0,     0,     0,     0,   556,
1875        0,     0,     0,   102,     0,     1,   103,   104,   105,     0,
1876      106,   107,     0,     0,     0,     0,   111,   112,     0,     0,
1877        0,     0,     0,   113,     1,     0,   114,     0,     0,   115,
1878        2,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1879      121,     0,     0,     0,     0,     0,     0,     0,   687,     2,
1880        3,     4,     5,     6,     7,   340,   341,   342,   343,   344,
1881      345,   346,   347,   348,   349,    18,    19,   350,   351,    22,
1882       23,   352,     0,   108,   109,   110,    27,    28,     0,     0,
1883        0,    29,     0,     0,     0,     0,     0,   353,     0,     0,
1884        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1885       29,     0,     0,     0,   111,   112,   354,     0,   355,     0,
1886        0,   113,    35,    36,   368,     0,     0,   369,   246,   116,
1887      117,   356,     0,     0,     0,   118,   119,   120,   121,     0,
1888        0,    35,    36,    69,     1,     0,   301,     0,     0,     0,
1889        0,    71,     0,     0,     0,     0,     0,     0,     0,     0,
1890        0,     0,     0,     0,     0,     0,   532,     0,     0,     2,
1891        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1892       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1893       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1894        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1895        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1896       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1897        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1898        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1899        0,    35,    36,    69,     1,     0,   380,     0,     0,     0,
1900        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1901        0,     0,     0,   381,     0,   382,     0,     0,     0,     2,
1902        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1903       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1904       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1905        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1906        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1907       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1909        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1910        0,    35,    36,    69,     1,     0,   172,     0,     0,     0,
1911        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1912        0,     0,     0,     0,     0,   692,     0,     0,     0,     2,
1913        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1914       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1915       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1916        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1917        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1918       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1919        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1920        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1921        0,    35,    36,    69,     0,   102,   301,     1,   103,   104,
1922      105,    71,   106,   107,     0,     0,     0,     0,     0,     0,
1923        0,     0,     0,     0,  -284,     0,     0,     0,     0,     0,
1924        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1925       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1926       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1927        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1928       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1929        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1930        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1931        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1932        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1933        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1934      121,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1935        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1936        0,     0,     0,     0,     0,     0,     0,     0,     2,     0,
1937        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
1938       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1939       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1940        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1941        0,   108,   109,   110,    27,    28,     0,     0,     0,    29,
1942        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1943        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1944       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1945       35,    36,   114,     0,     0,   115,   246,   116,   117,     0,
1946        0,     0,     0,   118,   119,   120,   121,   102,     0,     1,
1947      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1948        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1949        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
1950        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1951       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1952        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1953        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1954       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1955        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1956        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1957        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1958        0,   236,   246,   116,   117,     0,     0,     0,     0,   118,
1959      119,   120,   121,   102,     0,     1,   103,   104,   105,     0,
1960      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1961        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1962        2,     0,     0,     0,     0,     0,     8,     9,    10,    11,
1963       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1964       22,    23,    24,     0,     0,     0,     0,     0,     0,   102,
1965        0,     1,   103,   104,   105,     0,   106,   107,    26,     0,
1966        0,     0,     0,   108,   109,   110,    27,    28,     0,     0,
1967        0,    29,     0,     0,    30,    31,     2,    32,     0,    33,
1968        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1969        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1970        0,   113,    35,    36,   368,     0,     0,   369,   246,   116,
1971      117,     0,     0,     0,     0,   118,   119,   120,   121,   108,
1972      109,   110,   102,     0,     1,   103,   104,   105,     0,   106,
1973      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1975      111,   112,     0,     0,     0,     0,     0,   113,     0,     0,
1976      114,     0,     0,   115,     0,   116,   117,     0,     0,   168,
1977        0,   118,   119,   120,   121,     0,     0,     0,   102,     0,
1978        1,   103,   104,   105,     0,   106,   107,     0,     0,     0,
1979        0,     0,   108,   109,   110,     0,     0,     0,     0,     0,
1980        0,     0,     0,     0,   102,     2,     1,   103,   104,   105,
1981        0,   106,   107,     0,     0,     0,     0,     0,     0,     0,
1982        0,     0,     0,   111,   112,     0,     0,     0,     0,     0,
1983      113,     2,     0,   114,     0,     0,   115,     0,   116,   117,
1984        0,     0,   322,     0,   118,   119,   120,   121,   108,   109,
1985      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1986      102,     0,     1,   103,   104,   105,     0,   106,   107,     0,
1987        0,     0,     0,     0,   108,   109,   110,     0,     0,   111,
1988      112,     0,     0,     0,     0,     0,   113,     2,     0,   114,
1989        0,     0,   115,     0,   116,   117,     0,     0,   325,     0,
1990      118,   119,   120,   121,     0,   111,   112,     0,     0,     0,
1991        0,     0,   113,     0,     0,   114,     0,     0,   115,   246,
1992      116,   117,     0,     0,     0,     0,   118,   119,   120,   121,
1993      108,   109,   110,   102,     0,     1,   103,   104,   105,     0,
1994      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1995        0,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1996        2,   111,   112,     0,     0,     0,     0,     0,   113,     0,
1997        0,   114,     0,     0,   115,   758,   116,   117,     2,     0,
1998        0,     0,   118,   119,   120,   121,     0,     0,     0,     0,
1999        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2000        0,     0,     0,   108,   109,   110,     0,     0,     0,   102,
2001        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
2002        0,   108,   109,   110,     0,     0,     0,     0,     0,     0,
2003        0,     0,     0,     0,   111,   112,     2,     0,     0,     0,
2004        0,   113,     0,     0,   114,     0,     0,   115,   837,   116,
2005      117,     0,   111,   112,     0,   118,   119,   120,   121,   113,
2006        0,     0,   114,     0,     0,   115,     0,   116,   117,     0,
2007        0,     0,     0,   118,   119,   120,   121,     0,     0,   108,
2008      109,   110,   102,     0,     1,   103,   104,   105,     0,   106,
2009      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2010      102,     0,     1,   103,   104,   105,     0,   106,   107,     2,
2011      111,   112,     0,     0,     0,     0,     0,   113,     0,     0,
2012      114,     0,     0,   231,     0,   116,   117,     2,     0,     0,
2013        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
2014        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2015        0,     0,   108,   109,   110,     0,     0,     0,     0,     0,
2016        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2017      108,   109,   110,     0,     0,     0,     0,     0,     0,     0,
2018        0,     0,     0,   111,   112,     0,     0,     0,     0,     0,
2019      113,     0,     0,   114,     0,     0,   236,     0,   116,   117,
2020        0,   111,   112,     1,   118,   119,   120,   121,   113,     0,
2021        0,   114,     0,     0,   244,     0,   116,   117,     0,     0,
2022        0,     0,   118,   119,   120,   121,     0,     0,     2,     3,
2023        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2024       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2025       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2026        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2027        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2028        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2029        0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
2030       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2031       35,    36,    69,     0,     0,    70,     0,     0,     0,     0,
2032       71,     0,     0,    72,     2,     3,     4,     5,     6,     7,
2033        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2034       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2035        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2036        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
2037       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2038        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
2039        0,     0,     1,     0,     0,     0,    34,     0,     0,     0,
2040        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
2041        0,    70,   161,     0,     0,     0,    71,     2,     3,     4,
2042        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2043       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2044        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2045        0,     0,     0,     0,    25,    26,     0,     0,     0,     0,
2046        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2047        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
2048        0,     0,     0,     0,     0,     1,     0,     0,     0,    34,
2049        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2050       36,    69,     0,     0,   301,   161,     0,     0,     0,    71,
2051        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2052       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2053       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2054        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2055        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2056        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2057        0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
2058        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2059        0,     0,    35,    36,    69,     0,     0,   429,     0,     0,
2060        0,     0,   430,     2,     3,     4,     5,     6,     7,     8,
2061        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2062       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2064        0,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2065       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2066       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
2067        0,     1,     0,     0,     0,    34,     0,     0,     0,     0,
2068        0,     0,     0,     0,     0,    35,    36,    69,     0,     0,
2069      429,     0,     0,     0,     0,   442,     2,     3,     4,     5,
2070        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2071       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
2072        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2073        0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
2074        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
2075       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
2076        0,     0,     0,     0,     1,     0,     0,     0,    34,     0,
2077        0,     0,     0,     0,     0,     0,     0,     0,    35,    36,
2078       69,     0,     0,   301,     0,     0,     0,     0,    71,     2,
2079        3,     4,     5,     6,     7,   340,   341,   342,   343,   344,
2080      345,   346,   347,   348,   349,    18,    19,   350,   351,    22,
2081       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2082        0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
2083        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2084       29,     0,     0,     0,     0,     0,   354,     0,   355,     0,
2085        0,     0,     0,     0,     0,     0,     0,     1,     0,     0,
2086        0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
2087        0,    35,    36,    69,     0,     0,   429,     0,     0,     0,
2088        0,   618,     2,     3,     4,     5,     6,     7,   340,   341,
2089      342,   343,   344,   345,   346,   347,   348,   349,    18,    19,
2090      350,   351,    22,    23,    24,     0,     0,     0,     0,     0,
2091        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2092      353,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2093        0,     0,     0,    29,     0,     0,     0,     0,     0,   354,
2094        0,   355,     0,     0,     0,     1,     0,     0,     0,     0,
2095        0,     0,     0,     0,   356,     0,     0,     0,     0,     0,
2096        0,     0,     0,     0,    35,    36,    69,     0,     0,   429,
2097        2,     0,     0,     0,   628,     0,     8,     9,    10,    11,
2098       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2099       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2100        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2101        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2102        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2103        0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
2104        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2105        0,     0,    35,    36,    69,     0,     0,   301,     0,     0,
2106        0,     0,    71,     2,     3,     4,     5,     6,     7,     8,
2107        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2108       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2109        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2110       25,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2111       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2112       32,     0,    33,     0,     0,     0,     0,     1,     0,     0,
2113        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
2114        0,     0,     0,     0,     0,    35,    36,    69,     0,     0,
2115      429,   608,     2,     3,     4,     5,     6,     7,     8,     9,
2116       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2117       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
2118        0,     0,     0,     0,     0,     0,     0,     0,     0,    25,
2119       26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2120        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
2121        0,    33,     0,     0,     0,     0,     1,     0,     0,     0,
2122        0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
2123        0,     0,     0,     0,    35,    36,     0,     0,     0,     0,
2124      186,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2125       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2126       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
2127        0,     0,     0,     0,     0,     0,     0,     0,    25,    26,
2128        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
2129        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
2130       33,     0,     0,     0,     0,     1,     0,     0,     0,     0,
2131        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
2132        0,     0,     0,    35,    36,     0,     0,     0,     0,   320,
2133        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2134       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2135       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2136        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2137        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2138        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2139        0,     0,     0,     0,     1,     0,     0,     0,     0,     0,
2140        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2141        0,     0,    35,    36,     0,     0,     0,     0,   722,     2,
2142        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2143       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2144       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2145        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2146        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2147       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2148        0,     0,     1,     0,     0,     0,     0,     0,     0,     0,
2149        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
2150        0,    35,    36,    69,     0,     0,   172,     2,     3,     4,
2151        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2152       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
2155        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2156        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
2157        1,     0,     0,     0,     0,     0,     0,     0,     0,    34,
2158        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2159       36,     0,     0,     0,   542,     2,     3,     4,     5,     6,
2160        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2161       17,    18,    19,    20,    21,    22,    23,    24,   514,     0,
2162        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2163        0,     0,    25,    26,     0,     0,     0,     0,     0,     0,
2164        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
2165       31,     0,    32,     0,    33,     1,     0,     0,     0,     0,
2166        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
2167        0,     0,     0,     0,     0,     0,     0,    35,    36,     0,
2168        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2169       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2170       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2171        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2172        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2173        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2174        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2175        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2176        0,     0,    35,    36,     0,     2,     3,     4,     5,     6,
2177        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2178       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
2179        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2180        0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
2181        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
2182       31,     0,    32,     0,    33,     1,     0,     0,     0,     0,
2183        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
2184        0,     0,     0,     0,     0,     0,     0,    35,    36,     0,
2185        2,     3,     4,     5,     6,     7,   340,   341,   342,   343,
2186      344,   345,   346,   347,   348,   349,    18,    19,   350,   351,
2187       22,    23,   352,     0,     0,     0,     0,     0,     0,     0,
2188        0,     0,     0,     0,     0,     0,     0,     0,   353,     0,
2189        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2190        0,    29,     0,     0,     0,     0,     0,   354,     0,   355,
2191        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2192        0,     0,   356,     0,     0,     0,     0,     0,     0,     0,
2193        0,     0,    35,    36,     0,     2,     3,     4,     5,     6,
2194        7,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2195      349,    18,    19,   350,   351,    22,    23,    24,     0,     0,
2196        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2197        0,     0,     0,   353,     0,     0,     0,     0,     0,     0,
2198        0,    27,    28,     0,     0,     0,    29,     0,     0,     0,
2199        0,     0,   354,     0,   355,     0,     0,     0,     0,     0,
2200        0,     0,     0,     0,     0,     0,     0,   356,     0,     0,
2201        0,     0,     0,     0,     0,     0,     0,    35,    36
2202 };
2203
2204 static const yytype_int16 yycheck[] =
2205 {
2206        0,    43,   257,    85,   261,   117,   129,   379,     0,   373,
2207      194,   242,   195,   194,    17,   339,     3,    88,   275,   194,
2208       43,   373,   122,   206,    24,     3,   194,   531,    76,     3,
2209       72,     3,   431,     3,   811,   434,   136,     3,    62,     3,
2210       88,     3,    42,    43,    70,     3,   115,    24,   683,    69,
2211       64,     3,    69,     3,    54,    70,    28,     3,     3,    59,
2212      241,     3,   243,    63,    64,    70,   241,   113,   243,   113,
2213       70,    70,    72,    69,    74,   115,    76,    54,    28,   122,
2214      857,   112,    28,    28,    69,    85,    69,    70,    88,   135,
2215       90,   135,   122,   136,    94,   113,   127,   128,   132,   181,
2216      100,   101,    74,    75,   134,   176,     3,    79,   108,   180,
2217      136,   111,   122,   617,    62,     3,   136,    94,   115,   136,
2218      134,   136,   132,   123,    43,   112,   113,   762,   131,   152,
2219      121,   136,   180,   122,   112,   113,     0,   136,   110,   111,
2220      136,   115,   112,   113,   135,   134,   133,   147,   135,   149,
2221      116,   136,   152,   136,   277,   278,   279,   135,   106,   107,
2222      135,   208,   162,   135,   116,   135,   670,   115,     0,   426,
2223      132,   135,   172,   135,   174,   359,   176,   135,   359,    90,
2224      180,   181,     3,   366,   359,   135,     3,   187,   121,   135,
2225      190,   359,   135,   135,   194,   195,   196,   197,   429,   563,
2226      564,   525,   135,   458,   204,   436,   206,   207,   208,   124,
2227      125,   563,   115,   444,   613,   112,   216,   194,   115,   115,
2228      220,   221,   222,   727,   112,   113,   249,   227,     1,   115,
2229        3,   231,    64,   152,   120,    11,    79,   261,    70,   239,
2230      240,   241,   242,   243,   244,   122,   317,   112,   196,   249,
2231      115,   275,   436,    85,   302,   436,   304,   134,   258,   136,
2232      444,   436,   262,   444,   241,   637,   243,   110,   111,   444,
2233      122,   285,   286,   114,   288,   135,   108,   133,   122,   111,
2234      463,   122,   134,   231,    12,    13,   300,   206,   236,   132,
2235      134,   305,   136,   196,   308,   112,   244,   208,   115,   300,
2236      300,   301,   121,   120,   305,   305,   122,   122,   308,   220,
2237      221,   222,   231,   261,   314,   263,   135,   317,   134,   134,
2238      575,   240,   314,   242,     3,   244,   115,   275,     5,   122,
2239      330,   120,   455,   236,   698,   114,   359,     3,   114,   112,
2240      113,   134,   112,   122,   456,   115,   122,   429,   296,   181,
2241      120,   116,   352,   114,   401,   135,   403,   122,   405,   359,
2242      263,   122,    28,   195,   364,   197,   366,     3,   114,   369,
2243      370,   371,   115,   373,   300,   352,   122,   120,    44,   305,
2244      380,   123,   359,   383,   384,   113,   114,   364,    69,    70,
2245      390,   129,   392,   296,   417,    74,    75,   397,   116,   656,
2246       79,   401,   426,   403,   122,   405,   406,   407,    74,    75,
2247      410,   130,   412,    16,   105,   415,   116,   417,   220,   221,
2248      222,   369,   113,   423,   448,   373,   116,   427,   116,   429,
2249      133,   110,   111,   116,   122,   122,   436,    95,    74,    75,
2250        7,     8,     9,    79,   444,   105,   116,   366,   121,   449,
2251      116,   109,   371,   113,   112,   136,   135,   116,     1,   436,
2252        3,   135,   510,   463,   116,   116,   369,   444,   300,   301,
2253      122,   122,   134,   305,   110,   111,   308,   116,   426,   115,
2254      428,   134,   314,   122,   507,   116,   135,     7,     8,     9,
2255      401,   122,   403,   135,   405,   406,   407,   116,   417,   410,
2256      448,   412,   116,   122,   116,   529,   119,   507,   122,    69,
2257       70,   133,   767,    69,    70,     3,   116,   531,   560,   121,
2258      116,     7,     8,     9,   182,   428,   122,   185,    10,    11,
2259      530,   531,   614,     7,     8,     9,   121,   537,    43,   539,
2260      116,   541,   115,   590,   115,   592,   593,   594,   115,   549,
2261      115,   551,   119,   120,     3,   555,   113,   557,    14,    15,
2262      560,   136,   539,   563,   564,    70,   133,    72,   226,   112,
2263      113,    76,   116,   116,   116,   523,   136,   577,   578,   122,
2264      136,   529,   582,    88,   134,   135,    74,    75,   507,   115,
2265      590,    79,   592,   593,   594,   115,   120,   429,   115,   119,
2266      120,   549,   113,   617,   406,   407,   554,   120,   410,   116,
2267      412,   121,   122,   133,   614,   563,   564,   617,   121,   122,
2268      523,   116,   110,   111,   112,    74,    75,   115,   132,   115,
2269       79,   116,   656,   119,   120,   280,   281,   136,   638,     3,
2270      136,   115,   282,   283,   132,   119,   120,   116,     3,   100,
2271      101,   554,    74,    75,   289,   290,   670,    79,   115,   134,
2272      115,   110,   111,   112,    28,   665,   115,   172,   115,   174,
2273      670,   176,   115,    28,   134,   180,   134,     3,   678,   590,
2274       44,   592,   593,   594,   136,   190,   116,   116,   110,   111,
2275      690,   196,   113,   693,   116,   121,     0,   120,   698,   531,
2276      120,   206,    28,   121,   136,   116,   706,   116,   656,   709,
2277       74,    75,    56,   727,   120,     1,   135,     3,    44,    74,
2278       75,   134,   132,   381,    79,   133,   768,   727,   132,   136,
2279      678,   679,   680,   681,   116,   683,   121,   121,   121,    43,
2280      121,   115,   690,   121,   121,   134,   770,    64,    74,    75,
2281      698,    54,   113,   291,   754,   110,   111,   136,   758,    63,
2282       64,   761,   426,   136,   136,   136,    70,    71,   768,   136,
2283      136,   136,   430,   773,   774,   134,   679,   680,   681,   136,
2284      136,    85,   614,   292,   442,   617,    90,   811,    74,    75,
2285      116,   293,   768,    79,   294,   243,   122,   295,   389,   799,
2286      800,   395,   802,   578,   108,   805,   754,   111,   463,   244,
2287      758,   115,   317,   761,   762,   308,   563,   647,    -1,   476,
2288      476,    -1,   770,    -1,   110,   111,   112,   113,   227,   115,
2289      116,    -1,   476,   857,   120,    74,    75,   837,   670,    -1,
2290       79,    -1,     1,    -1,     3,     4,     5,    -1,   152,    -1,
2291       -1,   799,   800,   853,   802,   803,   856,   805,   806,     3,
2292       -1,    43,    -1,   811,   369,    -1,    44,    45,    -1,    28,
2293       -1,   110,   111,    -1,    -1,   380,    -1,   181,   182,   384,
2294       -1,   185,    -1,    -1,    -1,   390,   544,    -1,    70,   837,
2295       72,   195,    -1,   197,    76,   727,    74,    75,    -1,    -1,
2296      803,    79,   206,   806,   208,   853,    88,    -1,   856,   857,
2297       -1,    -1,    71,    72,    74,    75,   220,   221,   222,    79,
2298       -1,    -1,   580,    -1,    -1,    -1,    -1,   231,    -1,    -1,
2299       74,    75,   110,   111,   112,    79,   240,    -1,   242,    -1,
2300      244,     3,    -1,   102,   103,   249,    -1,    -1,    -1,    -1,
2301      110,   111,   256,   257,    -1,    -1,   115,   615,   463,   118,
2302      618,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,   627,
2303      628,   115,    -1,   133,    -1,    -1,   120,    18,    19,    20,
2304       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    -1,
2305      172,    -1,   174,    -1,   176,    -1,   300,   301,   180,    -1,
2306       43,   305,    -1,    -1,   308,    -1,    -1,    -1,   190,    -1,
2307      314,    54,    74,    75,   196,    -1,    -1,    79,    -1,    -1,
2308       -1,    -1,    -1,    -1,    -1,   207,    -1,    70,    -1,    72,
2309       -1,    -1,    -1,    -1,   216,    -1,   541,    -1,    -1,    -1,
2310       83,   549,    -1,    -1,    -1,    88,    -1,    90,   110,   111,
2311      112,    -1,    -1,   115,   116,   560,   564,    -1,    -1,    -1,
2312       -1,    -1,   366,    -1,    -1,   369,    -1,   371,    -1,   373,
2313      728,    -1,   577,   578,   732,    -1,    -1,   582,    -1,    -1,
2314       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2315       -1,    -1,   133,    -1,    -1,    -1,    -1,   401,    -1,   403,
2316       -1,   405,   406,   407,    -1,    -1,   410,   765,   412,   152,
2317       -1,    -1,    43,   417,    -1,    -1,    -1,    -1,   776,    -1,
2318       -1,   164,    -1,    -1,    -1,   429,    -1,    -1,    -1,   172,
2319       -1,    -1,   175,   176,    -1,   317,    -1,   180,    69,    70,
2320       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2321       -1,    -1,   195,   196,   458,    -1,    -1,    -1,    -1,   463,
2322       -1,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,    -1,
2323      678,    -1,   476,   216,    -1,    -1,    -1,   220,   221,   222,
2324       -1,    -1,   690,    -1,    -1,    -1,    -1,   369,    -1,    -1,
2325      698,    -1,    -1,    -1,    -1,    -1,    -1,   240,   380,   242,
2326       -1,   706,   384,   507,   709,    -1,   249,    -1,   390,    90,
2327      392,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,
2328       -1,   152,    -1,    -1,    -1,    -1,   530,   531,   159,    -1,
2329       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2330       -1,   172,    43,   174,    -1,    -1,   754,    -1,    -1,    -1,
2331      758,    -1,    -1,   761,    -1,    -1,   560,    -1,   301,   563,
2332      564,    -1,    -1,   768,    -1,   196,    -1,    -1,   773,   774,
2333       -1,   575,    -1,    -1,   317,   206,   207,    -1,    -1,    -1,
2334       -1,    43,    -1,    -1,    -1,    -1,   590,    -1,   592,   593,
2335      594,   799,   800,    -1,   802,    -1,    -1,   805,    -1,    -1,
2336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,   240,
2337      614,   242,    -1,   617,   115,    -1,   359,    -1,   249,    -1,
2338       -1,   364,    -1,   366,    -1,    -1,   369,   208,    -1,   837,
2339       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,   220,
2340      221,   222,    -1,    -1,    -1,   853,    -1,   390,   856,    -1,
2341       -1,   152,    -1,   115,    -1,    -1,    -1,    -1,   401,   541,
2342      403,    -1,   405,   406,   407,    -1,   670,   410,    -1,   412,
2343      301,   302,    -1,    -1,   417,   256,   257,    -1,   560,    -1,
2344       -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,    -1,
2345      152,    -1,    -1,   436,   698,   577,    -1,   159,    -1,    -1,
2346      582,   444,    -1,    -1,    -1,   206,    -1,    -1,    -1,    -1,
2347       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2348      463,    -1,    -1,   727,    -1,    43,    -1,    -1,   359,    -1,
2349      231,    -1,   194,    -1,    -1,    -1,    -1,   368,   369,   240,
2350      241,   242,   243,   244,   206,    -1,    -1,    -1,   249,   380,
2351       -1,    -1,    -1,   384,    -1,   256,   257,    -1,    -1,    -1,
2352       -1,    -1,    -1,   767,   507,    -1,    -1,    -1,    -1,   231,
2353       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   240,   241,
2354      242,   243,   244,    -1,    -1,    -1,   417,   249,    -1,    43,
2355       -1,    -1,    -1,    -1,   256,   257,    -1,   115,   429,    -1,
2356      431,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
2357       -1,    -1,    -1,   444,   395,    -1,    -1,   560,    -1,    -1,
2358      401,    -1,   403,    -1,   405,   406,   407,    -1,    -1,   410,
2359       -1,   412,   463,    -1,   152,   578,    43,    -1,    -1,    -1,
2360       -1,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,   592,
2361      593,   594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2362       -1,    -1,    -1,    -1,    -1,   366,    -1,    -1,   369,    -1,
2363      371,    -1,   373,    -1,    -1,    -1,   507,   458,    -1,    -1,
2364       -1,    -1,    -1,    -1,    -1,    -1,   768,    -1,   206,    -1,
2365       -1,    -1,    -1,    -1,    -1,   476,    -1,   359,   152,    -1,
2366       -1,    -1,    -1,    -1,   366,    -1,   368,   369,   115,   371,
2367      541,   373,    -1,   231,    -1,    -1,   417,    -1,    -1,    -1,
2368       -1,    -1,   240,   241,   242,   243,   244,    -1,    -1,   560,
2369       71,   249,    -1,    -1,    -1,   436,    -1,    -1,   256,   257,
2370      194,    -1,    -1,   444,    -1,   152,    -1,   578,    -1,    -1,
2371       -1,    -1,   206,   696,    95,   417,     1,   458,     3,     4,
2372        5,     6,   463,     8,     9,    -1,   709,    -1,   109,    -1,
2373       -1,   112,    -1,    -1,   436,   476,    -1,    -1,   200,   201,
2374      202,   203,   444,    28,    -1,    -1,   240,   241,   242,   243,
2375       -1,    -1,    -1,    -1,   575,    -1,   458,    -1,    -1,   206,
2376       -1,   463,   256,   257,    -1,    -1,   507,    -1,    -1,   590,
2377       -1,   592,   593,   594,   476,    -1,    -1,    -1,    -1,    -1,
2378       -1,    -1,    -1,    -1,   231,   768,    71,    72,    73,    -1,
2379       -1,    -1,    -1,   240,    -1,   242,    -1,   244,    -1,    -1,
2380       -1,   182,   249,    -1,   185,   507,    -1,    -1,   366,   256,
2381      257,   369,    -1,   371,    -1,   373,    -1,   102,   103,   560,
2382       -1,    -1,   563,   564,   109,    -1,   647,   112,    -1,    -1,
2383      115,    -1,   117,   118,   575,   706,    -1,    -1,   123,   124,
2384      125,   126,    -1,    -1,    -1,   226,    -1,    -1,    -1,    -1,
2385      135,   136,    -1,    -1,    -1,    -1,    -1,    -1,   560,   417,
2386       -1,   563,   564,    -1,    -1,   359,    -1,    -1,    -1,    -1,
2387       -1,    -1,   366,   575,    -1,   256,   257,   371,   436,   373,
2388       -1,    -1,    -1,    -1,    -1,    -1,   444,    -1,    -1,    -1,
2389       -1,    -1,    -1,    -1,    -1,    -1,    -1,   768,    -1,    -1,
2390      458,    -1,    -1,    -1,    -1,   463,    -1,    -1,    -1,    -1,
2391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   476,   366,
2392       -1,    -1,   369,    -1,   371,    -1,   373,    -1,    -1,    -1,
2393       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2394       -1,    -1,   436,    -1,    -1,    -1,   767,    -1,    -1,   507,
2395      444,    -1,    -1,    -1,    -1,    -1,    -1,   698,    -1,    -1,
2396       -1,    -1,    -1,    -1,   458,    -1,    -1,    -1,    -1,   463,
2397      417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2398       -1,    -1,   476,    -1,    -1,     1,    -1,     3,     4,     5,
2399        6,    -1,     8,     9,    -1,    -1,   698,    -1,   379,    -1,
2400      381,    -1,   560,    -1,    -1,   563,   564,    -1,    -1,   471,
2401       -1,   458,    28,   507,    -1,    -1,   463,   575,    -1,    -1,
2402       -1,    -1,    -1,    -1,    -1,    -1,   767,    -1,    -1,   476,
2403       -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    54,    55,
2404       56,    57,    58,    59,    60,    61,    62,    -1,    -1,   430,
2405       -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
2406      507,   442,    -1,    -1,    -1,   767,   560,    -1,    -1,   563,
2407      564,    -1,    -1,    -1,    -1,    -1,    -1,   458,    -1,    -1,
2408       -1,   575,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2409       -1,    -1,    -1,   109,    -1,   476,   112,    -1,    -1,   115,
2410       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2411      126,    -1,    -1,   560,    -1,    -1,   563,   564,   134,   135,
2412       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   575,    -1,
2413       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2414      698,    -1,    -1,     1,    -1,     3,     4,     5,    -1,    -1,
2415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2416       -1,    -1,    -1,   544,    -1,    -1,    -1,    -1,    -1,    -1,
2417       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2418       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2419       48,    49,    50,    -1,   575,    -1,    -1,    -1,    -1,   580,
2420       -1,    -1,    -1,    -1,   698,   667,   668,    -1,    66,   767,
2421       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2422       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2423       -1,    -1,    -1,    -1,   615,    -1,    -1,   618,    -1,    -1,
2424       -1,    -1,   100,    -1,   102,   103,   627,   628,    -1,    -1,
2425       -1,   698,   110,   111,   112,    -1,   637,   115,    -1,   117,
2426      118,    -1,    -1,    -1,    -1,    -1,   647,    -1,    -1,    -1,
2427       -1,    -1,    -1,   767,    -1,    -1,   134,   658,   136,    -1,
2428       -1,    -1,    -1,    -1,    -1,   747,   748,    -1,   750,   751,
2429       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2431       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2432      767,    -1,    -1,    -1,   786,    -1,   788,    -1,    -1,    -1,
2433       -1,    -1,    -1,   795,   796,    -1,    -1,    -1,    -1,    -1,
2434       -1,    -1,    -1,    -1,    -1,    -1,    -1,   728,    -1,    -1,
2435       -1,   732,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2436      822,    -1,   824,    -1,   826,    -1,   828,    -1,    -1,     1,
2437       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2438       -1,    -1,    -1,    -1,   765,    -1,   767,   849,    -1,   851,
2439       -1,    -1,    -1,    -1,    -1,   776,    28,    29,    30,    31,
2440       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2441       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2442       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2443       62,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2444       72,    73,    74,    75,    -1,    77,    -1,    79,    -1,    -1,
2445       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2446       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2447      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2448      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,
2449       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2450       -1,    -1,   134,   135,   136,     1,    -1,     3,     4,     5,
2451        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2452       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2453       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2454       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2455       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
2456       56,    57,    58,    59,    60,    61,    62,    -1,    -1,    -1,
2457       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2458       -1,    77,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2459       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2460       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2461       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2462       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2463      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,   135,
2464      136,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2466       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2467       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2468       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2469       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2470       60,    61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2471       -1,    71,    72,    73,    74,    75,    -1,    77,    -1,    79,
2472       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2474      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2475      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2476       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2477       -1,    -1,    -1,    -1,   134,   135,   136,     1,    -1,     3,
2478        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2480       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2481       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2482       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2483       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2484       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2485       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2486       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2487       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2488       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2489       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2490      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2491      134,   135,   136,     1,    -1,     3,     4,     5,     6,    -1,
2492        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2494       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2495       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2496       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2498       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2499       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2500       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2501       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2502       -1,   109,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2503      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2504       -1,    -1,    -1,    -1,    -1,    -1,   134,   135,   136,     1,
2505       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2506       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2507       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2508       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2509       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2510       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2511       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2512       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2513       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2514       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2515      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2516      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,
2517       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2518       -1,    -1,   134,   135,   136,     1,    -1,     3,     4,     5,
2519        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2521       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2522       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2523       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2524       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2525       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2526       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2527       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2528       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2529       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2530       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2531      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,   135,
2532      136,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2534       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2535       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2536       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2537       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2538       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2539       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2540       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2541       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2542      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2543      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2544       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2545       -1,    -1,    -1,    -1,   134,   135,   136,     1,    -1,     3,
2546        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2548       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2549       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2550       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2551       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2552       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2553       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2554       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2555       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2556       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2557       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2558      124,   125,   126,     1,    -1,     3,     4,     5,    -1,    -1,
2559      134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2561       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2562       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2563       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2564       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2565       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2566       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2567       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2568       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2569       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2570      118,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2571       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2573       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2574       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2575       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2576       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2577       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2578       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2580      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2581      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2582       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2583       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2584       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2585       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2586       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2588       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2589       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2590       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2591       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2592      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2593      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2594        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2595       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2596       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2597       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2598       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2599       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2600       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2601       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2602       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2603       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2604       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2605       -1,   115,    -1,   117,   118,     1,    -1,     3,     4,     5,
2606       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2607      134,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2608       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2609       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2610       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2612       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2613       -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,
2614       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2616       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2617       -1,   117,   118,     1,    -1,     3,     4,     5,    -1,    -1,
2618       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2619      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2620       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2621       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2622       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2624       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2625       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2626       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2627       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2628       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2629      118,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2630       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2631       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2632       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2633       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2634       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2635       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2636       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2637       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2638       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2639      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2640      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2641       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2642       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2643       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2644       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2645       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2646       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2647       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2648       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2649       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2650       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2651      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2652      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2653        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2654       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2655       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2656       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2657       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2658       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2659       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2660       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2661       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2662       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2663       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2664       -1,   115,    -1,   117,   118,     1,    -1,     3,     4,     5,
2665       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2666      134,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2667       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2668       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2669       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2670       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2671       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2672       -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,
2673       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2674       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2675       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2676       -1,   117,   118,     1,    -1,     3,     4,     5,    -1,    -1,
2677       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2678      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2679       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2680       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2681       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2683       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2684       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2685       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2686       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2687       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2688      118,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2689       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2691       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2692       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2693       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2694       60,    61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2695       -1,    71,    72,    73,    74,    75,    -1,    77,    -1,    79,
2696       -1,    -1,    82,    83,    -1,    85,     1,    87,     3,     4,
2697        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2698      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2699      110,   111,   112,    28,    -1,   115,    -1,   117,   118,    -1,
2700       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2701       -1,    -1,    -1,    -1,   134,   135,    -1,    -1,    -1,    -1,
2702       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
2703        9,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
2704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2705       -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
2706        4,     5,     6,    -1,     8,     9,    -1,   102,   103,    -1,
2707       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
2708      115,   116,   117,   118,    28,    -1,    -1,    -1,   123,   124,
2709      125,   126,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2710      135,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2711        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2712       -1,    -1,    -1,   102,   103,    -1,    -1,    71,    72,    73,
2713      109,    -1,    28,   112,    -1,    -1,   115,   116,   117,   118,
2714       -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,
2715       -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,   102,   103,
2716       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
2717       -1,   115,    -1,   117,   118,    71,    72,    73,    -1,   123,
2718      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2719       -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2720       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2721       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,
2722       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2723      126,     1,    -1,     3,     4,     5,    -1,    -1,    -1,   135,
2724       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2725       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2726       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2727       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2728       50,    -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,
2729        8,     9,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2730       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2731       28,    -1,    82,    83,    -1,    85,     1,    87,     3,     4,
2732        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2733      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2734      110,   111,   112,    28,    -1,   115,    -1,   117,   118,    -1,
2735       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,
2736       -1,    -1,    -1,    -1,   134,     1,    -1,     3,     4,     5,
2737        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2738       -1,    -1,    -1,    -1,   102,   103,    71,    72,    73,    -1,
2739       -1,   109,    28,    -1,   112,    -1,    -1,   115,   116,   117,
2740      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2741       -1,    -1,    -1,    -1,    -1,    -1,   134,   102,   103,    -1,
2742       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
2743      115,   116,   117,   118,    -1,    71,    72,    73,   123,   124,
2744      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2745       -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,
2746        8,     9,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2747       -1,    -1,    -1,   109,     3,    -1,   112,    -1,    -1,   115,
2748       28,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2749      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    28,
2750       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2751       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2752       49,    50,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2753       -1,    79,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2754       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2755       79,    -1,    -1,    -1,   102,   103,    85,    -1,    87,    -1,
2756       -1,   109,   110,   111,   112,    -1,    -1,   115,   116,   117,
2757      118,   100,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2758       -1,   110,   111,   112,     3,    -1,   115,    -1,    -1,    -1,
2759       -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2760       -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,    28,
2761       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2762       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2763       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2765       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2766       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2767       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2768       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2769       -1,   110,   111,   112,     3,    -1,   115,    -1,    -1,    -1,
2770       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2771       -1,    -1,    -1,   132,    -1,   134,    -1,    -1,    -1,    28,
2772       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2773       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2774       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2776       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2777       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2780       -1,   110,   111,   112,     3,    -1,   115,    -1,    -1,    -1,
2781       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2782       -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    28,
2783       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2784       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2785       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2787       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2788       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2790       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2791       -1,   110,   111,   112,    -1,     1,   115,     3,     4,     5,
2792        6,   120,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2793       -1,    -1,    -1,    -1,   133,    -1,    -1,    -1,    -1,    -1,
2794       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2795       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2796       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2798       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2799       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2800       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2801       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2802       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2803       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2804      126,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
2807       -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,    39,
2808       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2809       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2810       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2811       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2812       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2813       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2814      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2815      110,   111,   112,    -1,    -1,   115,   116,   117,   118,    -1,
2816       -1,    -1,    -1,   123,   124,   125,   126,     1,    -1,     3,
2817        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2818       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2819       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
2820       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2821       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2823       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2824       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2825       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2826       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2827       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2828       -1,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
2829      124,   125,   126,     1,    -1,     3,     4,     5,     6,    -1,
2830        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2831       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2832       28,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
2833       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2834       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,     1,
2835       -1,     3,     4,     5,     6,    -1,     8,     9,    66,    -1,
2836       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2837       -1,    79,    -1,    -1,    82,    83,    28,    85,    -1,    87,
2838       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2839       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2840       -1,   109,   110,   111,   112,    -1,    -1,   115,   116,   117,
2841      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    71,
2842       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
2843        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2845      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2846      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,   121,
2847       -1,   123,   124,   125,   126,    -1,    -1,    -1,     1,    -1,
2848        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2849       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2850       -1,    -1,    -1,    -1,     1,    28,     3,     4,     5,     6,
2851       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2852       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2853      109,    28,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2854       -1,    -1,   121,    -1,   123,   124,   125,   126,    71,    72,
2855       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2856        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2857       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,   102,
2858      103,    -1,    -1,    -1,    -1,    -1,   109,    28,    -1,   112,
2859       -1,    -1,   115,    -1,   117,   118,    -1,    -1,   121,    -1,
2860      123,   124,   125,   126,    -1,   102,   103,    -1,    -1,    -1,
2861       -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,   116,
2862      117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,
2863       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
2864        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2865       -1,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2866       28,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,
2867       -1,   112,    -1,    -1,   115,   116,   117,   118,    28,    -1,
2868       -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,
2869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2870       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,     1,
2871       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2872       -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
2873       -1,    -1,    -1,    -1,   102,   103,    28,    -1,    -1,    -1,
2874       -1,   109,    -1,    -1,   112,    -1,    -1,   115,   116,   117,
2875      118,    -1,   102,   103,    -1,   123,   124,   125,   126,   109,
2876       -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2877       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    71,
2878       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
2879        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2880        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    28,
2881      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2882      112,    -1,    -1,   115,    -1,   117,   118,    28,    -1,    -1,
2883       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2884       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2885       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2886       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2887       71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2888       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2889      109,    -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2890       -1,   102,   103,     3,   123,   124,   125,   126,   109,    -1,
2891       -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,
2892       -1,    -1,   123,   124,   125,   126,    -1,    -1,    28,    29,
2893       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2894       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2895       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2896       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2897       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
2898       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
2900      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2901      110,   111,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
2902      120,    -1,    -1,   123,    28,    29,    30,    31,    32,    33,
2903       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2904       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2905       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2906       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2907       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2908       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2909       -1,    -1,     3,    -1,    -1,    -1,   100,    -1,    -1,    -1,
2910       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2911       -1,   115,   116,    -1,    -1,    -1,   120,    28,    29,    30,
2912       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2913       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2914       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2915       -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
2916       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
2917       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2918       -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   100,
2919       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2920      111,   112,    -1,    -1,   115,   116,    -1,    -1,    -1,   120,
2921       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2922       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2923       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2925       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
2926       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2927       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
2928       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2929       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,    -1,
2930       -1,    -1,   120,    28,    29,    30,    31,    32,    33,    34,
2931       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2932       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2934       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
2935       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
2936       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2937       -1,     3,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
2938       -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,
2939      115,    -1,    -1,    -1,    -1,   120,    28,    29,    30,    31,
2940       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2941       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2942       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2943       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2944       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2945       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2946       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   100,    -1,
2947       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2948      112,    -1,    -1,   115,    -1,    -1,    -1,    -1,   120,    28,
2949       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2950       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2951       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2952       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2953       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2954       79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,
2955       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
2956       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2957       -1,   110,   111,   112,    -1,    -1,   115,    -1,    -1,    -1,
2958       -1,   120,    28,    29,    30,    31,    32,    33,    34,    35,
2959       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2960       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2962       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
2963       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
2964       -1,    87,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
2965       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
2966       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2967       28,    -1,    -1,    -1,   120,    -1,    34,    35,    36,    37,
2968       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2969       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2971       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
2972       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2973       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
2974       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2975       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,    -1,
2976       -1,    -1,   120,    28,    29,    30,    31,    32,    33,    34,
2977       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2978       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2980       65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
2981       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
2982       85,    -1,    87,    -1,    -1,    -1,    -1,     3,    -1,    -1,
2983       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
2984       -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,
2985      115,   116,    28,    29,    30,    31,    32,    33,    34,    35,
2986       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2987       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2988       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
2989       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
2990       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2991       -1,    87,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,
2992       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
2993       -1,    -1,    -1,    -1,   110,   111,    -1,    -1,    -1,    -1,
2994      116,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2995       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2996       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2997       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
2998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
2999       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
3000       87,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
3001       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
3002       -1,    -1,    -1,   110,   111,    -1,    -1,    -1,    -1,   116,
3003       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3004       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3005       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3007       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3008       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3009       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3010       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3011       -1,    -1,   110,   111,    -1,    -1,    -1,    -1,   116,    28,
3012       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3013       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3014       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3015       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3016       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3017       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3018       -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3019       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3020       -1,   110,   111,   112,    -1,    -1,   115,    28,    29,    30,
3021       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3022       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3023       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3024       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
3025       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
3026       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
3027        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
3028       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
3029      111,    -1,    -1,    -1,   115,    28,    29,    30,    31,    32,
3030       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3031       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
3032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3033       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3034       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
3035       83,    -1,    85,    -1,    87,     3,    -1,    -1,    -1,    -1,
3036       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3037       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,
3038       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3039       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3040       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3041       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3042       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3043       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3044        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3045       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3046       -1,    -1,   110,   111,    -1,    28,    29,    30,    31,    32,
3047       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3048       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
3049       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3050       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3051       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
3052       83,    -1,    85,    -1,    87,     3,    -1,    -1,    -1,    -1,
3053       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3054       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,
3055       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3056       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3057       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3058       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
3059       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3060       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,
3061        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3062       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3063       -1,    -1,   110,   111,    -1,    28,    29,    30,    31,    32,
3064       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3065       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
3066       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3067       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3068       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,
3069       -1,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
3070       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3071       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111
3072 };
3073
3074 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3075    symbol of state STATE-NUM.  */
3076 static const yytype_uint16 yystos[] =
3077 {
3078        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
3079       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3080       46,    47,    48,    49,    50,    65,    66,    74,    75,    79,
3081       82,    83,    85,    87,   100,   110,   111,   138,   139,   140,
3082      141,   142,   147,   179,   180,   185,   186,   187,   191,   192,
3083      193,   194,   196,   197,   203,   211,   212,   230,   261,   135,
3084      142,   147,   115,   115,   113,     1,   112,   113,   147,   112,
3085      115,   120,   123,   138,   147,   185,   186,   193,   194,   196,
3086      212,   215,   217,   219,   220,   222,   223,   224,   227,   115,
3087      135,   141,   142,   147,   186,   132,     0,   147,   213,   214,
3088      135,   135,     1,     4,     5,     6,     8,     9,    71,    72,
3089       73,   102,   103,   109,   112,   115,   117,   118,   123,   124,
3090      125,   126,   140,   147,   148,   149,   150,   154,   155,   157,
3091      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3092      168,   169,   170,   171,   248,   251,   140,   147,   140,   147,
3093      155,   161,   179,   198,   199,   200,   201,   202,   193,   226,
3094      227,   116,   147,   217,   219,   228,   229,   230,   121,   140,
3095      170,   174,   115,   147,   186,   219,   227,   215,   220,   223,
3096      227,   115,   120,   186,   115,   120,   116,   147,   228,   231,
3097      186,   215,   224,   115,    68,    78,   115,   117,   134,   136,
3098      143,   144,   145,   146,   147,   150,   179,   186,   204,   205,
3099      206,   207,   208,   220,   221,   223,   227,   250,   251,   253,
3100      135,   135,   135,   142,   147,   174,   133,   122,   136,   213,
3101      213,   115,   149,   152,   154,   156,   115,   155,   155,   147,
3102      179,   174,   179,   174,   115,   156,   116,   171,   173,   176,
3103      193,   194,   196,   212,   232,   248,   135,   135,     7,     8,
3104        9,   115,   119,   120,    18,    19,    20,    21,    22,    23,
3105       24,    25,    26,    27,   133,   172,   158,   112,   127,   128,
3106      124,   125,    10,    11,   161,    12,    13,   113,   114,    14,
3107       15,   123,   129,   130,    16,    17,   131,   116,   116,   116,
3108      133,   115,   186,   217,   227,   133,    11,   114,   122,   193,
3109      227,   116,   116,   116,   122,   121,   121,   227,   215,   224,
3110      116,   228,   121,   140,   174,   121,   140,   174,   116,   116,
3111      122,     3,    28,    44,    74,    75,   116,   188,   189,   190,
3112       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3113       46,    47,    50,    66,    85,    87,   100,   142,   147,   181,
3114      185,   193,   195,   197,   203,   211,   179,   221,   112,   115,
3115      147,   179,   135,   242,   243,   243,   243,   134,   243,   133,
3116      115,   132,   134,   147,   186,   209,   210,   220,   221,   225,
3117      227,   223,   227,   136,   208,   122,   134,   186,   223,   134,
3118      134,   204,   136,   204,   136,   204,   135,   135,   174,   214,
3119      134,   136,   134,   136,   138,   147,   155,   177,   193,   194,
3120      196,   212,   233,     7,     8,     9,   115,   119,   120,   115,
3121      120,   186,   216,   218,   227,   147,   182,   185,   193,   195,
3122      196,   212,   120,   218,   182,   155,   233,   116,   122,   147,
3123      193,   194,   196,   212,   217,   116,   119,   134,   135,   136,
3124      150,   151,   170,   178,   185,   193,   194,   196,   212,   235,
3125      252,   254,   255,   256,   257,   258,   259,   260,   136,   260,
3126      147,   116,   151,   153,   171,   147,   173,   151,   171,   158,
3127      158,   158,   159,   159,   160,   160,   161,   161,   161,   163,
3128      163,   164,   165,   166,   167,   168,   173,   179,   199,   200,
3129      227,   199,   200,   201,    51,   230,   116,   121,   121,   121,
3130      121,   147,   116,   115,   116,   122,   189,   142,   147,   115,
3131      115,   113,   135,   147,   185,   193,   195,   217,   147,   186,
3132      221,   186,   115,   136,    52,    53,    54,    55,    56,    57,
3133       58,    59,    60,    61,    62,    77,   134,   147,   173,   175,
3134      178,   237,   238,   239,   240,   241,   243,   244,   245,   246,
3135      247,   249,   235,   116,   174,   135,   220,   227,   122,   134,
3136      132,   191,   186,   220,   223,   205,   223,   136,   136,   136,
3137      204,   136,   204,   204,   204,   116,   138,   193,   194,   196,
3138      212,   217,   116,   147,   116,   153,   147,   173,   116,   218,
3139      228,   174,   216,   227,   115,   120,   216,   113,   120,   147,
3140      185,   193,   195,   196,   212,   218,   174,   120,   120,   218,
3141      116,   116,   171,   158,   248,   136,   260,   133,   147,   185,
3142      193,   194,   196,   212,   221,   225,   243,   122,   134,   134,
3143      255,   257,   258,   136,   136,   116,   122,   121,   132,   217,
3144      173,   116,   189,   171,   140,   147,   202,    69,    70,   136,
3145      113,   135,   135,   147,   142,   147,   116,   174,   132,   115,
3146      115,   115,   237,   115,   147,   134,   134,   134,   173,   147,
3147      132,   134,   134,   147,   183,   184,   219,   175,   240,   175,
3148      237,   136,   134,   136,   260,   220,   186,   210,   220,   227,
3149      174,   220,   136,   136,   136,   136,   116,   121,   116,   116,
3150      121,   216,   116,   228,   174,   202,   174,   113,   120,   121,
3151      174,   174,   120,   136,   235,   256,   151,   171,   170,   116,
3152      116,   116,   116,   114,   243,   243,   202,    69,    70,   136,
3153       69,    70,   136,   135,   132,   237,   173,   173,   116,   173,
3154       56,   116,   244,   134,   134,   133,   237,   135,   122,   134,
3155      133,   136,   220,   227,   186,   220,   132,   116,   121,   114,
3156      121,   202,   174,   121,   121,   174,    70,   136,    69,   136,
3157      114,   243,   243,   243,   243,    69,    70,   136,   237,   116,
3158      116,   237,   116,   115,   237,   116,   244,   174,   136,   260,
3159      184,   135,   171,   234,   220,   220,   174,   114,   121,   121,
3160      243,   243,    70,   136,    69,   136,    70,   136,    69,   136,
3161      243,   243,   237,   237,   237,   173,   237,   116,   173,   134,
3162      136,   234,   236,   136,   136,   243,   243,   243,   243,    70,
3163      136,    69,   136,    64,   116,   237,   116,   122,   136,   136,
3164      136,   136,   136,   243,   243,   237,   134,   237,   136,   234,
3165      136,   136
3166 };
3167
3168 #define yyerrok         (yyerrstatus = 0)
3169 #define yyclearin       (yychar = YYEMPTY)
3170 #define YYEMPTY         (-2)
3171 #define YYEOF           0
3172
3173 #define YYACCEPT        goto yyacceptlab
3174 #define YYABORT         goto yyabortlab
3175 #define YYERROR         goto yyerrorlab
3176
3177
3178 /* Like YYERROR except do call yyerror.  This remains here temporarily
3179    to ease the transition to the new meaning of YYERROR, for GCC.
3180    Once GCC version 2 has supplanted version 1, this can go.  However,
3181    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
3182    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
3183    discussed.  */
3184
3185 #define YYFAIL          goto yyerrlab
3186 #if defined YYFAIL
3187   /* This is here to suppress warnings from the GCC cpp's
3188      -Wunused-macros.  Normally we don't worry about that warning, but
3189      some users do, and we want to make it easy for users to remove
3190      YYFAIL uses, which will produce warnings from Bison 2.5.  */
3191 #endif
3192
3193 #define YYRECOVERING()  (!!yyerrstatus)
3194
3195 #define YYBACKUP(Token, Value)                                  \
3196 do                                                              \
3197   if (yychar == YYEMPTY && yylen == 1)                          \
3198     {                                                           \
3199       yychar = (Token);                                         \
3200       yylval = (Value);                                         \
3201       yytoken = YYTRANSLATE (yychar);                           \
3202       YYPOPSTACK (1);                                           \
3203       goto yybackup;                                            \
3204     }                                                           \
3205   else                                                          \
3206     {                                                           \
3207       yyerror (YY_("syntax error: cannot back up")); \
3208       YYERROR;                                                  \
3209     }                                                           \
3210 while (YYID (0))
3211
3212
3213 #define YYTERROR        1
3214 #define YYERRCODE       256
3215
3216
3217 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3218    If N is 0, then set CURRENT to the empty location which ends
3219    the previous symbol: RHS[0] (always defined).  */
3220
3221 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3222 #ifndef YYLLOC_DEFAULT
3223 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
3224     do                                                                  \
3225       if (YYID (N))                                                    \
3226         {                                                               \
3227           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
3228           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
3229           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
3230           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
3231         }                                                               \
3232       else                                                              \
3233         {                                                               \
3234           (Current).first_line   = (Current).last_line   =              \
3235             YYRHSLOC (Rhs, 0).last_line;                                \
3236           (Current).first_column = (Current).last_column =              \
3237             YYRHSLOC (Rhs, 0).last_column;                              \
3238         }                                                               \
3239     while (YYID (0))
3240 #endif
3241
3242
3243 /* YY_LOCATION_PRINT -- Print the location on the stream.
3244    This macro was not mandated originally: define only if we know
3245    we won't break user code: when these are the locations we know.  */
3246
3247 #ifndef YY_LOCATION_PRINT
3248 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3249 #  define YY_LOCATION_PRINT(File, Loc)                  \
3250      fprintf (File, "%d.%d-%d.%d",                      \
3251               (Loc).first_line, (Loc).first_column,     \
3252               (Loc).last_line,  (Loc).last_column)
3253 # else
3254 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3255 # endif
3256 #endif
3257
3258
3259 /* YYLEX -- calling `yylex' with the right arguments.  */
3260
3261 #ifdef YYLEX_PARAM
3262 # define YYLEX yylex (YYLEX_PARAM)
3263 #else
3264 # define YYLEX yylex ()
3265 #endif
3266
3267 /* Enable debugging if requested.  */
3268 #if YYDEBUG
3269
3270 # ifndef YYFPRINTF
3271 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3272 #  define YYFPRINTF fprintf
3273 # endif
3274
3275 # define YYDPRINTF(Args)                        \
3276 do {                                            \
3277   if (yydebug)                                  \
3278     YYFPRINTF Args;                             \
3279 } while (YYID (0))
3280
3281 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3282 do {                                                                      \
3283   if (yydebug)                                                            \
3284     {                                                                     \
3285       YYFPRINTF (stderr, "%s ", Title);                                   \
3286       yy_symbol_print (stderr,                                            \
3287                   Type, Value, Location); \
3288       YYFPRINTF (stderr, "\n");                                           \
3289     }                                                                     \
3290 } while (YYID (0))
3291
3292
3293 /*--------------------------------.
3294 | Print this symbol on YYOUTPUT.  |
3295 `--------------------------------*/
3296
3297 /*ARGSUSED*/
3298 #if (defined __STDC__ || defined __C99__FUNC__ \
3299      || defined __cplusplus || defined _MSC_VER)
3300 static void
3301 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3302 #else
3303 static void
3304 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
3305     FILE *yyoutput;
3306     int yytype;
3307     YYSTYPE const * const yyvaluep;
3308     YYLTYPE const * const yylocationp;
3309 #endif
3310 {
3311   if (!yyvaluep)
3312     return;
3313   YYUSE (yylocationp);
3314 # ifdef YYPRINT
3315   if (yytype < YYNTOKENS)
3316     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3317 # else
3318   YYUSE (yyoutput);
3319 # endif
3320   switch (yytype)
3321     {
3322       default:
3323         break;
3324     }
3325 }
3326
3327
3328 /*--------------------------------.
3329 | Print this symbol on YYOUTPUT.  |
3330 `--------------------------------*/
3331
3332 #if (defined __STDC__ || defined __C99__FUNC__ \
3333      || defined __cplusplus || defined _MSC_VER)
3334 static void
3335 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3336 #else
3337 static void
3338 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
3339     FILE *yyoutput;
3340     int yytype;
3341     YYSTYPE const * const yyvaluep;
3342     YYLTYPE const * const yylocationp;
3343 #endif
3344 {
3345   if (yytype < YYNTOKENS)
3346     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3347   else
3348     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3349
3350   YY_LOCATION_PRINT (yyoutput, *yylocationp);
3351   YYFPRINTF (yyoutput, ": ");
3352   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
3353   YYFPRINTF (yyoutput, ")");
3354 }
3355
3356 /*------------------------------------------------------------------.
3357 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3358 | TOP (included).                                                   |
3359 `------------------------------------------------------------------*/
3360
3361 #if (defined __STDC__ || defined __C99__FUNC__ \
3362      || defined __cplusplus || defined _MSC_VER)
3363 static void
3364 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3365 #else
3366 static void
3367 yy_stack_print (yybottom, yytop)
3368     yytype_int16 *yybottom;
3369     yytype_int16 *yytop;
3370 #endif
3371 {
3372   YYFPRINTF (stderr, "Stack now");
3373   for (; yybottom <= yytop; yybottom++)
3374     {
3375       int yybot = *yybottom;
3376       YYFPRINTF (stderr, " %d", yybot);
3377     }
3378   YYFPRINTF (stderr, "\n");
3379 }
3380
3381 # define YY_STACK_PRINT(Bottom, Top)                            \
3382 do {                                                            \
3383   if (yydebug)                                                  \
3384     yy_stack_print ((Bottom), (Top));                           \
3385 } while (YYID (0))
3386
3387
3388 /*------------------------------------------------.
3389 | Report that the YYRULE is going to be reduced.  |
3390 `------------------------------------------------*/
3391
3392 #if (defined __STDC__ || defined __C99__FUNC__ \
3393      || defined __cplusplus || defined _MSC_VER)
3394 static void
3395 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3396 #else
3397 static void
3398 yy_reduce_print (yyvsp, yylsp, yyrule)
3399     YYSTYPE *yyvsp;
3400     YYLTYPE *yylsp;
3401     int yyrule;
3402 #endif
3403 {
3404   int yynrhs = yyr2[yyrule];
3405   int yyi;
3406   unsigned long int yylno = yyrline[yyrule];
3407   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3408              yyrule - 1, yylno);
3409   /* The symbols being reduced.  */
3410   for (yyi = 0; yyi < yynrhs; yyi++)
3411     {
3412       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3413       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3414                        &(yyvsp[(yyi + 1) - (yynrhs)])
3415                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3416       YYFPRINTF (stderr, "\n");
3417     }
3418 }
3419
3420 # define YY_REDUCE_PRINT(Rule)          \
3421 do {                                    \
3422   if (yydebug)                          \
3423     yy_reduce_print (yyvsp, yylsp, Rule); \
3424 } while (YYID (0))
3425
3426 /* Nonzero means print parse trace.  It is left uninitialized so that
3427    multiple parsers can coexist.  */
3428 int yydebug;
3429 #else /* !YYDEBUG */
3430 # define YYDPRINTF(Args)
3431 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3432 # define YY_STACK_PRINT(Bottom, Top)
3433 # define YY_REDUCE_PRINT(Rule)
3434 #endif /* !YYDEBUG */
3435
3436
3437 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3438 #ifndef YYINITDEPTH
3439 # define YYINITDEPTH 200
3440 #endif
3441
3442 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3443    if the built-in stack extension method is used).
3444
3445    Do not make this value too large; the results are undefined if
3446    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3447    evaluated with infinite-precision integer arithmetic.  */
3448
3449 #ifndef YYMAXDEPTH
3450 # define YYMAXDEPTH 10000
3451 #endif
3452
3453 \f
3454
3455 #if YYERROR_VERBOSE
3456
3457 # ifndef yystrlen
3458 #  if defined __GLIBC__ && defined _STRING_H
3459 #   define yystrlen strlen
3460 #  else
3461 /* Return the length of YYSTR.  */
3462 #if (defined __STDC__ || defined __C99__FUNC__ \
3463      || defined __cplusplus || defined _MSC_VER)
3464 static YYSIZE_T
3465 yystrlen (const char *yystr)
3466 #else
3467 static YYSIZE_T
3468 yystrlen (yystr)
3469     const char *yystr;
3470 #endif
3471 {
3472   YYSIZE_T yylen;
3473   for (yylen = 0; yystr[yylen]; yylen++)
3474     continue;
3475   return yylen;
3476 }
3477 #  endif
3478 # endif
3479
3480 # ifndef yystpcpy
3481 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3482 #   define yystpcpy stpcpy
3483 #  else
3484 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3485    YYDEST.  */
3486 #if (defined __STDC__ || defined __C99__FUNC__ \
3487      || defined __cplusplus || defined _MSC_VER)
3488 static char *
3489 yystpcpy (char *yydest, const char *yysrc)
3490 #else
3491 static char *
3492 yystpcpy (yydest, yysrc)
3493     char *yydest;
3494     const char *yysrc;
3495 #endif
3496 {
3497   char *yyd = yydest;
3498   const char *yys = yysrc;
3499
3500   while ((*yyd++ = *yys++) != '\0')
3501     continue;
3502
3503   return yyd - 1;
3504 }
3505 #  endif
3506 # endif
3507
3508 # ifndef yytnamerr
3509 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3510    quotes and backslashes, so that it's suitable for yyerror.  The
3511    heuristic is that double-quoting is unnecessary unless the string
3512    contains an apostrophe, a comma, or backslash (other than
3513    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3514    null, do not copy; instead, return the length of what the result
3515    would have been.  */
3516 static YYSIZE_T
3517 yytnamerr (char *yyres, const char *yystr)
3518 {
3519   if (*yystr == '"')
3520     {
3521       YYSIZE_T yyn = 0;
3522       char const *yyp = yystr;
3523
3524       for (;;)
3525         switch (*++yyp)
3526           {
3527           case '\'':
3528           case ',':
3529             goto do_not_strip_quotes;
3530
3531           case '\\':
3532             if (*++yyp != '\\')
3533               goto do_not_strip_quotes;
3534             /* Fall through.  */
3535           default:
3536             if (yyres)
3537               yyres[yyn] = *yyp;
3538             yyn++;
3539             break;
3540
3541           case '"':
3542             if (yyres)
3543               yyres[yyn] = '\0';
3544             return yyn;
3545           }
3546     do_not_strip_quotes: ;
3547     }
3548
3549   if (! yyres)
3550     return yystrlen (yystr);
3551
3552   return yystpcpy (yyres, yystr) - yyres;
3553 }
3554 # endif
3555
3556 /* Copy into YYRESULT an error message about the unexpected token
3557    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3558    including the terminating null byte.  If YYRESULT is null, do not
3559    copy anything; just return the number of bytes that would be
3560    copied.  As a special case, return 0 if an ordinary "syntax error"
3561    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3562    size calculation.  */
3563 static YYSIZE_T
3564 yysyntax_error (char *yyresult, int yystate, int yychar)
3565 {
3566   int yyn = yypact[yystate];
3567
3568   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3569     return 0;
3570   else
3571     {
3572       int yytype = YYTRANSLATE (yychar);
3573       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3574       YYSIZE_T yysize = yysize0;
3575       YYSIZE_T yysize1;
3576       int yysize_overflow = 0;
3577       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3578       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3579       int yyx;
3580
3581 # if 0
3582       /* This is so xgettext sees the translatable formats that are
3583          constructed on the fly.  */
3584       YY_("syntax error, unexpected %s");
3585       YY_("syntax error, unexpected %s, expecting %s");
3586       YY_("syntax error, unexpected %s, expecting %s or %s");
3587       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3588       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3589 # endif
3590       char *yyfmt;
3591       char const *yyf;
3592       static char const yyunexpected[] = "syntax error, unexpected %s";
3593       static char const yyexpecting[] = ", expecting %s";
3594       static char const yyor[] = " or %s";
3595       char yyformat[sizeof yyunexpected
3596                     + sizeof yyexpecting - 1
3597                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3598                        * (sizeof yyor - 1))];
3599       char const *yyprefix = yyexpecting;
3600
3601       /* Start YYX at -YYN if negative to avoid negative indexes in
3602          YYCHECK.  */
3603       int yyxbegin = yyn < 0 ? -yyn : 0;
3604
3605       /* Stay within bounds of both yycheck and yytname.  */
3606       int yychecklim = YYLAST - yyn + 1;
3607       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3608       int yycount = 1;
3609
3610       yyarg[0] = yytname[yytype];
3611       yyfmt = yystpcpy (yyformat, yyunexpected);
3612
3613       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3614         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3615           {
3616             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3617               {
3618                 yycount = 1;
3619                 yysize = yysize0;
3620                 yyformat[sizeof yyunexpected - 1] = '\0';
3621                 break;
3622               }
3623             yyarg[yycount++] = yytname[yyx];
3624             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3625             yysize_overflow |= (yysize1 < yysize);
3626             yysize = yysize1;
3627             yyfmt = yystpcpy (yyfmt, yyprefix);
3628             yyprefix = yyor;
3629           }
3630
3631       yyf = YY_(yyformat);
3632       yysize1 = yysize + yystrlen (yyf);
3633       yysize_overflow |= (yysize1 < yysize);
3634       yysize = yysize1;
3635
3636       if (yysize_overflow)
3637         return YYSIZE_MAXIMUM;
3638
3639       if (yyresult)
3640         {
3641           /* Avoid sprintf, as that infringes on the user's name space.
3642              Don't have undefined behavior even if the translation
3643              produced a string with the wrong number of "%s"s.  */
3644           char *yyp = yyresult;
3645           int yyi = 0;
3646           while ((*yyp = *yyf) != '\0')
3647             {
3648               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3649                 {
3650                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3651                   yyf += 2;
3652                 }
3653               else
3654                 {
3655                   yyp++;
3656                   yyf++;
3657                 }
3658             }
3659         }
3660       return yysize;
3661     }
3662 }
3663 #endif /* YYERROR_VERBOSE */
3664 \f
3665
3666 /*-----------------------------------------------.
3667 | Release the memory associated to this symbol.  |
3668 `-----------------------------------------------*/
3669
3670 /*ARGSUSED*/
3671 #if (defined __STDC__ || defined __C99__FUNC__ \
3672      || defined __cplusplus || defined _MSC_VER)
3673 static void
3674 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3675 #else
3676 static void
3677 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3678     const char *yymsg;
3679     int yytype;
3680     YYSTYPE *yyvaluep;
3681     YYLTYPE *yylocationp;
3682 #endif
3683 {
3684   YYUSE (yyvaluep);
3685   YYUSE (yylocationp);
3686
3687   if (!yymsg)
3688     yymsg = "Deleting";
3689   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3690
3691   switch (yytype)
3692     {
3693       case 138: /* "guess_type" */
3694
3695 /* Line 1009 of yacc.c  */
3696 #line 170 "type.y"
3697         { FreeSpecifier((yyvaluep->specifier)); };
3698
3699 /* Line 1009 of yacc.c  */
3700 #line 3700 "type.ec"
3701         break;
3702       case 140: /* "type" */
3703
3704 /* Line 1009 of yacc.c  */
3705 #line 170 "type.y"
3706         { FreeSpecifier((yyvaluep->specifier)); };
3707
3708 /* Line 1009 of yacc.c  */
3709 #line 3709 "type.ec"
3710         break;
3711       case 141: /* "base_strict_type" */
3712
3713 /* Line 1009 of yacc.c  */
3714 #line 170 "type.y"
3715         { FreeSpecifier((yyvaluep->specifier)); };
3716
3717 /* Line 1009 of yacc.c  */
3718 #line 3718 "type.ec"
3719         break;
3720       case 142: /* "strict_type" */
3721
3722 /* Line 1009 of yacc.c  */
3723 #line 170 "type.y"
3724         { FreeSpecifier((yyvaluep->specifier)); };
3725
3726 /* Line 1009 of yacc.c  */
3727 #line 3727 "type.ec"
3728         break;
3729       case 143: /* "class_function_definition_start" */
3730
3731 /* Line 1009 of yacc.c  */
3732 #line 191 "type.y"
3733         { FreeClassFunction((yyvaluep->classFunction)); };
3734
3735 /* Line 1009 of yacc.c  */
3736 #line 3736 "type.ec"
3737         break;
3738       case 144: /* "constructor_function_definition_start" */
3739
3740 /* Line 1009 of yacc.c  */
3741 #line 191 "type.y"
3742         { FreeClassFunction((yyvaluep->classFunction)); };
3743
3744 /* Line 1009 of yacc.c  */
3745 #line 3745 "type.ec"
3746         break;
3747       case 145: /* "destructor_function_definition_start" */
3748
3749 /* Line 1009 of yacc.c  */
3750 #line 191 "type.y"
3751         { FreeClassFunction((yyvaluep->classFunction)); };
3752
3753 /* Line 1009 of yacc.c  */
3754 #line 3754 "type.ec"
3755         break;
3756       case 146: /* "virtual_class_function_definition_start" */
3757
3758 /* Line 1009 of yacc.c  */
3759 #line 191 "type.y"
3760         { FreeClassFunction((yyvaluep->classFunction)); };
3761
3762 /* Line 1009 of yacc.c  */
3763 #line 3763 "type.ec"
3764         break;
3765       case 147: /* "identifier" */
3766
3767 /* Line 1009 of yacc.c  */
3768 #line 162 "type.y"
3769         { FreeIdentifier((yyvaluep->id)); };
3770
3771 /* Line 1009 of yacc.c  */
3772 #line 3772 "type.ec"
3773         break;
3774       case 148: /* "primary_expression" */
3775
3776 /* Line 1009 of yacc.c  */
3777 #line 164 "type.y"
3778         { FreeExpression((yyvaluep->exp)); };
3779
3780 /* Line 1009 of yacc.c  */
3781 #line 3781 "type.ec"
3782         break;
3783       case 150: /* "postfix_expression" */
3784
3785 /* Line 1009 of yacc.c  */
3786 #line 164 "type.y"
3787         { FreeExpression((yyvaluep->exp)); };
3788
3789 /* Line 1009 of yacc.c  */
3790 #line 3790 "type.ec"
3791         break;
3792       case 153: /* "argument_expression_list" */
3793
3794 /* Line 1009 of yacc.c  */
3795 #line 199 "type.y"
3796         { FreeList((yyvaluep->list), FreeExpression); };
3797
3798 /* Line 1009 of yacc.c  */
3799 #line 3799 "type.ec"
3800         break;
3801       case 155: /* "unary_expression" */
3802
3803 /* Line 1009 of yacc.c  */
3804 #line 164 "type.y"
3805         { FreeExpression((yyvaluep->exp)); };
3806
3807 /* Line 1009 of yacc.c  */
3808 #line 3808 "type.ec"
3809         break;
3810       case 158: /* "cast_expression" */
3811
3812 /* Line 1009 of yacc.c  */
3813 #line 164 "type.y"
3814         { FreeExpression((yyvaluep->exp)); };
3815
3816 /* Line 1009 of yacc.c  */
3817 #line 3817 "type.ec"
3818         break;
3819       case 159: /* "multiplicative_expression" */
3820
3821 /* Line 1009 of yacc.c  */
3822 #line 164 "type.y"
3823         { FreeExpression((yyvaluep->exp)); };
3824
3825 /* Line 1009 of yacc.c  */
3826 #line 3826 "type.ec"
3827         break;
3828       case 160: /* "additive_expression" */
3829
3830 /* Line 1009 of yacc.c  */
3831 #line 164 "type.y"
3832         { FreeExpression((yyvaluep->exp)); };
3833
3834 /* Line 1009 of yacc.c  */
3835 #line 3835 "type.ec"
3836         break;
3837       case 161: /* "shift_expression" */
3838
3839 /* Line 1009 of yacc.c  */
3840 #line 164 "type.y"
3841         { FreeExpression((yyvaluep->exp)); };
3842
3843 /* Line 1009 of yacc.c  */
3844 #line 3844 "type.ec"
3845         break;
3846       case 163: /* "relational_expression" */
3847
3848 /* Line 1009 of yacc.c  */
3849 #line 164 "type.y"
3850         { FreeExpression((yyvaluep->exp)); };
3851
3852 /* Line 1009 of yacc.c  */
3853 #line 3853 "type.ec"
3854         break;
3855       case 164: /* "equality_expression" */
3856
3857 /* Line 1009 of yacc.c  */
3858 #line 164 "type.y"
3859         { FreeExpression((yyvaluep->exp)); };
3860
3861 /* Line 1009 of yacc.c  */
3862 #line 3862 "type.ec"
3863         break;
3864       case 165: /* "and_expression" */
3865
3866 /* Line 1009 of yacc.c  */
3867 #line 164 "type.y"
3868         { FreeExpression((yyvaluep->exp)); };
3869
3870 /* Line 1009 of yacc.c  */
3871 #line 3871 "type.ec"
3872         break;
3873       case 166: /* "exclusive_or_expression" */
3874
3875 /* Line 1009 of yacc.c  */
3876 #line 164 "type.y"
3877         { FreeExpression((yyvaluep->exp)); };
3878
3879 /* Line 1009 of yacc.c  */
3880 #line 3880 "type.ec"
3881         break;
3882       case 167: /* "inclusive_or_expression" */
3883
3884 /* Line 1009 of yacc.c  */
3885 #line 164 "type.y"
3886         { FreeExpression((yyvaluep->exp)); };
3887
3888 /* Line 1009 of yacc.c  */
3889 #line 3889 "type.ec"
3890         break;
3891       case 168: /* "logical_and_expression" */
3892
3893 /* Line 1009 of yacc.c  */
3894 #line 164 "type.y"
3895         { FreeExpression((yyvaluep->exp)); };
3896
3897 /* Line 1009 of yacc.c  */
3898 #line 3898 "type.ec"
3899         break;
3900       case 169: /* "logical_or_expression" */
3901
3902 /* Line 1009 of yacc.c  */
3903 #line 164 "type.y"
3904         { FreeExpression((yyvaluep->exp)); };
3905
3906 /* Line 1009 of yacc.c  */
3907 #line 3907 "type.ec"
3908         break;
3909       case 170: /* "conditional_expression" */
3910
3911 /* Line 1009 of yacc.c  */
3912 #line 164 "type.y"
3913         { FreeExpression((yyvaluep->exp)); };
3914
3915 /* Line 1009 of yacc.c  */
3916 #line 3916 "type.ec"
3917         break;
3918       case 171: /* "assignment_expression" */
3919
3920 /* Line 1009 of yacc.c  */
3921 #line 164 "type.y"
3922         { FreeExpression((yyvaluep->exp)); };
3923
3924 /* Line 1009 of yacc.c  */
3925 #line 3925 "type.ec"
3926         break;
3927       case 173: /* "expression" */
3928
3929 /* Line 1009 of yacc.c  */
3930 #line 199 "type.y"
3931         { FreeList((yyvaluep->list), FreeExpression); };
3932
3933 /* Line 1009 of yacc.c  */
3934 #line 3934 "type.ec"
3935         break;
3936       case 174: /* "constant_expression" */
3937
3938 /* Line 1009 of yacc.c  */
3939 #line 164 "type.y"
3940         { FreeExpression((yyvaluep->exp)); };
3941
3942 /* Line 1009 of yacc.c  */
3943 #line 3943 "type.ec"
3944         break;
3945       case 175: /* "declaration" */
3946
3947 /* Line 1009 of yacc.c  */
3948 #line 185 "type.y"
3949         { FreeDeclaration((yyvaluep->declaration)); };
3950
3951 /* Line 1009 of yacc.c  */
3952 #line 3952 "type.ec"
3953         break;
3954       case 176: /* "specifier_qualifier_list" */
3955
3956 /* Line 1009 of yacc.c  */
3957 #line 201 "type.y"
3958         { FreeList((yyvaluep->list), FreeSpecifier); };
3959
3960 /* Line 1009 of yacc.c  */
3961 #line 3961 "type.ec"
3962         break;
3963       case 177: /* "guess_specifier_qualifier_list" */
3964
3965 /* Line 1009 of yacc.c  */
3966 #line 201 "type.y"
3967         { FreeList((yyvaluep->list), FreeSpecifier); };
3968
3969 /* Line 1009 of yacc.c  */
3970 #line 3970 "type.ec"
3971         break;
3972       case 178: /* "declaration_specifiers" */
3973
3974 /* Line 1009 of yacc.c  */
3975 #line 201 "type.y"
3976         { FreeList((yyvaluep->list), FreeSpecifier); };
3977
3978 /* Line 1009 of yacc.c  */
3979 #line 3979 "type.ec"
3980         break;
3981       case 179: /* "guess_declaration_specifiers" */
3982
3983 /* Line 1009 of yacc.c  */
3984 #line 201 "type.y"
3985         { FreeList((yyvaluep->list), FreeSpecifier); };
3986
3987 /* Line 1009 of yacc.c  */
3988 #line 3988 "type.ec"
3989         break;
3990       case 183: /* "init_declarator_list" */
3991
3992 /* Line 1009 of yacc.c  */
3993 #line 206 "type.y"
3994         { FreeList((yyvaluep->list), FreeInitDeclarator); };
3995
3996 /* Line 1009 of yacc.c  */
3997 #line 3997 "type.ec"
3998         break;
3999       case 184: /* "init_declarator" */
4000
4001 /* Line 1009 of yacc.c  */
4002 #line 180 "type.y"
4003         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
4004
4005 /* Line 1009 of yacc.c  */
4006 #line 4006 "type.ec"
4007         break;
4008       case 185: /* "storage_class_specifier" */
4009
4010 /* Line 1009 of yacc.c  */
4011 #line 170 "type.y"
4012         { FreeSpecifier((yyvaluep->specifier)); };
4013
4014 /* Line 1009 of yacc.c  */
4015 #line 4015 "type.ec"
4016         break;
4017       case 186: /* "ext_decl" */
4018
4019 /* Line 1009 of yacc.c  */
4020 #line 216 "type.y"
4021         { FreeExtDecl((yyvaluep->extDecl)); };
4022
4023 /* Line 1009 of yacc.c  */
4024 #line 4024 "type.ec"
4025         break;
4026       case 188: /* "attribute_word" */
4027
4028 /* Line 1009 of yacc.c  */
4029 #line 196 "type.y"
4030         { delete (yyvaluep->string); };
4031
4032 /* Line 1009 of yacc.c  */
4033 #line 4033 "type.ec"
4034         break;
4035       case 189: /* "attribute" */
4036
4037 /* Line 1009 of yacc.c  */
4038 #line 217 "type.y"
4039         { FreeAttribute((yyvaluep->attribute)); };
4040
4041 /* Line 1009 of yacc.c  */
4042 #line 4042 "type.ec"
4043         break;
4044       case 190: /* "attribs_list" */
4045
4046 /* Line 1009 of yacc.c  */
4047 #line 218 "type.y"
4048         { FreeList((yyvaluep->list), FreeAttribute); };
4049
4050 /* Line 1009 of yacc.c  */
4051 #line 4051 "type.ec"
4052         break;
4053       case 191: /* "attrib" */
4054
4055 /* Line 1009 of yacc.c  */
4056 #line 215 "type.y"
4057         { FreeAttrib((yyvaluep->attrib)); };
4058
4059 /* Line 1009 of yacc.c  */
4060 #line 4060 "type.ec"
4061         break;
4062       case 192: /* "ext_storage" */
4063
4064 /* Line 1009 of yacc.c  */
4065 #line 170 "type.y"
4066         { FreeSpecifier((yyvaluep->specifier)); };
4067
4068 /* Line 1009 of yacc.c  */
4069 #line 4069 "type.ec"
4070         break;
4071       case 193: /* "type_qualifier" */
4072
4073 /* Line 1009 of yacc.c  */
4074 #line 170 "type.y"
4075         { FreeSpecifier((yyvaluep->specifier)); };
4076
4077 /* Line 1009 of yacc.c  */
4078 #line 4078 "type.ec"
4079         break;
4080       case 194: /* "type_specifier" */
4081
4082 /* Line 1009 of yacc.c  */
4083 #line 170 "type.y"
4084         { FreeSpecifier((yyvaluep->specifier)); };
4085
4086 /* Line 1009 of yacc.c  */
4087 #line 4087 "type.ec"
4088         break;
4089       case 195: /* "strict_type_specifier" */
4090
4091 /* Line 1009 of yacc.c  */
4092 #line 170 "type.y"
4093         { FreeSpecifier((yyvaluep->specifier)); };
4094
4095 /* Line 1009 of yacc.c  */
4096 #line 4096 "type.ec"
4097         break;
4098       case 196: /* "struct_or_union_specifier_compound" */
4099
4100 /* Line 1009 of yacc.c  */
4101 #line 170 "type.y"
4102         { FreeSpecifier((yyvaluep->specifier)); };
4103
4104 /* Line 1009 of yacc.c  */
4105 #line 4105 "type.ec"
4106         break;
4107       case 197: /* "struct_or_union_specifier_nocompound" */
4108
4109 /* Line 1009 of yacc.c  */
4110 #line 170 "type.y"
4111         { FreeSpecifier((yyvaluep->specifier)); };
4112
4113 /* Line 1009 of yacc.c  */
4114 #line 4114 "type.ec"
4115         break;
4116       case 198: /* "template_datatype" */
4117
4118 /* Line 1009 of yacc.c  */
4119 #line 214 "type.y"
4120         { FreeTemplateDataType((yyvaluep->templateDatatype)); };
4121
4122 /* Line 1009 of yacc.c  */
4123 #line 4123 "type.ec"
4124         break;
4125       case 199: /* "template_type_argument" */
4126
4127 /* Line 1009 of yacc.c  */
4128 #line 213 "type.y"
4129         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4130
4131 /* Line 1009 of yacc.c  */
4132 #line 4132 "type.ec"
4133         break;
4134       case 200: /* "template_expression_argument" */
4135
4136 /* Line 1009 of yacc.c  */
4137 #line 213 "type.y"
4138         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4139
4140 /* Line 1009 of yacc.c  */
4141 #line 4141 "type.ec"
4142         break;
4143       case 201: /* "template_argument" */
4144
4145 /* Line 1009 of yacc.c  */
4146 #line 213 "type.y"
4147         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4148
4149 /* Line 1009 of yacc.c  */
4150 #line 4150 "type.ec"
4151         break;
4152       case 204: /* "struct_declaration_list" */
4153
4154 /* Line 1009 of yacc.c  */
4155 #line 209 "type.y"
4156         { FreeList((yyvaluep->list), FreeClassDef); };
4157
4158 /* Line 1009 of yacc.c  */
4159 #line 4159 "type.ec"
4160         break;
4161       case 205: /* "default_property" */
4162
4163 /* Line 1009 of yacc.c  */
4164 #line 189 "type.y"
4165         { FreeMemberInit((yyvaluep->memberInit)); };
4166
4167 /* Line 1009 of yacc.c  */
4168 #line 4168 "type.ec"
4169         break;
4170       case 206: /* "default_property_list" */
4171
4172 /* Line 1009 of yacc.c  */
4173 #line 210 "type.y"
4174         { FreeList((yyvaluep->list), FreeMemberInit); };
4175
4176 /* Line 1009 of yacc.c  */
4177 #line 4177 "type.ec"
4178         break;
4179       case 207: /* "property" */
4180
4181 /* Line 1009 of yacc.c  */
4182 #line 197 "type.y"
4183         { FreeProperty((yyvaluep->prop)); };
4184
4185 /* Line 1009 of yacc.c  */
4186 #line 4186 "type.ec"
4187         break;
4188       case 208: /* "struct_declaration" */
4189
4190 /* Line 1009 of yacc.c  */
4191 #line 195 "type.y"
4192         { FreeClassDef((yyvaluep->classDef)); };
4193
4194 /* Line 1009 of yacc.c  */
4195 #line 4195 "type.ec"
4196         break;
4197       case 209: /* "struct_declarator_list" */
4198
4199 /* Line 1009 of yacc.c  */
4200 #line 203 "type.y"
4201         { FreeList((yyvaluep->list), FreeDeclarator); };
4202
4203 /* Line 1009 of yacc.c  */
4204 #line 4204 "type.ec"
4205         break;
4206       case 210: /* "struct_declarator" */
4207
4208 /* Line 1009 of yacc.c  */
4209 #line 174 "type.y"
4210         { FreeDeclarator((yyvaluep->declarator)); };
4211
4212 /* Line 1009 of yacc.c  */
4213 #line 4213 "type.ec"
4214         break;
4215       case 211: /* "enum_specifier_nocompound" */
4216
4217 /* Line 1009 of yacc.c  */
4218 #line 170 "type.y"
4219         { FreeSpecifier((yyvaluep->specifier)); };
4220
4221 /* Line 1009 of yacc.c  */
4222 #line 4222 "type.ec"
4223         break;
4224       case 212: /* "enum_specifier_compound" */
4225
4226 /* Line 1009 of yacc.c  */
4227 #line 170 "type.y"
4228         { FreeSpecifier((yyvaluep->specifier)); };
4229
4230 /* Line 1009 of yacc.c  */
4231 #line 4231 "type.ec"
4232         break;
4233       case 213: /* "enumerator_list" */
4234
4235 /* Line 1009 of yacc.c  */
4236 #line 200 "type.y"
4237         { FreeList((yyvaluep->list), FreeEnumerator); };
4238
4239 /* Line 1009 of yacc.c  */
4240 #line 4240 "type.ec"
4241         break;
4242       case 214: /* "enumerator" */
4243
4244 /* Line 1009 of yacc.c  */
4245 #line 173 "type.y"
4246         { FreeEnumerator((yyvaluep->enumerator)); };
4247
4248 /* Line 1009 of yacc.c  */
4249 #line 4249 "type.ec"
4250         break;
4251       case 215: /* "direct_abstract_declarator" */
4252
4253 /* Line 1009 of yacc.c  */
4254 #line 174 "type.y"
4255         { FreeDeclarator((yyvaluep->declarator)); };
4256
4257 /* Line 1009 of yacc.c  */
4258 #line 4258 "type.ec"
4259         break;
4260       case 216: /* "direct_abstract_declarator_noarray" */
4261
4262 /* Line 1009 of yacc.c  */
4263 #line 174 "type.y"
4264         { FreeDeclarator((yyvaluep->declarator)); };
4265
4266 /* Line 1009 of yacc.c  */
4267 #line 4267 "type.ec"
4268         break;
4269       case 217: /* "abstract_declarator" */
4270
4271 /* Line 1009 of yacc.c  */
4272 #line 174 "type.y"
4273         { FreeDeclarator((yyvaluep->declarator)); };
4274
4275 /* Line 1009 of yacc.c  */
4276 #line 4276 "type.ec"
4277         break;
4278       case 218: /* "abstract_declarator_noarray" */
4279
4280 /* Line 1009 of yacc.c  */
4281 #line 174 "type.y"
4282         { FreeDeclarator((yyvaluep->declarator)); };
4283
4284 /* Line 1009 of yacc.c  */
4285 #line 4285 "type.ec"
4286         break;
4287       case 219: /* "declarator" */
4288
4289 /* Line 1009 of yacc.c  */
4290 #line 174 "type.y"
4291         { FreeDeclarator((yyvaluep->declarator)); };
4292
4293 /* Line 1009 of yacc.c  */
4294 #line 4294 "type.ec"
4295         break;
4296       case 220: /* "direct_declarator_nofunction" */
4297
4298 /* Line 1009 of yacc.c  */
4299 #line 174 "type.y"
4300         { FreeDeclarator((yyvaluep->declarator)); };
4301
4302 /* Line 1009 of yacc.c  */
4303 #line 4303 "type.ec"
4304         break;
4305       case 221: /* "declarator_function" */
4306
4307 /* Line 1009 of yacc.c  */
4308 #line 174 "type.y"
4309         { FreeDeclarator((yyvaluep->declarator)); };
4310
4311 /* Line 1009 of yacc.c  */
4312 #line 4312 "type.ec"
4313         break;
4314       case 222: /* "direct_declarator_function_start" */
4315
4316 /* Line 1009 of yacc.c  */
4317 #line 174 "type.y"
4318         { FreeDeclarator((yyvaluep->declarator)); };
4319
4320 /* Line 1009 of yacc.c  */
4321 #line 4321 "type.ec"
4322         break;
4323       case 223: /* "direct_declarator_function" */
4324
4325 /* Line 1009 of yacc.c  */
4326 #line 174 "type.y"
4327         { FreeDeclarator((yyvaluep->declarator)); };
4328
4329 /* Line 1009 of yacc.c  */
4330 #line 4330 "type.ec"
4331         break;
4332       case 224: /* "direct_declarator" */
4333
4334 /* Line 1009 of yacc.c  */
4335 #line 174 "type.y"
4336         { FreeDeclarator((yyvaluep->declarator)); };
4337
4338 /* Line 1009 of yacc.c  */
4339 #line 4339 "type.ec"
4340         break;
4341       case 225: /* "declarator_nofunction" */
4342
4343 /* Line 1009 of yacc.c  */
4344 #line 174 "type.y"
4345         { FreeDeclarator((yyvaluep->declarator)); };
4346
4347 /* Line 1009 of yacc.c  */
4348 #line 4348 "type.ec"
4349         break;
4350       case 226: /* "type_qualifier_list" */
4351
4352 /* Line 1009 of yacc.c  */
4353 #line 201 "type.y"
4354         { FreeList((yyvaluep->list), FreeSpecifier); };
4355
4356 /* Line 1009 of yacc.c  */
4357 #line 4357 "type.ec"
4358         break;
4359       case 227: /* "pointer" */
4360
4361 /* Line 1009 of yacc.c  */
4362 #line 163 "type.y"
4363         { FreePointer((yyvaluep->pointer)); };
4364
4365 /* Line 1009 of yacc.c  */
4366 #line 4366 "type.ec"
4367         break;
4368       case 228: /* "parameter_type_list" */
4369
4370 /* Line 1009 of yacc.c  */
4371 #line 207 "type.y"
4372         { FreeList((yyvaluep->list), FreeTypeName); };
4373
4374 /* Line 1009 of yacc.c  */
4375 #line 4375 "type.ec"
4376         break;
4377       case 229: /* "parameter_list" */
4378
4379 /* Line 1009 of yacc.c  */
4380 #line 207 "type.y"
4381         { FreeList((yyvaluep->list), FreeTypeName); };
4382
4383 /* Line 1009 of yacc.c  */
4384 #line 4384 "type.ec"
4385         break;
4386       case 230: /* "parameter_declaration" */
4387
4388 /* Line 1009 of yacc.c  */
4389 #line 181 "type.y"
4390         { FreeTypeName((yyvaluep->typeName)); };
4391
4392 /* Line 1009 of yacc.c  */
4393 #line 4393 "type.ec"
4394         break;
4395       case 231: /* "identifier_list" */
4396
4397 /* Line 1009 of yacc.c  */
4398 #line 207 "type.y"
4399         { FreeList((yyvaluep->list), FreeTypeName); };
4400
4401 /* Line 1009 of yacc.c  */
4402 #line 4402 "type.ec"
4403         break;
4404       case 232: /* "type_name" */
4405
4406 /* Line 1009 of yacc.c  */
4407 #line 181 "type.y"
4408         { FreeTypeName((yyvaluep->typeName)); };
4409
4410 /* Line 1009 of yacc.c  */
4411 #line 4411 "type.ec"
4412         break;
4413       case 233: /* "guess_type_name" */
4414
4415 /* Line 1009 of yacc.c  */
4416 #line 181 "type.y"
4417         { FreeTypeName((yyvaluep->typeName)); };
4418
4419 /* Line 1009 of yacc.c  */
4420 #line 4420 "type.ec"
4421         break;
4422       case 234: /* "initializer" */
4423
4424 /* Line 1009 of yacc.c  */
4425 #line 179 "type.y"
4426         { FreeInitializer((yyvaluep->initializer)); };
4427
4428 /* Line 1009 of yacc.c  */
4429 #line 4429 "type.ec"
4430         break;
4431       case 235: /* "initializer_condition" */
4432
4433 /* Line 1009 of yacc.c  */
4434 #line 179 "type.y"
4435         { FreeInitializer((yyvaluep->initializer)); };
4436
4437 /* Line 1009 of yacc.c  */
4438 #line 4438 "type.ec"
4439         break;
4440       case 236: /* "initializer_list" */
4441
4442 /* Line 1009 of yacc.c  */
4443 #line 205 "type.y"
4444         { FreeList((yyvaluep->list), FreeInitializer); };
4445
4446 /* Line 1009 of yacc.c  */
4447 #line 4447 "type.ec"
4448         break;
4449       case 237: /* "statement" */
4450
4451 /* Line 1009 of yacc.c  */
4452 #line 182 "type.y"
4453         { FreeStatement((yyvaluep->stmt)); };
4454
4455 /* Line 1009 of yacc.c  */
4456 #line 4456 "type.ec"
4457         break;
4458       case 238: /* "labeled_statement" */
4459
4460 /* Line 1009 of yacc.c  */
4461 #line 182 "type.y"
4462         { FreeStatement((yyvaluep->stmt)); };
4463
4464 /* Line 1009 of yacc.c  */
4465 #line 4465 "type.ec"
4466         break;
4467       case 239: /* "declaration_list" */
4468
4469 /* Line 1009 of yacc.c  */
4470 #line 204 "type.y"
4471         { FreeList((yyvaluep->list), FreeDeclaration); };
4472
4473 /* Line 1009 of yacc.c  */
4474 #line 4474 "type.ec"
4475         break;
4476       case 240: /* "statement_list" */
4477
4478 /* Line 1009 of yacc.c  */
4479 #line 208 "type.y"
4480         { FreeList((yyvaluep->list), FreeStatement); };
4481
4482 /* Line 1009 of yacc.c  */
4483 #line 4483 "type.ec"
4484         break;
4485       case 241: /* "compound_inside" */
4486
4487 /* Line 1009 of yacc.c  */
4488 #line 182 "type.y"
4489         { FreeStatement((yyvaluep->stmt)); };
4490
4491 /* Line 1009 of yacc.c  */
4492 #line 4492 "type.ec"
4493         break;
4494       case 242: /* "compound_start" */
4495
4496 /* Line 1009 of yacc.c  */
4497 #line 212 "type.y"
4498         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
4499
4500 /* Line 1009 of yacc.c  */
4501 #line 4501 "type.ec"
4502         break;
4503       case 243: /* "compound_statement" */
4504
4505 /* Line 1009 of yacc.c  */
4506 #line 182 "type.y"
4507         { FreeStatement((yyvaluep->stmt)); };
4508
4509 /* Line 1009 of yacc.c  */
4510 #line 4510 "type.ec"
4511         break;
4512       case 244: /* "expression_statement" */
4513
4514 /* Line 1009 of yacc.c  */
4515 #line 182 "type.y"
4516         { FreeStatement((yyvaluep->stmt)); };
4517
4518 /* Line 1009 of yacc.c  */
4519 #line 4519 "type.ec"
4520         break;
4521       case 245: /* "selection_statement" */
4522
4523 /* Line 1009 of yacc.c  */
4524 #line 182 "type.y"
4525         { FreeStatement((yyvaluep->stmt)); };
4526
4527 /* Line 1009 of yacc.c  */
4528 #line 4528 "type.ec"
4529         break;
4530       case 246: /* "iteration_statement" */
4531
4532 /* Line 1009 of yacc.c  */
4533 #line 182 "type.y"
4534         { FreeStatement((yyvaluep->stmt)); };
4535
4536 /* Line 1009 of yacc.c  */
4537 #line 4537 "type.ec"
4538         break;
4539       case 247: /* "jump_statement" */
4540
4541 /* Line 1009 of yacc.c  */
4542 #line 182 "type.y"
4543         { FreeStatement((yyvaluep->stmt)); };
4544
4545 /* Line 1009 of yacc.c  */
4546 #line 4546 "type.ec"
4547         break;
4548       case 248: /* "string_literal" */
4549
4550 /* Line 1009 of yacc.c  */
4551 #line 196 "type.y"
4552         { delete (yyvaluep->string); };
4553
4554 /* Line 1009 of yacc.c  */
4555 #line 4555 "type.ec"
4556         break;
4557       case 249: /* "instantiation_named" */
4558
4559 /* Line 1009 of yacc.c  */
4560 #line 187 "type.y"
4561         { FreeInstance((yyvaluep->instance)); };
4562
4563 /* Line 1009 of yacc.c  */
4564 #line 4564 "type.ec"
4565         break;
4566       case 251: /* "instantiation_unnamed" */
4567
4568 /* Line 1009 of yacc.c  */
4569 #line 187 "type.y"
4570         { FreeInstance((yyvaluep->instance)); };
4571
4572 /* Line 1009 of yacc.c  */
4573 #line 4573 "type.ec"
4574         break;
4575       case 253: /* "class_function_definition" */
4576
4577 /* Line 1009 of yacc.c  */
4578 #line 191 "type.y"
4579         { FreeClassFunction((yyvaluep->classFunction)); };
4580
4581 /* Line 1009 of yacc.c  */
4582 #line 4582 "type.ec"
4583         break;
4584       case 254: /* "instance_class_function_definition_start" */
4585
4586 /* Line 1009 of yacc.c  */
4587 #line 191 "type.y"
4588         { FreeClassFunction((yyvaluep->classFunction)); };
4589
4590 /* Line 1009 of yacc.c  */
4591 #line 4591 "type.ec"
4592         break;
4593       case 255: /* "instance_class_function_definition" */
4594
4595 /* Line 1009 of yacc.c  */
4596 #line 191 "type.y"
4597         { FreeClassFunction((yyvaluep->classFunction)); };
4598
4599 /* Line 1009 of yacc.c  */
4600 #line 4600 "type.ec"
4601         break;
4602       case 256: /* "data_member_initialization" */
4603
4604 /* Line 1009 of yacc.c  */
4605 #line 189 "type.y"
4606         { FreeMemberInit((yyvaluep->memberInit)); };
4607
4608 /* Line 1009 of yacc.c  */
4609 #line 4609 "type.ec"
4610         break;
4611       case 257: /* "data_member_initialization_list" */
4612
4613 /* Line 1009 of yacc.c  */
4614 #line 210 "type.y"
4615         { FreeList((yyvaluep->list), FreeMemberInit); };
4616
4617 /* Line 1009 of yacc.c  */
4618 #line 4618 "type.ec"
4619         break;
4620       case 258: /* "data_member_initialization_list_coloned" */
4621
4622 /* Line 1009 of yacc.c  */
4623 #line 210 "type.y"
4624         { FreeList((yyvaluep->list), FreeMemberInit); };
4625
4626 /* Line 1009 of yacc.c  */
4627 #line 4627 "type.ec"
4628         break;
4629       case 259: /* "members_initialization_list_coloned" */
4630
4631 /* Line 1009 of yacc.c  */
4632 #line 211 "type.y"
4633         { FreeList((yyvaluep->list), FreeMembersInit); };
4634
4635 /* Line 1009 of yacc.c  */
4636 #line 4636 "type.ec"
4637         break;
4638       case 260: /* "members_initialization_list" */
4639
4640 /* Line 1009 of yacc.c  */
4641 #line 211 "type.y"
4642         { FreeList((yyvaluep->list), FreeMembersInit); };
4643
4644 /* Line 1009 of yacc.c  */
4645 #line 4645 "type.ec"
4646         break;
4647
4648       default:
4649         break;
4650     }
4651 }
4652
4653 /* Prevent warnings from -Wmissing-prototypes.  */
4654 #ifdef YYPARSE_PARAM
4655 #if defined __STDC__ || defined __cplusplus
4656 int yyparse (void *YYPARSE_PARAM);
4657 #else
4658 int yyparse ();
4659 #endif
4660 #else /* ! YYPARSE_PARAM */
4661 #if defined __STDC__ || defined __cplusplus
4662 int yyparse (void);
4663 #else
4664 int yyparse ();
4665 #endif
4666 #endif /* ! YYPARSE_PARAM */
4667
4668
4669 /* The lookahead symbol.  */
4670 int yychar;
4671
4672 /* The semantic value of the lookahead symbol.  */
4673 YYSTYPE yylval;
4674
4675 /* Location data for the lookahead symbol.  */
4676 YYLTYPE yylloc;
4677
4678 /* Number of syntax errors so far.  */
4679 int yynerrs;
4680
4681
4682
4683 /*-------------------------.
4684 | yyparse or yypush_parse.  |
4685 `-------------------------*/
4686
4687 #ifdef YYPARSE_PARAM
4688 #if (defined __STDC__ || defined __C99__FUNC__ \
4689      || defined __cplusplus || defined _MSC_VER)
4690 int
4691 yyparse (void *YYPARSE_PARAM)
4692 #else
4693 int
4694 yyparse (YYPARSE_PARAM)
4695     void *YYPARSE_PARAM;
4696 #endif
4697 #else /* ! YYPARSE_PARAM */
4698 #if (defined __STDC__ || defined __C99__FUNC__ \
4699      || defined __cplusplus || defined _MSC_VER)
4700 int
4701 yyparse (void)
4702 #else
4703 int
4704 yyparse ()
4705
4706 #endif
4707 #endif
4708 {
4709
4710
4711     int yystate;
4712     /* Number of tokens to shift before error messages enabled.  */
4713     int yyerrstatus;
4714
4715     /* The stacks and their tools:
4716        `yyss': related to states.
4717        `yyvs': related to semantic values.
4718        `yyls': related to locations.
4719
4720        Refer to the stacks thru separate pointers, to allow yyoverflow
4721        to reallocate them elsewhere.  */
4722
4723     /* The state stack.  */
4724     yytype_int16 yyssa[YYINITDEPTH];
4725     yytype_int16 *yyss;
4726     yytype_int16 *yyssp;
4727
4728     /* The semantic value stack.  */
4729     YYSTYPE yyvsa[YYINITDEPTH];
4730     YYSTYPE *yyvs;
4731     YYSTYPE *yyvsp;
4732
4733     /* The location stack.  */
4734     YYLTYPE yylsa[YYINITDEPTH];
4735     YYLTYPE *yyls;
4736     YYLTYPE *yylsp;
4737
4738     /* The locations where the error started and ended.  */
4739     YYLTYPE yyerror_range[2];
4740
4741     YYSIZE_T yystacksize;
4742
4743   int yyn;
4744   int yyresult;
4745   /* Lookahead token as an internal (translated) token number.  */
4746   int yytoken;
4747   /* The variables used to return semantic value and location from the
4748      action routines.  */
4749   YYSTYPE yyval;
4750   YYLTYPE yyloc;
4751
4752 #if YYERROR_VERBOSE
4753   /* Buffer for error messages, and its allocated size.  */
4754   char yymsgbuf[128];
4755   char *yymsg = yymsgbuf;
4756   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4757 #endif
4758
4759 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4760
4761   /* The number of symbols on the RHS of the reduced rule.
4762      Keep to zero when no symbol should be popped.  */
4763   int yylen = 0;
4764
4765   yytoken = 0;
4766   yyss = yyssa;
4767   yyvs = yyvsa;
4768   yyls = yylsa;
4769   yystacksize = YYINITDEPTH;
4770
4771   YYDPRINTF ((stderr, "Starting parse\n"));
4772
4773   yystate = 0;
4774   yyerrstatus = 0;
4775   yynerrs = 0;
4776   yychar = YYEMPTY; /* Cause a token to be read.  */
4777
4778   /* Initialize stack pointers.
4779      Waste one element of value and location stack
4780      so that they stay on the same level as the state stack.
4781      The wasted elements are never initialized.  */
4782   yyssp = yyss;
4783   yyvsp = yyvs;
4784   yylsp = yyls;
4785
4786 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4787   /* Initialize the default location before parsing starts.  */
4788   yylloc.first_line   = yylloc.last_line   = 1;
4789   yylloc.first_column = yylloc.last_column = 1;
4790 #endif
4791
4792   goto yysetstate;
4793
4794 /*------------------------------------------------------------.
4795 | yynewstate -- Push a new state, which is found in yystate.  |
4796 `------------------------------------------------------------*/
4797  yynewstate:
4798   /* In all cases, when you get here, the value and location stacks
4799      have just been pushed.  So pushing a state here evens the stacks.  */
4800   yyssp++;
4801
4802  yysetstate:
4803   *yyssp = yystate;
4804
4805   if (yyss + yystacksize - 1 <= yyssp)
4806     {
4807       /* Get the current used size of the three stacks, in elements.  */
4808       YYSIZE_T yysize = yyssp - yyss + 1;
4809
4810 #ifdef yyoverflow
4811       {
4812         /* Give user a chance to reallocate the stack.  Use copies of
4813            these so that the &'s don't force the real ones into
4814            memory.  */
4815         YYSTYPE *yyvs1 = yyvs;
4816         yytype_int16 *yyss1 = yyss;
4817         YYLTYPE *yyls1 = yyls;
4818
4819         /* Each stack pointer address is followed by the size of the
4820            data in use in that stack, in bytes.  This used to be a
4821            conditional around just the two extra args, but that might
4822            be undefined if yyoverflow is a macro.  */
4823         yyoverflow (YY_("memory exhausted"),
4824                     &yyss1, yysize * sizeof (*yyssp),
4825                     &yyvs1, yysize * sizeof (*yyvsp),
4826                     &yyls1, yysize * sizeof (*yylsp),
4827                     &yystacksize);
4828
4829         yyls = yyls1;
4830         yyss = yyss1;
4831         yyvs = yyvs1;
4832       }
4833 #else /* no yyoverflow */
4834 # ifndef YYSTACK_RELOCATE
4835       goto yyexhaustedlab;
4836 # else
4837       /* Extend the stack our own way.  */
4838       if (YYMAXDEPTH <= yystacksize)
4839         goto yyexhaustedlab;
4840       yystacksize *= 2;
4841       if (YYMAXDEPTH < yystacksize)
4842         yystacksize = YYMAXDEPTH;
4843
4844       {
4845         yytype_int16 *yyss1 = yyss;
4846         union yyalloc *yyptr =
4847           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4848         if (! yyptr)
4849           goto yyexhaustedlab;
4850         YYSTACK_RELOCATE (yyss_alloc, yyss);
4851         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4852         YYSTACK_RELOCATE (yyls_alloc, yyls);
4853 #  undef YYSTACK_RELOCATE
4854         if (yyss1 != yyssa)
4855           YYSTACK_FREE (yyss1);
4856       }
4857 # endif
4858 #endif /* no yyoverflow */
4859
4860       yyssp = yyss + yysize - 1;
4861       yyvsp = yyvs + yysize - 1;
4862       yylsp = yyls + yysize - 1;
4863
4864       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4865                   (unsigned long int) yystacksize));
4866
4867       if (yyss + yystacksize - 1 <= yyssp)
4868         YYABORT;
4869     }
4870
4871   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4872
4873   if (yystate == YYFINAL)
4874     YYACCEPT;
4875
4876   goto yybackup;
4877
4878 /*-----------.
4879 | yybackup.  |
4880 `-----------*/
4881 yybackup:
4882
4883   /* Do appropriate processing given the current state.  Read a
4884      lookahead token if we need one and don't already have one.  */
4885
4886   /* First try to decide what to do without reference to lookahead token.  */
4887   yyn = yypact[yystate];
4888   if (yyn == YYPACT_NINF)
4889     goto yydefault;
4890
4891   /* Not known => get a lookahead token if don't already have one.  */
4892
4893   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4894   if (yychar == YYEMPTY)
4895     {
4896       YYDPRINTF ((stderr, "Reading a token: "));
4897       yychar = YYLEX;
4898     }
4899
4900   if (yychar <= YYEOF)
4901     {
4902       yychar = yytoken = YYEOF;
4903       YYDPRINTF ((stderr, "Now at end of input.\n"));
4904     }
4905   else
4906     {
4907       yytoken = YYTRANSLATE (yychar);
4908       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4909     }
4910
4911   /* If the proper action on seeing token YYTOKEN is to reduce or to
4912      detect an error, take that action.  */
4913   yyn += yytoken;
4914   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4915     goto yydefault;
4916   yyn = yytable[yyn];
4917   if (yyn <= 0)
4918     {
4919       if (yyn == 0 || yyn == YYTABLE_NINF)
4920         goto yyerrlab;
4921       yyn = -yyn;
4922       goto yyreduce;
4923     }
4924
4925   /* Count tokens shifted since error; after three, turn off error
4926      status.  */
4927   if (yyerrstatus)
4928     yyerrstatus--;
4929
4930   /* Shift the lookahead token.  */
4931   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4932
4933   /* Discard the shifted token.  */
4934   yychar = YYEMPTY;
4935
4936   yystate = yyn;
4937   *++yyvsp = yylval;
4938   *++yylsp = yylloc;
4939   goto yynewstate;
4940
4941
4942 /*-----------------------------------------------------------.
4943 | yydefault -- do the default action for the current state.  |
4944 `-----------------------------------------------------------*/
4945 yydefault:
4946   yyn = yydefact[yystate];
4947   if (yyn == 0)
4948     goto yyerrlab;
4949   goto yyreduce;
4950
4951
4952 /*-----------------------------.
4953 | yyreduce -- Do a reduction.  |
4954 `-----------------------------*/
4955 yyreduce:
4956   /* yyn is the number of a rule to reduce with.  */
4957   yylen = yyr2[yyn];
4958
4959   /* If YYLEN is nonzero, implement the default value of the action:
4960      `$$ = $1'.
4961
4962      Otherwise, the following line sets YYVAL to garbage.
4963      This behavior is undocumented and Bison
4964      users should not rely upon it.  Assigning to YYVAL
4965      unconditionally makes the parser a bit smaller, and it avoids a
4966      GCC warning that YYVAL may be used uninitialized.  */
4967   yyval = yyvsp[1-yylen];
4968
4969   /* Default location.  */
4970   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
4971   YY_REDUCE_PRINT (yyn);
4972   switch (yyn)
4973     {
4974         case 2:
4975
4976 /* Line 1464 of yacc.c  */
4977 #line 226 "type.y"
4978     {
4979       (yyval.specifier) = null;
4980       DeclClass(0, (yyvsp[(1) - (2)].id).string);
4981       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
4982       resetScannerPos(&(yylsp[(1) - (2)]).start);
4983       yyclearin;
4984       
4985       FreeIdentifier((yyvsp[(1) - (2)].id));
4986
4987       YYPOPSTACK(1);
4988       yystate = *yyssp;
4989       YY_STACK_PRINT (yyss, yyssp);
4990       YYPOPSTACK(1);
4991       yystate = *yyssp;
4992       YY_STACK_PRINT (yyss, yyssp);
4993       goto yysetstate;
4994    ;}
4995     break;
4996
4997   case 3:
4998
4999 /* Line 1464 of yacc.c  */
5000 #line 244 "type.y"
5001     {
5002       (yyval.specifier) = null;
5003    #ifdef PRECOMPILER
5004       // if($1._class && !$1._class.name)
5005       if((yyvsp[(1) - (2)].id)._class)
5006       {
5007          char name[1024];
5008          strcpy(name,  (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
5009          strcat(name, "::");
5010          strcat(name, (yyvsp[(1) - (2)].id).string);
5011          _DeclClass(0, name);
5012       }
5013       else
5014          _DeclClass(0, (yyvsp[(1) - (2)].id).string);
5015
5016       FreeIdentifier((yyvsp[(1) - (2)].id));
5017
5018       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5019       resetScannerPos(&(yylsp[(1) - (2)]).start);
5020       yyclearin;
5021
5022       YYPOPSTACK(1);
5023       yystate = *yyssp;
5024       YY_STACK_PRINT (yyss, yyssp);
5025       YYPOPSTACK(1);
5026       yystate = *yyssp;
5027       YY_STACK_PRINT (yyss, yyssp);
5028       goto yysetstate;
5029    #endif
5030    ;}
5031     break;
5032
5033   case 4:
5034
5035 /* Line 1464 of yacc.c  */
5036 #line 278 "type.y"
5037     {
5038       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5039       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5040       parseTypeError = 0;
5041       resetScannerPos(&(yylsp[(1) - (2)]).start);
5042       yyclearin;
5043       FreeIdentifier((yyvsp[(1) - (2)].id));
5044
5045       YYPOPSTACK(1);
5046       yystate = *yyssp;
5047       YY_STACK_PRINT (yyss, yyssp);
5048       YYPOPSTACK(1);
5049       yystate = *yyssp;
5050       YY_STACK_PRINT (yyss, yyssp);
5051       goto yysetstate;
5052    ;}
5053     break;
5054
5055   case 5:
5056
5057 /* Line 1464 of yacc.c  */
5058 #line 327 "type.y"
5059     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5060     break;
5061
5062   case 6:
5063
5064 /* Line 1464 of yacc.c  */
5065 #line 329 "type.y"
5066     {
5067    #ifdef PRECOMPILER
5068       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5069       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5070       resetScannerPos(&(yylsp[(1) - (2)]).start);
5071       yyclearin;
5072
5073       FreeIdentifier((yyvsp[(1) - (2)].id));
5074       FreeIdentifier((yyvsp[(2) - (2)].id));
5075
5076       YYPOPSTACK(1);
5077       yystate = *yyssp;
5078       YY_STACK_PRINT (yyss, yyssp);
5079       YYPOPSTACK(1);
5080       yystate = *yyssp;
5081       YY_STACK_PRINT (yyss, yyssp);
5082       goto yysetstate;
5083    #else
5084       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[(2) - (2)].id); yylloc = (yylsp[(1) - (2)]); 
5085       Compiler_Error($"Not a type: %s\n", (yyvsp[(1) - (2)].id).string);      
5086       yylloc = tmpLoc; (yyvsp[(2) - (2)].id).badID = (yyvsp[(1) - (2)].id); // FreeIdentifier($1);
5087    #endif
5088    ;}
5089     break;
5090
5091   case 7:
5092
5093 /* Line 1464 of yacc.c  */
5094 #line 355 "type.y"
5095     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5096     break;
5097
5098   case 9:
5099
5100 /* Line 1464 of yacc.c  */
5101 #line 360 "type.y"
5102     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
5103     break;
5104
5105   case 10:
5106
5107 /* Line 1464 of yacc.c  */
5108 #line 362 "type.y"
5109     {
5110       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
5111       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
5112       (yyval.specifier).loc = (yyloc);
5113
5114       (yylsp[(4) - (4)]).end.pos--;
5115       fileInput.Seek((yylsp[(4) - (4)]).end.pos, start); 
5116       resetScannerPos(&(yylsp[(4) - (4)]).end);
5117       yyclearin;
5118     ;}
5119     break;
5120
5121   case 11:
5122
5123 /* Line 1464 of yacc.c  */
5124 #line 379 "type.y"
5125     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5126     break;
5127
5128   case 12:
5129
5130 /* Line 1464 of yacc.c  */
5131 #line 381 "type.y"
5132     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5133     break;
5134
5135   case 13:
5136
5137 /* Line 1464 of yacc.c  */
5138 #line 386 "type.y"
5139     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; FreeList /*FreeSpecifier*/((yyvsp[(1) - (3)].list), FreeSpecifier); ;}
5140     break;
5141
5142   case 14:
5143
5144 /* Line 1464 of yacc.c  */
5145 #line 391 "type.y"
5146     { (yyval.classFunction) = MkClassFunction(null, null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; FreeList /*FreeSpecifier*/((yyvsp[(2) - (4)].list), FreeSpecifier); ;}
5147     break;
5148
5149   case 15:
5150
5151 /* Line 1464 of yacc.c  */
5152 #line 396 "type.y"
5153     { (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5154     break;
5155
5156   case 16:
5157
5158 /* Line 1464 of yacc.c  */
5159 #line 398 "type.y"
5160     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5161     break;
5162
5163   case 17:
5164
5165 /* Line 1464 of yacc.c  */
5166 #line 403 "type.y"
5167     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
5168     break;
5169
5170   case 19:
5171
5172 /* Line 1464 of yacc.c  */
5173 #line 409 "type.y"
5174     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
5175     break;
5176
5177   case 20:
5178
5179 /* Line 1464 of yacc.c  */
5180 #line 414 "type.y"
5181     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
5182     break;
5183
5184   case 21:
5185
5186 /* Line 1464 of yacc.c  */
5187 #line 416 "type.y"
5188     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5189     break;
5190
5191   case 22:
5192
5193 /* Line 1464 of yacc.c  */
5194 #line 418 "type.y"
5195     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
5196     break;
5197
5198   case 23:
5199
5200 /* Line 1464 of yacc.c  */
5201 #line 420 "type.y"
5202     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
5203     break;
5204
5205   case 24:
5206
5207 /* Line 1464 of yacc.c  */
5208 #line 421 "type.y"
5209     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
5210     break;
5211
5212   case 25:
5213
5214 /* Line 1464 of yacc.c  */
5215 #line 422 "type.y"
5216     { (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); ;}
5217     break;
5218
5219   case 26:
5220
5221 /* Line 1464 of yacc.c  */
5222 #line 424 "type.y"
5223     { 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(); ;}
5224     break;
5225
5226   case 27:
5227
5228 /* Line 1464 of yacc.c  */
5229 #line 426 "type.y"
5230     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5231     break;
5232
5233   case 28:
5234
5235 /* Line 1464 of yacc.c  */
5236 #line 427 "type.y"
5237     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5238     break;
5239
5240   case 29:
5241
5242 /* Line 1464 of yacc.c  */
5243 #line 428 "type.y"
5244     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5245     break;
5246
5247   case 30:
5248
5249 /* Line 1464 of yacc.c  */
5250 #line 429 "type.y"
5251     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5252     break;
5253
5254   case 31:
5255
5256 /* Line 1464 of yacc.c  */
5257 #line 430 "type.y"
5258     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5259     break;
5260
5261   case 32:
5262
5263 /* Line 1464 of yacc.c  */
5264 #line 431 "type.y"
5265     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5266     break;
5267
5268   case 33:
5269
5270 /* Line 1464 of yacc.c  */
5271 #line 432 "type.y"
5272     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5273     break;
5274
5275   case 34:
5276
5277 /* Line 1464 of yacc.c  */
5278 #line 433 "type.y"
5279     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5280     break;
5281
5282   case 35:
5283
5284 /* Line 1464 of yacc.c  */
5285 #line 434 "type.y"
5286     { (yyval.exp) = MkExpDummy(); ;}
5287     break;
5288
5289   case 37:
5290
5291 /* Line 1464 of yacc.c  */
5292 #line 439 "type.y"
5293     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5294     break;
5295
5296   case 38:
5297
5298 /* Line 1464 of yacc.c  */
5299 #line 440 "type.y"
5300     { (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); ;}
5301     break;
5302
5303   case 39:
5304
5305 /* Line 1464 of yacc.c  */
5306 #line 441 "type.y"
5307     { (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); ;}
5308     break;
5309
5310   case 40:
5311
5312 /* Line 1464 of yacc.c  */
5313 #line 442 "type.y"
5314     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5315     break;
5316
5317   case 41:
5318
5319 /* Line 1464 of yacc.c  */
5320 #line 443 "type.y"
5321     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5322     break;
5323
5324   case 42:
5325
5326 /* Line 1464 of yacc.c  */
5327 #line 444 "type.y"
5328     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5329     break;
5330
5331   case 43:
5332
5333 /* Line 1464 of yacc.c  */
5334 #line 445 "type.y"
5335     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5336     break;
5337
5338   case 44:
5339
5340 /* Line 1464 of yacc.c  */
5341 #line 449 "type.y"
5342     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5343     break;
5344
5345   case 46:
5346
5347 /* Line 1464 of yacc.c  */
5348 #line 455 "type.y"
5349     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5350     break;
5351
5352   case 47:
5353
5354 /* Line 1464 of yacc.c  */
5355 #line 456 "type.y"
5356     { (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); ;}
5357     break;
5358
5359   case 48:
5360
5361 /* Line 1464 of yacc.c  */
5362 #line 457 "type.y"
5363     { (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); ;}
5364     break;
5365
5366   case 49:
5367
5368 /* Line 1464 of yacc.c  */
5369 #line 458 "type.y"
5370     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5371     break;
5372
5373   case 50:
5374
5375 /* Line 1464 of yacc.c  */
5376 #line 459 "type.y"
5377     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5378     break;
5379
5380   case 51:
5381
5382 /* Line 1464 of yacc.c  */
5383 #line 460 "type.y"
5384     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5385     break;
5386
5387   case 52:
5388
5389 /* Line 1464 of yacc.c  */
5390 #line 461 "type.y"
5391     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5392     break;
5393
5394   case 53:
5395
5396 /* Line 1464 of yacc.c  */
5397 #line 465 "type.y"
5398     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5399     break;
5400
5401   case 54:
5402
5403 /* Line 1464 of yacc.c  */
5404 #line 466 "type.y"
5405     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5406     break;
5407
5408   case 55:
5409
5410 /* Line 1464 of yacc.c  */
5411 #line 467 "type.y"
5412     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5413     break;
5414
5415   case 56:
5416
5417 /* Line 1464 of yacc.c  */
5418 #line 468 "type.y"
5419     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5420     break;
5421
5422   case 57:
5423
5424 /* Line 1464 of yacc.c  */
5425 #line 472 "type.y"
5426     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5427     break;
5428
5429   case 58:
5430
5431 /* Line 1464 of yacc.c  */
5432 #line 473 "type.y"
5433     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5434     break;
5435
5436   case 59:
5437
5438 /* Line 1464 of yacc.c  */
5439 #line 474 "type.y"
5440     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5441     break;
5442
5443   case 60:
5444
5445 /* Line 1464 of yacc.c  */
5446 #line 475 "type.y"
5447     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5448     break;
5449
5450   case 61:
5451
5452 /* Line 1464 of yacc.c  */
5453 #line 476 "type.y"
5454     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5455     break;
5456
5457   case 62:
5458
5459 /* Line 1464 of yacc.c  */
5460 #line 477 "type.y"
5461     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5462     break;
5463
5464   case 63:
5465
5466 /* Line 1464 of yacc.c  */
5467 #line 478 "type.y"
5468     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5469     break;
5470
5471   case 64:
5472
5473 /* Line 1464 of yacc.c  */
5474 #line 479 "type.y"
5475     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5476     break;
5477
5478   case 65:
5479
5480 /* Line 1464 of yacc.c  */
5481 #line 480 "type.y"
5482     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5483     break;
5484
5485   case 70:
5486
5487 /* Line 1464 of yacc.c  */
5488 #line 494 "type.y"
5489     { (yyval.i) = '&'; ;}
5490     break;
5491
5492   case 71:
5493
5494 /* Line 1464 of yacc.c  */
5495 #line 495 "type.y"
5496     { (yyval.i) = '*'; ;}
5497     break;
5498
5499   case 72:
5500
5501 /* Line 1464 of yacc.c  */
5502 #line 496 "type.y"
5503     { (yyval.i) = '+'; ;}
5504     break;
5505
5506   case 73:
5507
5508 /* Line 1464 of yacc.c  */
5509 #line 497 "type.y"
5510     { (yyval.i) = '-'; ;}
5511     break;
5512
5513   case 74:
5514
5515 /* Line 1464 of yacc.c  */
5516 #line 498 "type.y"
5517     { (yyval.i) = '~'; ;}
5518     break;
5519
5520   case 75:
5521
5522 /* Line 1464 of yacc.c  */
5523 #line 499 "type.y"
5524     { (yyval.i) = '!'; ;}
5525     break;
5526
5527   case 76:
5528
5529 /* Line 1464 of yacc.c  */
5530 #line 500 "type.y"
5531     { (yyval.i) = DELETE; ;}
5532     break;
5533
5534   case 78:
5535
5536 /* Line 1464 of yacc.c  */
5537 #line 505 "type.y"
5538     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5539     break;
5540
5541   case 80:
5542
5543 /* Line 1464 of yacc.c  */
5544 #line 510 "type.y"
5545     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5546     break;
5547
5548   case 81:
5549
5550 /* Line 1464 of yacc.c  */
5551 #line 511 "type.y"
5552     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5553     break;
5554
5555   case 82:
5556
5557 /* Line 1464 of yacc.c  */
5558 #line 512 "type.y"
5559     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5560     break;
5561
5562   case 84:
5563
5564 /* Line 1464 of yacc.c  */
5565 #line 517 "type.y"
5566     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5567     break;
5568
5569   case 85:
5570
5571 /* Line 1464 of yacc.c  */
5572 #line 518 "type.y"
5573     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5574     break;
5575
5576   case 87:
5577
5578 /* Line 1464 of yacc.c  */
5579 #line 523 "type.y"
5580     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5581     break;
5582
5583   case 88:
5584
5585 /* Line 1464 of yacc.c  */
5586 #line 524 "type.y"
5587     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5588     break;
5589
5590   case 89:
5591
5592 /* Line 1464 of yacc.c  */
5593 #line 529 "type.y"
5594     {
5595       (yyval.exp) = (yyvsp[(1) - (2)].exp);
5596       skipErrors = true;
5597    ;}
5598     break;
5599
5600   case 91:
5601
5602 /* Line 1464 of yacc.c  */
5603 #line 537 "type.y"
5604     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
5605     break;
5606
5607   case 92:
5608
5609 /* Line 1464 of yacc.c  */
5610 #line 538 "type.y"
5611     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5612     break;
5613
5614   case 93:
5615
5616 /* Line 1464 of yacc.c  */
5617 #line 539 "type.y"
5618     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5619     break;
5620
5621   case 94:
5622
5623 /* Line 1464 of yacc.c  */
5624 #line 540 "type.y"
5625     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5626     break;
5627
5628   case 96:
5629
5630 /* Line 1464 of yacc.c  */
5631 #line 545 "type.y"
5632     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5633     break;
5634
5635   case 97:
5636
5637 /* Line 1464 of yacc.c  */
5638 #line 546 "type.y"
5639     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5640     break;
5641
5642   case 99:
5643
5644 /* Line 1464 of yacc.c  */
5645 #line 551 "type.y"
5646     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5647     break;
5648
5649   case 101:
5650
5651 /* Line 1464 of yacc.c  */
5652 #line 556 "type.y"
5653     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5654     break;
5655
5656   case 103:
5657
5658 /* Line 1464 of yacc.c  */
5659 #line 561 "type.y"
5660     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5661     break;
5662
5663   case 105:
5664
5665 /* Line 1464 of yacc.c  */
5666 #line 566 "type.y"
5667     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5668     break;
5669
5670   case 107:
5671
5672 /* Line 1464 of yacc.c  */
5673 #line 571 "type.y"
5674     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5675     break;
5676
5677   case 109:
5678
5679 /* Line 1464 of yacc.c  */
5680 #line 576 "type.y"
5681     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5682     break;
5683
5684   case 111:
5685
5686 /* Line 1464 of yacc.c  */
5687 #line 581 "type.y"
5688     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5689     break;
5690
5691   case 112:
5692
5693 /* Line 1464 of yacc.c  */
5694 #line 582 "type.y"
5695     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5696     break;
5697
5698   case 113:
5699
5700 /* Line 1464 of yacc.c  */
5701 #line 586 "type.y"
5702     { (yyval.i) = '='; ;}
5703     break;
5704
5705   case 114:
5706
5707 /* Line 1464 of yacc.c  */
5708 #line 587 "type.y"
5709     { (yyval.i) = MUL_ASSIGN; ;}
5710     break;
5711
5712   case 115:
5713
5714 /* Line 1464 of yacc.c  */
5715 #line 588 "type.y"
5716     { (yyval.i) = DIV_ASSIGN; ;}
5717     break;
5718
5719   case 116:
5720
5721 /* Line 1464 of yacc.c  */
5722 #line 589 "type.y"
5723     { (yyval.i) = MOD_ASSIGN; ;}
5724     break;
5725
5726   case 117:
5727
5728 /* Line 1464 of yacc.c  */
5729 #line 590 "type.y"
5730     { (yyval.i) = ADD_ASSIGN; ;}
5731     break;
5732
5733   case 118:
5734
5735 /* Line 1464 of yacc.c  */
5736 #line 591 "type.y"
5737     { (yyval.i) = SUB_ASSIGN; ;}
5738     break;
5739
5740   case 119:
5741
5742 /* Line 1464 of yacc.c  */
5743 #line 592 "type.y"
5744     { (yyval.i) = LEFT_ASSIGN; ;}
5745     break;
5746
5747   case 120:
5748
5749 /* Line 1464 of yacc.c  */
5750 #line 593 "type.y"
5751     { (yyval.i) = RIGHT_ASSIGN; ;}
5752     break;
5753
5754   case 121:
5755
5756 /* Line 1464 of yacc.c  */
5757 #line 594 "type.y"
5758     { (yyval.i) = AND_ASSIGN; ;}
5759     break;
5760
5761   case 122:
5762
5763 /* Line 1464 of yacc.c  */
5764 #line 595 "type.y"
5765     { (yyval.i) = XOR_ASSIGN; ;}
5766     break;
5767
5768   case 123:
5769
5770 /* Line 1464 of yacc.c  */
5771 #line 596 "type.y"
5772     { (yyval.i) = OR_ASSIGN; ;}
5773     break;
5774
5775   case 124:
5776
5777 /* Line 1464 of yacc.c  */
5778 #line 600 "type.y"
5779     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5780     break;
5781
5782   case 125:
5783
5784 /* Line 1464 of yacc.c  */
5785 #line 601 "type.y"
5786     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5787     break;
5788
5789   case 127:
5790
5791 /* Line 1464 of yacc.c  */
5792 #line 609 "type.y"
5793     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5794     break;
5795
5796   case 128:
5797
5798 /* Line 1464 of yacc.c  */
5799 #line 610 "type.y"
5800     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5801     break;
5802
5803   case 129:
5804
5805 /* Line 1464 of yacc.c  */
5806 #line 611 "type.y"
5807     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5808     break;
5809
5810   case 130:
5811
5812 /* Line 1464 of yacc.c  */
5813 #line 612 "type.y"
5814     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5815     break;
5816
5817   case 131:
5818
5819 /* Line 1464 of yacc.c  */
5820 #line 616 "type.y"
5821     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5822     break;
5823
5824   case 132:
5825
5826 /* Line 1464 of yacc.c  */
5827 #line 617 "type.y"
5828     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5829     break;
5830
5831   case 133:
5832
5833 /* Line 1464 of yacc.c  */
5834 #line 618 "type.y"
5835     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5836     break;
5837
5838   case 134:
5839
5840 /* Line 1464 of yacc.c  */
5841 #line 619 "type.y"
5842     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5843     break;
5844
5845   case 135:
5846
5847 /* Line 1464 of yacc.c  */
5848 #line 620 "type.y"
5849     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5850     break;
5851
5852   case 136:
5853
5854 /* Line 1464 of yacc.c  */
5855 #line 621 "type.y"
5856     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5857     break;
5858
5859   case 137:
5860
5861 /* Line 1464 of yacc.c  */
5862 #line 622 "type.y"
5863     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5864     break;
5865
5866   case 138:
5867
5868 /* Line 1464 of yacc.c  */
5869 #line 623 "type.y"
5870     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5871     break;
5872
5873   case 139:
5874
5875 /* Line 1464 of yacc.c  */
5876 #line 627 "type.y"
5877     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5878     break;
5879
5880   case 140:
5881
5882 /* Line 1464 of yacc.c  */
5883 #line 628 "type.y"
5884     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5885     break;
5886
5887   case 141:
5888
5889 /* Line 1464 of yacc.c  */
5890 #line 629 "type.y"
5891     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5892     break;
5893
5894   case 142:
5895
5896 /* Line 1464 of yacc.c  */
5897 #line 630 "type.y"
5898     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5899     break;
5900
5901   case 143:
5902
5903 /* Line 1464 of yacc.c  */
5904 #line 631 "type.y"
5905     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5906     break;
5907
5908   case 144:
5909
5910 /* Line 1464 of yacc.c  */
5911 #line 632 "type.y"
5912     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5913     break;
5914
5915   case 145:
5916
5917 /* Line 1464 of yacc.c  */
5918 #line 633 "type.y"
5919     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5920     break;
5921
5922   case 146:
5923
5924 /* Line 1464 of yacc.c  */
5925 #line 634 "type.y"
5926     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5927     break;
5928
5929   case 147:
5930
5931 /* Line 1464 of yacc.c  */
5932 #line 635 "type.y"
5933     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5934     break;
5935
5936   case 148:
5937
5938 /* Line 1464 of yacc.c  */
5939 #line 636 "type.y"
5940     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5941     break;
5942
5943   case 149:
5944
5945 /* Line 1464 of yacc.c  */
5946 #line 640 "type.y"
5947     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5948     break;
5949
5950   case 150:
5951
5952 /* Line 1464 of yacc.c  */
5953 #line 641 "type.y"
5954     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5955     break;
5956
5957   case 151:
5958
5959 /* Line 1464 of yacc.c  */
5960 #line 642 "type.y"
5961     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5962     break;
5963
5964   case 152:
5965
5966 /* Line 1464 of yacc.c  */
5967 #line 643 "type.y"
5968     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5969     break;
5970
5971   case 153:
5972
5973 /* Line 1464 of yacc.c  */
5974 #line 644 "type.y"
5975     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5976     break;
5977
5978   case 154:
5979
5980 /* Line 1464 of yacc.c  */
5981 #line 645 "type.y"
5982     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5983     break;
5984
5985   case 155:
5986
5987 /* Line 1464 of yacc.c  */
5988 #line 646 "type.y"
5989     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5990     break;
5991
5992   case 156:
5993
5994 /* Line 1464 of yacc.c  */
5995 #line 647 "type.y"
5996     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5997     break;
5998
5999   case 157:
6000
6001 /* Line 1464 of yacc.c  */
6002 #line 648 "type.y"
6003     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6004     break;
6005
6006   case 158:
6007
6008 /* Line 1464 of yacc.c  */
6009 #line 649 "type.y"
6010     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6011     break;
6012
6013   case 159:
6014
6015 /* Line 1464 of yacc.c  */
6016 #line 653 "type.y"
6017     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6018     break;
6019
6020   case 160:
6021
6022 /* Line 1464 of yacc.c  */
6023 #line 654 "type.y"
6024     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6025     break;
6026
6027   case 161:
6028
6029 /* Line 1464 of yacc.c  */
6030 #line 655 "type.y"
6031     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6032     break;
6033
6034   case 162:
6035
6036 /* Line 1464 of yacc.c  */
6037 #line 656 "type.y"
6038     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6039     break;
6040
6041   case 163:
6042
6043 /* Line 1464 of yacc.c  */
6044 #line 657 "type.y"
6045     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6046     break;
6047
6048   case 164:
6049
6050 /* Line 1464 of yacc.c  */
6051 #line 658 "type.y"
6052     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6053     break;
6054
6055   case 165:
6056
6057 /* Line 1464 of yacc.c  */
6058 #line 659 "type.y"
6059     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6060     break;
6061
6062   case 166:
6063
6064 /* Line 1464 of yacc.c  */
6065 #line 660 "type.y"
6066     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6067     break;
6068
6069   case 167:
6070
6071 /* Line 1464 of yacc.c  */
6072 #line 661 "type.y"
6073     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6074     break;
6075
6076   case 168:
6077
6078 /* Line 1464 of yacc.c  */
6079 #line 662 "type.y"
6080     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6081     break;
6082
6083   case 169:
6084
6085 /* Line 1464 of yacc.c  */
6086 #line 663 "type.y"
6087     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6088     break;
6089
6090   case 170:
6091
6092 /* Line 1464 of yacc.c  */
6093 #line 664 "type.y"
6094     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6095     break;
6096
6097   case 171:
6098
6099 /* Line 1464 of yacc.c  */
6100 #line 668 "type.y"
6101     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
6102     break;
6103
6104   case 172:
6105
6106 /* Line 1464 of yacc.c  */
6107 #line 669 "type.y"
6108     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6109     break;
6110
6111   case 173:
6112
6113 /* Line 1464 of yacc.c  */
6114 #line 673 "type.y"
6115     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6116     break;
6117
6118   case 174:
6119
6120 /* Line 1464 of yacc.c  */
6121 #line 674 "type.y"
6122     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6123     break;
6124
6125   case 175:
6126
6127 /* Line 1464 of yacc.c  */
6128 #line 675 "type.y"
6129     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6130     break;
6131
6132   case 176:
6133
6134 /* Line 1464 of yacc.c  */
6135 #line 676 "type.y"
6136     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6137     break;
6138
6139   case 177:
6140
6141 /* Line 1464 of yacc.c  */
6142 #line 677 "type.y"
6143     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6144     break;
6145
6146   case 178:
6147
6148 /* Line 1464 of yacc.c  */
6149 #line 678 "type.y"
6150     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6151     break;
6152
6153   case 179:
6154
6155 /* Line 1464 of yacc.c  */
6156 #line 679 "type.y"
6157     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6158     break;
6159
6160   case 180:
6161
6162 /* Line 1464 of yacc.c  */
6163 #line 680 "type.y"
6164     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
6165     break;
6166
6167   case 181:
6168
6169 /* Line 1464 of yacc.c  */
6170 #line 682 "type.y"
6171     {
6172          // if($1._class && !$1._class.name)
6173          if((yyvsp[(1) - (4)].id)._class)
6174          {
6175             char name[1024];
6176             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6177             strcat(name, "::");
6178             strcat(name, (yyvsp[(1) - (4)].id).string);
6179             _DeclClass(0, name);
6180          }
6181          else
6182             _DeclClass(0, (yyvsp[(1) - (4)].id).string);
6183
6184          (yyval.list) = MkList();
6185          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6186          FreeIdentifier((yyvsp[(1) - (4)].id));
6187       ;}
6188     break;
6189
6190   case 182:
6191
6192 /* Line 1464 of yacc.c  */
6193 #line 700 "type.y"
6194     {
6195          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6196          {
6197             char name[1024];
6198             strcpy(name, "::");
6199             strcat(name, (yyvsp[(2) - (5)].id).string);
6200             _DeclClass(0, name);
6201          }
6202          else
6203             _DeclClass(0, (yyvsp[(2) - (5)].id).string);
6204          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6205          FreeIdentifier((yyvsp[(2) - (5)].id));
6206       ;}
6207     break;
6208
6209   case 183:
6210
6211 /* Line 1464 of yacc.c  */
6212 #line 716 "type.y"
6213     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6214     break;
6215
6216   case 184:
6217
6218 /* Line 1464 of yacc.c  */
6219 #line 717 "type.y"
6220     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6221     break;
6222
6223   case 185:
6224
6225 /* Line 1464 of yacc.c  */
6226 #line 718 "type.y"
6227     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6228     break;
6229
6230   case 186:
6231
6232 /* Line 1464 of yacc.c  */
6233 #line 719 "type.y"
6234     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6235     break;
6236
6237   case 187:
6238
6239 /* Line 1464 of yacc.c  */
6240 #line 720 "type.y"
6241     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6242     break;
6243
6244   case 188:
6245
6246 /* Line 1464 of yacc.c  */
6247 #line 721 "type.y"
6248     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6249     break;
6250
6251   case 189:
6252
6253 /* Line 1464 of yacc.c  */
6254 #line 722 "type.y"
6255     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6256     break;
6257
6258   case 190:
6259
6260 /* Line 1464 of yacc.c  */
6261 #line 723 "type.y"
6262     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6263     break;
6264
6265   case 191:
6266
6267 /* Line 1464 of yacc.c  */
6268 #line 724 "type.y"
6269     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6270     break;
6271
6272   case 192:
6273
6274 /* Line 1464 of yacc.c  */
6275 #line 725 "type.y"
6276     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6277     break;
6278
6279   case 193:
6280
6281 /* Line 1464 of yacc.c  */
6282 #line 726 "type.y"
6283     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6284     break;
6285
6286   case 194:
6287
6288 /* Line 1464 of yacc.c  */
6289 #line 727 "type.y"
6290     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
6291     break;
6292
6293   case 195:
6294
6295 /* Line 1464 of yacc.c  */
6296 #line 729 "type.y"
6297     {
6298          // if($1._class && !$1._class.name)
6299          if((yyvsp[(1) - (4)].id)._class)
6300          {
6301             char name[1024];
6302             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6303             strcat(name, "::");
6304             strcat(name, (yyvsp[(1) - (4)].id).string);
6305             _DeclClass(0, name);
6306          }
6307          else
6308             _DeclClass(0, (yyvsp[(1) - (4)].id).string);
6309
6310          (yyval.list) = MkList();
6311          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6312          FreeIdentifier((yyvsp[(1) - (4)].id));
6313       ;}
6314     break;
6315
6316   case 196:
6317
6318 /* Line 1464 of yacc.c  */
6319 #line 747 "type.y"
6320     {
6321          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6322          {
6323             char name[1024];
6324             strcpy(name, "::");
6325             strcat(name, (yyvsp[(2) - (5)].id).string);
6326             _DeclClass(0, name);
6327          }
6328          else
6329             _DeclClass(0, (yyvsp[(2) - (5)].id).string);
6330          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6331          FreeIdentifier((yyvsp[(2) - (5)].id));
6332       ;}
6333     break;
6334
6335   case 197:
6336
6337 /* Line 1464 of yacc.c  */
6338 #line 763 "type.y"
6339     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
6340     break;
6341
6342   case 198:
6343
6344 /* Line 1464 of yacc.c  */
6345 #line 764 "type.y"
6346     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
6347     break;
6348
6349   case 199:
6350
6351 /* Line 1464 of yacc.c  */
6352 #line 768 "type.y"
6353     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
6354     break;
6355
6356   case 200:
6357
6358 /* Line 1464 of yacc.c  */
6359 #line 769 "type.y"
6360     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
6361     break;
6362
6363   case 201:
6364
6365 /* Line 1464 of yacc.c  */
6366 #line 773 "type.y"
6367     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
6368     break;
6369
6370   case 202:
6371
6372 /* Line 1464 of yacc.c  */
6373 #line 774 "type.y"
6374     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
6375     break;
6376
6377   case 203:
6378
6379 /* Line 1464 of yacc.c  */
6380 #line 775 "type.y"
6381     { (yyval.specifier) = MkSpecifier(STATIC); ;}
6382     break;
6383
6384   case 204:
6385
6386 /* Line 1464 of yacc.c  */
6387 #line 776 "type.y"
6388     { (yyval.specifier) = MkSpecifier(AUTO); ;}
6389     break;
6390
6391   case 205:
6392
6393 /* Line 1464 of yacc.c  */
6394 #line 777 "type.y"
6395     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
6396     break;
6397
6398   case 206:
6399
6400 /* Line 1464 of yacc.c  */
6401 #line 781 "type.y"
6402     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6403     break;
6404
6405   case 207:
6406
6407 /* Line 1464 of yacc.c  */
6408 #line 782 "type.y"
6409     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6410     break;
6411
6412   case 208:
6413
6414 /* Line 1464 of yacc.c  */
6415 #line 783 "type.y"
6416     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
6417     break;
6418
6419   case 209:
6420
6421 /* Line 1464 of yacc.c  */
6422 #line 787 "type.y"
6423     { (yyval.i) = ATTRIB; ;}
6424     break;
6425
6426   case 210:
6427
6428 /* Line 1464 of yacc.c  */
6429 #line 788 "type.y"
6430     { (yyval.i) = ATTRIB_DEP; ;}
6431     break;
6432
6433   case 211:
6434
6435 /* Line 1464 of yacc.c  */
6436 #line 789 "type.y"
6437     { (yyval.i) = __ATTRIB; ;}
6438     break;
6439
6440   case 212:
6441
6442 /* Line 1464 of yacc.c  */
6443 #line 794 "type.y"
6444     { (yyval.string)  = CopyString(yytext); ;}
6445     break;
6446
6447   case 213:
6448
6449 /* Line 1464 of yacc.c  */
6450 #line 795 "type.y"
6451     { (yyval.string)  = CopyString(yytext); ;}
6452     break;
6453
6454   case 214:
6455
6456 /* Line 1464 of yacc.c  */
6457 #line 796 "type.y"
6458     { (yyval.string)  = CopyString(yytext); ;}
6459     break;
6460
6461   case 215:
6462
6463 /* Line 1464 of yacc.c  */
6464 #line 797 "type.y"
6465     { (yyval.string)  = CopyString(yytext); ;}
6466     break;
6467
6468   case 216:
6469
6470 /* Line 1464 of yacc.c  */
6471 #line 798 "type.y"
6472     { (yyval.string)  = CopyString(yytext); ;}
6473     break;
6474
6475   case 217:
6476
6477 /* Line 1464 of yacc.c  */
6478 #line 802 "type.y"
6479     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
6480     break;
6481
6482   case 218:
6483
6484 /* Line 1464 of yacc.c  */
6485 #line 803 "type.y"
6486     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
6487     break;
6488
6489   case 219:
6490
6491 /* Line 1464 of yacc.c  */
6492 #line 807 "type.y"
6493     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
6494     break;
6495
6496   case 220:
6497
6498 /* Line 1464 of yacc.c  */
6499 #line 808 "type.y"
6500     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
6501     break;
6502
6503   case 221:
6504
6505 /* Line 1464 of yacc.c  */
6506 #line 809 "type.y"
6507     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
6508     break;
6509
6510   case 222:
6511
6512 /* Line 1464 of yacc.c  */
6513 #line 813 "type.y"
6514     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
6515     break;
6516
6517   case 223:
6518
6519 /* Line 1464 of yacc.c  */
6520 #line 814 "type.y"
6521     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
6522     break;
6523
6524   case 224:
6525
6526 /* Line 1464 of yacc.c  */
6527 #line 818 "type.y"
6528     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
6529     break;
6530
6531   case 225:
6532
6533 /* Line 1464 of yacc.c  */
6534 #line 822 "type.y"
6535     { (yyval.specifier) = MkSpecifier(CONST); ;}
6536     break;
6537
6538   case 226:
6539
6540 /* Line 1464 of yacc.c  */
6541 #line 823 "type.y"
6542     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
6543     break;
6544
6545   case 227:
6546
6547 /* Line 1464 of yacc.c  */
6548 #line 824 "type.y"
6549     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
6550     break;
6551
6552   case 228:
6553
6554 /* Line 1464 of yacc.c  */
6555 #line 829 "type.y"
6556     { (yyval.specifier) = MkSpecifier(VOID); ;}
6557     break;
6558
6559   case 229:
6560
6561 /* Line 1464 of yacc.c  */
6562 #line 830 "type.y"
6563     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6564     break;
6565
6566   case 230:
6567
6568 /* Line 1464 of yacc.c  */
6569 #line 831 "type.y"
6570     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6571     break;
6572
6573   case 231:
6574
6575 /* Line 1464 of yacc.c  */
6576 #line 832 "type.y"
6577     { (yyval.specifier) = MkSpecifier(INT); ;}
6578     break;
6579
6580   case 232:
6581
6582 /* Line 1464 of yacc.c  */
6583 #line 833 "type.y"
6584     { (yyval.specifier) = MkSpecifier(UINT); ;}
6585     break;
6586
6587   case 233:
6588
6589 /* Line 1464 of yacc.c  */
6590 #line 834 "type.y"
6591     { (yyval.specifier) = MkSpecifier(INT64); ;}
6592     break;
6593
6594   case 234:
6595
6596 /* Line 1464 of yacc.c  */
6597 #line 835 "type.y"
6598     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6599     break;
6600
6601   case 235:
6602
6603 /* Line 1464 of yacc.c  */
6604 #line 836 "type.y"
6605     { (yyval.specifier) = MkSpecifier(LONG); ;}
6606     break;
6607
6608   case 236:
6609
6610 /* Line 1464 of yacc.c  */
6611 #line 837 "type.y"
6612     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6613     break;
6614
6615   case 237:
6616
6617 /* Line 1464 of yacc.c  */
6618 #line 838 "type.y"
6619     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6620     break;
6621
6622   case 238:
6623
6624 /* Line 1464 of yacc.c  */
6625 #line 839 "type.y"
6626     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6627     break;
6628
6629   case 239:
6630
6631 /* Line 1464 of yacc.c  */
6632 #line 840 "type.y"
6633     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6634     break;
6635
6636   case 240:
6637
6638 /* Line 1464 of yacc.c  */
6639 #line 841 "type.y"
6640     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6641     break;
6642
6643   case 244:
6644
6645 /* Line 1464 of yacc.c  */
6646 #line 845 "type.y"
6647     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6648     break;
6649
6650   case 245:
6651
6652 /* Line 1464 of yacc.c  */
6653 #line 846 "type.y"
6654     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6655     break;
6656
6657   case 246:
6658
6659 /* Line 1464 of yacc.c  */
6660 #line 847 "type.y"
6661     { _DeclClass(0, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6662     break;
6663
6664   case 247:
6665
6666 /* Line 1464 of yacc.c  */
6667 #line 848 "type.y"
6668     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6669     break;
6670
6671   case 248:
6672
6673 /* Line 1464 of yacc.c  */
6674 #line 849 "type.y"
6675     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
6676     break;
6677
6678   case 249:
6679
6680 /* Line 1464 of yacc.c  */
6681 #line 850 "type.y"
6682     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
6683     break;
6684
6685   case 250:
6686
6687 /* Line 1464 of yacc.c  */
6688 #line 854 "type.y"
6689     { (yyval.specifier) = MkSpecifier(VOID); ;}
6690     break;
6691
6692   case 251:
6693
6694 /* Line 1464 of yacc.c  */
6695 #line 855 "type.y"
6696     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6697     break;
6698
6699   case 252:
6700
6701 /* Line 1464 of yacc.c  */
6702 #line 856 "type.y"
6703     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6704     break;
6705
6706   case 253:
6707
6708 /* Line 1464 of yacc.c  */
6709 #line 857 "type.y"
6710     { (yyval.specifier) = MkSpecifier(INT); ;}
6711     break;
6712
6713   case 254:
6714
6715 /* Line 1464 of yacc.c  */
6716 #line 858 "type.y"
6717     { (yyval.specifier) = MkSpecifier(UINT); ;}
6718     break;
6719
6720   case 255:
6721
6722 /* Line 1464 of yacc.c  */
6723 #line 859 "type.y"
6724     { (yyval.specifier) = MkSpecifier(INT64); ;}
6725     break;
6726
6727   case 256:
6728
6729 /* Line 1464 of yacc.c  */
6730 #line 860 "type.y"
6731     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6732     break;
6733
6734   case 257:
6735
6736 /* Line 1464 of yacc.c  */
6737 #line 861 "type.y"
6738     { (yyval.specifier) = MkSpecifier(LONG); ;}
6739     break;
6740
6741   case 258:
6742
6743 /* Line 1464 of yacc.c  */
6744 #line 862 "type.y"
6745     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6746     break;
6747
6748   case 259:
6749
6750 /* Line 1464 of yacc.c  */
6751 #line 863 "type.y"
6752     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6753     break;
6754
6755   case 260:
6756
6757 /* Line 1464 of yacc.c  */
6758 #line 864 "type.y"
6759     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6760     break;
6761
6762   case 261:
6763
6764 /* Line 1464 of yacc.c  */
6765 #line 865 "type.y"
6766     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6767     break;
6768
6769   case 262:
6770
6771 /* Line 1464 of yacc.c  */
6772 #line 866 "type.y"
6773     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6774     break;
6775
6776   case 266:
6777
6778 /* Line 1464 of yacc.c  */
6779 #line 870 "type.y"
6780     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6781     break;
6782
6783   case 267:
6784
6785 /* Line 1464 of yacc.c  */
6786 #line 871 "type.y"
6787     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6788     break;
6789
6790   case 268:
6791
6792 /* Line 1464 of yacc.c  */
6793 #line 872 "type.y"
6794     { _DeclClass(0, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6795     break;
6796
6797   case 269:
6798
6799 /* Line 1464 of yacc.c  */
6800 #line 873 "type.y"
6801     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6802     break;
6803
6804   case 270:
6805
6806 /* Line 1464 of yacc.c  */
6807 #line 878 "type.y"
6808     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); ;}
6809     break;
6810
6811   case 271:
6812
6813 /* Line 1464 of yacc.c  */
6814 #line 879 "type.y"
6815     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
6816     break;
6817
6818   case 272:
6819
6820 /* Line 1464 of yacc.c  */
6821 #line 880 "type.y"
6822     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (4)].id).string); ;}
6823     break;
6824
6825   case 273:
6826
6827 /* Line 1464 of yacc.c  */
6828 #line 881 "type.y"
6829     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
6830     break;
6831
6832   case 274:
6833
6834 /* Line 1464 of yacc.c  */
6835 #line 883 "type.y"
6836     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
6837     break;
6838
6839   case 275:
6840
6841 /* Line 1464 of yacc.c  */
6842 #line 885 "type.y"
6843     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].id).string); ;}
6844     break;
6845
6846   case 276:
6847
6848 /* Line 1464 of yacc.c  */
6849 #line 886 "type.y"
6850     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
6851     break;
6852
6853   case 277:
6854
6855 /* Line 1464 of yacc.c  */
6856 #line 887 "type.y"
6857     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), (yyvsp[(3) - (5)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(3) - (5)].id).string); ;}
6858     break;
6859
6860   case 278:
6861
6862 /* Line 1464 of yacc.c  */
6863 #line 888 "type.y"
6864     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
6865     break;
6866
6867   case 279:
6868
6869 /* Line 1464 of yacc.c  */
6870 #line 890 "type.y"
6871     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (6)].specifierType), MkIdentifier((yyvsp[(3) - (6)].specifier).name), (yyvsp[(5) - (6)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (6)].extDecl); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); ;}
6872     break;
6873
6874   case 280:
6875
6876 /* Line 1464 of yacc.c  */
6877 #line 894 "type.y"
6878     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
6879     break;
6880
6881   case 281:
6882
6883 /* Line 1464 of yacc.c  */
6884 #line 896 "type.y"
6885     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
6886     break;
6887
6888   case 282:
6889
6890 /* Line 1464 of yacc.c  */
6891 #line 899 "type.y"
6892     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);if(declMode) DeclClass(0, (yyvsp[(3) - (3)].id).string); ;}
6893     break;
6894
6895   case 283:
6896
6897 /* Line 1464 of yacc.c  */
6898 #line 901 "type.y"
6899     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl); if(declMode) DeclClass(0, (yyvsp[(3) - (3)].specifier).name); FreeSpecifier((yyvsp[(3) - (3)].specifier)); ;}
6900     break;
6901
6902   case 284:
6903
6904 /* Line 1464 of yacc.c  */
6905 #line 905 "type.y"
6906     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
6907     break;
6908
6909   case 285:
6910
6911 /* Line 1464 of yacc.c  */
6912 #line 906 "type.y"
6913     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6914     break;
6915
6916   case 286:
6917
6918 /* Line 1464 of yacc.c  */
6919 #line 911 "type.y"
6920     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
6921     break;
6922
6923   case 287:
6924
6925 /* Line 1464 of yacc.c  */
6926 #line 912 "type.y"
6927     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
6928     break;
6929
6930   case 288:
6931
6932 /* Line 1464 of yacc.c  */
6933 #line 923 "type.y"
6934     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
6935     break;
6936
6937   case 291:
6938
6939 /* Line 1464 of yacc.c  */
6940 #line 930 "type.y"
6941     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
6942     break;
6943
6944   case 292:
6945
6946 /* Line 1464 of yacc.c  */
6947 #line 932 "type.y"
6948     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
6949     break;
6950
6951   case 293:
6952
6953 /* Line 1464 of yacc.c  */
6954 #line 934 "type.y"
6955     {
6956       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); 
6957       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
6958       {
6959          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
6960          if(spec.type == nameSpecifier)
6961             (yyval.templateArgument).name = MkIdentifier(spec.name);
6962       }
6963       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
6964       (yyval.templateArgument).loc = (yyloc);
6965    ;}
6966     break;
6967
6968   case 294:
6969
6970 /* Line 1464 of yacc.c  */
6971 #line 958 "type.y"
6972     {
6973       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); 
6974       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
6975       {
6976          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
6977          if(spec.type == nameSpecifier)
6978             (yyval.templateArgument).name = MkIdentifier(spec.name);
6979       }
6980       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
6981       (yyval.templateArgument).loc = (yyloc);
6982    ;}
6983     break;
6984
6985   case 295:
6986
6987 /* Line 1464 of yacc.c  */
6988 #line 972 "type.y"
6989     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
6990     break;
6991
6992   case 296:
6993
6994 /* Line 1464 of yacc.c  */
6995 #line 973 "type.y"
6996     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
6997     break;
6998
6999   case 297:
7000
7001 /* Line 1464 of yacc.c  */
7002 #line 977 "type.y"
7003     { (yyval.specifierType) = structSpecifier; ;}
7004     break;
7005
7006   case 298:
7007
7008 /* Line 1464 of yacc.c  */
7009 #line 978 "type.y"
7010     { (yyval.specifierType) = unionSpecifier; ;}
7011     break;
7012
7013   case 299:
7014
7015 /* Line 1464 of yacc.c  */
7016 #line 982 "type.y"
7017     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
7018     break;
7019
7020   case 300:
7021
7022 /* Line 1464 of yacc.c  */
7023 #line 983 "type.y"
7024     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
7025     break;
7026
7027   case 301:
7028
7029 /* Line 1464 of yacc.c  */
7030 #line 987 "type.y"
7031     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
7032     break;
7033
7034   case 302:
7035
7036 /* Line 1464 of yacc.c  */
7037 #line 991 "type.y"
7038     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
7039     break;
7040
7041   case 303:
7042
7043 /* Line 1464 of yacc.c  */
7044 #line 992 "type.y"
7045     { ((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); ;}
7046     break;
7047
7048   case 304:
7049
7050 /* Line 1464 of yacc.c  */
7051 #line 997 "type.y"
7052     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7053     break;
7054
7055   case 305:
7056
7057 /* Line 1464 of yacc.c  */
7058 #line 999 "type.y"
7059     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7060     break;
7061
7062   case 306:
7063
7064 /* Line 1464 of yacc.c  */
7065 #line 1001 "type.y"
7066     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7067     break;
7068
7069   case 307:
7070
7071 /* Line 1464 of yacc.c  */
7072 #line 1003 "type.y"
7073     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7074     break;
7075
7076   case 308:
7077
7078 /* Line 1464 of yacc.c  */
7079 #line 1005 "type.y"
7080     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7081     break;
7082
7083   case 309:
7084
7085 /* Line 1464 of yacc.c  */
7086 #line 1008 "type.y"
7087     { (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); ;}
7088     break;
7089
7090   case 310:
7091
7092 /* Line 1464 of yacc.c  */
7093 #line 1010 "type.y"
7094     { (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); ;}
7095     break;
7096
7097   case 311:
7098
7099 /* Line 1464 of yacc.c  */
7100 #line 1012 "type.y"
7101     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7102     break;
7103
7104   case 312:
7105
7106 /* Line 1464 of yacc.c  */
7107 #line 1014 "type.y"
7108     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7109     break;
7110
7111   case 313:
7112
7113 /* Line 1464 of yacc.c  */
7114 #line 1016 "type.y"
7115     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7116     break;
7117
7118   case 314:
7119
7120 /* Line 1464 of yacc.c  */
7121 #line 1019 "type.y"
7122     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7123     break;
7124
7125   case 315:
7126
7127 /* Line 1464 of yacc.c  */
7128 #line 1021 "type.y"
7129     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7130     break;
7131
7132   case 316:
7133
7134 /* Line 1464 of yacc.c  */
7135 #line 1023 "type.y"
7136     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7137     break;
7138
7139   case 317:
7140
7141 /* Line 1464 of yacc.c  */
7142 #line 1025 "type.y"
7143     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
7144     break;
7145
7146   case 318:
7147
7148 /* Line 1464 of yacc.c  */
7149 #line 1027 "type.y"
7150     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
7151     break;
7152
7153   case 319:
7154
7155 /* Line 1464 of yacc.c  */
7156 #line 1030 "type.y"
7157     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7158     break;
7159
7160   case 320:
7161
7162 /* Line 1464 of yacc.c  */
7163 #line 1032 "type.y"
7164     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7165     break;
7166
7167   case 321:
7168
7169 /* Line 1464 of yacc.c  */
7170 #line 1034 "type.y"
7171     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7172     break;
7173
7174   case 322:
7175
7176 /* Line 1464 of yacc.c  */
7177 #line 1036 "type.y"
7178     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7179     break;
7180
7181   case 323:
7182
7183 /* Line 1464 of yacc.c  */
7184 #line 1038 "type.y"
7185     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
7186     break;
7187
7188   case 324:
7189
7190 /* Line 1464 of yacc.c  */
7191 #line 1042 "type.y"
7192     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7193     break;
7194
7195   case 325:
7196
7197 /* Line 1464 of yacc.c  */
7198 #line 1043 "type.y"
7199     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7200     break;
7201
7202   case 326:
7203
7204 /* Line 1464 of yacc.c  */
7205 #line 1044 "type.y"
7206     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7207     break;
7208
7209   case 327:
7210
7211 /* Line 1464 of yacc.c  */
7212 #line 1045 "type.y"
7213     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7214     break;
7215
7216   case 328:
7217
7218 /* Line 1464 of yacc.c  */
7219 #line 1046 "type.y"
7220     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
7221     break;
7222
7223   case 329:
7224
7225 /* Line 1464 of yacc.c  */
7226 #line 1047 "type.y"
7227     { (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); ;}
7228     break;
7229
7230   case 330:
7231
7232 /* Line 1464 of yacc.c  */
7233 #line 1048 "type.y"
7234     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; ;}
7235     break;
7236
7237   case 331:
7238
7239 /* Line 1464 of yacc.c  */
7240 #line 1049 "type.y"
7241     { (yyval.classDef) = null; ;}
7242     break;
7243
7244   case 332:
7245
7246 /* Line 1464 of yacc.c  */
7247 #line 1054 "type.y"
7248     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
7249     break;
7250
7251   case 333:
7252
7253 /* Line 1464 of yacc.c  */
7254 #line 1056 "type.y"
7255     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
7256     break;
7257
7258   case 334:
7259
7260 /* Line 1464 of yacc.c  */
7261 #line 1061 "type.y"
7262     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
7263     break;
7264
7265   case 335:
7266
7267 /* Line 1464 of yacc.c  */
7268 #line 1063 "type.y"
7269     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
7270     break;
7271
7272   case 336:
7273
7274 /* Line 1464 of yacc.c  */
7275 #line 1065 "type.y"
7276     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
7277     break;
7278
7279   case 337:
7280
7281 /* Line 1464 of yacc.c  */
7282 #line 1067 "type.y"
7283     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
7284     break;
7285
7286   case 338:
7287
7288 /* Line 1464 of yacc.c  */
7289 #line 1069 "type.y"
7290     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
7291     break;
7292
7293   case 339:
7294
7295 /* Line 1464 of yacc.c  */
7296 #line 1073 "type.y"
7297     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
7298     break;
7299
7300   case 340:
7301
7302 /* Line 1464 of yacc.c  */
7303 #line 1074 "type.y"
7304     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
7305     break;
7306
7307   case 341:
7308
7309 /* Line 1464 of yacc.c  */
7310 #line 1079 "type.y"
7311     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
7312     break;
7313
7314   case 342:
7315
7316 /* Line 1464 of yacc.c  */
7317 #line 1080 "type.y"
7318     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); ;}
7319     break;
7320
7321   case 343:
7322
7323 /* Line 1464 of yacc.c  */
7324 #line 1081 "type.y"
7325     { (yyval.specifier) = MkEnum((yyvsp[(2) - (7)].id), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (7)].id).string); ;}
7326     break;
7327
7328   case 344:
7329
7330 /* Line 1464 of yacc.c  */
7331 #line 1082 "type.y"
7332     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (7)].specifier).name), (yyvsp[(4) - (7)].list)); (yyval.specifier).definitions = (yyvsp[(6) - (7)].list); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (7)].specifier).name); FreeSpecifier((yyvsp[(2) - (7)].specifier)); ;}
7333     break;
7334
7335   case 345:
7336
7337 /* Line 1464 of yacc.c  */
7338 #line 1083 "type.y"
7339     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].specifier).name); FreeSpecifier((yyvsp[(2) - (5)].specifier)); ;}
7340     break;
7341
7342   case 346:
7343
7344 /* Line 1464 of yacc.c  */
7345 #line 1088 "type.y"
7346     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
7347     break;
7348
7349   case 347:
7350
7351 /* Line 1464 of yacc.c  */
7352 #line 1090 "type.y"
7353     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
7354     break;
7355
7356   case 348:
7357
7358 /* Line 1464 of yacc.c  */
7359 #line 1095 "type.y"
7360     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
7361     break;
7362
7363   case 349:
7364
7365 /* Line 1464 of yacc.c  */
7366 #line 1097 "type.y"
7367     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
7368     break;
7369
7370   case 350:
7371
7372 /* Line 1464 of yacc.c  */
7373 #line 1103 "type.y"
7374     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7375     break;
7376
7377   case 351:
7378
7379 /* Line 1464 of yacc.c  */
7380 #line 1105 "type.y"
7381     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
7382     break;
7383
7384   case 352:
7385
7386 /* Line 1464 of yacc.c  */
7387 #line 1107 "type.y"
7388     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
7389     break;
7390
7391   case 353:
7392
7393 /* Line 1464 of yacc.c  */
7394 #line 1109 "type.y"
7395     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
7396     break;
7397
7398   case 354:
7399
7400 /* Line 1464 of yacc.c  */
7401 #line 1111 "type.y"
7402     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7403     break;
7404
7405   case 355:
7406
7407 /* Line 1464 of yacc.c  */
7408 #line 1113 "type.y"
7409     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7410     break;
7411
7412   case 356:
7413
7414 /* Line 1464 of yacc.c  */
7415 #line 1115 "type.y"
7416     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7417     break;
7418
7419   case 357:
7420
7421 /* Line 1464 of yacc.c  */
7422 #line 1117 "type.y"
7423     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7424     break;
7425
7426   case 358:
7427
7428 /* Line 1464 of yacc.c  */
7429 #line 1119 "type.y"
7430     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7431     break;
7432
7433   case 359:
7434
7435 /* Line 1464 of yacc.c  */
7436 #line 1121 "type.y"
7437     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7438     break;
7439
7440   case 360:
7441
7442 /* Line 1464 of yacc.c  */
7443 #line 1123 "type.y"
7444     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7445     break;
7446
7447   case 361:
7448
7449 /* Line 1464 of yacc.c  */
7450 #line 1128 "type.y"
7451     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7452     break;
7453
7454   case 362:
7455
7456 /* Line 1464 of yacc.c  */
7457 #line 1130 "type.y"
7458     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7459     break;
7460
7461   case 363:
7462
7463 /* Line 1464 of yacc.c  */
7464 #line 1132 "type.y"
7465     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7466     break;
7467
7468   case 364:
7469
7470 /* Line 1464 of yacc.c  */
7471 #line 1134 "type.y"
7472     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7473     break;
7474
7475   case 365:
7476
7477 /* Line 1464 of yacc.c  */
7478 #line 1136 "type.y"
7479     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7480     break;
7481
7482   case 366:
7483
7484 /* Line 1464 of yacc.c  */
7485 #line 1140 "type.y"
7486     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7487     break;
7488
7489   case 368:
7490
7491 /* Line 1464 of yacc.c  */
7492 #line 1142 "type.y"
7493     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7494     break;
7495
7496   case 369:
7497
7498 /* Line 1464 of yacc.c  */
7499 #line 1143 "type.y"
7500     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7501     break;
7502
7503   case 370:
7504
7505 /* Line 1464 of yacc.c  */
7506 #line 1144 "type.y"
7507     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7508     break;
7509
7510   case 371:
7511
7512 /* Line 1464 of yacc.c  */
7513 #line 1145 "type.y"
7514     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7515     break;
7516
7517   case 372:
7518
7519 /* Line 1464 of yacc.c  */
7520 #line 1149 "type.y"
7521     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7522     break;
7523
7524   case 374:
7525
7526 /* Line 1464 of yacc.c  */
7527 #line 1151 "type.y"
7528     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7529     break;
7530
7531   case 375:
7532
7533 /* Line 1464 of yacc.c  */
7534 #line 1152 "type.y"
7535     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7536     break;
7537
7538   case 376:
7539
7540 /* Line 1464 of yacc.c  */
7541 #line 1153 "type.y"
7542     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7543     break;
7544
7545   case 377:
7546
7547 /* Line 1464 of yacc.c  */
7548 #line 1154 "type.y"
7549     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7550     break;
7551
7552   case 379:
7553
7554 /* Line 1464 of yacc.c  */
7555 #line 1202 "type.y"
7556     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7557     break;
7558
7559   case 380:
7560
7561 /* Line 1464 of yacc.c  */
7562 #line 1204 "type.y"
7563     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7564     break;
7565
7566   case 381:
7567
7568 /* Line 1464 of yacc.c  */
7569 #line 1206 "type.y"
7570     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
7571     break;
7572
7573   case 382:
7574
7575 /* Line 1464 of yacc.c  */
7576 #line 1211 "type.y"
7577     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
7578     break;
7579
7580   case 383:
7581
7582 /* Line 1464 of yacc.c  */
7583 #line 1213 "type.y"
7584     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7585     break;
7586
7587   case 384:
7588
7589 /* Line 1464 of yacc.c  */
7590 #line 1215 "type.y"
7591     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7592     break;
7593
7594   case 385:
7595
7596 /* Line 1464 of yacc.c  */
7597 #line 1217 "type.y"
7598     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7599     break;
7600
7601   case 386:
7602
7603 /* Line 1464 of yacc.c  */
7604 #line 1219 "type.y"
7605     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7606     break;
7607
7608   case 388:
7609
7610 /* Line 1464 of yacc.c  */
7611 #line 1225 "type.y"
7612     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7613     break;
7614
7615   case 389:
7616
7617 /* Line 1464 of yacc.c  */
7618 #line 1228 "type.y"
7619     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7620     break;
7621
7622   case 390:
7623
7624 /* Line 1464 of yacc.c  */
7625 #line 1230 "type.y"
7626     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7627     break;
7628
7629   case 391:
7630
7631 /* Line 1464 of yacc.c  */
7632 #line 1232 "type.y"
7633     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7634     break;
7635
7636   case 393:
7637
7638 /* Line 1464 of yacc.c  */
7639 #line 1242 "type.y"
7640     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7641     break;
7642
7643   case 394:
7644
7645 /* Line 1464 of yacc.c  */
7646 #line 1244 "type.y"
7647     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7648     break;
7649
7650   case 395:
7651
7652 /* Line 1464 of yacc.c  */
7653 #line 1246 "type.y"
7654     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
7655     break;
7656
7657   case 398:
7658
7659 /* Line 1464 of yacc.c  */
7660 #line 1253 "type.y"
7661     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7662     break;
7663
7664   case 399:
7665
7666 /* Line 1464 of yacc.c  */
7667 #line 1255 "type.y"
7668     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7669     break;
7670
7671   case 401:
7672
7673 /* Line 1464 of yacc.c  */
7674 #line 1260 "type.y"
7675     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7676     break;
7677
7678   case 402:
7679
7680 /* Line 1464 of yacc.c  */
7681 #line 1261 "type.y"
7682     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7683     break;
7684
7685   case 403:
7686
7687 /* Line 1464 of yacc.c  */
7688 #line 1262 "type.y"
7689     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7690     break;
7691
7692   case 404:
7693
7694 /* Line 1464 of yacc.c  */
7695 #line 1263 "type.y"
7696     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7697     break;
7698
7699   case 405:
7700
7701 /* Line 1464 of yacc.c  */
7702 #line 1267 "type.y"
7703     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
7704     break;
7705
7706   case 406:
7707
7708 /* Line 1464 of yacc.c  */
7709 #line 1268 "type.y"
7710     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
7711     break;
7712
7713   case 407:
7714
7715 /* Line 1464 of yacc.c  */
7716 #line 1272 "type.y"
7717     { (yyval.pointer) = MkPointer(null, null); ;}
7718     break;
7719
7720   case 408:
7721
7722 /* Line 1464 of yacc.c  */
7723 #line 1273 "type.y"
7724     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
7725     break;
7726
7727   case 409:
7728
7729 /* Line 1464 of yacc.c  */
7730 #line 1274 "type.y"
7731     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
7732     break;
7733
7734   case 410:
7735
7736 /* Line 1464 of yacc.c  */
7737 #line 1275 "type.y"
7738     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
7739     break;
7740
7741   case 412:
7742
7743 /* Line 1464 of yacc.c  */
7744 #line 1280 "type.y"
7745     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
7746     break;
7747
7748   case 413:
7749
7750 /* Line 1464 of yacc.c  */
7751 #line 1284 "type.y"
7752     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
7753     break;
7754
7755   case 414:
7756
7757 /* Line 1464 of yacc.c  */
7758 #line 1285 "type.y"
7759     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
7760     break;
7761
7762   case 415:
7763
7764 /* Line 1464 of yacc.c  */
7765 #line 1289 "type.y"
7766     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7767     break;
7768
7769   case 416:
7770
7771 /* Line 1464 of yacc.c  */
7772 #line 1290 "type.y"
7773     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7774     break;
7775
7776   case 417:
7777
7778 /* Line 1464 of yacc.c  */
7779 #line 1291 "type.y"
7780     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
7781     break;
7782
7783   case 418:
7784
7785 /* Line 1464 of yacc.c  */
7786 #line 1292 "type.y"
7787     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
7788     break;
7789
7790   case 419:
7791
7792 /* Line 1464 of yacc.c  */
7793 #line 1293 "type.y"
7794     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7795     break;
7796
7797   case 420:
7798
7799 /* Line 1464 of yacc.c  */
7800 #line 1305 "type.y"
7801     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
7802     break;
7803
7804   case 421:
7805
7806 /* Line 1464 of yacc.c  */
7807 #line 1329 "type.y"
7808     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
7809     break;
7810
7811   case 422:
7812
7813 /* Line 1464 of yacc.c  */
7814 #line 1330 "type.y"
7815     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
7816     break;
7817
7818   case 423:
7819
7820 /* Line 1464 of yacc.c  */
7821 #line 1334 "type.y"
7822     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7823     break;
7824
7825   case 424:
7826
7827 /* Line 1464 of yacc.c  */
7828 #line 1335 "type.y"
7829     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7830     break;
7831
7832   case 425:
7833
7834 /* Line 1464 of yacc.c  */
7835 #line 1339 "type.y"
7836     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7837     break;
7838
7839   case 426:
7840
7841 /* Line 1464 of yacc.c  */
7842 #line 1340 "type.y"
7843     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7844     break;
7845
7846   case 427:
7847
7848 /* Line 1464 of yacc.c  */
7849 #line 1345 "type.y"
7850     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7851     break;
7852
7853   case 428:
7854
7855 /* Line 1464 of yacc.c  */
7856 #line 1347 "type.y"
7857     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
7858     break;
7859
7860   case 429:
7861
7862 /* Line 1464 of yacc.c  */
7863 #line 1349 "type.y"
7864     { 
7865          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); 
7866          (yyval.initializer).loc = (yyloc); 
7867
7868          {
7869             Expression exp = MkExpDummy();
7870             Initializer init = MkInitializerAssignment(exp);
7871             init.loc = (yylsp[(3) - (4)]);
7872             exp.loc = (yylsp[(3) - (4)]);
7873             ListAdd((yyvsp[(2) - (4)].list), init); 
7874          }
7875       ;}
7876     break;
7877
7878   case 430:
7879
7880 /* Line 1464 of yacc.c  */
7881 #line 1365 "type.y"
7882     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7883     break;
7884
7885   case 431:
7886
7887 /* Line 1464 of yacc.c  */
7888 #line 1367 "type.y"
7889     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7890     break;
7891
7892   case 432:
7893
7894 /* Line 1464 of yacc.c  */
7895 #line 1389 "type.y"
7896     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
7897     break;
7898
7899   case 433:
7900
7901 /* Line 1464 of yacc.c  */
7902 #line 1391 "type.y"
7903     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
7904     break;
7905
7906   case 440:
7907
7908 /* Line 1464 of yacc.c  */
7909 #line 1405 "type.y"
7910     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7911     break;
7912
7913   case 441:
7914
7915 /* Line 1464 of yacc.c  */
7916 #line 1407 "type.y"
7917     { (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; ;}
7918     break;
7919
7920   case 442:
7921
7922 /* Line 1464 of yacc.c  */
7923 #line 1409 "type.y"
7924     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7925     break;
7926
7927   case 443:
7928
7929 /* Line 1464 of yacc.c  */
7930 #line 1413 "type.y"
7931     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
7932     break;
7933
7934   case 444:
7935
7936 /* Line 1464 of yacc.c  */
7937 #line 1414 "type.y"
7938     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
7939     break;
7940
7941   case 445:
7942
7943 /* Line 1464 of yacc.c  */
7944 #line 1418 "type.y"
7945     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
7946     break;
7947
7948   case 446:
7949
7950 /* Line 1464 of yacc.c  */
7951 #line 1419 "type.y"
7952     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
7953     break;
7954
7955   case 447:
7956
7957 /* Line 1464 of yacc.c  */
7958 #line 1422 "type.y"
7959     { 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); ;}
7960     break;
7961
7962   case 448:
7963
7964 /* Line 1464 of yacc.c  */
7965 #line 1426 "type.y"
7966     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
7967     break;
7968
7969   case 449:
7970
7971 /* Line 1464 of yacc.c  */
7972 #line 1427 "type.y"
7973     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
7974     break;
7975
7976   case 450:
7977
7978 /* Line 1464 of yacc.c  */
7979 #line 1428 "type.y"
7980     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
7981     break;
7982
7983   case 451:
7984
7985 /* Line 1464 of yacc.c  */
7986 #line 1432 "type.y"
7987     { (yyval.context) = PushContext(); ;}
7988     break;
7989
7990   case 452:
7991
7992 /* Line 1464 of yacc.c  */
7993 #line 1437 "type.y"
7994     { 
7995       (yyval.stmt) = MkCompoundStmt(null, null); 
7996       (yyval.stmt).compound.context = PushContext(); 
7997       PopContext((yyval.stmt).compound.context);
7998       (yyval.stmt).loc = (yyloc); 
7999    ;}
8000     break;
8001
8002   case 453:
8003
8004 /* Line 1464 of yacc.c  */
8005 #line 1445 "type.y"
8006     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
8007     break;
8008
8009   case 454:
8010
8011 /* Line 1464 of yacc.c  */
8012 #line 1449 "type.y"
8013     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
8014     break;
8015
8016   case 455:
8017
8018 /* Line 1464 of yacc.c  */
8019 #line 1450 "type.y"
8020     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
8021     break;
8022
8023   case 456:
8024
8025 /* Line 1464 of yacc.c  */
8026 #line 1454 "type.y"
8027     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
8028     break;
8029
8030   case 457:
8031
8032 /* Line 1464 of yacc.c  */
8033 #line 1455 "type.y"
8034     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8035     break;
8036
8037   case 458:
8038
8039 /* Line 1464 of yacc.c  */
8040 #line 1456 "type.y"
8041     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8042     break;
8043
8044   case 459:
8045
8046 /* Line 1464 of yacc.c  */
8047 #line 1460 "type.y"
8048     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8049     break;
8050
8051   case 460:
8052
8053 /* Line 1464 of yacc.c  */
8054 #line 1461 "type.y"
8055     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
8056     break;
8057
8058   case 461:
8059
8060 /* Line 1464 of yacc.c  */
8061 #line 1462 "type.y"
8062     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8063     break;
8064
8065   case 462:
8066
8067 /* Line 1464 of yacc.c  */
8068 #line 1463 "type.y"
8069     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8070     break;
8071
8072   case 463:
8073
8074 /* Line 1464 of yacc.c  */
8075 #line 1465 "type.y"
8076     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8077     break;
8078
8079   case 464:
8080
8081 /* Line 1464 of yacc.c  */
8082 #line 1466 "type.y"
8083     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8084     break;
8085
8086   case 465:
8087
8088 /* Line 1464 of yacc.c  */
8089 #line 1467 "type.y"
8090     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8091     break;
8092
8093   case 466:
8094
8095 /* Line 1464 of yacc.c  */
8096 #line 1471 "type.y"
8097     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
8098     break;
8099
8100   case 467:
8101
8102 /* Line 1464 of yacc.c  */
8103 #line 1472 "type.y"
8104     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
8105     break;
8106
8107   case 468:
8108
8109 /* Line 1464 of yacc.c  */
8110 #line 1473 "type.y"
8111     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
8112     break;
8113
8114   case 469:
8115
8116 /* Line 1464 of yacc.c  */
8117 #line 1474 "type.y"
8118     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
8119     break;
8120
8121   case 470:
8122
8123 /* Line 1464 of yacc.c  */
8124 #line 1475 "type.y"
8125     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
8126     break;
8127
8128   case 471:
8129
8130 /* Line 1464 of yacc.c  */
8131 #line 1479 "type.y"
8132     { (yyval.string) = CopyString(yytext); ;}
8133     break;
8134
8135   case 472:
8136
8137 /* Line 1464 of yacc.c  */
8138 #line 1484 "type.y"
8139     { (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;;}
8140     break;
8141
8142   case 473:
8143
8144 /* Line 1464 of yacc.c  */
8145 #line 1486 "type.y"
8146     { (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;;}
8147     break;
8148
8149   case 474:
8150
8151 /* Line 1464 of yacc.c  */
8152 #line 1491 "type.y"
8153     { (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;;}
8154     break;
8155
8156   case 475:
8157
8158 /* Line 1464 of yacc.c  */
8159 #line 1493 "type.y"
8160     { (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;;}
8161     break;
8162
8163   case 476:
8164
8165 /* Line 1464 of yacc.c  */
8166 #line 1518 "type.y"
8167     { (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; ;}
8168     break;
8169
8170   case 477:
8171
8172 /* Line 1464 of yacc.c  */
8173 #line 1520 "type.y"
8174     { (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;;}
8175     break;
8176
8177   case 478:
8178
8179 /* Line 1464 of yacc.c  */
8180 #line 1522 "type.y"
8181     { 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)); ;}
8182     break;
8183
8184   case 479:
8185
8186 /* Line 1464 of yacc.c  */
8187 #line 1524 "type.y"
8188     { 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)); ;}
8189     break;
8190
8191   case 480:
8192
8193 /* Line 1464 of yacc.c  */
8194 #line 1529 "type.y"
8195     { (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; ;}
8196     break;
8197
8198   case 481:
8199
8200 /* Line 1464 of yacc.c  */
8201 #line 1531 "type.y"
8202     { (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;;}
8203     break;
8204
8205   case 482:
8206
8207 /* Line 1464 of yacc.c  */
8208 #line 1535 "type.y"
8209     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8210     break;
8211
8212   case 483:
8213
8214 /* Line 1464 of yacc.c  */
8215 #line 1537 "type.y"
8216     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8217     break;
8218
8219   case 484:
8220
8221 /* Line 1464 of yacc.c  */
8222 #line 1539 "type.y"
8223     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
8224     break;
8225
8226   case 485:
8227
8228 /* Line 1464 of yacc.c  */
8229 #line 1541 "type.y"
8230     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8231     break;
8232
8233   case 486:
8234
8235 /* Line 1464 of yacc.c  */
8236 #line 1543 "type.y"
8237     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8238     break;
8239
8240   case 487:
8241
8242 /* Line 1464 of yacc.c  */
8243 #line 1549 "type.y"
8244     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
8245     break;
8246
8247   case 488:
8248
8249 /* Line 1464 of yacc.c  */
8250 #line 1551 "type.y"
8251     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
8252     break;
8253
8254   case 489:
8255
8256 /* Line 1464 of yacc.c  */
8257 #line 1556 "type.y"
8258     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8259     break;
8260
8261   case 490:
8262
8263 /* Line 1464 of yacc.c  */
8264 #line 1560 "type.y"
8265     { (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;;}
8266     break;
8267
8268   case 491:
8269
8270 /* Line 1464 of yacc.c  */
8271 #line 1561 "type.y"
8272     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
8273     break;
8274
8275   case 492:
8276
8277 /* Line 1464 of yacc.c  */
8278 #line 1566 "type.y"
8279     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
8280     break;
8281
8282   case 493:
8283
8284 /* Line 1464 of yacc.c  */
8285 #line 1568 "type.y"
8286     { ((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); ;}
8287     break;
8288
8289   case 494:
8290
8291 /* Line 1464 of yacc.c  */
8292 #line 1573 "type.y"
8293     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8294     break;
8295
8296   case 495:
8297
8298 /* Line 1464 of yacc.c  */
8299 #line 1577 "type.y"
8300     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
8301     break;
8302
8303   case 496:
8304
8305 /* Line 1464 of yacc.c  */
8306 #line 1578 "type.y"
8307     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8308     break;
8309
8310   case 497:
8311
8312 /* Line 1464 of yacc.c  */
8313 #line 1579 "type.y"
8314     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8315     break;
8316
8317   case 498:
8318
8319 /* Line 1464 of yacc.c  */
8320 #line 1580 "type.y"
8321     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8322     break;
8323
8324   case 499:
8325
8326 /* Line 1464 of yacc.c  */
8327 #line 1581 "type.y"
8328     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
8329     break;
8330
8331   case 500:
8332
8333 /* Line 1464 of yacc.c  */
8334 #line 1582 "type.y"
8335     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8336     break;
8337
8338   case 502:
8339
8340 /* Line 1464 of yacc.c  */
8341 #line 1587 "type.y"
8342     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8343     break;
8344
8345   case 503:
8346
8347 /* Line 1464 of yacc.c  */
8348 #line 1588 "type.y"
8349     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
8350     break;
8351
8352   case 504:
8353
8354 /* Line 1464 of yacc.c  */
8355 #line 1592 "type.y"
8356     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
8357     break;
8358
8359   case 505:
8360
8361 /* Line 1464 of yacc.c  */
8362 #line 1593 "type.y"
8363     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
8364     break;
8365
8366
8367
8368 /* Line 1464 of yacc.c  */
8369 #line 8369 "type.ec"
8370       default: break;
8371     }
8372   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
8373
8374   YYPOPSTACK (yylen);
8375   yylen = 0;
8376   YY_STACK_PRINT (yyss, yyssp);
8377
8378   *++yyvsp = yyval;
8379   *++yylsp = yyloc;
8380
8381   /* Now `shift' the result of the reduction.  Determine what state
8382      that goes to, based on the state we popped back to and the rule
8383      number reduced by.  */
8384
8385   yyn = yyr1[yyn];
8386
8387   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
8388   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8389     yystate = yytable[yystate];
8390   else
8391     yystate = yydefgoto[yyn - YYNTOKENS];
8392
8393   goto yynewstate;
8394
8395
8396 /*------------------------------------.
8397 | yyerrlab -- here on detecting error |
8398 `------------------------------------*/
8399 yyerrlab:
8400   /* If not already recovering from an error, report this error.  */
8401   if (!yyerrstatus)
8402     {
8403       ++yynerrs;
8404 #if ! YYERROR_VERBOSE
8405       yyerror (YY_("syntax error"));
8406 #else
8407       {
8408         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
8409         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
8410           {
8411             YYSIZE_T yyalloc = 2 * yysize;
8412             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
8413               yyalloc = YYSTACK_ALLOC_MAXIMUM;
8414             if (yymsg != yymsgbuf)
8415               YYSTACK_FREE (yymsg);
8416             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
8417             if (yymsg)
8418               yymsg_alloc = yyalloc;
8419             else
8420               {
8421                 yymsg = yymsgbuf;
8422                 yymsg_alloc = sizeof yymsgbuf;
8423               }
8424           }
8425
8426         if (0 < yysize && yysize <= yymsg_alloc)
8427           {
8428             (void) yysyntax_error (yymsg, yystate, yychar);
8429             yyerror (yymsg);
8430           }
8431         else
8432           {
8433             yyerror (YY_("syntax error"));
8434             if (yysize != 0)
8435               goto yyexhaustedlab;
8436           }
8437       }
8438 #endif
8439     }
8440
8441   yyerror_range[0] = yylloc;
8442
8443   if (yyerrstatus == 3)
8444     {
8445       /* If just tried and failed to reuse lookahead token after an
8446          error, discard it.  */
8447
8448       if (yychar <= YYEOF)
8449         {
8450           /* Return failure if at end of input.  */
8451           if (yychar == YYEOF)
8452             YYABORT;
8453         }
8454       else
8455         {
8456           yydestruct ("Error: discarding",
8457                       yytoken, &yylval, &yylloc);
8458           yychar = YYEMPTY;
8459         }
8460     }
8461
8462   /* Else will try to reuse lookahead token after shifting the error
8463      token.  */
8464   goto yyerrlab1;
8465
8466
8467 /*---------------------------------------------------.
8468 | yyerrorlab -- error raised explicitly by YYERROR.  |
8469 `---------------------------------------------------*/
8470 yyerrorlab:
8471
8472   /* Pacify compilers like GCC when the user code never invokes
8473      YYERROR and the label yyerrorlab therefore never appears in user
8474      code.  */
8475   if (/*CONSTCOND*/ 0)
8476      goto yyerrorlab;
8477
8478   yyerror_range[0] = yylsp[1-yylen];
8479   /* Do not reclaim the symbols of the rule which action triggered
8480      this YYERROR.  */
8481   YYPOPSTACK (yylen);
8482   yylen = 0;
8483   YY_STACK_PRINT (yyss, yyssp);
8484   yystate = *yyssp;
8485   goto yyerrlab1;
8486
8487
8488 /*-------------------------------------------------------------.
8489 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
8490 `-------------------------------------------------------------*/
8491 yyerrlab1:
8492   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
8493
8494   for (;;)
8495     {
8496       yyn = yypact[yystate];
8497       if (yyn != YYPACT_NINF)
8498         {
8499           yyn += YYTERROR;
8500           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8501             {
8502               yyn = yytable[yyn];
8503               if (0 < yyn)
8504                 break;
8505             }
8506         }
8507
8508       /* Pop the current state because it cannot handle the error token.  */
8509       if (yyssp == yyss)
8510         YYABORT;
8511
8512       yyerror_range[0] = *yylsp;
8513       yydestruct ("Error: popping",
8514                   yystos[yystate], yyvsp, yylsp);
8515       YYPOPSTACK (1);
8516       yystate = *yyssp;
8517       YY_STACK_PRINT (yyss, yyssp);
8518     }
8519
8520   *++yyvsp = yylval;
8521
8522   yyerror_range[1] = yylloc;
8523   /* Using YYLLOC is tempting, but would change the location of
8524      the lookahead.  YYLOC is available though.  */
8525   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
8526   *++yylsp = yyloc;
8527
8528   /* Shift the error token.  */
8529   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8530
8531   yystate = yyn;
8532   goto yynewstate;
8533
8534
8535 /*-------------------------------------.
8536 | yyacceptlab -- YYACCEPT comes here.  |
8537 `-------------------------------------*/
8538 yyacceptlab:
8539   yyresult = 0;
8540   goto yyreturn;
8541
8542 /*-----------------------------------.
8543 | yyabortlab -- YYABORT comes here.  |
8544 `-----------------------------------*/
8545 yyabortlab:
8546   yyresult = 1;
8547   goto yyreturn;
8548
8549 #if !defined(yyoverflow) || YYERROR_VERBOSE
8550 /*-------------------------------------------------.
8551 | yyexhaustedlab -- memory exhaustion comes here.  |
8552 `-------------------------------------------------*/
8553 yyexhaustedlab:
8554   yyerror (YY_("memory exhausted"));
8555   yyresult = 2;
8556   /* Fall through.  */
8557 #endif
8558
8559 yyreturn:
8560   if (yychar != YYEMPTY)
8561      yydestruct ("Cleanup: discarding lookahead",
8562                  yytoken, &yylval, &yylloc);
8563   /* Do not reclaim the symbols of the rule which action triggered
8564      this YYABORT or YYACCEPT.  */
8565   YYPOPSTACK (yylen);
8566   YY_STACK_PRINT (yyss, yyssp);
8567   while (yyssp != yyss)
8568     {
8569       yydestruct ("Cleanup: popping",
8570                   yystos[*yyssp], yyvsp, yylsp);
8571       YYPOPSTACK (1);
8572     }
8573 #ifndef yyoverflow
8574   if (yyss != yyssa)
8575     YYSTACK_FREE (yyss);
8576 #endif
8577 #if YYERROR_VERBOSE
8578   if (yymsg != yymsgbuf)
8579     YYSTACK_FREE (yymsg);
8580 #endif
8581   /* Make sure YYID is used.  */
8582   return YYID (yyresult);
8583 }
8584
8585
8586
8587 /* Line 1684 of yacc.c  */
8588 #line 1596 "type.y"
8589
8590