wip II
[sdk] / compiler / libec / src / type.ec
1 /* A Bison parser, made by GNU Bison 2.4.2.  */
2
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
4    
5       Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
6    Foundation, Inc.
7    
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12    
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17    
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30    
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
36
37 /* All symbols defined below should begin with yy or YY, to avoid
38    infringing on user name space.  This should be done even for local
39    variables, as they might otherwise be expanded by user macros.
40    There are some unavoidable exceptions within include files to
41    define necessary library symbols; they are noted "INFRINGES ON
42    USER NAME SPACE" below.  */
43
44 /* Identify Bison output.  */
45 #define YYBISON 1
46
47 /* Bison version.  */
48 #define YYBISON_VERSION "2.4.2"
49
50 /* Skeleton name.  */
51 #define YYSKELETON_NAME "yacc.c"
52
53 /* Pure parsers.  */
54 #define YYPURE 0
55
56 /* Push parsers.  */
57 #define YYPUSH 0
58
59 /* Pull parsers.  */
60 #define YYPULL 1
61
62 /* Using locations.  */
63 #define YYLSP_NEEDED 1
64
65
66
67 /* Copy the first part of user declarations.  */
68
69 /* Line 189 of yacc.c  */
70 #line 1 "type.y"
71
72
73 import "ecdefs"
74
75 #define YYLTYPE Location
76 #include "grammar.h"
77
78 #ifndef YYLLOC_DEFAULT
79 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
80   (Current).start = (Rhs)[1].start;      \
81   (Current).end = (Rhs)[N].end;
82 #endif
83
84 TypeName parsedType;
85
86 #define PRECOMPILER
87
88 #define yyparse type_yyparse
89 #define yylval  type_yylval
90 #define yychar  type_yychar
91 #define yydebug type_yydebug
92 #define yynerrs type_yynerrs
93 #define yylloc  type_yylloc
94
95 extern bool parseTypeError;
96
97 extern File fileInput;
98 extern char * yytext;
99 int yylex();
100 int yyerror();
101
102 #define uint _uint
103 default:
104
105
106
107 /* Line 189 of yacc.c  */
108 #line 109 "type.ec"
109
110 /* Enabling traces.  */
111 #ifndef YYDEBUG
112 # define YYDEBUG 1
113 #endif
114
115 /* Enabling verbose error messages.  */
116 #ifdef YYERROR_VERBOSE
117 # undef YYERROR_VERBOSE
118 # define YYERROR_VERBOSE 1
119 #else
120 # define YYERROR_VERBOSE 0
121 #endif
122
123 /* Enabling the token table.  */
124 #ifndef YYTOKEN_TABLE
125 # define YYTOKEN_TABLE 0
126 #endif
127
128
129 /* Tokens.  */
130 #ifndef YYTOKENTYPE
131 # define YYTOKENTYPE
132    /* Put the tokens into the symbol table, so that GDB and other debuggers
133       know about them.  */
134    enum yytokentype {
135      IDENTIFIER = 258,
136      CONSTANT = 259,
137      STRING_LITERAL = 260,
138      SIZEOF = 261,
139      PTR_OP = 262,
140      INC_OP = 263,
141      DEC_OP = 264,
142      LEFT_OP = 265,
143      RIGHT_OP = 266,
144      LE_OP = 267,
145      GE_OP = 268,
146      EQ_OP = 269,
147      NE_OP = 270,
148      AND_OP = 271,
149      OR_OP = 272,
150      MUL_ASSIGN = 273,
151      DIV_ASSIGN = 274,
152      MOD_ASSIGN = 275,
153      ADD_ASSIGN = 276,
154      SUB_ASSIGN = 277,
155      LEFT_ASSIGN = 278,
156      RIGHT_ASSIGN = 279,
157      AND_ASSIGN = 280,
158      XOR_ASSIGN = 281,
159      OR_ASSIGN = 282,
160      TYPE_NAME = 283,
161      TYPEDEF = 284,
162      EXTERN = 285,
163      STATIC = 286,
164      AUTO = 287,
165      REGISTER = 288,
166      CHAR = 289,
167      SHORT = 290,
168      INT = 291,
169      UINT = 292,
170      INT64 = 293,
171      LONG = 294,
172      SIGNED = 295,
173      UNSIGNED = 296,
174      FLOAT = 297,
175      DOUBLE = 298,
176      CONST = 299,
177      VOLATILE = 300,
178      VOID = 301,
179      VALIST = 302,
180      STRUCT = 303,
181      UNION = 304,
182      ENUM = 305,
183      ELLIPSIS = 306,
184      CASE = 307,
185      DEFAULT = 308,
186      IF = 309,
187      SWITCH = 310,
188      WHILE = 311,
189      DO = 312,
190      FOR = 313,
191      GOTO = 314,
192      CONTINUE = 315,
193      BREAK = 316,
194      RETURN = 317,
195      IFX = 318,
196      ELSE = 319,
197      CLASS = 320,
198      THISCLASS = 321,
199      CLASS_NAME = 322,
200      PROPERTY = 323,
201      SETPROP = 324,
202      GETPROP = 325,
203      NEWOP = 326,
204      RENEW = 327,
205      DELETE = 328,
206      EXT_DECL = 329,
207      EXT_STORAGE = 330,
208      IMPORT = 331,
209      DEFINE = 332,
210      VIRTUAL = 333,
211      ATTRIB = 334,
212      PUBLIC = 335,
213      PRIVATE = 336,
214      TYPED_OBJECT = 337,
215      ANY_OBJECT = 338,
216      _INCREF = 339,
217      EXTENSION = 340,
218      ASM = 341,
219      TYPEOF = 342,
220      WATCH = 343,
221      STOPWATCHING = 344,
222      FIREWATCHERS = 345,
223      WATCHABLE = 346,
224      CLASS_DESIGNER = 347,
225      CLASS_NO_EXPANSION = 348,
226      CLASS_FIXED = 349,
227      ISPROPSET = 350,
228      CLASS_DEFAULT_PROPERTY = 351,
229      PROPERTY_CATEGORY = 352,
230      CLASS_DATA = 353,
231      CLASS_PROPERTY = 354,
232      SUBCLASS = 355,
233      NAMESPACE = 356,
234      NEW0OP = 357,
235      RENEW0 = 358,
236      VAARG = 359,
237      DBTABLE = 360,
238      DBFIELD = 361,
239      DBINDEX = 362,
240      DATABASE_OPEN = 363,
241      ALIGNOF = 364,
242      ATTRIB_DEP = 365,
243      __ATTRIB = 366
244    };
245 #endif
246
247
248
249 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
250 typedef union YYSTYPE
251 {
252
253 /* Line 214 of yacc.c  */
254 #line 39 "type.y"
255
256    int i;
257    SpecifierType specifierType;
258    Identifier id;
259    Expression exp;
260    Specifier specifier;
261    OldList * list;
262    Enumerator enumerator;
263    Declarator declarator;
264    Pointer pointer;
265    Initializer initializer;
266    InitDeclarator initDeclarator;
267    TypeName typeName;
268    Declaration declaration;
269    Statement stmt;
270    FunctionDefinition function;
271    External external;
272    Context context;
273    Attrib attrib;
274    ExtDecl extDecl;
275    Attribute attribute;
276
277    Instantiation instance;
278    MembersInit membersInit;
279    MemberInit memberInit;
280    ClassFunction classFunction;
281    ClassDefinition _class;
282    ClassDef classDef;
283    PropertyDef prop;
284    char * string;
285    Symbol symbol;
286    TemplateParameter templateParameter;
287    TemplateArgument templateArgument;
288    TemplateDatatype templateDatatype;
289
290
291
292 /* Line 214 of yacc.c  */
293 #line 294 "type.ec"
294 } YYSTYPE;
295 # define YYSTYPE_IS_TRIVIAL 1
296 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
297 # define YYSTYPE_IS_DECLARED 1
298 #endif
299
300 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
301 typedef struct YYLTYPE
302 {
303   int first_line;
304   int first_column;
305   int last_line;
306   int last_column;
307 } YYLTYPE;
308 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
309 # define YYLTYPE_IS_DECLARED 1
310 # define YYLTYPE_IS_TRIVIAL 1
311 #endif
312
313
314 /* Copy the second part of user declarations.  */
315
316
317 /* Line 264 of yacc.c  */
318 #line 319 "type.ec"
319
320 #ifdef short
321 # undef short
322 #endif
323
324 #ifdef YYTYPE_UINT8
325 typedef YYTYPE_UINT8 yytype_uint8;
326 #else
327 typedef unsigned char yytype_uint8;
328 #endif
329
330 #ifdef YYTYPE_INT8
331 typedef YYTYPE_INT8 yytype_int8;
332 #elif (defined __STDC__ || defined __C99__FUNC__ \
333      || defined __cplusplus || defined _MSC_VER)
334 typedef signed char yytype_int8;
335 #else
336 typedef short int yytype_int8;
337 #endif
338
339 #ifdef YYTYPE_UINT16
340 typedef YYTYPE_UINT16 yytype_uint16;
341 #else
342 typedef unsigned short int yytype_uint16;
343 #endif
344
345 #ifdef YYTYPE_INT16
346 typedef YYTYPE_INT16 yytype_int16;
347 #else
348 typedef short int yytype_int16;
349 #endif
350
351 #ifndef YYSIZE_T
352 # ifdef __SIZE_TYPE__
353 #  define YYSIZE_T __SIZE_TYPE__
354 # elif defined size_t
355 #  define YYSIZE_T size_t
356 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
357      || defined __cplusplus || defined _MSC_VER)
358 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
359 #  define YYSIZE_T size_t
360 # else
361 #  define YYSIZE_T unsigned int
362 # endif
363 #endif
364
365 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
366
367 #ifndef YY_
368 # if defined YYENABLE_NLS && YYENABLE_NLS
369 #  if ENABLE_NLS
370 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
371 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
372 #  endif
373 # endif
374 # ifndef YY_
375 #  define YY_(msgid) msgid
376 # endif
377 #endif
378
379 /* Suppress unused-variable warnings by "using" E.  */
380 #if ! defined lint || defined __GNUC__
381 # define YYUSE(e) ((void) (e))
382 #else
383 # define YYUSE(e) /* empty */
384 #endif
385
386 /* Identity function, used to suppress warnings about constant conditions.  */
387 #ifndef lint
388 # define YYID(n) (n)
389 #else
390 #if (defined __STDC__ || defined __C99__FUNC__ \
391      || defined __cplusplus || defined _MSC_VER)
392 static int
393 YYID (int yyi)
394 #else
395 static int
396 YYID (yyi)
397     int yyi;
398 #endif
399 {
400   return yyi;
401 }
402 #endif
403
404 #if ! defined yyoverflow || YYERROR_VERBOSE
405
406 /* The parser invokes alloca or malloc; define the necessary symbols.  */
407
408 # ifdef YYSTACK_USE_ALLOCA
409 #  if YYSTACK_USE_ALLOCA
410 #   ifdef __GNUC__
411 #    define YYSTACK_ALLOC __builtin_alloca
412 #   elif defined __BUILTIN_VA_ARG_INCR
413 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
414 #   elif defined _AIX
415 #    define YYSTACK_ALLOC __alloca
416 #   elif defined _MSC_VER
417 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
418 #    define alloca _alloca
419 #   else
420 #    define YYSTACK_ALLOC alloca
421 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
422      || defined __cplusplus || defined _MSC_VER)
423 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
424 #     ifndef _STDLIB_H
425 #      define _STDLIB_H 1
426 #     endif
427 #    endif
428 #   endif
429 #  endif
430 # endif
431
432 # ifdef YYSTACK_ALLOC
433    /* Pacify GCC's `empty if-body' warning.  */
434 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
435 #  ifndef YYSTACK_ALLOC_MAXIMUM
436     /* The OS might guarantee only one guard page at the bottom of the stack,
437        and a page size can be as small as 4096 bytes.  So we cannot safely
438        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
439        to allow for a few compiler-allocated temporary stack slots.  */
440 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
441 #  endif
442 # else
443 #  define YYSTACK_ALLOC YYMALLOC
444 #  define YYSTACK_FREE YYFREE
445 #  ifndef YYSTACK_ALLOC_MAXIMUM
446 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
447 #  endif
448 #  if (defined __cplusplus && ! defined _STDLIB_H \
449        && ! ((defined YYMALLOC || defined malloc) \
450              && (defined YYFREE || defined free)))
451 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
452 #   ifndef _STDLIB_H
453 #    define _STDLIB_H 1
454 #   endif
455 #  endif
456 #  ifndef YYMALLOC
457 #   define YYMALLOC malloc
458 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
459      || defined __cplusplus || defined _MSC_VER)
460 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
461 #   endif
462 #  endif
463 #  ifndef YYFREE
464 #   define YYFREE free
465 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
466      || defined __cplusplus || defined _MSC_VER)
467 void free (void *); /* INFRINGES ON USER NAME SPACE */
468 #   endif
469 #  endif
470 # endif
471 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
472
473
474 #if (! defined yyoverflow \
475      && (! defined __cplusplus \
476          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
477              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
478
479 /* A type that is properly aligned for any stack member.  */
480 union yyalloc
481 {
482   yytype_int16 yyss_alloc;
483   YYSTYPE yyvs_alloc;
484   YYLTYPE yyls_alloc;
485 };
486
487 /* The size of the maximum gap between one aligned stack and the next.  */
488 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
489
490 /* The size of an array large to enough to hold all stacks, each with
491    N elements.  */
492 # define YYSTACK_BYTES(N) \
493      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
494       + 2 * YYSTACK_GAP_MAXIMUM)
495
496 /* Copy COUNT objects from FROM to TO.  The source and destination do
497    not overlap.  */
498 # ifndef YYCOPY
499 #  if defined __GNUC__ && 1 < __GNUC__
500 #   define YYCOPY(To, From, Count) \
501       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
502 #  else
503 #   define YYCOPY(To, From, Count)              \
504       do                                        \
505         {                                       \
506           YYSIZE_T yyi;                         \
507           for (yyi = 0; yyi < (Count); yyi++)   \
508             (To)[yyi] = (From)[yyi];            \
509         }                                       \
510       while (YYID (0))
511 #  endif
512 # endif
513
514 /* Relocate STACK from its old location to the new one.  The
515    local variables YYSIZE and YYSTACKSIZE give the old and new number of
516    elements in the stack, and YYPTR gives the new location of the
517    stack.  Advance YYPTR to a properly aligned location for the next
518    stack.  */
519 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
520     do                                                                  \
521       {                                                                 \
522         YYSIZE_T yynewbytes;                                            \
523         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
524         Stack = &yyptr->Stack_alloc;                                    \
525         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
526         yyptr += yynewbytes / sizeof (*yyptr);                          \
527       }                                                                 \
528     while (YYID (0))
529
530 #endif
531
532 /* YYFINAL -- State number of the termination state.  */
533 #define YYFINAL  96
534 /* YYLAST -- Last index in YYTABLE.  */
535 #define YYLAST   8658
536
537 /* YYNTOKENS -- Number of terminals.  */
538 #define YYNTOKENS  137
539 /* YYNNTS -- Number of nonterminals.  */
540 #define YYNNTS  125
541 /* YYNRULES -- Number of rules.  */
542 #define YYNRULES  505
543 /* YYNRULES -- Number of states.  */
544 #define YYNSTATES  872
545
546 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
547 #define YYUNDEFTOK  2
548 #define YYMAXUTOK   366
549
550 #define YYTRANSLATE(YYX)                                                \
551   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
552
553 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
554 static const yytype_uint8 yytranslate[] =
555 {
556        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,   126,     2,     2,   118,   128,   123,     2,
560      115,   116,   112,   124,   122,   125,   119,   127,     2,     2,
561        2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
562      113,   133,   114,   131,     2,     2,     2,     2,     2,     2,
563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,   120,     2,   121,   129,     2,     2,     2,     2,     2,
566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,   135,   130,   136,   117,     2,     2,     2,
569        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,     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,     1,     2,     3,     4,
582        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
583       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
584       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
585       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
586       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
587       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
588       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
589       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
590       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
591       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
592      105,   106,   107,   108,   109,   110,   111
593 };
594
595 #if YYDEBUG
596 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
597    YYRHS.  */
598 static const yytype_uint16 yyprhs[] =
599 {
600        0,     0,     3,     6,     9,    12,    14,    17,    19,    21,
601       26,    31,    34,    36,    40,    45,    49,    52,    54,    56,
602       60,    62,    64,    66,    68,    71,    76,    79,    86,    92,
603       99,   105,   113,   120,   128,   135,   137,   139,   144,   148,
604      153,   157,   161,   164,   167,   169,   171,   176,   180,   185,
605      189,   193,   196,   199,   201,   203,   207,   211,   214,   217,
606      220,   225,   228,   233,   238,   241,   246,   248,   250,   252,
607      254,   256,   258,   260,   262,   264,   266,   268,   270,   275,
608      277,   281,   285,   289,   291,   295,   299,   301,   305,   309,
609      312,   314,   317,   321,   325,   329,   331,   335,   339,   341,
610      345,   347,   351,   353,   357,   359,   363,   365,   369,   371,
611      377,   379,   383,   387,   389,   391,   393,   395,   397,   399,
612      401,   403,   405,   407,   409,   411,   415,   417,   420,   424,
613      427,   433,   435,   438,   440,   443,   445,   448,   450,   453,
614      455,   458,   460,   463,   465,   468,   470,   473,   475,   478,
615      480,   483,   485,   488,   490,   493,   495,   498,   500,   503,
616      505,   508,   510,   513,   515,   518,   520,   523,   525,   528,
617      530,   533,   535,   537,   539,   542,   544,   547,   549,   552,
618      554,   557,   562,   568,   570,   573,   575,   578,   580,   583,
619      585,   588,   590,   593,   595,   598,   603,   609,   611,   615,
620      617,   621,   623,   625,   627,   629,   631,   633,   635,   637,
621      639,   641,   643,   645,   647,   649,   651,   653,   655,   660,
622      662,   665,   669,   676,   682,   684,   686,   688,   690,   692,
623      694,   696,   698,   700,   702,   704,   706,   708,   710,   712,
624      714,   716,   718,   720,   722,   727,   732,   737,   739,   741,
625      743,   745,   747,   749,   751,   753,   755,   757,   759,   761,
626      763,   765,   767,   769,   771,   773,   775,   780,   785,   790,
627      792,   798,   803,   808,   812,   818,   825,   831,   837,   842,
628      849,   852,   855,   859,   863,   865,   868,   870,   873,   875,
629      877,   879,   883,   887,   891,   895,   897,   901,   903,   905,
630      907,   910,   914,   916,   920,   930,   940,   948,   956,   962,
631      973,   984,   993,  1002,  1009,  1018,  1027,  1034,  1041,  1046,
632     1056,  1066,  1074,  1082,  1088,  1092,  1095,  1098,  1101,  1103,
633     1106,  1108,  1110,  1112,  1116,  1118,  1121,  1124,  1128,  1134,
634     1137,  1140,  1145,  1151,  1159,  1167,  1173,  1175,  1179,  1181,
635     1185,  1189,  1192,  1196,  1200,  1204,  1209,  1214,  1217,  1221,
636     1225,  1230,  1234,  1237,  1241,  1245,  1250,  1252,  1254,  1257,
637     1260,  1263,  1267,  1269,  1271,  1274,  1277,  1280,  1284,  1286,
638     1289,  1293,  1296,  1298,  1302,  1307,  1311,  1316,  1318,  1321,
639     1324,  1328,  1332,  1335,  1339,  1343,  1346,  1348,  1350,  1353,
640     1356,  1358,  1361,  1364,  1368,  1372,  1374,  1377,  1379,  1382,
641     1385,  1389,  1391,  1395,  1397,  1401,  1404,  1407,  1410,  1414,
642     1416,  1418,  1420,  1424,  1426,  1429,  1431,  1434,  1436,  1440,
643     1445,  1447,  1449,  1451,  1455,  1457,  1459,  1461,  1463,  1465,
644     1467,  1471,  1476,  1480,  1482,  1485,  1487,  1490,  1493,  1495,
645     1497,  1500,  1502,  1505,  1509,  1511,  1514,  1520,  1528,  1534,
646     1540,  1548,  1555,  1563,  1568,  1574,  1579,  1583,  1586,  1589,
647     1592,  1596,  1598,  1604,  1609,  1615,  1620,  1625,  1629,  1634,
648     1638,  1642,  1645,  1648,  1651,  1654,  1657,  1660,  1663,  1666,
649     1669,  1673,  1675,  1677,  1681,  1684,  1686,  1688,  1691,  1694,
650     1696,  1699,  1701,  1703,  1706,  1708
651 };
652
653 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
654 static const yytype_int16 yyrhs[] =
655 {
656      261,     0,    -1,   147,   112,    -1,   147,   113,    -1,   147,
657        1,    -1,   142,    -1,   147,   147,    -1,    28,    -1,   141,
658       -1,   141,   113,   202,   114,    -1,   141,   113,   202,    11,
659       -1,   179,   221,    -1,   221,    -1,   179,   115,   116,    -1,
660      117,   179,   115,   116,    -1,    78,   179,   221,    -1,    78,
661      221,    -1,     3,    -1,   149,    -1,   115,   173,   116,    -1,
662      147,    -1,   251,    -1,     4,    -1,   248,    -1,   118,   248,
663       -1,   118,   248,   119,   248,    -1,   115,   116,    -1,    71,
664      179,   218,   120,   174,   121,    -1,    71,   179,   120,   174,
665      121,    -1,   102,   179,   218,   120,   174,   121,    -1,   102,
666      179,   120,   174,   121,    -1,    72,   174,   182,   218,   120,
667      174,   121,    -1,    72,   174,   182,   120,   174,   121,    -1,
668      103,   174,   182,   218,   120,   174,   121,    -1,   103,   174,
669      182,   120,   174,   121,    -1,     1,    -1,   148,    -1,   150,
670      120,   173,   121,    -1,   150,   115,   116,    -1,   150,   115,
671      153,   116,    -1,   150,   119,   147,    -1,   150,     7,   147,
672       -1,   150,     8,    -1,   150,     9,    -1,   252,    -1,   149,
673       -1,   152,   120,   173,   121,    -1,   152,   115,   116,    -1,
674      152,   115,   153,   116,    -1,   152,   119,   147,    -1,   152,
675        7,   147,    -1,   152,     8,    -1,   152,     9,    -1,   171,
676       -1,   151,    -1,   153,   122,   171,    -1,   153,   122,   151,
677       -1,     8,   155,    -1,     9,   155,    -1,   157,   158,    -1,
678        6,   115,   155,   116,    -1,     6,   156,    -1,     6,   115,
679      233,   116,    -1,   109,   115,   155,   116,    -1,   109,   156,
680       -1,   109,   115,   233,   116,    -1,   154,    -1,   150,    -1,
681      154,    -1,   152,    -1,   123,    -1,   112,    -1,   124,    -1,
682      125,    -1,   117,    -1,   126,    -1,    73,    -1,   155,    -1,
683      115,   232,   116,   158,    -1,   158,    -1,   159,   112,   158,
684       -1,   159,   127,   158,    -1,   159,   128,   158,    -1,   159,
685       -1,   160,   124,   159,    -1,   160,   125,   159,    -1,   160,
686       -1,   161,    10,   160,    -1,   161,    11,   160,    -1,   163,
687      113,    -1,   161,    -1,   162,   161,    -1,   163,   114,   161,
688       -1,   163,    12,   161,    -1,   163,    13,   161,    -1,   163,
689       -1,   164,    14,   163,    -1,   164,    15,   163,    -1,   164,
690       -1,   165,   123,   164,    -1,   165,    -1,   166,   129,   165,
691       -1,   166,    -1,   167,   130,   166,    -1,   167,    -1,   168,
692       16,   167,    -1,   168,    -1,   169,    17,   168,    -1,   169,
693       -1,   169,   131,   173,   132,   170,    -1,   170,    -1,   155,
694      172,   171,    -1,   155,   172,   151,    -1,   133,    -1,    18,
695       -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,    23,
696       -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,   171,
697       -1,   173,   122,   171,    -1,   170,    -1,   178,   134,    -1,
698      178,   183,   134,    -1,   249,   134,    -1,    77,   147,   133,
699      174,   134,    -1,   193,    -1,   176,   193,    -1,   194,    -1,
700      176,   194,    -1,   212,    -1,   176,   212,    -1,   196,    -1,
701      176,   196,    -1,   193,    -1,   177,   193,    -1,   194,    -1,
702      177,   194,    -1,   138,    -1,   177,   138,    -1,   212,    -1,
703      177,   212,    -1,   196,    -1,   177,   196,    -1,   185,    -1,
704      178,   185,    -1,   193,    -1,   178,   193,    -1,   194,    -1,
705      178,   194,    -1,   212,    -1,   178,   212,    -1,   196,    -1,
706      178,   196,    -1,   185,    -1,   179,   185,    -1,   193,    -1,
707      179,   193,    -1,   194,    -1,   179,   194,    -1,   138,    -1,
708      179,   138,    -1,   196,    -1,   179,   196,    -1,   212,    -1,
709      179,   212,    -1,   179,    -1,   139,    -1,   185,    -1,   181,
710      185,    -1,   193,    -1,   181,   193,    -1,   195,    -1,   181,
711      195,    -1,   147,    -1,   181,   147,    -1,   147,   113,   202,
712      114,    -1,   181,   147,   113,   202,   114,    -1,   185,    -1,
713      182,   185,    -1,   193,    -1,   182,   193,    -1,   195,    -1,
714      182,   195,    -1,   196,    -1,   182,   196,    -1,   212,    -1,
715      182,   212,    -1,   147,    -1,   182,   147,    -1,   147,   113,
716      202,   114,    -1,   182,   147,   113,   202,   114,    -1,   184,
717       -1,   183,   122,   184,    -1,   219,    -1,   219,   133,   234,
718       -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,    33,
719       -1,    74,    -1,    75,    -1,   191,    -1,    79,    -1,   110,
720       -1,   111,    -1,     3,    -1,    28,    -1,    75,    -1,    74,
721       -1,    44,    -1,   188,    -1,   188,   115,   173,   116,    -1,
722      189,    -1,   190,   189,    -1,   190,   122,   189,    -1,   187,
723      115,   115,   190,   116,   116,    -1,   187,   115,   115,   116,
724      116,    -1,   186,    -1,    44,    -1,    45,    -1,   192,    -1,
725       46,    -1,    34,    -1,    35,    -1,    36,    -1,    37,    -1,
726       38,    -1,    47,    -1,    39,    -1,    42,    -1,    43,    -1,
727       40,    -1,    41,    -1,    85,    -1,   197,    -1,   211,    -1,
728      140,    -1,    87,   115,   171,   116,    -1,   100,   115,   140,
729      116,    -1,   100,   115,   147,   116,    -1,    66,    -1,    82,
730       -1,    83,    -1,    46,    -1,    34,    -1,    35,    -1,    36,
731       -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,
732       -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,   197,
733       -1,   211,    -1,   142,    -1,    87,   115,   171,   116,    -1,
734      100,   115,   140,   116,    -1,   100,   115,   147,   116,    -1,
735       66,    -1,   203,   147,   135,   204,   136,    -1,   203,   135,
736      204,   136,    -1,   203,   147,   135,   136,    -1,   203,   135,
737      136,    -1,   203,   141,   135,   204,   136,    -1,   203,   186,
738      147,   135,   204,   136,    -1,   203,   186,   135,   204,   136,
739       -1,   203,   186,   147,   135,   136,    -1,   203,   186,   135,
740      136,    -1,   203,   186,   142,   135,   204,   136,    -1,   203,
741      147,    -1,   203,   142,    -1,   203,   186,   147,    -1,   203,
742      186,   142,    -1,   179,    -1,   179,   217,    -1,   179,    -1,
743      179,   217,    -1,   161,    -1,   200,    -1,   199,    -1,   147,
744      133,   200,    -1,   147,   133,   199,    -1,   198,   133,   200,
745       -1,   198,   133,   199,    -1,   201,    -1,   202,   122,   201,
746       -1,    48,    -1,    49,    -1,   208,    -1,   204,   208,    -1,
747      150,   133,   235,    -1,   205,    -1,   206,   122,   205,    -1,
748       68,   181,   147,   135,    69,   243,    70,   243,   136,    -1,
749       68,   181,   147,   135,    70,   243,    69,   243,   136,    -1,
750       68,   181,   147,   135,    69,   243,   136,    -1,    68,   181,
751      147,   135,    70,   243,   136,    -1,    68,   181,   147,   135,
752      136,    -1,    68,   181,   217,   147,   135,    69,   243,    70,
753      243,   136,    -1,    68,   181,   217,   147,   135,    70,   243,
754       69,   243,   136,    -1,    68,   181,   217,   147,   135,    69,
755      243,   136,    -1,    68,   181,   217,   147,   135,    70,   243,
756      136,    -1,    68,   181,   217,   147,   135,   136,    -1,    68,
757      181,   135,    69,   243,    70,   243,   136,    -1,    68,   181,
758      135,    70,   243,    69,   243,   136,    -1,    68,   181,   135,
759       69,   243,   136,    -1,    68,   181,   135,    70,   243,   136,
760       -1,    68,   181,   135,   136,    -1,    68,   181,   217,   135,
761       69,   243,    70,   243,   136,    -1,    68,   181,   217,   135,
762       70,   243,    69,   243,   136,    -1,    68,   181,   217,   135,
763       69,   243,   136,    -1,    68,   181,   217,   135,    70,   243,
764      136,    -1,    68,   181,   217,   135,   136,    -1,   179,   209,
765      134,    -1,   179,   134,    -1,   251,   134,    -1,   250,   134,
766       -1,   253,    -1,   206,   134,    -1,   207,    -1,   134,    -1,
767      210,    -1,   209,   122,   210,    -1,   225,    -1,   225,   191,
768       -1,   132,   174,    -1,   225,   132,   174,    -1,   225,   132,
769      174,   132,   174,    -1,    50,   147,    -1,    50,   142,    -1,
770       50,   135,   213,   136,    -1,    50,   147,   135,   213,   136,
771       -1,    50,   147,   135,   213,   134,   204,   136,    -1,    50,
772      142,   135,   213,   134,   204,   136,    -1,    50,   142,   135,
773      213,   136,    -1,   214,    -1,   213,   122,   214,    -1,   147,
774       -1,   147,   133,   174,    -1,   115,   217,   116,    -1,   120,
775      121,    -1,   120,   174,   121,    -1,   120,   140,   121,    -1,
776      215,   120,   121,    -1,   215,   120,   174,   121,    -1,   215,
777      120,   140,   121,    -1,   115,   116,    -1,   115,   228,   116,
778       -1,   215,   115,   116,    -1,   215,   115,   228,   116,    -1,
779      115,   218,   116,    -1,   115,   116,    -1,   115,   228,   116,
780       -1,   216,   115,   116,    -1,   216,   115,   228,   116,    -1,
781      227,    -1,   215,    -1,   227,   215,    -1,   186,   227,    -1,
782      186,   215,    -1,   186,   227,   215,    -1,   227,    -1,   216,
783       -1,   227,   216,    -1,   186,   227,    -1,   186,   216,    -1,
784      186,   227,   216,    -1,   224,    -1,   227,   224,    -1,   186,
785      227,   224,    -1,   219,   186,    -1,   147,    -1,   115,   219,
786      116,    -1,   220,   120,   174,   121,    -1,   220,   120,   121,
787       -1,   220,   120,   140,   121,    -1,   223,    -1,   227,   223,
788       -1,   186,   223,    -1,   186,   227,   223,    -1,   227,   186,
789      223,    -1,   220,   115,    -1,   222,   228,   116,    -1,   222,
790      231,   116,    -1,   222,   116,    -1,   223,    -1,   220,    -1,
791      186,   223,    -1,   186,   220,    -1,   220,    -1,   227,   220,
792       -1,   186,   220,    -1,   186,   227,   220,    -1,   227,   186,
793      220,    -1,   193,    -1,   226,   193,    -1,   112,    -1,   112,
794      226,    -1,   112,   227,    -1,   112,   226,   227,    -1,   229,
795       -1,   229,   122,    51,    -1,   230,    -1,   229,   122,   230,
796       -1,   179,   219,    -1,   179,   217,    -1,   179,   123,    -1,
797      179,   123,   219,    -1,   180,    -1,    65,    -1,   147,    -1,
798      231,   122,   147,    -1,   176,    -1,   176,   217,    -1,   177,
799       -1,   177,   217,    -1,   171,    -1,   135,   236,   136,    -1,
800      135,   236,   122,   136,    -1,   170,    -1,   151,    -1,   234,
801       -1,   236,   122,   234,    -1,   238,    -1,   243,    -1,   244,
802       -1,   245,    -1,   246,    -1,   247,    -1,   147,   132,   237,
803       -1,    52,   174,   132,   237,    -1,    53,   132,   237,    -1,
804      175,    -1,   239,   175,    -1,   237,    -1,   240,   237,    -1,
805      240,   175,    -1,   240,    -1,   239,    -1,   239,   240,    -1,
806      135,    -1,   135,   136,    -1,   242,   241,   136,    -1,   134,
807       -1,   173,   134,    -1,    54,   115,   173,   116,   237,    -1,
808       54,   115,   173,   116,   237,    64,   237,    -1,    55,   115,
809      173,   116,   237,    -1,    56,   115,   173,   116,   237,    -1,
810       57,   237,    56,   115,   173,   116,   134,    -1,    58,   115,
811      244,   244,   116,   237,    -1,    58,   115,   244,   244,   173,
812      116,   237,    -1,    56,   115,   116,   237,    -1,    58,   115,
813      244,   116,   237,    -1,    58,   115,   116,   237,    -1,    59,
814      147,   134,    -1,    60,   134,    -1,    61,   134,    -1,    62,
815      134,    -1,    62,   173,   134,    -1,     5,    -1,   178,   147,
816      135,   260,   136,    -1,   178,   147,   135,   136,    -1,   179,
817      147,   135,   260,   136,    -1,   179,   147,   135,   136,    -1,
818      140,   135,   260,   136,    -1,   140,   135,   136,    -1,   147,
819      135,   260,   136,    -1,   147,   135,   136,    -1,   135,   260,
820      136,    -1,   135,   136,    -1,   143,   243,    -1,   146,   243,
821       -1,   146,   134,    -1,   144,   243,    -1,   145,   243,    -1,
822      178,   221,    -1,   178,   225,    -1,   254,   243,    -1,   150,
823      133,   235,    -1,   235,    -1,   256,    -1,   257,   122,   256,
824       -1,   257,   134,    -1,   258,    -1,   255,    -1,   259,   258,
825       -1,   259,   255,    -1,   134,    -1,   259,   134,    -1,   259,
826       -1,   257,    -1,   259,   257,    -1,   230,    -1,   230,   132,
827      174,    -1
828 };
829
830 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
831 static const yytype_uint16 yyrline[] =
832 {
833        0,   225,   225,   243,   277,   327,   328,   355,   359,   360,
834      361,   378,   380,   385,   390,   395,   397,   402,   407,   408,
835      413,   415,   417,   419,   421,   422,   423,   426,   427,   428,
836      429,   430,   431,   432,   433,   434,   438,   439,   440,   441,
837      442,   443,   444,   445,   449,   454,   455,   456,   457,   458,
838      459,   460,   461,   465,   466,   467,   468,   472,   473,   474,
839      475,   476,   477,   478,   479,   480,   484,   485,   489,   490,
840      494,   495,   496,   497,   498,   499,   500,   504,   505,   509,
841      510,   511,   512,   516,   517,   518,   522,   523,   524,   528,
842      536,   537,   538,   539,   540,   544,   545,   546,   550,   551,
843      555,   556,   560,   561,   565,   566,   570,   571,   575,   576,
844      580,   581,   582,   586,   587,   588,   589,   590,   591,   592,
845      593,   594,   595,   596,   600,   601,   605,   609,   610,   611,
846      612,   616,   617,   618,   619,   620,   621,   622,   623,   627,
847      628,   629,   630,   631,   632,   633,   634,   635,   636,   640,
848      641,   642,   643,   644,   645,   646,   647,   648,   649,   653,
849      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
850      664,   668,   669,   673,   674,   675,   676,   677,   678,   679,
851      680,   681,   699,   716,   717,   718,   719,   720,   721,   722,
852      723,   724,   725,   726,   727,   728,   746,   763,   764,   768,
853      769,   773,   774,   775,   776,   777,   781,   782,   783,   787,
854      788,   789,   794,   795,   796,   797,   798,   802,   803,   807,
855      808,   809,   813,   814,   818,   822,   823,   824,   829,   830,
856      831,   832,   833,   834,   835,   836,   837,   838,   839,   840,
857      841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
858      854,   855,   856,   857,   858,   859,   860,   861,   862,   863,
859      864,   865,   866,   867,   868,   869,   870,   871,   872,   873,
860      878,   879,   880,   881,   882,   885,   886,   887,   888,   889,
861      894,   895,   898,   900,   905,   906,   911,   912,   923,   927,
862      929,   930,   932,   933,   957,   972,   973,   977,   978,   982,
863      983,   987,   991,   992,   996,   998,  1000,  1002,  1004,  1007,
864     1009,  1011,  1013,  1015,  1018,  1020,  1022,  1024,  1026,  1029,
865     1031,  1033,  1035,  1037,  1042,  1043,  1044,  1045,  1046,  1047,
866     1048,  1049,  1053,  1055,  1060,  1062,  1064,  1066,  1068,  1073,
867     1074,  1078,  1080,  1081,  1082,  1083,  1087,  1089,  1094,  1096,
868     1102,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,  1120,
869     1122,  1127,  1129,  1131,  1133,  1135,  1140,  1141,  1142,  1143,
870     1144,  1145,  1149,  1150,  1151,  1152,  1153,  1154,  1200,  1201,
871     1203,  1205,  1210,  1212,  1214,  1216,  1218,  1223,  1224,  1227,
872     1229,  1231,  1237,  1241,  1243,  1245,  1250,  1251,  1252,  1254,
873     1259,  1260,  1261,  1262,  1263,  1267,  1268,  1272,  1273,  1274,
874     1275,  1279,  1280,  1284,  1285,  1289,  1290,  1291,  1292,  1293,
875     1304,  1329,  1330,  1334,  1335,  1339,  1340,  1344,  1346,  1348,
876     1364,  1366,  1388,  1390,  1395,  1396,  1397,  1398,  1399,  1400,
877     1404,  1406,  1408,  1413,  1414,  1418,  1419,  1422,  1426,  1427,
878     1428,  1432,  1436,  1444,  1449,  1450,  1454,  1455,  1456,  1460,
879     1461,  1462,  1463,  1465,  1466,  1467,  1471,  1472,  1473,  1474,
880     1475,  1479,  1483,  1485,  1490,  1492,  1517,  1519,  1521,  1523,
881     1528,  1530,  1534,  1536,  1538,  1540,  1542,  1548,  1550,  1555,
882     1560,  1561,  1565,  1567,  1572,  1577,  1578,  1579,  1580,  1581,
883     1582,  1586,  1587,  1588,  1592,  1593
884 };
885 #endif
886
887 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
888 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
889    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
890 static const char *const yytname[] =
891 {
892   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
893   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
894   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
895   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
896   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
897   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
898   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
899   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
900   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
901   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
902   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
903   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
904   "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT",
905   "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING",
906   "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION",
907   "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY",
908   "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS",
909   "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD",
910   "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "'*'",
911   "'<'", "'>'", "'('", "')'", "'~'", "'$'", "'.'", "'['", "']'", "','",
912   "'&'", "'+'", "'-'", "'!'", "'/'", "'%'", "'^'", "'|'", "'?'", "':'",
913   "'='", "';'", "'{'", "'}'", "$accept", "guess_type", "real_guess_type",
914   "type", "base_strict_type", "strict_type",
915   "class_function_definition_start",
916   "constructor_function_definition_start",
917   "destructor_function_definition_start",
918   "virtual_class_function_definition_start", "identifier",
919   "primary_expression", "simple_primary_expression", "postfix_expression",
920   "anon_instantiation_expression", "simple_postfix_expression",
921   "argument_expression_list", "common_unary_expression",
922   "unary_expression", "simple_unary_expression", "unary_operator",
923   "cast_expression", "multiplicative_expression", "additive_expression",
924   "shift_expression", "relational_expression_smaller_than",
925   "relational_expression", "equality_expression", "and_expression",
926   "exclusive_or_expression", "inclusive_or_expression",
927   "logical_and_expression", "logical_or_expression",
928   "conditional_expression", "assignment_expression", "assignment_operator",
929   "expression", "constant_expression", "declaration",
930   "specifier_qualifier_list", "guess_specifier_qualifier_list",
931   "declaration_specifiers", "guess_declaration_specifiers",
932   "real_guess_declaration_specifiers", "property_specifiers",
933   "renew_specifiers", "init_declarator_list", "init_declarator",
934   "storage_class_specifier", "ext_decl", "_attrib", "attribute_word",
935   "attribute", "attribs_list", "attrib", "ext_storage", "type_qualifier",
936   "type_specifier", "strict_type_specifier",
937   "struct_or_union_specifier_compound",
938   "struct_or_union_specifier_nocompound", "template_datatype",
939   "template_type_argument", "template_expression_argument",
940   "template_argument", "template_arguments_list", "struct_or_union",
941   "struct_declaration_list", "default_property", "default_property_list",
942   "property", "struct_declaration", "struct_declarator_list",
943   "struct_declarator", "enum_specifier_nocompound",
944   "enum_specifier_compound", "enumerator_list", "enumerator",
945   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
946   "abstract_declarator", "abstract_declarator_noarray", "declarator",
947   "direct_declarator_nofunction", "declarator_function",
948   "direct_declarator_function_start", "direct_declarator_function",
949   "direct_declarator", "declarator_nofunction", "type_qualifier_list",
950   "pointer", "parameter_type_list", "parameter_list",
951   "parameter_declaration", "identifier_list", "type_name",
952   "guess_type_name", "initializer", "initializer_condition",
953   "initializer_list", "statement", "labeled_statement", "declaration_list",
954   "statement_list", "compound_inside", "compound_start",
955   "compound_statement", "expression_statement", "selection_statement",
956   "iteration_statement", "jump_statement", "string_literal",
957   "instantiation_named", "guess_instantiation_named",
958   "instantiation_unnamed", "instantiation_anon",
959   "class_function_definition", "instance_class_function_definition_start",
960   "instance_class_function_definition", "data_member_initialization",
961   "data_member_initialization_list",
962   "data_member_initialization_list_coloned",
963   "members_initialization_list_coloned", "members_initialization_list",
964   "type_unit", 0
965 };
966 #endif
967
968 # ifdef YYPRINT
969 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
970    token YYLEX-NUM.  */
971 static const yytype_uint16 yytoknum[] =
972 {
973        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
974      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
975      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
976      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
977      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
978      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
979      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
980      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
981      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
982      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
983      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
984      365,   366,    42,    60,    62,    40,    41,   126,    36,    46,
985       91,    93,    44,    38,    43,    45,    33,    47,    37,    94,
986      124,    63,    58,    61,    59,   123,   125
987 };
988 # endif
989
990 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
991 static const yytype_uint16 yyr1[] =
992 {
993        0,   137,   138,   138,   139,   140,   140,   141,   142,   142,
994      142,   143,   143,   144,   145,   146,   146,   147,   148,   148,
995      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
996      149,   149,   149,   149,   149,   149,   150,   150,   150,   150,
997      150,   150,   150,   150,   151,   152,   152,   152,   152,   152,
998      152,   152,   152,   153,   153,   153,   153,   154,   154,   154,
999      154,   154,   154,   154,   154,   154,   155,   155,   156,   156,
1000      157,   157,   157,   157,   157,   157,   157,   158,   158,   159,
1001      159,   159,   159,   160,   160,   160,   161,   161,   161,   162,
1002      163,   163,   163,   163,   163,   164,   164,   164,   165,   165,
1003      166,   166,   167,   167,   168,   168,   169,   169,   170,   170,
1004      171,   171,   171,   172,   172,   172,   172,   172,   172,   172,
1005      172,   172,   172,   172,   173,   173,   174,   175,   175,   175,
1006      175,   176,   176,   176,   176,   176,   176,   176,   176,   177,
1007      177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
1008      178,   178,   178,   178,   178,   178,   178,   178,   178,   179,
1009      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
1010      179,   180,   180,   181,   181,   181,   181,   181,   181,   181,
1011      181,   181,   181,   182,   182,   182,   182,   182,   182,   182,
1012      182,   182,   182,   182,   182,   182,   182,   183,   183,   184,
1013      184,   185,   185,   185,   185,   185,   186,   186,   186,   187,
1014      187,   187,   188,   188,   188,   188,   188,   189,   189,   190,
1015      190,   190,   191,   191,   192,   193,   193,   193,   194,   194,
1016      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
1017      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
1018      195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
1019      195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
1020      196,   196,   196,   196,   196,   196,   196,   196,   196,   196,
1021      197,   197,   197,   197,   198,   198,   199,   199,   200,   201,
1022      201,   201,   201,   201,   201,   202,   202,   203,   203,   204,
1023      204,   205,   206,   206,   207,   207,   207,   207,   207,   207,
1024      207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
1025      207,   207,   207,   207,   208,   208,   208,   208,   208,   208,
1026      208,   208,   209,   209,   210,   210,   210,   210,   210,   211,
1027      211,   212,   212,   212,   212,   212,   213,   213,   214,   214,
1028      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1029      215,   216,   216,   216,   216,   216,   217,   217,   217,   217,
1030      217,   217,   218,   218,   218,   218,   218,   218,   219,   219,
1031      219,   219,   220,   220,   220,   220,   220,   221,   221,   221,
1032      221,   221,   222,   223,   223,   223,   224,   224,   224,   224,
1033      225,   225,   225,   225,   225,   226,   226,   227,   227,   227,
1034      227,   228,   228,   229,   229,   230,   230,   230,   230,   230,
1035      230,   231,   231,   232,   232,   233,   233,   234,   234,   234,
1036      235,   235,   236,   236,   237,   237,   237,   237,   237,   237,
1037      238,   238,   238,   239,   239,   240,   240,   240,   241,   241,
1038      241,   242,   243,   243,   244,   244,   245,   245,   245,   246,
1039      246,   246,   246,   246,   246,   246,   247,   247,   247,   247,
1040      247,   248,   249,   249,   250,   250,   251,   251,   251,   251,
1041      252,   252,   253,   253,   253,   253,   253,   254,   254,   255,
1042      256,   256,   257,   257,   258,   259,   259,   259,   259,   259,
1043      259,   260,   260,   260,   261,   261
1044 };
1045
1046 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1047 static const yytype_uint8 yyr2[] =
1048 {
1049        0,     2,     2,     2,     2,     1,     2,     1,     1,     4,
1050        4,     2,     1,     3,     4,     3,     2,     1,     1,     3,
1051        1,     1,     1,     1,     2,     4,     2,     6,     5,     6,
1052        5,     7,     6,     7,     6,     1,     1,     4,     3,     4,
1053        3,     3,     2,     2,     1,     1,     4,     3,     4,     3,
1054        3,     2,     2,     1,     1,     3,     3,     2,     2,     2,
1055        4,     2,     4,     4,     2,     4,     1,     1,     1,     1,
1056        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1057        3,     3,     3,     1,     3,     3,     1,     3,     3,     2,
1058        1,     2,     3,     3,     3,     1,     3,     3,     1,     3,
1059        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
1060        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
1061        1,     1,     1,     1,     1,     3,     1,     2,     3,     2,
1062        5,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1063        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1064        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1065        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1066        2,     1,     1,     1,     2,     1,     2,     1,     2,     1,
1067        2,     4,     5,     1,     2,     1,     2,     1,     2,     1,
1068        2,     1,     2,     1,     2,     4,     5,     1,     3,     1,
1069        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1070        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1071        2,     3,     6,     5,     1,     1,     1,     1,     1,     1,
1072        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1073        1,     1,     1,     1,     4,     4,     4,     1,     1,     1,
1074        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1075        1,     1,     1,     1,     1,     1,     4,     4,     4,     1,
1076        5,     4,     4,     3,     5,     6,     5,     5,     4,     6,
1077        2,     2,     3,     3,     1,     2,     1,     2,     1,     1,
1078        1,     3,     3,     3,     3,     1,     3,     1,     1,     1,
1079        2,     3,     1,     3,     9,     9,     7,     7,     5,    10,
1080       10,     8,     8,     6,     8,     8,     6,     6,     4,     9,
1081        9,     7,     7,     5,     3,     2,     2,     2,     1,     2,
1082        1,     1,     1,     3,     1,     2,     2,     3,     5,     2,
1083        2,     4,     5,     7,     7,     5,     1,     3,     1,     3,
1084        3,     2,     3,     3,     3,     4,     4,     2,     3,     3,
1085        4,     3,     2,     3,     3,     4,     1,     1,     2,     2,
1086        2,     3,     1,     1,     2,     2,     2,     3,     1,     2,
1087        3,     2,     1,     3,     4,     3,     4,     1,     2,     2,
1088        3,     3,     2,     3,     3,     2,     1,     1,     2,     2,
1089        1,     2,     2,     3,     3,     1,     2,     1,     2,     2,
1090        3,     1,     3,     1,     3,     2,     2,     2,     3,     1,
1091        1,     1,     3,     1,     2,     1,     2,     1,     3,     4,
1092        1,     1,     1,     3,     1,     1,     1,     1,     1,     1,
1093        3,     4,     3,     1,     2,     1,     2,     2,     1,     1,
1094        2,     1,     2,     3,     1,     2,     5,     7,     5,     5,
1095        7,     6,     7,     4,     5,     4,     3,     2,     2,     2,
1096        3,     1,     5,     4,     5,     4,     4,     3,     4,     3,
1097        3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1098        3,     1,     1,     3,     2,     1,     1,     2,     2,     1,
1099        2,     1,     1,     2,     1,     3
1100 };
1101
1102 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1103    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1104    means the default is an error.  */
1105 static const yytype_uint16 yydefact[] =
1106 {
1107        0,    17,     7,   201,   202,   203,   204,   205,   229,   230,
1108      231,   232,   233,   235,   238,   239,   236,   237,   225,   226,
1109      228,   234,   297,   298,     0,   420,   247,   206,   207,   209,
1110      248,   249,   240,     0,     0,   210,   211,   165,   172,   243,
1111        8,     5,     0,   171,   419,   159,   224,     0,   208,   227,
1112      161,   163,   167,   241,     0,   242,   169,   504,     0,     0,
1113      340,   339,     0,     0,     0,     4,     2,     3,     6,   407,
1114        0,     0,   417,   166,   382,   160,   224,   162,   164,   168,
1115      170,   367,   416,   415,   397,     0,   396,   378,   366,     0,
1116        0,     8,   281,   280,     0,     0,     1,   348,     0,   346,
1117        0,     0,    35,    22,   471,     0,     0,     0,     0,     0,
1118       76,     0,     0,     0,    71,     0,    74,     0,    70,    72,
1119       73,    75,     0,    20,    36,    18,    67,    66,    77,     0,
1120       79,    83,    86,    90,     0,    95,    98,   100,   102,   104,
1121      106,   108,   110,     0,    23,    21,     0,     0,   243,    20,
1122       77,   288,   286,     0,   290,   289,   295,     0,   405,   408,
1123      409,   357,     0,     0,     0,     0,   411,   413,   351,     0,
1124      126,     0,     0,   382,     0,   418,     0,   370,   399,   398,
1125      369,     0,     0,   381,   392,     0,   395,     0,     0,     0,
1126        0,   368,   379,     0,     0,     0,     0,     0,   331,   273,
1127        0,     0,     0,     0,    20,     0,     0,   224,     0,   302,
1128        0,   330,   299,     0,    12,   387,     0,     0,    21,   328,
1129        0,     0,     0,   283,   282,   505,     0,     0,   341,     0,
1130        0,     0,    45,    69,    68,    61,     0,    57,    58,     0,
1131        0,     0,     0,     0,     0,    64,    26,   124,     0,   423,
1132      131,   133,   137,   135,     0,    24,     0,     0,     0,    42,
1133       43,     0,     0,     0,   114,   115,   116,   117,   118,   119,
1134      120,   121,   122,   123,   113,     0,    59,     0,     0,     0,
1135        0,     0,     0,     0,    91,     0,     0,    89,     0,     0,
1136        0,     0,     0,     0,     0,     0,     0,   244,   245,   246,
1137        0,     0,   224,   287,   366,     0,    10,     9,     0,   406,
1138      410,   350,   383,   358,     0,   353,   352,     0,   371,   380,
1139      359,     0,   354,     0,     0,   385,     0,     0,   393,   394,
1140        0,   212,   213,   216,   215,   214,     0,   217,   219,     0,
1141      251,   252,   253,   254,   255,   257,   260,   261,   258,   259,
1142      250,   256,     0,   269,   262,     0,     0,   265,   179,     0,
1143      173,   175,   177,   263,     0,   264,     0,    16,    71,     0,
1144       20,     0,   451,     0,   482,   485,   486,   484,   483,     0,
1145        0,     0,   325,   382,   224,     0,   332,   400,    11,   334,
1146        0,   389,     0,   271,   300,     0,   329,     0,   388,   327,
1147      326,     0,   272,     0,   278,     0,     0,     0,   349,   347,
1148        0,   345,     0,   342,   143,    20,     0,   425,   139,   141,
1149      147,   145,     0,     0,    51,    52,     0,     0,     0,     0,
1150        0,   224,   373,     0,   372,   193,     0,   183,   185,   187,
1151      189,   191,     0,     0,     0,     0,     0,    19,     0,     0,
1152      132,   134,   138,   136,   424,     0,     0,   499,     0,   477,
1153       67,   431,   430,     0,   149,   151,   153,   157,   155,   491,
1154       44,     0,   496,   492,   502,   495,     0,     0,   479,     0,
1155       41,    38,    54,     0,    53,    40,     0,   112,   111,    80,
1156       81,    82,    84,    85,    87,    88,    93,    94,    92,    96,
1157       97,    99,   101,   103,   105,   107,     0,   286,   292,   291,
1158      369,   294,   293,   296,   412,   414,   360,   356,   355,   386,
1159      384,   422,   223,     0,     0,     0,   220,   340,   339,     0,
1160        0,     0,     0,   180,   174,   176,   178,     0,   280,     0,
1161       15,   224,     0,   452,     0,     0,     0,     0,     0,     0,
1162        0,     0,     0,     0,     0,     0,   454,    20,     0,   443,
1163        0,   445,   434,     0,     0,     0,   435,   436,   437,   438,
1164      439,     0,   301,    13,   336,     0,   402,     0,     0,   324,
1165        0,   335,     0,   401,   390,   303,   391,   274,   270,   276,
1166        0,   277,     0,     0,     0,    60,   144,   140,   142,   148,
1167      146,   426,    62,    50,    47,     0,    49,     0,   362,     0,
1168        0,     0,   376,   375,     0,     0,   374,     0,     0,   194,
1169      184,   186,   188,   190,   192,     0,     0,     0,     0,     0,
1170       63,    65,   125,    78,    25,   481,     0,     0,   382,   150,
1171      152,   154,   158,   156,   487,   488,   489,     0,   494,   500,
1172      498,   503,   497,   476,   478,    39,     0,    37,     0,   287,
1173        0,   222,   221,     0,     0,     0,     0,     0,     0,   318,
1174        0,     0,     0,     0,   283,   282,    14,     0,     0,     0,
1175        0,     0,     0,     0,     0,   467,   468,   469,     0,     0,
1176        0,   455,   127,   382,     0,   197,   199,   444,     0,   447,
1177      446,   453,   129,   475,     0,   403,     0,   333,   400,     0,
1178      337,   404,   279,   275,   344,   343,    48,    46,   361,   363,
1179       28,   377,   364,     0,     0,     0,     0,     0,     0,    30,
1180        0,     0,     0,   480,   490,   493,    56,    55,   109,   218,
1181      266,   267,   268,   181,     0,     0,     0,     0,     0,   308,
1182        0,     0,   323,     0,     0,   442,     0,     0,     0,     0,
1183        0,     0,     0,   466,   470,     0,   440,     0,     0,   128,
1184        0,   474,   402,     0,     0,   401,     0,   365,    27,   195,
1185       32,     0,     0,    29,    34,     0,     0,   316,     0,   317,
1186      182,     0,     0,     0,     0,     0,     0,   313,   441,     0,
1187        0,   463,     0,     0,   465,     0,     0,     0,   473,     0,
1188      198,     0,   427,   200,   403,   404,   338,   196,    31,    33,
1189        0,     0,     0,   306,     0,   307,     0,   321,     0,   322,
1190        0,     0,   456,   458,   459,     0,   464,     0,     0,   130,
1191      472,   432,     0,   314,   315,     0,     0,     0,     0,     0,
1192      311,     0,   312,     0,     0,   461,     0,     0,   428,   304,
1193      305,   319,   320,     0,     0,   457,   460,   462,   429,   433,
1194      309,   310
1195 };
1196
1197 /* YYDEFGOTO[NTERM-NUM].  */
1198 static const yytype_int16 yydefgoto[] =
1199 {
1200       -1,    37,    38,   122,    40,    41,   200,   201,   202,   203,
1201      123,   124,   125,   126,   461,   233,   483,   127,   150,   235,
1202      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1203      139,   140,   141,   142,   247,   275,   558,   171,   699,   249,
1204      417,   463,   206,    44,   359,   436,   694,   695,    45,    46,
1205       47,   337,   338,   339,    48,    49,    50,    51,   439,    52,
1206       53,   153,   154,   155,   156,   157,    54,   208,   209,   210,
1207      211,   212,   385,   386,    55,    56,    98,    99,    81,   432,
1208      163,   433,   164,   213,   214,    85,   215,    87,   389,   159,
1209      216,   165,   166,   167,   189,   254,   422,   813,   469,   842,
1210      561,   562,   563,   564,   565,   373,   566,   567,   568,   569,
1211      570,   144,   571,   217,   145,   470,   219,   471,   472,   473,
1212      474,   475,   476,   477,    58
1213 };
1214
1215 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1216    STATE-NUM.  */
1217 #define YYPACT_NINF -778
1218 static const yytype_int16 yypact[] =
1219 {
1220     8292,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1221     -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1222     -778,  -778,  -778,  -778,    50,  -778,  -778,  -778,  -778,  -778,
1223     -778,  -778,  -778,   -69,   -40,  -778,  -778,  -778,  -778,  -778,
1224      -18,  -778,   227,  6840,  -778,  -778,  -778,     3,  -778,  -778,
1225     -778,  -778,  -778,  -778,    28,  -778,  -778,   -34,   136,   179,
1226       25,    57,  6590,    55,  5854,  -778,  -778,  -778,  -778,   822,
1227     6936,  6288,   551,  -778,   112,  -778,   183,  -778,  -778,  -778,
1228     -778,   114,  -778,   761,   211,  7764,  -778,  -778,   856,   104,
1229     2082,   -46,  -778,   140,    54,  6590,  -778,   144,  -100,  -778,
1230      179,   179,  -778,  -778,  -778,  6648,  6721,  6721,  8377,  6590,
1231     -778,  8377,  6590,  6739,  -778,  5980,  -778,   323,  -778,  -778,
1232     -778,  -778,   220,    36,  -778,  -778,   514,  -778,   959,  6590,
1233     -778,   -31,    85,   518,  6590,   272,   544,   258,   262,   281,
1234      397,    -3,  -778,   300,  -778,  -778,   310,    34,   220,    13,
1235     -778,   518,  5741,   297,  -778,  -778,  -778,   224,  -778,   822,
1236     -778,  -778,   714,   317,   578,   330,   313,  -778,  -778,     9,
1237     -778,   327,   551,  -778,   103,   761,   364,   114,   211,  -778,
1238      856,  7853,  6361,  -778,  -778,  6417,  -778,   457,   341,   235,
1239       26,   114,  -778,   334,  8462,  8031,  5392,  8377,  -778,  -778,
1240      326,   326,   326,   450,    22,   433,  5521,   103,  3522,  -778,
1241      -30,  -778,  -778,   211,  -778,  -778,   364,   338,   347,  -778,
1242     5170,  3640,  3758,   351,   358,  -778,  6590,   179,  -778,   123,
1243      156,  6106,  -778,   526,  -778,  -778,  6443,  -778,  -778,   112,
1244     7122,  8547,  7215,  8547,  6106,  -778,  -778,  -778,   282,  7582,
1245     -778,  -778,  -778,  -778,   388,   387,  2716,  2852,   179,  -778,
1246     -778,  4905,   179,  6590,  -778,  -778,  -778,  -778,  -778,  -778,
1247     -778,  -778,  -778,  -778,  -778,  4996,  -778,  6590,  6590,  6590,
1248     6590,  6590,  6590,  6590,   518,  6590,  6590,  -778,  6590,  6590,
1249     6590,  6590,  6590,  6590,  6590,  6590,  6590,  -778,  -778,  -778,
1250     5854,  7029,   230,   378,   257,  5854,  -778,  -778,  5854,  -778,
1251     -778,  -778,  -778,  -778,  8207,  -778,  -778,   364,   114,  -778,
1252     -778,   400,  -778,    67,   398,  -778,   181,   415,  -778,  -778,
1253      179,  -778,  -778,  -778,  -778,  -778,   424,   427,  -778,   674,
1254     -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1255     -778,  -778,    55,  -778,  -778,   429,   435,  -778,   443,  5411,
1256     -778,  -778,  -778,  -778,   645,  -778,  8031,  -778,   822,  6232,
1257      321,  8119,   425,  4820,  -778,  -778,  -778,  -778,  -778,  4996,
1258      938,  6590,  -778,    30,   103,    11,  -778,   211,  -778,   157,
1259      364,  -778,    26,  -778,  -778,   841,  -778,    26,  -778,  -778,
1260     -778,  3876,  -778,  3994,  -778,  4112,  5170,  4230,  -778,  -778,
1261     5170,  -778,  5170,  -778,  -778,    22,   456,  7582,  -778,  -778,
1262     -778,  -778,   458,   179,  -778,  -778,  4961,   179,  6590,  7675,
1263     6590,   135,   474,   476,   483,   489,  7401,  -778,  -778,  -778,
1264     -778,  -778,  6590,   487,  7494,   493,   505,  -778,  6590,   179,
1265     -778,  -778,  -778,  -778,  -778,  6590,   323,  -778,  2988,  -778,
1266      480,  -778,  -778,  8031,  -778,  -778,  -778,  -778,  -778,  -778,
1267     -778,   326,  -778,  -778,   148,  -778,  3124,   501,  -778,   504,
1268     -778,  -778,  -778,   312,  -778,  -778,   490,  -778,  -778,  -778,
1269     -778,  -778,   -31,   -31,    85,    85,   518,   518,   518,   272,
1270      272,   544,   258,   262,   281,   397,   -10,  7308,  -778,  -778,
1271      257,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1272     -778,  -778,  -778,  6590,   515,   636,  -778,  -778,  -778,  6590,
1273       55,  5854,    17,   -44,  -778,  -778,  -778,    42,  -778,    55,
1274     -778,   103,   531,  -778,  6590,   496,   543,   545,   553,  1924,
1275      557,   179,   525,   540,  5304,   179,  -778,    38,   184,  -778,
1276     5631,  -778,  -778,  2308,  2444,   548,  -778,  -778,  -778,  -778,
1277     -778,   542,  -778,  -778,  -778,  3260,   211,    26,   512,  -778,
1278     6590,  -778,    26,   211,  -778,  -778,  -778,  -778,  -778,  -778,
1279     4348,  -778,  4466,  4584,  4702,  -778,  -778,  -778,  -778,  -778,
1280     -778,  -778,  -778,  -778,  -778,   348,  -778,   497,  -778,   570,
1281      571,   574,   474,   483,  7942,  6590,   474,  5854,  6590,   579,
1282     -778,  -778,  -778,  -778,  -778,   577,   582,  6590,  6590,   580,
1283     -778,  -778,  -778,  -778,  -778,  -778,   568,  4996,   179,  -778,
1284     -778,  -778,  -778,  -778,  -778,  -778,  -778,  4996,  -778,  -778,
1285     -778,   148,  -778,  -778,  -778,  -778,  4996,  -778,  6590,  -778,
1286      349,  -778,  -778,   589,   591,    48,   159,   326,   326,  -778,
1287     5854,   319,   440,   581,  -778,  -778,  -778,   590,  1924,  6590,
1288     6590,  6499,   656,  5222,   587,  -778,  -778,  -778,   185,   592,
1289     1924,  -778,  -778,    58,   207,  -778,   840,  -778,  2580,  -778,
1290     -778,  -778,  -778,  -778,   593,   211,   103,  -778,   594,   364,
1291      596,   211,  -778,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1292     -778,   474,  -778,   618,   615,   221,   616,  5854,  6590,  -778,
1293      617,   619,  6590,  -778,  -778,  -778,  -778,  -778,  -778,  -778,
1294     -778,  -778,  -778,  -778,   -26,   -20,   239,   326,   326,  -778,
1295      326,   326,  -778,   444,  1924,  -778,   361,   369,  1924,   381,
1296      626,  1924,  5255,  -778,  -778,  6590,  -778,  3396,   551,  -778,
1297     5044,  -778,   594,    26,    26,   594,  6590,  -778,  -778,  -778,
1298     -778,   254,   622,  -778,  -778,   623,   326,  -778,   326,  -778,
1299     -778,   -15,   -17,    -5,     4,   326,   326,  -778,  -778,  1924,
1300     1924,  -778,  1924,  6590,  -778,  1924,  6572,   611,  -778,   621,
1301     -778,  5044,  -778,  -778,   594,   594,  -778,  -778,  -778,  -778,
1302      627,   628,   326,  -778,   326,  -778,   326,  -778,   326,  -778,
1303        1,    15,   683,  -778,  -778,   386,  -778,  1924,   404,  -778,
1304     -778,  -778,   -43,  -778,  -778,   629,   633,   634,   635,   326,
1305     -778,   326,  -778,  1924,   641,  -778,  1924,  1655,  -778,  -778,
1306     -778,  -778,  -778,   643,   644,  -778,  -778,  -778,  -778,  -778,
1307     -778,  -778
1308 };
1309
1310 /* YYPGOTO[NTERM-NUM].  */
1311 static const yytype_int16 yypgoto[] =
1312 {
1313     -778,    81,  -778,   696,   697,    23,  -778,  -778,  -778,  -778,
1314        0,  -778,   309,  1119,  -257,  -778,   336,   340,    52,   639,
1315     -778,  -123,   355,   360,   -14,  -778,   365,   462,   491,   498,
1316      500,   502,  -778,  1559,   -24,  -778,    97,   342,  -352,  -778,
1317     -778,  -364,   168,  -778,  -778,   552,  -778,    24,  1446,   957,
1318     -778,  -778,  -324,  -778,   409,  -778,  1238,  1493,  -184,  1199,
1319     -181,  -778,    -1,    74,   507,  -504,  -168,   198,   406,  -778,
1320     -778,   -47,  -778,   225,  -175,  1382,   549,   601,   -48,  -399,
1321      -23,  -231,   -42,   495,  -183,  -778,   818,   -71,   345,  -778,
1322     1069,   -82,  -778,     8,  -778,  -778,   565,  -777,  -372,  -778,
1323      492,  -778,  -778,   253,  -778,  -778,  1478,  -635,  -778,  -778,
1324     -778,  -112,  -778,  -778,    89,  -778,  -778,  -778,   343,   170,
1325      344,   356,  -778,  -255,  -778
1326 };
1327
1328 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1329    positive, shift that token.  If negative, reduce the rule which
1330    number is the opposite.  If zero, do what YYDEFACT says.
1331    If YYTABLE_NINF, syntax error.  */
1332 #define YYTABLE_NINF -502
1333 static const yytype_int16 yytable[] =
1334 {
1335       42,    83,   479,   188,   482,   255,   276,   572,    57,   560,
1336      362,   443,   367,   363,   295,   526,     1,   192,   487,   365,
1337       82,   559,   227,   388,    61,     1,   364,   666,   177,     1,
1338      175,     1,   612,     1,   841,   616,   228,     1,   143,     1,
1339      191,     1,    68,    74,   786,     1,    62,    60,   762,   788,
1340      151,     1,   824,     1,    93,   822,     2,     1,     1,    97,
1341      363,     1,   363,   147,   149,   826,   365,    64,   365,   670,
1342      162,   849,   173,   828,    68,    63,   173,    92,     2,   857,
1343      869,   277,     2,     2,   851,   187,   667,   668,   173,   220,
1344      204,   671,   395,   858,   224,    64,   278,   279,    95,   321,
1345       97,    97,    27,    28,   396,   192,     1,    29,   239,   319,
1346      787,   239,   448,   725,   128,     1,   789,   223,    89,   825,
1347      284,   823,   658,    68,    73,    66,    67,   806,   296,   303,
1348      315,   827,   318,   578,    66,    67,    96,   850,    35,    36,
1349      829,   172,    66,    67,   256,   579,   300,    68,   257,    68,
1350      299,   852,   239,   669,   489,   490,   491,   257,   237,   238,
1351      100,   394,    68,    90,   742,   575,   746,   128,    43,   482,
1352      690,   257,   173,   257,   173,   536,   173,   672,   363,   218,
1353      173,    42,     1,   540,   365,    59,     1,    68,   517,   222,
1354      173,   364,   101,   767,   358,    74,   370,   239,   609,   560,
1355      560,   662,   256,   636,    68,   625,   383,   173,   204,   280,
1356      281,   697,   248,   629,   721,    69,   173,   357,   172,   193,
1357      204,   204,   204,   781,    66,    67,   454,    97,    65,   181,
1358        1,   415,   152,    73,   182,   306,    29,   484,    43,    68,
1359      239,   435,   239,   435,   415,   227,   319,    69,   128,   449,
1360      429,   488,   622,    43,   177,   363,   191,   410,   480,   411,
1361      622,   365,   485,   363,   357,   734,   357,    35,    36,   365,
1362      647,   496,   497,   743,   498,   221,   240,   226,   227,   242,
1363      644,   308,   648,   416,   285,   286,   151,    73,   128,   580,
1364      412,   151,   413,   248,   151,    69,   445,   218,    70,   508,
1365      415,    42,   519,    71,   511,   415,   448,   448,   149,   218,
1366      218,   218,   414,   128,    42,   128,   256,   173,   691,   764,
1367      704,    73,   515,    73,     1,   414,   184,   128,   104,   768,
1368      521,   185,   633,   248,   560,   779,   537,   331,   307,    66,
1369       67,   769,    69,   308,   634,   301,   308,   610,   128,    43,
1370       71,   329,   528,   790,   394,   256,   394,   330,   394,   533,
1371      486,   308,   332,   366,   538,   371,    74,     1,   817,   370,
1372       68,   239,   301,   557,   509,   527,   308,    71,   333,   512,
1373      173,   291,   357,    68,   173,   287,   288,    92,   747,   748,
1374      173,   292,   173,   506,   601,  -382,  -382,   173,   447,   736,
1375     -382,   204,   484,   204,   448,   204,   204,   204,   334,   335,
1376      204,   293,   204,   294,   232,    68,   297,   239,   401,   403,
1377      405,   128,   232,   603,   632,   128,   298,   606,   655,    42,
1378      305,  -382,  -382,   311,   656,   314,   619,   225,    27,    28,
1379      258,   259,   260,    29,   619,   234,   313,    73,   316,    68,
1380      336,   241,    73,   234,   243,   749,   257,   328,    65,   357,
1381        1,   372,   318,   638,   716,   739,   248,   357,   507,    43,
1382      656,   448,   399,   507,    35,    36,   152,   799,   128,   172,
1383      128,   400,    43,   448,   659,   800,   406,   258,   259,   260,
1384      218,   448,   218,   407,   218,   218,   218,   802,   596,   218,
1385      128,   218,   854,   448,   455,   663,   456,   239,   448,   750,
1386      751,  -285,   809,   795,   796,     1,   516,   151,   696,   518,
1387      856,   258,   259,   260,   324,   607,   448,   327,   282,   283,
1388      665,   149,   723,   423,   424,   425,   520,   673,    84,   675,
1389      522,   173,   523,   394,   529,   394,   394,   394,   261,   557,
1390      530,   684,   262,   263,     1,   689,   531,    68,   289,   290,
1391      693,   543,   674,   557,   557,    84,   379,    84,   408,    66,
1392       67,   178,   595,  -421,   602,   128,   752,   173,   173,  -421,
1393      797,   128,   173,    84,   377,   372,    27,    28,    73,   614,
1394      204,    29,   204,   204,   204,   261,   615,    43,   429,   262,
1395      263,   128,   617,   151,   590,   592,   128,   627,   593,   630,
1396      594,   657,   448,   637,    42,   128,   128,   149,   717,   448,
1397      660,   631,    35,    36,    69,    27,    28,   172,   678,   261,
1398       29,   661,   737,   262,   263,   492,   493,   653,    68,   331,
1399      654,   426,   494,   495,   381,   427,   428,   676,     1,   229,
1400      230,   688,    27,    28,   499,   500,   151,    29,   679,   685,
1401      680,    35,    36,    69,   332,    68,   172,    84,   681,   178,
1402      149,    84,   683,     2,   686,    84,   702,   331,   557,   218,
1403      333,   218,   218,   218,   701,   178,   718,   719,    35,    36,
1404      557,    84,   727,    68,   312,   720,    39,   728,   557,   152,
1405      732,   387,   332,   729,   733,   740,   173,   741,   128,   173,
1406      334,   335,   760,   151,   185,    65,   753,     1,   333,    27,
1407       28,   763,   754,   574,    29,   765,   696,   149,   776,   771,
1408      128,   128,   128,   128,   777,   128,   778,   780,   783,    39,
1409      784,   803,   128,   818,   819,   839,   812,   853,   334,   335,
1410      128,    91,   245,   501,   557,    35,    36,   840,   557,   146,
1411      148,   557,   605,   843,   844,   859,    39,   169,   173,   860,
1412      861,   862,   611,   173,   173,   866,   756,   757,   759,   870,
1413      871,    39,    43,   502,   626,   152,   148,   812,  -382,  -382,
1414      524,   503,   810,  -382,   504,   444,   525,   505,   581,   557,
1415      557,   585,   557,   707,    39,   557,   128,    39,   645,   446,
1416      128,   148,    84,   128,   128,   513,   698,   735,     0,   650,
1417      651,     0,   128,     0,  -382,  -382,    66,    67,   409,  -382,
1418     -382,     0,   652,   812,  -382,    27,    28,   557,   152,     0,
1419       29,     0,   102,     0,     1,   103,   104,     0,    39,     0,
1420        0,   128,   128,   557,   128,   128,   557,   128,   128,     1,
1421        0,    86,     0,   128,    84,     0,    18,    19,     0,     2,
1422        0,    35,    36,     0,     0,    84,     0,    39,   323,   576,
1423        0,   326,     0,     0,     0,   583,   677,     0,    86,   128,
1424       86,    39,     0,    39,   179,   152,    27,    28,     0,     0,
1425      835,    29,    39,   838,   148,   128,    86,     0,   128,   128,
1426        0,     0,   108,   109,    27,    28,   148,   148,   148,    29,
1427        0,     0,   710,     0,     0,     0,     0,   148,     0,     0,
1428       27,    28,    35,    36,    69,    29,    39,     0,    39,     0,
1429      148,     1,     0,   111,   112,    39,     0,     0,     0,     0,
1430       35,    36,   148,   148,     0,     0,   236,   724,   387,   117,
1431      726,     0,     0,     0,     0,     0,    35,    36,     0,   730,
1432      731,    70,     0,   770,     0,     0,    71,   264,   265,   266,
1433      267,   268,   269,   270,   271,   272,   273,     0,     0,     0,
1434       86,     0,   179,     0,    86,     0,   148,    39,    86,     0,
1435       76,   148,     0,     0,   148,     0,     0,     0,   179,     0,
1436       39,    94,    27,    28,    86,     0,     0,    29,     0,     0,
1437        0,     0,     0,     0,     0,   391,     0,    76,     0,   174,
1438        0,     0,     0,     0,   398,     0,   178,     0,     0,     0,
1439      183,   682,     0,     0,     0,   190,     0,   207,    35,    36,
1440       69,     0,     0,   172,   573,    84,   700,     0,     0,     0,
1441        0,     0,    39,     0,     0,   148,     0,    39,     0,   148,
1442      782,     0,   705,   708,   785,     0,     0,   711,     0,     0,
1443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444        0,     0,   274,     0,     0,     0,     0,   148,     0,   148,
1445        0,   148,   148,   148,     0,     0,   148,   807,   148,   302,
1446        0,     0,    88,    39,     0,     0,     0,     0,   816,     0,
1447        0,   183,     0,     0,     0,    39,     0,     0,     0,   174,
1448        0,     0,   183,   190,     0,    86,     0,   190,   160,    88,
1449        0,   176,     0,     0,     0,   180,     0,     0,     0,     0,
1450        0,     0,   207,   174,   148,     0,     0,     0,     0,    39,
1451        0,     0,     0,   384,     0,   207,     0,     0,     0,     0,
1452      755,     0,   148,   397,     0,     0,     0,   207,   207,   207,
1453        0,     0,   766,     0,     0,     0,     0,    86,     0,     0,
1454      700,     0,     0,     0,     0,     0,     0,   431,    86,   431,
1455        0,   772,   391,    39,   775,     0,   302,     0,   398,   205,
1456      584,     0,     0,     0,     0,   586,     0,     0,     0,     0,
1457        0,   304,     0,     0,     0,     0,   664,   148,   310,     0,
1458        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1459        0,   176,    79,   317,     0,     0,   798,     0,     0,     0,
1460      801,     0,     0,   804,     0,     0,    39,     0,   302,   148,
1461      148,     0,     0,    84,     0,   176,     0,     0,   814,   815,
1462        0,   148,     0,     0,   190,   390,   392,     0,     0,     0,
1463        0,    77,     0,     0,     0,     0,   148,     0,   148,   148,
1464      148,   832,   833,     0,   834,     0,     0,   836,     0,     0,
1465        0,     0,     0,     0,     0,     0,     0,   158,     0,   434,
1466       39,   434,     0,   148,   252,     0,   302,     0,   304,     0,
1467        0,   539,     0,   207,     0,     0,   541,   205,     0,   855,
1468        0,     0,     0,     0,     0,     0,     0,   174,     0,   205,
1469      205,   205,     0,     0,     0,   865,     0,   582,   867,     0,
1470        0,    79,     0,   250,     0,     0,     0,     0,   207,   179,
1471      207,     0,   207,   207,   207,     0,   148,   207,     0,   207,
1472      304,   510,     0,     0,   302,   460,   460,     0,    86,     0,
1473        0,     0,     0,     0,     0,     0,   431,     0,     0,     0,
1474       77,     0,     0,   431,   148,   584,     0,   309,     0,     0,
1475      586,   431,     0,     0,     0,    79,     0,     0,     0,     0,
1476        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477      384,     0,     0,   148,     0,    80,     0,     0,   304,     0,
1478      420,     0,   361,     0,     0,     0,     0,   160,   176,    79,
1479      440,    79,   440,   420,    77,     0,     0,     0,   452,   176,
1480        0,     0,     0,   577,     0,   467,   467,     0,     0,     0,
1481        0,     0,     0,   148,   302,     0,     0,     0,     0,   418,
1482        0,     0,     0,     0,     0,     0,     0,     0,    77,   438,
1483       77,   438,   418,     0,     0,     0,   304,   450,     0,    75,
1484        0,     0,     0,     0,   465,   465,     0,   253,   434,     0,
1485      613,     0,     0,     0,     0,   434,     0,     0,     0,     0,
1486        0,     0,     0,   434,   205,     0,     0,   541,     0,     0,
1487      205,     0,   205,     0,   205,   205,   205,     0,     0,   205,
1488        0,   205,   390,     0,    80,   706,    78,     0,     0,     0,
1489        0,     0,     0,     0,     0,     0,     0,   207,     0,   207,
1490      207,   207,     0,     0,     0,     0,     0,     0,     0,     0,
1491        0,     0,     0,     0,     0,    79,     0,     0,   252,     0,
1492       79,     0,   467,     0,     0,     0,   304,   460,     0,     0,
1493        0,     0,     0,     0,     0,     0,    86,     0,    80,     0,
1494        0,     0,     0,     0,     0,   460,     0,   535,    75,     0,
1495        0,     0,     0,     0,    77,     0,   158,   250,   251,    77,
1496      317,   465,     0,   421,     0,     0,   599,     0,     0,     0,
1497        0,     0,    80,   441,    80,   441,   421,     0,     0,   176,
1498      170,   453,     0,     0,     0,   623,     0,     0,   468,   468,
1499      360,     0,     0,   623,     0,    78,     0,   709,     0,     0,
1500        0,     0,    75,   183,   170,   597,   102,   467,     1,   103,
1501      104,   105,   642,   106,   107,     0,   774,     0,   170,     0,
1502        0,   170,     0,     0,   621,   467,     0,     0,   374,   375,
1503      376,   378,   621,     2,     0,     0,    75,   437,    75,   437,
1504        0,     0,     0,     0,   460,     0,   465,     0,     0,    78,
1505        0,   640,   464,   464,     0,     0,    79,     0,     0,   205,
1506        0,   205,   205,   205,   465,     0,     0,     0,     0,     0,
1507        0,     0,     0,     0,   419,   174,   108,   109,   110,     0,
1508        0,     0,     0,    78,     0,    78,     0,   419,     0,     0,
1509        0,   170,   451,     0,   170,    77,     0,     0,    80,   466,
1510      466,   253,     0,    80,     0,   468,     0,   111,   112,   642,
1511        0,     0,   467,   467,   113,     0,   460,   114,     0,     0,
1512      115,     0,   116,   117,   467,   773,     0,     0,   118,   119,
1513      120,   121,     0,     0,     0,   170,     0,     0,     0,     0,
1514      811,   868,     0,     0,     0,     0,     0,     0,   640,   600,
1515        0,   465,   465,     0,     0,   534,     0,     0,     0,     0,
1516        0,     0,    75,   465,     0,   462,   462,    75,   624,   464,
1517        0,     0,     0,     0,     0,     0,   624,     0,     0,     0,
1518        0,     0,     0,     0,     0,     0,     0,   176,     0,     0,
1519      468,     0,     0,     0,     0,   643,     0,     0,     0,     0,
1520        0,     0,     0,     0,     0,     0,     0,     0,   468,    78,
1521        0,     0,   251,     0,    78,     0,   466,     0,     0,     0,
1522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523        0,     0,   620,     0,     0,     0,   460,     0,     0,    80,
1524      620,     0,     0,     0,     0,     0,     0,   467,     0,     0,
1525        0,     0,     0,     0,   464,     0,     0,     0,     0,   639,
1526      598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1527        0,     0,   464,     0,     0,   102,     0,     1,   103,   104,
1528      105,     0,   106,   107,     0,     0,   465,     0,   462,     0,
1529      170,     0,   643,     0,     0,   468,   468,     0,     0,   646,
1530        0,   466,     2,    75,     0,     0,   641,   468,     0,     0,
1531        0,     0,     0,     0,     0,     0,   467,     0,     0,   466,
1532        0,     0,     0,     0,     0,     0,   544,   545,   546,   547,
1533      548,   549,   550,   551,   552,   553,   554,     0,     0,   170,
1534        0,     0,     0,     0,     0,   108,   109,   110,     0,     0,
1535       78,   170,     0,     0,     0,   465,   639,     0,     0,   464,
1536      464,     0,     0,     0,     0,     0,     0,   462,     0,     0,
1537        0,   464,     0,     0,     0,     0,   111,   112,     0,     0,
1538        0,     0,     0,   113,     0,   462,   114,     0,     0,   115,
1539        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1540      121,     0,     0,   641,     0,     0,   466,   466,   556,   372,
1541        0,     0,     0,     0,     0,     0,     0,     0,   466,     0,
1542        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1543      468,     0,     0,   102,     0,     1,   103,   104,     0,     0,
1544        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1545        0,     0,     0,   170,     0,     0,     0,     0,     0,     0,
1546        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1547       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1548       22,    23,    24,     0,   462,     0,     0,     0,     0,   170,
1549        0,     0,     0,     0,   464,   744,   745,     0,    26,   468,
1550      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1551      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1552        0,     0,     0,     0,   170,     0,     0,   170,     0,     0,
1553        0,     0,    34,     0,   111,   112,   170,   170,     0,     0,
1554        0,   466,    35,    36,    69,     0,   462,   196,     0,   197,
1555      117,     0,     0,     0,     0,     0,   462,     0,     0,     0,
1556        0,     0,     0,   464,     0,     0,   198,   738,   199,     0,
1557        0,     0,     0,     0,     0,   791,   792,     0,   793,   794,
1558        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1561      466,     0,     0,     0,   820,     0,   821,     0,     0,     0,
1562        0,     0,     0,   830,   831,     0,     0,     0,     0,     0,
1563        0,     0,     0,     0,     0,     0,     0,   170,     0,     0,
1564        0,   170,     0,     0,     0,     0,     0,     0,     0,     0,
1565      845,     0,   846,     0,   847,     0,   848,     0,     0,   102,
1566        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1567        0,     0,     0,     0,   170,     0,   462,   863,     0,   864,
1568        0,     0,     0,     0,     0,   170,     2,     3,     4,     5,
1569        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1570       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1571      544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
1572      554,     0,     0,     0,    26,     0,     0,     0,     0,   108,
1573      109,   110,    27,    28,     0,   555,     0,    29,     0,     0,
1574       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1575        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1576      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1577      114,     0,     0,   115,     0,   116,   117,     0,     0,     0,
1578        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1579        0,     0,   556,   372,  -449,   102,     0,     1,   103,   104,
1580      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1582        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1583       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1584       20,    21,    22,    23,    24,     0,   544,   545,   546,   547,
1585      548,   549,   550,   551,   552,   553,   554,     0,     0,     0,
1586       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1587        0,   555,     0,    29,     0,     0,    30,    31,     0,    32,
1588        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1589        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1590        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1591        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1592      121,     0,     0,     0,     0,     0,     0,     0,   556,   372,
1593     -448,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1594        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1595        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1596        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1597       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1598       24,     0,   544,   545,   546,   547,   548,   549,   550,   551,
1599      552,   553,   554,     0,     0,     0,    26,     0,     0,     0,
1600        0,   108,   109,   110,    27,    28,     0,   555,     0,    29,
1601        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1602        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1603       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1604       35,    36,   114,     0,     0,   115,     0,   116,   117,     0,
1605        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1606        0,     0,     0,     0,   556,   372,  -450,   102,     0,     1,
1607      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1608        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1609        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1610        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1611       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1613        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1614       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1615        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1616        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1617        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1618        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1619      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1620      457,   458,   459,   102,     0,     1,   103,   104,   105,     0,
1621      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1623        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1624       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1625       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1626        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1627        0,     0,     0,   108,   109,   110,    27,    28,     0,     0,
1628        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1629        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1631        0,   113,    35,    36,   114,     0,     0,   115,     0,   116,
1632      117,     0,     0,     0,     0,   118,   119,   120,   121,     0,
1633        0,     0,     0,     0,     0,     0,   457,   458,   478,   102,
1634        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
1635        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1636        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1637        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1638       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1639        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640        0,     0,     0,     0,    26,     0,     0,     0,     0,   108,
1641      109,   110,    27,    28,     0,     0,     0,    29,     0,     0,
1642       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1643        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1644      111,   112,     0,     0,     0,     0,     0,   113,    35,    36,
1645      114,     0,     0,   115,     0,   116,   117,     0,     0,     0,
1646        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
1647        0,     0,   457,   458,   635,   102,     0,     1,   103,   104,
1648      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1649        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1650        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1651       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1652       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1654       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1655        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1656        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1657        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1658        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1659        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1660      121,     0,     0,     0,     0,     0,     0,     0,   649,   458,
1661     -501,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1662        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1664        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1665       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1666       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1667        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1668        0,   108,   109,   110,    27,    28,     0,     0,     0,    29,
1669        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1670        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1671       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1672       35,    36,   114,     0,     0,   115,     0,   116,   117,     0,
1673        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1674        0,     0,     0,     0,   457,   458,   703,   102,     0,     1,
1675      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1677        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1678        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1679       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1680        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1681        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1682       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1683        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1684        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1685        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1686        0,   115,     0,   116,   117,     0,     0,     0,     0,   118,
1687      119,   120,   121,   102,     0,     1,   103,   104,     0,     0,
1688      457,   458,   808,     0,     0,     0,     0,     0,     0,     0,
1689        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1690        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1691       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1692       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1693        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1694      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1695      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1696        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1697        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1698        0,     0,    35,    36,    69,     0,     0,   196,     0,   197,
1699      117,   102,     0,     1,   103,   104,     0,     0,     0,     0,
1700        0,     0,     0,     0,     0,     0,   198,     0,   393,     0,
1701        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1702        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1703       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1704       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1705        0,     0,     0,     0,     0,     0,    26,     0,   194,     0,
1706        0,   108,   109,     0,    27,    28,     0,     0,   195,    29,
1707        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1708        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1710       35,    36,    69,     0,     0,   196,     0,   197,   117,   102,
1711        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1712        0,     0,     0,     0,   198,     0,   402,     0,     0,     0,
1713        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1714        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1715       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1716        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1717        0,     0,     0,     0,    26,     0,   194,     0,     0,   108,
1718      109,     0,    27,    28,     0,     0,   195,    29,     0,     0,
1719       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1720        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1721      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1722       69,     0,     0,   196,     0,   197,   117,   102,     0,     1,
1723      103,   104,     0,     0,     0,     0,     0,     0,     0,     0,
1724        0,     0,   198,     0,   404,     0,     0,     0,     0,     0,
1725        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1726        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1727       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1728        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1729        0,     0,    26,     0,   194,     0,     0,   108,   109,     0,
1730       27,    28,     0,     0,   195,    29,     0,     0,    30,    31,
1731        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1732        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1733        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1734        0,   196,     0,   197,   117,   102,     0,     1,   103,   104,
1735        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1736      198,     0,   587,     0,     0,     0,     0,     0,     0,     0,
1737        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1738       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1739       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1740        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741       26,     0,   194,     0,     0,   108,   109,     0,    27,    28,
1742        0,     0,   195,    29,     0,     0,    30,    31,     0,    32,
1743        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1744        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1745        0,     0,     0,     0,    35,    36,    69,     0,     0,   196,
1746        0,   197,   117,   102,     0,     1,   103,   104,     0,     0,
1747        0,     0,     0,     0,     0,     0,     0,     0,   198,     0,
1748      588,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1749        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1750       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1751       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1752        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1753      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1754      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1755        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1756        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1757        0,     0,    35,    36,    69,     0,     0,   196,     0,   197,
1758      117,   102,     0,     1,   103,   104,     0,     0,     0,     0,
1759        0,     0,     0,     0,     0,     0,   198,     0,   589,     0,
1760        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1761        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1762       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1763       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764        0,     0,     0,     0,     0,     0,    26,     0,   194,     0,
1765        0,   108,   109,     0,    27,    28,     0,     0,   195,    29,
1766        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1767        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1769       35,    36,    69,     0,     0,   196,     0,   197,   117,   102,
1770        0,     1,   103,   104,     0,     0,     0,     0,     0,     0,
1771        0,     0,     0,     0,   198,     0,   591,     0,     0,     0,
1772        0,     0,     0,     0,     0,     0,     2,     3,     4,     5,
1773        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1774       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
1775        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776        0,     0,     0,     0,    26,     0,   194,     0,     0,   108,
1777      109,     0,    27,    28,     0,     0,   195,    29,     0,     0,
1778       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
1779        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
1780      111,   112,     0,     0,     0,     0,     0,     0,    35,    36,
1781       69,     0,     0,   196,     0,   197,   117,   102,     0,     1,
1782      103,   104,     0,     0,     0,     0,     0,     0,     0,     0,
1783        0,     0,   198,     0,   712,     0,     0,     0,     0,     0,
1784        0,     0,     0,     0,     2,     3,     4,     5,     6,     7,
1785        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1786       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1787        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1788        0,     0,    26,     0,   194,     0,     0,   108,   109,     0,
1789       27,    28,     0,     0,   195,    29,     0,     0,    30,    31,
1790        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1791        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1792        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
1793        0,   196,     0,   197,   117,   102,     0,     1,   103,   104,
1794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1795      198,     0,   713,     0,     0,     0,     0,     0,     0,     0,
1796        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1797       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1798       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1799        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1800       26,     0,   194,     0,     0,   108,   109,     0,    27,    28,
1801        0,     0,   195,    29,     0,     0,    30,    31,     0,    32,
1802        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1803        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1804        0,     0,     0,     0,    35,    36,    69,     0,     0,   196,
1805        0,   197,   117,   102,     0,     1,   103,   104,     0,     0,
1806        0,     0,     0,     0,     0,     0,     0,     0,   198,     0,
1807      714,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1808        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1809       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1810       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
1811        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
1812      194,     0,     0,   108,   109,     0,    27,    28,     0,     0,
1813      195,    29,     0,     0,    30,    31,     0,    32,     0,    33,
1814        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1816        0,     0,    35,    36,    69,     0,     0,   196,     0,   197,
1817      117,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1818        0,     0,     0,     0,     0,     0,   198,     0,   715,     0,
1819        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1820        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1821       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1822       24,     0,   544,   545,   546,   547,   548,   549,   550,   551,
1823      552,   553,   554,     0,     0,     0,    26,     0,     0,     0,
1824        0,   108,   109,   110,    27,    28,     0,   555,     0,    29,
1825        0,     0,    30,    31,     0,    32,   102,    33,     1,   103,
1826      104,   105,     0,   106,   107,     0,     0,     0,     0,     0,
1827       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1828       35,    36,   114,     2,     0,   115,     0,   116,   117,     0,
1829        0,     0,     0,   118,   119,   120,   121,     0,     0,     0,
1830        0,     0,     0,     0,   556,   372,     0,     0,     0,     0,
1831        0,     0,   102,     0,     1,   103,   104,   105,     0,   106,
1832      107,     0,     0,     0,     0,     0,   108,   109,   110,     0,
1833        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1834        0,     0,     0,     0,     0,     0,     0,   102,     0,     1,
1835      103,   104,   105,     0,   106,   107,     0,   111,   112,     0,
1836        0,     0,     0,     0,   113,     0,     0,   114,     0,     0,
1837      115,   481,   116,   117,     2,     0,     0,     0,   118,   119,
1838      120,   121,   108,   109,   110,     0,     0,     0,     0,     0,
1839      458,     0,     0,     0,     0,   102,     0,     1,   103,   104,
1840      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1841        0,     0,     0,   111,   112,     0,     0,   108,   109,   110,
1842      113,     0,     2,   114,     0,     0,   115,   604,   116,   117,
1843        0,     0,     0,     0,   118,   119,   120,   121,     0,     0,
1844        0,     0,     0,     0,     0,     0,   458,     0,   111,   112,
1845        0,     0,     0,     0,     0,   113,     0,     0,   114,     0,
1846        0,   115,     0,   116,   117,   108,   109,   110,     0,   118,
1847      119,   120,   121,     0,     0,     0,     0,     0,     0,     0,
1848        0,   458,     0,     0,     0,     0,     0,     0,     0,     0,
1849        0,     0,     0,     0,     0,     0,   111,   112,     0,     0,
1850        0,     0,     0,   113,     0,     0,   114,     0,     0,   115,
1851        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1852      121,   102,     0,     1,   103,   104,     0,     0,     0,   811,
1853        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1854        0,     0,     0,     0,     0,     0,     0,     0,     2,     3,
1855        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1856       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1857       24,     0,     0,   102,     0,     1,   103,   104,   105,     0,
1858      106,   107,     0,     0,     0,     0,    26,     0,   194,     0,
1859        0,   108,   109,     0,    27,    28,     0,     0,   195,    29,
1860        2,     0,    30,    31,     0,    32,   102,    33,     1,   103,
1861      104,   105,     0,   106,   107,     0,     0,     0,     0,     0,
1862       34,     0,   111,   112,     0,     0,     0,     0,     0,     0,
1863       35,    36,    69,     2,     0,   196,     0,   197,   117,     0,
1864        0,     0,     0,   108,   109,   110,     0,     0,     0,     0,
1865        0,     0,     0,     0,   198,   102,     0,     1,   103,   104,
1866      105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
1867        0,     0,     0,     0,   111,   112,   108,   109,   110,     0,
1868        0,   113,     2,     0,   114,     0,     0,   115,   761,   116,
1869      117,     0,     0,     0,     0,   118,   119,   120,   121,     0,
1870        0,     0,     0,     0,     0,     0,   556,   111,   112,     0,
1871        0,     0,     0,     0,   113,     0,     0,   114,     0,     0,
1872      115,   805,   116,   117,     0,   108,   109,   110,   118,   119,
1873      120,   121,     0,     0,     0,     0,     0,     0,     0,   556,
1874        0,     0,     0,   102,     0,     1,   103,   104,   105,     0,
1875      106,   107,     0,     0,     0,     0,   111,   112,     0,     0,
1876        0,     0,     0,   113,     1,     0,   114,     0,     0,   115,
1877        2,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1878      121,     0,     0,     0,     0,     0,     0,     0,   687,     2,
1879        3,     4,     5,     6,     7,   340,   341,   342,   343,   344,
1880      345,   346,   347,   348,   349,    18,    19,   350,   351,    22,
1881       23,   352,     0,   108,   109,   110,    27,    28,     0,     0,
1882        0,    29,     0,     0,     0,     0,     0,   353,     0,     0,
1883        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1884       29,     0,     0,     0,   111,   112,   354,     0,   355,     0,
1885        0,   113,    35,    36,   368,     0,     0,   369,   246,   116,
1886      117,   356,     0,     0,     0,   118,   119,   120,   121,     0,
1887        0,    35,    36,    69,     1,     0,   301,     0,     0,     0,
1888        0,    71,     0,     0,     0,     0,     0,     0,     0,     0,
1889        0,     0,     0,     0,     0,     0,   532,     0,     0,     2,
1890        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1891       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1892       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1893        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1894        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1895       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1896        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1898        0,    35,    36,    69,     1,     0,   380,     0,     0,     0,
1899        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1900        0,     0,     0,   381,     0,   382,     0,     0,     0,     2,
1901        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1902       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1903       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1904        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1905        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1906       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1907        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1908        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1909        0,    35,    36,    69,     1,     0,   172,     0,     0,     0,
1910        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1911        0,     0,     0,     0,     0,   692,     0,     0,     0,     2,
1912        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1913       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1914       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1915        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
1916        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
1917       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
1918        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1919        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1920        0,    35,    36,    69,     0,   102,   301,     1,   103,   104,
1921      105,    71,   106,   107,     0,     0,     0,     0,     0,     0,
1922        0,     0,     0,     0,  -284,     0,     0,     0,     0,     0,
1923        0,     0,     2,     3,     4,     5,     6,     7,     8,     9,
1924       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1925       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
1926        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1927       26,     0,     0,     0,     0,   108,   109,   110,    27,    28,
1928        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
1929        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1930        0,     0,     0,     0,    34,     0,   111,   112,     0,     0,
1931        0,     0,     0,   113,    35,    36,   114,     0,     0,   115,
1932        0,   116,   117,     0,     0,     0,     0,   118,   119,   120,
1933      121,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1935        0,     0,     0,     0,     0,     0,     0,     0,     2,     0,
1936        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
1937       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1938       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1939        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1940        0,   108,   109,   110,    27,    28,     0,     0,     0,    29,
1941        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
1942        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1943       34,     0,   111,   112,     0,     0,     0,     0,     0,   113,
1944       35,    36,   114,     0,     0,   115,   246,   116,   117,     0,
1945        0,     0,     0,   118,   119,   120,   121,   102,     0,     1,
1946      103,   104,   105,     0,   106,   107,     0,     0,     0,     0,
1947        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1948        0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
1949        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1950       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
1951        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1952        0,     0,    26,     0,     0,     0,     0,   108,   109,   110,
1953       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
1954        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
1955        0,     0,     0,     0,     0,     0,    34,     0,   111,   112,
1956        0,     0,     0,     0,     0,   113,    35,    36,   114,     0,
1957        0,   236,   246,   116,   117,     0,     0,     0,     0,   118,
1958      119,   120,   121,   102,     0,     1,   103,   104,   105,     0,
1959      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1960        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1961        2,     0,     0,     0,     0,     0,     8,     9,    10,    11,
1962       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1963       22,    23,    24,     0,     0,     0,     0,     0,     0,   102,
1964        0,     1,   103,   104,   105,     0,   106,   107,    26,     0,
1965        0,     0,     0,   108,   109,   110,    27,    28,     0,     0,
1966        0,    29,     0,     0,    30,    31,     2,    32,     0,    33,
1967        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1968        0,     0,    34,     0,   111,   112,     0,     0,     0,     0,
1969        0,   113,    35,    36,   368,     0,     0,   369,   246,   116,
1970      117,     0,     0,     0,     0,   118,   119,   120,   121,   108,
1971      109,   110,   102,     0,     1,   103,   104,   105,     0,   106,
1972      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1973        0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1974      111,   112,     0,     0,     0,     0,     0,   113,     0,     0,
1975      114,     0,     0,   115,     0,   116,   117,     0,     0,   168,
1976        0,   118,   119,   120,   121,     0,     0,     0,   102,     0,
1977        1,   103,   104,   105,     0,   106,   107,     0,     0,     0,
1978        0,     0,   108,   109,   110,     0,     0,     0,     0,     0,
1979        0,     0,     0,     0,   102,     2,     1,   103,   104,   105,
1980        0,   106,   107,     0,     0,     0,     0,     0,     0,     0,
1981        0,     0,     0,   111,   112,     0,     0,     0,     0,     0,
1982      113,     2,     0,   114,     0,     0,   115,     0,   116,   117,
1983        0,     0,   322,     0,   118,   119,   120,   121,   108,   109,
1984      110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1985      102,     0,     1,   103,   104,   105,     0,   106,   107,     0,
1986        0,     0,     0,     0,   108,   109,   110,     0,     0,   111,
1987      112,     0,     0,     0,     0,     0,   113,     2,     0,   114,
1988        0,     0,   115,     0,   116,   117,     0,     0,   325,     0,
1989      118,   119,   120,   121,     0,   111,   112,     0,     0,     0,
1990        0,     0,   113,     0,     0,   114,     0,     0,   115,   246,
1991      116,   117,     0,     0,     0,     0,   118,   119,   120,   121,
1992      108,   109,   110,   102,     0,     1,   103,   104,   105,     0,
1993      106,   107,     0,     0,     0,     0,     0,     0,     0,     0,
1994        0,   102,     0,     1,   103,   104,   105,     0,   106,   107,
1995        2,   111,   112,     0,     0,     0,     0,     0,   113,     0,
1996        0,   114,     0,     0,   115,   758,   116,   117,     2,     0,
1997        0,     0,   118,   119,   120,   121,     0,     0,     0,     0,
1998        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1999        0,     0,     0,   108,   109,   110,     0,     0,     0,   102,
2000        0,     1,   103,   104,   105,     0,   106,   107,     0,     0,
2001        0,   108,   109,   110,     0,     0,     0,     0,     0,     0,
2002        0,     0,     0,     0,   111,   112,     2,     0,     0,     0,
2003        0,   113,     0,     0,   114,     0,     0,   115,   837,   116,
2004      117,     0,   111,   112,     0,   118,   119,   120,   121,   113,
2005        0,     0,   114,     0,     0,   115,     0,   116,   117,     0,
2006        0,     0,     0,   118,   119,   120,   121,     0,     0,   108,
2007      109,   110,   102,     0,     1,   103,   104,   105,     0,   106,
2008      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2009      102,     0,     1,   103,   104,   105,     0,   106,   107,     2,
2010      111,   112,     0,     0,     0,     0,     0,   113,     0,     0,
2011      114,     0,     0,   231,     0,   116,   117,     2,     0,     0,
2012        0,   118,   119,   120,   121,     0,     0,     0,     0,     0,
2013        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2014        0,     0,   108,   109,   110,     0,     0,     0,     0,     0,
2015        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2016      108,   109,   110,     0,     0,     0,     0,     0,     0,     0,
2017        0,     0,     0,   111,   112,     0,     0,     0,     0,     0,
2018      113,     0,     0,   114,     0,     0,   236,     0,   116,   117,
2019        0,   111,   112,     1,   118,   119,   120,   121,   113,     0,
2020        0,   114,     0,     0,   244,     0,   116,   117,     0,     0,
2021        0,     0,   118,   119,   120,   121,     0,     0,     2,     3,
2022        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2023       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2024       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2025        0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
2026        0,     0,     0,     0,    27,    28,     0,     0,     0,    29,
2027        0,     0,    30,    31,     0,    32,     0,    33,     0,     0,
2028        0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
2029       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2030       35,    36,    69,     0,     0,    70,     0,     0,     0,     0,
2031       71,     0,     0,    72,     2,     3,     4,     5,     6,     7,
2032        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2033       18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
2034        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2035        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
2036       27,    28,     0,     0,     0,    29,     0,     0,    30,    31,
2037        0,    32,     0,    33,     0,     0,     0,     0,     0,     0,
2038        0,     0,     1,     0,     0,     0,    34,     0,     0,     0,
2039        0,     0,     0,     0,     0,     0,    35,    36,    69,     0,
2040        0,    70,   161,     0,     0,     0,    71,     2,     3,     4,
2041        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2042       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2043        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2044        0,     0,     0,     0,    25,    26,     0,     0,     0,     0,
2045        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2046        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
2047        0,     0,     0,     0,     0,     1,     0,     0,     0,    34,
2048        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2049       36,    69,     0,     0,   301,   161,     0,     0,     0,    71,
2050        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2051       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2052       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2053        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2054        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2055        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2056        0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
2057        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2058        0,     0,    35,    36,    69,     0,     0,   429,     0,     0,
2059        0,     0,   430,     2,     3,     4,     5,     6,     7,     8,
2060        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2061       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2062        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063        0,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2064       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2065       32,     0,    33,     0,     0,     0,     0,     0,     0,     0,
2066        0,     1,     0,     0,     0,    34,     0,     0,     0,     0,
2067        0,     0,     0,     0,     0,    35,    36,    69,     0,     0,
2068      429,     0,     0,     0,     0,   442,     2,     3,     4,     5,
2069        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2070       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
2071        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2072        0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
2073        0,     0,    27,    28,     0,     0,     0,    29,     0,     0,
2074       30,    31,     0,    32,     0,    33,     0,     0,     0,     0,
2075        0,     0,     0,     0,     1,     0,     0,     0,    34,     0,
2076        0,     0,     0,     0,     0,     0,     0,     0,    35,    36,
2077       69,     0,     0,   301,     0,     0,     0,     0,    71,     2,
2078        3,     4,     5,     6,     7,   340,   341,   342,   343,   344,
2079      345,   346,   347,   348,   349,    18,    19,   350,   351,    22,
2080       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2081        0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
2082        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2083       29,     0,     0,     0,     0,     0,   354,     0,   355,     0,
2084        0,     0,     0,     0,     0,     0,     0,     1,     0,     0,
2085        0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
2086        0,    35,    36,    69,     0,     0,   429,     0,     0,     0,
2087        0,   618,     2,     3,     4,     5,     6,     7,   340,   341,
2088      342,   343,   344,   345,   346,   347,   348,   349,    18,    19,
2089      350,   351,    22,    23,    24,     0,     0,     0,     0,     0,
2090        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2091      353,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2092        0,     0,     0,    29,     0,     0,     0,     0,     0,   354,
2093        0,   355,     0,     0,     0,     1,     0,     0,     0,     0,
2094        0,     0,     0,     0,   356,     0,     0,     0,     0,     0,
2095        0,     0,     0,     0,    35,    36,    69,     0,     0,   429,
2096        2,     0,     0,     0,   628,     0,     8,     9,    10,    11,
2097       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2098       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2099        0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2100        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2101        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2102        0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
2103        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2104        0,     0,    35,    36,    69,     0,     0,   301,     0,     0,
2105        0,     0,    71,     2,     3,     4,     5,     6,     7,     8,
2106        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2107       19,    20,    21,    22,    23,    24,     0,     0,     0,     0,
2108        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2109       25,    26,     0,     0,     0,     0,     0,     0,     0,    27,
2110       28,     0,     0,     0,    29,     0,     0,    30,    31,     0,
2111       32,     0,    33,     0,     0,     0,     0,     1,     0,     0,
2112        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
2113        0,     0,     0,     0,     0,    35,    36,    69,     0,     0,
2114      429,   608,     2,     3,     4,     5,     6,     7,     8,     9,
2115       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2116       20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
2117        0,     0,     0,     0,     0,     0,     0,     0,     0,    25,
2118       26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2119        0,     0,     0,    29,     0,     0,    30,    31,     0,    32,
2120        0,    33,     0,     0,     0,     0,     1,     0,     0,     0,
2121        0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
2122        0,     0,     0,     0,    35,    36,     0,     0,     0,     0,
2123      186,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2124       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2125       21,    22,    23,    24,     0,     0,     0,     0,     0,     0,
2126        0,     0,     0,     0,     0,     0,     0,     0,    25,    26,
2127        0,     0,     0,     0,     0,     0,     0,    27,    28,     0,
2128        0,     0,    29,     0,     0,    30,    31,     0,    32,     0,
2129       33,     0,     0,     0,     0,     1,     0,     0,     0,     0,
2130        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
2131        0,     0,     0,    35,    36,     0,     0,     0,     0,   320,
2132        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2133       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2134       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2135        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2136        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2137        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2138        0,     0,     0,     0,     1,     0,     0,     0,     0,     0,
2139        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2140        0,     0,    35,    36,     0,     0,     0,     0,   722,     2,
2141        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2142       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2143       23,    24,     0,     0,     0,     0,     0,     0,     0,     0,
2144        0,     0,     0,     0,     0,     0,     0,    26,     0,     0,
2145        0,     0,     0,     0,     0,    27,    28,     0,     0,     0,
2146       29,     0,     0,    30,    31,     0,    32,     0,    33,     0,
2147        0,     0,     1,     0,     0,     0,     0,     0,     0,     0,
2148        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
2149        0,    35,    36,    69,     0,     0,   172,     2,     3,     4,
2150        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2151       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2152        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2153        0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
2154        0,     0,     0,    27,    28,     0,     0,     0,    29,     0,
2155        0,    30,    31,     0,    32,     0,    33,     0,     0,     0,
2156        1,     0,     0,     0,     0,     0,     0,     0,     0,    34,
2157        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
2158       36,     0,     0,     0,   542,     2,     3,     4,     5,     6,
2159        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2160       17,    18,    19,    20,    21,    22,    23,    24,   514,     0,
2161        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2162        0,     0,    25,    26,     0,     0,     0,     0,     0,     0,
2163        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
2164       31,     0,    32,     0,    33,     1,     0,     0,     0,     0,
2165        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
2166        0,     0,     0,     0,     0,     0,     0,    35,    36,     0,
2167        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2168       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2169       22,    23,    24,     0,     0,     0,     0,     0,     0,     0,
2170        0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
2171        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2172        0,    29,     0,     0,    30,    31,     0,    32,     0,    33,
2173        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2174        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
2175        0,     0,    35,    36,     0,     2,     3,     4,     5,     6,
2176        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2177       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
2178        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2179        0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
2180        0,    27,    28,     0,     0,     0,    29,     0,     0,    30,
2181       31,     0,    32,     0,    33,     1,     0,     0,     0,     0,
2182        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
2183        0,     0,     0,     0,     0,     0,     0,    35,    36,     0,
2184        2,     3,     4,     5,     6,     7,   340,   341,   342,   343,
2185      344,   345,   346,   347,   348,   349,    18,    19,   350,   351,
2186       22,    23,   352,     0,     0,     0,     0,     0,     0,     0,
2187        0,     0,     0,     0,     0,     0,     0,     0,   353,     0,
2188        0,     0,     0,     0,     0,     0,    27,    28,     0,     0,
2189        0,    29,     0,     0,     0,     0,     0,   354,     0,   355,
2190        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2191        0,     0,   356,     0,     0,     0,     0,     0,     0,     0,
2192        0,     0,    35,    36,     0,     2,     3,     4,     5,     6,
2193        7,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2194      349,    18,    19,   350,   351,    22,    23,    24,     0,     0,
2195        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2196        0,     0,     0,   353,     0,     0,     0,     0,     0,     0,
2197        0,    27,    28,     0,     0,     0,    29,     0,     0,     0,
2198        0,     0,   354,     0,   355,     0,     0,     0,     0,     0,
2199        0,     0,     0,     0,     0,     0,     0,   356,     0,     0,
2200        0,     0,     0,     0,     0,     0,     0,    35,    36
2201 };
2202
2203 static const yytype_int16 yycheck[] =
2204 {
2205        0,    43,   257,    85,   261,   117,   129,   379,     0,   373,
2206      194,   242,   195,   194,    17,   339,     3,    88,   275,   194,
2207       43,   373,   122,   206,    24,     3,   194,   531,    76,     3,
2208       72,     3,   431,     3,   811,   434,   136,     3,    62,     3,
2209       88,     3,    42,    43,    70,     3,   115,    24,   683,    69,
2210       64,     3,    69,     3,    54,    70,    28,     3,     3,    59,
2211      241,     3,   243,    63,    64,    70,   241,   113,   243,   113,
2212       70,    70,    72,    69,    74,   115,    76,    54,    28,   122,
2213      857,   112,    28,    28,    69,    85,    69,    70,    88,   135,
2214       90,   135,   122,   136,    94,   113,   127,   128,   132,   181,
2215      100,   101,    74,    75,   134,   176,     3,    79,   108,   180,
2216      136,   111,   122,   617,    62,     3,   136,    94,   115,   136,
2217      134,   136,   132,   123,    43,   112,   113,   762,   131,   152,
2218      121,   136,   180,   122,   112,   113,     0,   136,   110,   111,
2219      136,   115,   112,   113,   135,   134,   133,   147,   135,   149,
2220      116,   136,   152,   136,   277,   278,   279,   135,   106,   107,
2221      135,   208,   162,   135,   116,   135,   670,   115,     0,   426,
2222      132,   135,   172,   135,   174,   359,   176,   135,   359,    90,
2223      180,   181,     3,   366,   359,   135,     3,   187,   121,   135,
2224      190,   359,   135,   135,   194,   195,   196,   197,   429,   563,
2225      564,   525,   135,   458,   204,   436,   206,   207,   208,   124,
2226      125,   563,   115,   444,   613,   112,   216,   194,   115,   115,
2227      220,   221,   222,   727,   112,   113,   249,   227,     1,   115,
2228        3,   231,    64,   152,   120,    11,    79,   261,    70,   239,
2229      240,   241,   242,   243,   244,   122,   317,   112,   196,   249,
2230      115,   275,   436,    85,   302,   436,   304,   134,   258,   136,
2231      444,   436,   262,   444,   241,   637,   243,   110,   111,   444,
2232      122,   285,   286,   114,   288,   135,   108,   133,   122,   111,
2233      463,   122,   134,   231,    12,    13,   300,   206,   236,   132,
2234      134,   305,   136,   196,   308,   112,   244,   208,   115,   300,
2235      300,   301,   121,   120,   305,   305,   122,   122,   308,   220,
2236      221,   222,   231,   261,   314,   263,   135,   317,   134,   134,
2237      575,   240,   314,   242,     3,   244,   115,   275,     5,   122,
2238      330,   120,   455,   236,   698,   114,   359,     3,   114,   112,
2239      113,   134,   112,   122,   456,   115,   122,   429,   296,   181,
2240      120,   116,   352,   114,   401,   135,   403,   122,   405,   359,
2241      263,   122,    28,   195,   364,   197,   366,     3,   114,   369,
2242      370,   371,   115,   373,   300,   352,   122,   120,    44,   305,
2243      380,   123,   359,   383,   384,   113,   114,   364,    69,    70,
2244      390,   129,   392,   296,   417,    74,    75,   397,   116,   656,
2245       79,   401,   426,   403,   122,   405,   406,   407,    74,    75,
2246      410,   130,   412,    16,   105,   415,   116,   417,   220,   221,
2247      222,   369,   113,   423,   448,   373,   116,   427,   116,   429,
2248      133,   110,   111,   116,   122,   122,   436,    95,    74,    75,
2249        7,     8,     9,    79,   444,   105,   116,   366,   121,   449,
2250      116,   109,   371,   113,   112,   136,   135,   116,     1,   436,
2251        3,   135,   510,   463,   116,   116,   369,   444,   300,   301,
2252      122,   122,   134,   305,   110,   111,   308,   116,   426,   115,
2253      428,   134,   314,   122,   507,   116,   135,     7,     8,     9,
2254      401,   122,   403,   135,   405,   406,   407,   116,   417,   410,
2255      448,   412,   116,   122,   116,   529,   119,   507,   122,    69,
2256       70,   133,   767,    69,    70,     3,   116,   531,   560,   121,
2257      116,     7,     8,     9,   182,   428,   122,   185,    10,    11,
2258      530,   531,   614,     7,     8,     9,   121,   537,    43,   539,
2259      116,   541,   115,   590,   115,   592,   593,   594,   115,   549,
2260      115,   551,   119,   120,     3,   555,   113,   557,    14,    15,
2261      560,   136,   539,   563,   564,    70,   133,    72,   226,   112,
2262      113,    76,   116,   116,   116,   523,   136,   577,   578,   122,
2263      136,   529,   582,    88,   134,   135,    74,    75,   507,   115,
2264      590,    79,   592,   593,   594,   115,   120,   429,   115,   119,
2265      120,   549,   113,   617,   406,   407,   554,   120,   410,   116,
2266      412,   121,   122,   133,   614,   563,   564,   617,   121,   122,
2267      523,   116,   110,   111,   112,    74,    75,   115,   132,   115,
2268       79,   116,   656,   119,   120,   280,   281,   136,   638,     3,
2269      136,   115,   282,   283,   132,   119,   120,   116,     3,   100,
2270      101,   554,    74,    75,   289,   290,   670,    79,   115,   134,
2271      115,   110,   111,   112,    28,   665,   115,   172,   115,   174,
2272      670,   176,   115,    28,   134,   180,   134,     3,   678,   590,
2273       44,   592,   593,   594,   136,   190,   116,   116,   110,   111,
2274      690,   196,   113,   693,   116,   121,     0,   120,   698,   531,
2275      120,   206,    28,   121,   136,   116,   706,   116,   656,   709,
2276       74,    75,    56,   727,   120,     1,   135,     3,    44,    74,
2277       75,   134,   132,   381,    79,   133,   768,   727,   132,   136,
2278      678,   679,   680,   681,   116,   683,   121,   121,   121,    43,
2279      121,   115,   690,   121,   121,   134,   770,    64,    74,    75,
2280      698,    54,   113,   291,   754,   110,   111,   136,   758,    63,
2281       64,   761,   426,   136,   136,   136,    70,    71,   768,   136,
2282      136,   136,   430,   773,   774,   134,   679,   680,   681,   136,
2283      136,    85,   614,   292,   442,   617,    90,   811,    74,    75,
2284      116,   293,   768,    79,   294,   243,   122,   295,   389,   799,
2285      800,   395,   802,   578,   108,   805,   754,   111,   463,   244,
2286      758,   115,   317,   761,   762,   308,   563,   647,    -1,   476,
2287      476,    -1,   770,    -1,   110,   111,   112,   113,   227,   115,
2288      116,    -1,   476,   857,   120,    74,    75,   837,   670,    -1,
2289       79,    -1,     1,    -1,     3,     4,     5,    -1,   152,    -1,
2290       -1,   799,   800,   853,   802,   803,   856,   805,   806,     3,
2291       -1,    43,    -1,   811,   369,    -1,    44,    45,    -1,    28,
2292       -1,   110,   111,    -1,    -1,   380,    -1,   181,   182,   384,
2293       -1,   185,    -1,    -1,    -1,   390,   544,    -1,    70,   837,
2294       72,   195,    -1,   197,    76,   727,    74,    75,    -1,    -1,
2295      803,    79,   206,   806,   208,   853,    88,    -1,   856,   857,
2296       -1,    -1,    71,    72,    74,    75,   220,   221,   222,    79,
2297       -1,    -1,   580,    -1,    -1,    -1,    -1,   231,    -1,    -1,
2298       74,    75,   110,   111,   112,    79,   240,    -1,   242,    -1,
2299      244,     3,    -1,   102,   103,   249,    -1,    -1,    -1,    -1,
2300      110,   111,   256,   257,    -1,    -1,   115,   615,   463,   118,
2301      618,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,   627,
2302      628,   115,    -1,   133,    -1,    -1,   120,    18,    19,    20,
2303       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    -1,
2304      172,    -1,   174,    -1,   176,    -1,   300,   301,   180,    -1,
2305       43,   305,    -1,    -1,   308,    -1,    -1,    -1,   190,    -1,
2306      314,    54,    74,    75,   196,    -1,    -1,    79,    -1,    -1,
2307       -1,    -1,    -1,    -1,    -1,   207,    -1,    70,    -1,    72,
2308       -1,    -1,    -1,    -1,   216,    -1,   541,    -1,    -1,    -1,
2309       83,   549,    -1,    -1,    -1,    88,    -1,    90,   110,   111,
2310      112,    -1,    -1,   115,   116,   560,   564,    -1,    -1,    -1,
2311       -1,    -1,   366,    -1,    -1,   369,    -1,   371,    -1,   373,
2312      728,    -1,   577,   578,   732,    -1,    -1,   582,    -1,    -1,
2313       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2314       -1,    -1,   133,    -1,    -1,    -1,    -1,   401,    -1,   403,
2315       -1,   405,   406,   407,    -1,    -1,   410,   765,   412,   152,
2316       -1,    -1,    43,   417,    -1,    -1,    -1,    -1,   776,    -1,
2317       -1,   164,    -1,    -1,    -1,   429,    -1,    -1,    -1,   172,
2318       -1,    -1,   175,   176,    -1,   317,    -1,   180,    69,    70,
2319       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
2320       -1,    -1,   195,   196,   458,    -1,    -1,    -1,    -1,   463,
2321       -1,    -1,    -1,   206,    -1,   208,    -1,    -1,    -1,    -1,
2322      678,    -1,   476,   216,    -1,    -1,    -1,   220,   221,   222,
2323       -1,    -1,   690,    -1,    -1,    -1,    -1,   369,    -1,    -1,
2324      698,    -1,    -1,    -1,    -1,    -1,    -1,   240,   380,   242,
2325       -1,   706,   384,   507,   709,    -1,   249,    -1,   390,    90,
2326      392,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,
2327       -1,   152,    -1,    -1,    -1,    -1,   530,   531,   159,    -1,
2328       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2329       -1,   172,    43,   174,    -1,    -1,   754,    -1,    -1,    -1,
2330      758,    -1,    -1,   761,    -1,    -1,   560,    -1,   301,   563,
2331      564,    -1,    -1,   768,    -1,   196,    -1,    -1,   773,   774,
2332       -1,   575,    -1,    -1,   317,   206,   207,    -1,    -1,    -1,
2333       -1,    43,    -1,    -1,    -1,    -1,   590,    -1,   592,   593,
2334      594,   799,   800,    -1,   802,    -1,    -1,   805,    -1,    -1,
2335       -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,   240,
2336      614,   242,    -1,   617,   115,    -1,   359,    -1,   249,    -1,
2337       -1,   364,    -1,   366,    -1,    -1,   369,   208,    -1,   837,
2338       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,   220,
2339      221,   222,    -1,    -1,    -1,   853,    -1,   390,   856,    -1,
2340       -1,   152,    -1,   115,    -1,    -1,    -1,    -1,   401,   541,
2341      403,    -1,   405,   406,   407,    -1,   670,   410,    -1,   412,
2342      301,   302,    -1,    -1,   417,   256,   257,    -1,   560,    -1,
2343       -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,    -1,
2344      152,    -1,    -1,   436,   698,   577,    -1,   159,    -1,    -1,
2345      582,   444,    -1,    -1,    -1,   206,    -1,    -1,    -1,    -1,
2346       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2347      463,    -1,    -1,   727,    -1,    43,    -1,    -1,   359,    -1,
2348      231,    -1,   194,    -1,    -1,    -1,    -1,   368,   369,   240,
2349      241,   242,   243,   244,   206,    -1,    -1,    -1,   249,   380,
2350       -1,    -1,    -1,   384,    -1,   256,   257,    -1,    -1,    -1,
2351       -1,    -1,    -1,   767,   507,    -1,    -1,    -1,    -1,   231,
2352       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   240,   241,
2353      242,   243,   244,    -1,    -1,    -1,   417,   249,    -1,    43,
2354       -1,    -1,    -1,    -1,   256,   257,    -1,   115,   429,    -1,
2355      431,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
2356       -1,    -1,    -1,   444,   395,    -1,    -1,   560,    -1,    -1,
2357      401,    -1,   403,    -1,   405,   406,   407,    -1,    -1,   410,
2358       -1,   412,   463,    -1,   152,   578,    43,    -1,    -1,    -1,
2359       -1,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,   592,
2360      593,   594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2361       -1,    -1,    -1,    -1,    -1,   366,    -1,    -1,   369,    -1,
2362      371,    -1,   373,    -1,    -1,    -1,   507,   458,    -1,    -1,
2363       -1,    -1,    -1,    -1,    -1,    -1,   768,    -1,   206,    -1,
2364       -1,    -1,    -1,    -1,    -1,   476,    -1,   359,   152,    -1,
2365       -1,    -1,    -1,    -1,   366,    -1,   368,   369,   115,   371,
2366      541,   373,    -1,   231,    -1,    -1,   417,    -1,    -1,    -1,
2367       -1,    -1,   240,   241,   242,   243,   244,    -1,    -1,   560,
2368       71,   249,    -1,    -1,    -1,   436,    -1,    -1,   256,   257,
2369      194,    -1,    -1,   444,    -1,   152,    -1,   578,    -1,    -1,
2370       -1,    -1,   206,   696,    95,   417,     1,   458,     3,     4,
2371        5,     6,   463,     8,     9,    -1,   709,    -1,   109,    -1,
2372       -1,   112,    -1,    -1,   436,   476,    -1,    -1,   200,   201,
2373      202,   203,   444,    28,    -1,    -1,   240,   241,   242,   243,
2374       -1,    -1,    -1,    -1,   575,    -1,   458,    -1,    -1,   206,
2375       -1,   463,   256,   257,    -1,    -1,   507,    -1,    -1,   590,
2376       -1,   592,   593,   594,   476,    -1,    -1,    -1,    -1,    -1,
2377       -1,    -1,    -1,    -1,   231,   768,    71,    72,    73,    -1,
2378       -1,    -1,    -1,   240,    -1,   242,    -1,   244,    -1,    -1,
2379       -1,   182,   249,    -1,   185,   507,    -1,    -1,   366,   256,
2380      257,   369,    -1,   371,    -1,   373,    -1,   102,   103,   560,
2381       -1,    -1,   563,   564,   109,    -1,   647,   112,    -1,    -1,
2382      115,    -1,   117,   118,   575,   706,    -1,    -1,   123,   124,
2383      125,   126,    -1,    -1,    -1,   226,    -1,    -1,    -1,    -1,
2384      135,   136,    -1,    -1,    -1,    -1,    -1,    -1,   560,   417,
2385       -1,   563,   564,    -1,    -1,   359,    -1,    -1,    -1,    -1,
2386       -1,    -1,   366,   575,    -1,   256,   257,   371,   436,   373,
2387       -1,    -1,    -1,    -1,    -1,    -1,   444,    -1,    -1,    -1,
2388       -1,    -1,    -1,    -1,    -1,    -1,    -1,   768,    -1,    -1,
2389      458,    -1,    -1,    -1,    -1,   463,    -1,    -1,    -1,    -1,
2390       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   476,   366,
2391       -1,    -1,   369,    -1,   371,    -1,   373,    -1,    -1,    -1,
2392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2393       -1,    -1,   436,    -1,    -1,    -1,   767,    -1,    -1,   507,
2394      444,    -1,    -1,    -1,    -1,    -1,    -1,   698,    -1,    -1,
2395       -1,    -1,    -1,    -1,   458,    -1,    -1,    -1,    -1,   463,
2396      417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2397       -1,    -1,   476,    -1,    -1,     1,    -1,     3,     4,     5,
2398        6,    -1,     8,     9,    -1,    -1,   698,    -1,   379,    -1,
2399      381,    -1,   560,    -1,    -1,   563,   564,    -1,    -1,   471,
2400       -1,   458,    28,   507,    -1,    -1,   463,   575,    -1,    -1,
2401       -1,    -1,    -1,    -1,    -1,    -1,   767,    -1,    -1,   476,
2402       -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    54,    55,
2403       56,    57,    58,    59,    60,    61,    62,    -1,    -1,   430,
2404       -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
2405      507,   442,    -1,    -1,    -1,   767,   560,    -1,    -1,   563,
2406      564,    -1,    -1,    -1,    -1,    -1,    -1,   458,    -1,    -1,
2407       -1,   575,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2408       -1,    -1,    -1,   109,    -1,   476,   112,    -1,    -1,   115,
2409       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2410      126,    -1,    -1,   560,    -1,    -1,   563,   564,   134,   135,
2411       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   575,    -1,
2412       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2413      698,    -1,    -1,     1,    -1,     3,     4,     5,    -1,    -1,
2414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2415       -1,    -1,    -1,   544,    -1,    -1,    -1,    -1,    -1,    -1,
2416       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2417       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2418       48,    49,    50,    -1,   575,    -1,    -1,    -1,    -1,   580,
2419       -1,    -1,    -1,    -1,   698,   667,   668,    -1,    66,   767,
2420       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2421       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2422       -1,    -1,    -1,    -1,   615,    -1,    -1,   618,    -1,    -1,
2423       -1,    -1,   100,    -1,   102,   103,   627,   628,    -1,    -1,
2424       -1,   698,   110,   111,   112,    -1,   637,   115,    -1,   117,
2425      118,    -1,    -1,    -1,    -1,    -1,   647,    -1,    -1,    -1,
2426       -1,    -1,    -1,   767,    -1,    -1,   134,   658,   136,    -1,
2427       -1,    -1,    -1,    -1,    -1,   747,   748,    -1,   750,   751,
2428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2429       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2431      767,    -1,    -1,    -1,   786,    -1,   788,    -1,    -1,    -1,
2432       -1,    -1,    -1,   795,   796,    -1,    -1,    -1,    -1,    -1,
2433       -1,    -1,    -1,    -1,    -1,    -1,    -1,   728,    -1,    -1,
2434       -1,   732,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2435      822,    -1,   824,    -1,   826,    -1,   828,    -1,    -1,     1,
2436       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2437       -1,    -1,    -1,    -1,   765,    -1,   767,   849,    -1,   851,
2438       -1,    -1,    -1,    -1,    -1,   776,    28,    29,    30,    31,
2439       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2440       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2441       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2442       62,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2443       72,    73,    74,    75,    -1,    77,    -1,    79,    -1,    -1,
2444       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2445       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2446      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2447      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,
2448       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2449       -1,    -1,   134,   135,   136,     1,    -1,     3,     4,     5,
2450        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2451       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2452       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2453       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2454       46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
2455       56,    57,    58,    59,    60,    61,    62,    -1,    -1,    -1,
2456       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2457       -1,    77,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2458       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2459       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2460       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2461       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2462      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,   135,
2463      136,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2464       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2466       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2467       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2468       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2469       60,    61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2470       -1,    71,    72,    73,    74,    75,    -1,    77,    -1,    79,
2471       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2472       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2473      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2474      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2475       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2476       -1,    -1,    -1,    -1,   134,   135,   136,     1,    -1,     3,
2477        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2478       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2479       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2480       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2481       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2482       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2483       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2484       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2485       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2486       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2487       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2488       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2489      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2490      134,   135,   136,     1,    -1,     3,     4,     5,     6,    -1,
2491        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2493       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2494       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2495       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2496       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2497       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2498       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2499       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2500       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2501       -1,   109,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2502      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2503       -1,    -1,    -1,    -1,    -1,    -1,   134,   135,   136,     1,
2504       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2506       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2507       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2508       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2509       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2510       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2511       72,    73,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2512       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2513       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2514      102,   103,    -1,    -1,    -1,    -1,    -1,   109,   110,   111,
2515      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,    -1,
2516       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2517       -1,    -1,   134,   135,   136,     1,    -1,     3,     4,     5,
2518        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2519       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2520       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2521       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2522       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2524       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2525       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2526       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2527       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2528       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2529       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2530      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,   135,
2531      136,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2532       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2534       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2535       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2536       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2537       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2538       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2539       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2540       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2541      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2542      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2543       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2544       -1,    -1,    -1,    -1,   134,   135,   136,     1,    -1,     3,
2545        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2546       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2547       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2548       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2549       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2550       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2551       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2552       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2553       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2554       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2555       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2556       -1,   115,    -1,   117,   118,    -1,    -1,    -1,    -1,   123,
2557      124,   125,   126,     1,    -1,     3,     4,     5,    -1,    -1,
2558      134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2560       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2561       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2562       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2564       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2565       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2566       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2567       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2568       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2569      118,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2570       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2572       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2573       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2574       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2575       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2576       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2577       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2579      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2580      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2581       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2582       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2583       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2584       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2585       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2586       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2587       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2588       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2589       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2591      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2592      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2593        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2594       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2595       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2596       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2597       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2599       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2600       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2601       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2602       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2603       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2604       -1,   115,    -1,   117,   118,     1,    -1,     3,     4,     5,
2605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2606      134,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2607       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2608       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2609       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2611       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2612       -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,
2613       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2614       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2615       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2616       -1,   117,   118,     1,    -1,     3,     4,     5,    -1,    -1,
2617       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2618      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2619       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2620       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2621       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2622       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2623       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2624       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2625       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2626       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2627       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2628      118,     1,    -1,     3,     4,     5,    -1,    -1,    -1,    -1,
2629       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2630       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2631       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2632       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2633       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2634       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2635       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2636       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2637       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2638      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2639      110,   111,   112,    -1,    -1,   115,    -1,   117,   118,     1,
2640       -1,     3,     4,     5,    -1,    -1,    -1,    -1,    -1,    -1,
2641       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2642       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2643       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2644       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2646       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2647       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2648       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2649       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2650      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2651      112,    -1,    -1,   115,    -1,   117,   118,     1,    -1,     3,
2652        4,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2653       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    -1,    -1,
2654       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2655       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2656       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2657       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2658       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2659       74,    75,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
2660       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2661       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2662       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2663       -1,   115,    -1,   117,   118,     1,    -1,     3,     4,     5,
2664       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2665      134,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2666       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2667       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2668       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2670       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2671       -1,    -1,    78,    79,    -1,    -1,    82,    83,    -1,    85,
2672       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2673       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2674       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2675       -1,   117,   118,     1,    -1,     3,     4,     5,    -1,    -1,
2676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2677      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2678       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2679       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2680       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2682       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2683       78,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2684       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2685       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2686       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,   117,
2687      118,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2688       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2690       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2691       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2692       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2693       60,    61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2694       -1,    71,    72,    73,    74,    75,    -1,    77,    -1,    79,
2695       -1,    -1,    82,    83,    -1,    85,     1,    87,     3,     4,
2696        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2697      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2698      110,   111,   112,    28,    -1,   115,    -1,   117,   118,    -1,
2699       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,
2700       -1,    -1,    -1,    -1,   134,   135,    -1,    -1,    -1,    -1,
2701       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
2702        9,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
2703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2704       -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
2705        4,     5,     6,    -1,     8,     9,    -1,   102,   103,    -1,
2706       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
2707      115,   116,   117,   118,    28,    -1,    -1,    -1,   123,   124,
2708      125,   126,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2709      135,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2710        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2711       -1,    -1,    -1,   102,   103,    -1,    -1,    71,    72,    73,
2712      109,    -1,    28,   112,    -1,    -1,   115,   116,   117,   118,
2713       -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,
2714       -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,   102,   103,
2715       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
2716       -1,   115,    -1,   117,   118,    71,    72,    73,    -1,   123,
2717      124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2718       -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2719       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2720       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,
2721       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2722      126,     1,    -1,     3,     4,     5,    -1,    -1,    -1,   135,
2723       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2724       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2725       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2726       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2727       50,    -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,
2728        8,     9,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2729       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2730       28,    -1,    82,    83,    -1,    85,     1,    87,     3,     4,
2731        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2732      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2733      110,   111,   112,    28,    -1,   115,    -1,   117,   118,    -1,
2734       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,
2735       -1,    -1,    -1,    -1,   134,     1,    -1,     3,     4,     5,
2736        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2737       -1,    -1,    -1,    -1,   102,   103,    71,    72,    73,    -1,
2738       -1,   109,    28,    -1,   112,    -1,    -1,   115,   116,   117,
2739      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2740       -1,    -1,    -1,    -1,    -1,    -1,   134,   102,   103,    -1,
2741       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
2742      115,   116,   117,   118,    -1,    71,    72,    73,   123,   124,
2743      125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2744       -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,
2745        8,     9,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2746       -1,    -1,    -1,   109,     3,    -1,   112,    -1,    -1,   115,
2747       28,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2748      126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    28,
2749       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2750       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2751       49,    50,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2752       -1,    79,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2753       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2754       79,    -1,    -1,    -1,   102,   103,    85,    -1,    87,    -1,
2755       -1,   109,   110,   111,   112,    -1,    -1,   115,   116,   117,
2756      118,   100,    -1,    -1,    -1,   123,   124,   125,   126,    -1,
2757       -1,   110,   111,   112,     3,    -1,   115,    -1,    -1,    -1,
2758       -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2759       -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,    28,
2760       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2761       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2762       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2763       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2764       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2765       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2766       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2767       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2768       -1,   110,   111,   112,     3,    -1,   115,    -1,    -1,    -1,
2769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2770       -1,    -1,    -1,   132,    -1,   134,    -1,    -1,    -1,    28,
2771       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2772       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2773       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2775       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2776       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2778       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2779       -1,   110,   111,   112,     3,    -1,   115,    -1,    -1,    -1,
2780       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2781       -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    28,
2782       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2783       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2784       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2786       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2787       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
2788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2789       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2790       -1,   110,   111,   112,    -1,     1,   115,     3,     4,     5,
2791        6,   120,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2792       -1,    -1,    -1,    -1,   133,    -1,    -1,    -1,    -1,    -1,
2793       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2794       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2795       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2797       66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    75,
2798       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2799       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2800       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2801       -1,    -1,    -1,   109,   110,   111,   112,    -1,    -1,   115,
2802       -1,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
2803      126,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
2806       -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,    39,
2807       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2808       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2809       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2810       -1,    71,    72,    73,    74,    75,    -1,    -1,    -1,    79,
2811       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2812       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2813      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2814      110,   111,   112,    -1,    -1,   115,   116,   117,   118,    -1,
2815       -1,    -1,    -1,   123,   124,   125,   126,     1,    -1,     3,
2816        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2817       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2818       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
2819       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2820       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2822       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2823       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2824       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2825       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2826       -1,    -1,    -1,    -1,    -1,   109,   110,   111,   112,    -1,
2827       -1,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
2828      124,   125,   126,     1,    -1,     3,     4,     5,     6,    -1,
2829        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2831       28,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
2832       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2833       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,     1,
2834       -1,     3,     4,     5,     6,    -1,     8,     9,    66,    -1,
2835       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2836       -1,    79,    -1,    -1,    82,    83,    28,    85,    -1,    87,
2837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2838       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2839       -1,   109,   110,   111,   112,    -1,    -1,   115,   116,   117,
2840      118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,    71,
2841       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
2842        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2844      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2845      112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,   121,
2846       -1,   123,   124,   125,   126,    -1,    -1,    -1,     1,    -1,
2847        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2848       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2849       -1,    -1,    -1,    -1,     1,    28,     3,     4,     5,     6,
2850       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2851       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2852      109,    28,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2853       -1,    -1,   121,    -1,   123,   124,   125,   126,    71,    72,
2854       73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2855        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2856       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,   102,
2857      103,    -1,    -1,    -1,    -1,    -1,   109,    28,    -1,   112,
2858       -1,    -1,   115,    -1,   117,   118,    -1,    -1,   121,    -1,
2859      123,   124,   125,   126,    -1,   102,   103,    -1,    -1,    -1,
2860       -1,    -1,   109,    -1,    -1,   112,    -1,    -1,   115,   116,
2861      117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,   126,
2862       71,    72,    73,     1,    -1,     3,     4,     5,     6,    -1,
2863        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2864       -1,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2865       28,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,
2866       -1,   112,    -1,    -1,   115,   116,   117,   118,    28,    -1,
2867       -1,    -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,
2868       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2869       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,     1,
2870       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2871       -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
2872       -1,    -1,    -1,    -1,   102,   103,    28,    -1,    -1,    -1,
2873       -1,   109,    -1,    -1,   112,    -1,    -1,   115,   116,   117,
2874      118,    -1,   102,   103,    -1,   123,   124,   125,   126,   109,
2875       -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,
2876       -1,    -1,    -1,   123,   124,   125,   126,    -1,    -1,    71,
2877       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
2878        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2879        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    28,
2880      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2881      112,    -1,    -1,   115,    -1,   117,   118,    28,    -1,    -1,
2882       -1,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
2883       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2884       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2886       71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2887       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2888      109,    -1,    -1,   112,    -1,    -1,   115,    -1,   117,   118,
2889       -1,   102,   103,     3,   123,   124,   125,   126,   109,    -1,
2890       -1,   112,    -1,    -1,   115,    -1,   117,   118,    -1,    -1,
2891       -1,    -1,   123,   124,   125,   126,    -1,    -1,    28,    29,
2892       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2893       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2894       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2895       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2896       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,
2897       -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,
2898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
2899      100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2900      110,   111,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
2901      120,    -1,    -1,   123,    28,    29,    30,    31,    32,    33,
2902       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2903       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2904       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2905       -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2906       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
2907       -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
2908       -1,    -1,     3,    -1,    -1,    -1,   100,    -1,    -1,    -1,
2909       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2910       -1,   115,   116,    -1,    -1,    -1,   120,    28,    29,    30,
2911       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2912       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2913       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2914       -1,    -1,    -1,    -1,    65,    66,    -1,    -1,    -1,    -1,
2915       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
2916       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
2917       -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   100,
2918       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2919      111,   112,    -1,    -1,   115,   116,    -1,    -1,    -1,   120,
2920       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2921       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2922       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2923       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2924       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
2925       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
2927       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2928       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,    -1,
2929       -1,    -1,   120,    28,    29,    30,    31,    32,    33,    34,
2930       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2931       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2933       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
2934       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
2935       85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2936       -1,     3,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
2937       -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,
2938      115,    -1,    -1,    -1,    -1,   120,    28,    29,    30,    31,
2939       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2940       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2941       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2942       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2943       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2944       82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,
2945       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   100,    -1,
2946       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2947      112,    -1,    -1,   115,    -1,    -1,    -1,    -1,   120,    28,
2948       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2949       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2950       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2951       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2952       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2953       79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,
2954       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
2955       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2956       -1,   110,   111,   112,    -1,    -1,   115,    -1,    -1,    -1,
2957       -1,   120,    28,    29,    30,    31,    32,    33,    34,    35,
2958       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2959       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2960       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2961       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
2962       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
2963       -1,    87,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
2964       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
2965       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,   115,
2966       28,    -1,    -1,    -1,   120,    -1,    34,    35,    36,    37,
2967       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2968       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2969       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2970       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
2971       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
2972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
2973       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2974       -1,    -1,   110,   111,   112,    -1,    -1,   115,    -1,    -1,
2975       -1,    -1,   120,    28,    29,    30,    31,    32,    33,    34,
2976       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2977       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2978       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2979       65,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
2980       75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,
2981       85,    -1,    87,    -1,    -1,    -1,    -1,     3,    -1,    -1,
2982       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
2983       -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,
2984      115,   116,    28,    29,    30,    31,    32,    33,    34,    35,
2985       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2986       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
2988       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
2989       -1,    -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,
2990       -1,    87,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,
2991       -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
2992       -1,    -1,    -1,    -1,   110,   111,    -1,    -1,    -1,    -1,
2993      116,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2994       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2995       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2996       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
2997       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
2998       -1,    -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,
2999       87,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,
3000       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
3001       -1,    -1,    -1,   110,   111,    -1,    -1,    -1,    -1,   116,
3002       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3003       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3004       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3005       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3006       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3007       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3008       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,
3009       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3010       -1,    -1,   110,   111,    -1,    -1,    -1,    -1,   116,    28,
3011       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3012       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3013       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
3015       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
3016       79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,    -1,
3017       -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3018       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3019       -1,   110,   111,   112,    -1,    -1,   115,    28,    29,    30,
3020       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3021       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3022       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3023       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
3024       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
3025       -1,    82,    83,    -1,    85,    -1,    87,    -1,    -1,    -1,
3026        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
3027       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
3028      111,    -1,    -1,    -1,   115,    28,    29,    30,    31,    32,
3029       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3030       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
3031       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3032       -1,    -1,    65,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3033       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
3034       83,    -1,    85,    -1,    87,     3,    -1,    -1,    -1,    -1,
3035       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3036       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,
3037       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3038       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3039       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3040       -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,
3041       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3042       -1,    79,    -1,    -1,    82,    83,    -1,    85,    -1,    87,
3043        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3044       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3045       -1,    -1,   110,   111,    -1,    28,    29,    30,    31,    32,
3046       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3047       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
3048       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3049       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3050       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
3051       83,    -1,    85,    -1,    87,     3,    -1,    -1,    -1,    -1,
3052       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3053       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,    -1,
3054       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3055       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3056       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3057       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
3058       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
3059       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,
3060        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3061       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3062       -1,    -1,   110,   111,    -1,    28,    29,    30,    31,    32,
3063       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3064       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
3065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3066       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
3067       -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,
3068       -1,    -1,    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,
3069       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
3070       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111
3071 };
3072
3073 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3074    symbol of state STATE-NUM.  */
3075 static const yytype_uint16 yystos[] =
3076 {
3077        0,     3,    28,    29,    30,    31,    32,    33,    34,    35,
3078       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
3079       46,    47,    48,    49,    50,    65,    66,    74,    75,    79,
3080       82,    83,    85,    87,   100,   110,   111,   138,   139,   140,
3081      141,   142,   147,   179,   180,   185,   186,   187,   191,   192,
3082      193,   194,   196,   197,   203,   211,   212,   230,   261,   135,
3083      142,   147,   115,   115,   113,     1,   112,   113,   147,   112,
3084      115,   120,   123,   138,   147,   185,   186,   193,   194,   196,
3085      212,   215,   217,   219,   220,   222,   223,   224,   227,   115,
3086      135,   141,   142,   147,   186,   132,     0,   147,   213,   214,
3087      135,   135,     1,     4,     5,     6,     8,     9,    71,    72,
3088       73,   102,   103,   109,   112,   115,   117,   118,   123,   124,
3089      125,   126,   140,   147,   148,   149,   150,   154,   155,   157,
3090      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3091      168,   169,   170,   171,   248,   251,   140,   147,   140,   147,
3092      155,   161,   179,   198,   199,   200,   201,   202,   193,   226,
3093      227,   116,   147,   217,   219,   228,   229,   230,   121,   140,
3094      170,   174,   115,   147,   186,   219,   227,   215,   220,   223,
3095      227,   115,   120,   186,   115,   120,   116,   147,   228,   231,
3096      186,   215,   224,   115,    68,    78,   115,   117,   134,   136,
3097      143,   144,   145,   146,   147,   150,   179,   186,   204,   205,
3098      206,   207,   208,   220,   221,   223,   227,   250,   251,   253,
3099      135,   135,   135,   142,   147,   174,   133,   122,   136,   213,
3100      213,   115,   149,   152,   154,   156,   115,   155,   155,   147,
3101      179,   174,   179,   174,   115,   156,   116,   171,   173,   176,
3102      193,   194,   196,   212,   232,   248,   135,   135,     7,     8,
3103        9,   115,   119,   120,    18,    19,    20,    21,    22,    23,
3104       24,    25,    26,    27,   133,   172,   158,   112,   127,   128,
3105      124,   125,    10,    11,   161,    12,    13,   113,   114,    14,
3106       15,   123,   129,   130,    16,    17,   131,   116,   116,   116,
3107      133,   115,   186,   217,   227,   133,    11,   114,   122,   193,
3108      227,   116,   116,   116,   122,   121,   121,   227,   215,   224,
3109      116,   228,   121,   140,   174,   121,   140,   174,   116,   116,
3110      122,     3,    28,    44,    74,    75,   116,   188,   189,   190,
3111       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3112       46,    47,    50,    66,    85,    87,   100,   142,   147,   181,
3113      185,   193,   195,   197,   203,   211,   179,   221,   112,   115,
3114      147,   179,   135,   242,   243,   243,   243,   134,   243,   133,
3115      115,   132,   134,   147,   186,   209,   210,   220,   221,   225,
3116      227,   223,   227,   136,   208,   122,   134,   186,   223,   134,
3117      134,   204,   136,   204,   136,   204,   135,   135,   174,   214,
3118      134,   136,   134,   136,   138,   147,   155,   177,   193,   194,
3119      196,   212,   233,     7,     8,     9,   115,   119,   120,   115,
3120      120,   186,   216,   218,   227,   147,   182,   185,   193,   195,
3121      196,   212,   120,   218,   182,   155,   233,   116,   122,   147,
3122      193,   194,   196,   212,   217,   116,   119,   134,   135,   136,
3123      150,   151,   170,   178,   185,   193,   194,   196,   212,   235,
3124      252,   254,   255,   256,   257,   258,   259,   260,   136,   260,
3125      147,   116,   151,   153,   171,   147,   173,   151,   171,   158,
3126      158,   158,   159,   159,   160,   160,   161,   161,   161,   163,
3127      163,   164,   165,   166,   167,   168,   173,   179,   199,   200,
3128      227,   199,   200,   201,    51,   230,   116,   121,   121,   121,
3129      121,   147,   116,   115,   116,   122,   189,   142,   147,   115,
3130      115,   113,   135,   147,   185,   193,   195,   217,   147,   186,
3131      221,   186,   115,   136,    52,    53,    54,    55,    56,    57,
3132       58,    59,    60,    61,    62,    77,   134,   147,   173,   175,
3133      178,   237,   238,   239,   240,   241,   243,   244,   245,   246,
3134      247,   249,   235,   116,   174,   135,   220,   227,   122,   134,
3135      132,   191,   186,   220,   223,   205,   223,   136,   136,   136,
3136      204,   136,   204,   204,   204,   116,   138,   193,   194,   196,
3137      212,   217,   116,   147,   116,   153,   147,   173,   116,   218,
3138      228,   174,   216,   227,   115,   120,   216,   113,   120,   147,
3139      185,   193,   195,   196,   212,   218,   174,   120,   120,   218,
3140      116,   116,   171,   158,   248,   136,   260,   133,   147,   185,
3141      193,   194,   196,   212,   221,   225,   243,   122,   134,   134,
3142      255,   257,   258,   136,   136,   116,   122,   121,   132,   217,
3143      173,   116,   189,   171,   140,   147,   202,    69,    70,   136,
3144      113,   135,   135,   147,   142,   147,   116,   174,   132,   115,
3145      115,   115,   237,   115,   147,   134,   134,   134,   173,   147,
3146      132,   134,   134,   147,   183,   184,   219,   175,   240,   175,
3147      237,   136,   134,   136,   260,   220,   186,   210,   220,   227,
3148      174,   220,   136,   136,   136,   136,   116,   121,   116,   116,
3149      121,   216,   116,   228,   174,   202,   174,   113,   120,   121,
3150      174,   174,   120,   136,   235,   256,   151,   171,   170,   116,
3151      116,   116,   116,   114,   243,   243,   202,    69,    70,   136,
3152       69,    70,   136,   135,   132,   237,   173,   173,   116,   173,
3153       56,   116,   244,   134,   134,   133,   237,   135,   122,   134,
3154      133,   136,   220,   227,   186,   220,   132,   116,   121,   114,
3155      121,   202,   174,   121,   121,   174,    70,   136,    69,   136,
3156      114,   243,   243,   243,   243,    69,    70,   136,   237,   116,
3157      116,   237,   116,   115,   237,   116,   244,   174,   136,   260,
3158      184,   135,   171,   234,   220,   220,   174,   114,   121,   121,
3159      243,   243,    70,   136,    69,   136,    70,   136,    69,   136,
3160      243,   243,   237,   237,   237,   173,   237,   116,   173,   134,
3161      136,   234,   236,   136,   136,   243,   243,   243,   243,    70,
3162      136,    69,   136,    64,   116,   237,   116,   122,   136,   136,
3163      136,   136,   136,   243,   243,   237,   134,   237,   136,   234,
3164      136,   136
3165 };
3166
3167 #define yyerrok         (yyerrstatus = 0)
3168 #define yyclearin       (yychar = YYEMPTY)
3169 #define YYEMPTY         (-2)
3170 #define YYEOF           0
3171
3172 #define YYACCEPT        goto yyacceptlab
3173 #define YYABORT         goto yyabortlab
3174 #define YYERROR         goto yyerrorlab
3175
3176
3177 /* Like YYERROR except do call yyerror.  This remains here temporarily
3178    to ease the transition to the new meaning of YYERROR, for GCC.
3179    Once GCC version 2 has supplanted version 1, this can go.  However,
3180    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
3181    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
3182    discussed.  */
3183
3184 #define YYFAIL          goto yyerrlab
3185 #if defined YYFAIL
3186   /* This is here to suppress warnings from the GCC cpp's
3187      -Wunused-macros.  Normally we don't worry about that warning, but
3188      some users do, and we want to make it easy for users to remove
3189      YYFAIL uses, which will produce warnings from Bison 2.5.  */
3190 #endif
3191
3192 #define YYRECOVERING()  (!!yyerrstatus)
3193
3194 #define YYBACKUP(Token, Value)                                  \
3195 do                                                              \
3196   if (yychar == YYEMPTY && yylen == 1)                          \
3197     {                                                           \
3198       yychar = (Token);                                         \
3199       yylval = (Value);                                         \
3200       yytoken = YYTRANSLATE (yychar);                           \
3201       YYPOPSTACK (1);                                           \
3202       goto yybackup;                                            \
3203     }                                                           \
3204   else                                                          \
3205     {                                                           \
3206       yyerror (YY_("syntax error: cannot back up")); \
3207       YYERROR;                                                  \
3208     }                                                           \
3209 while (YYID (0))
3210
3211
3212 #define YYTERROR        1
3213 #define YYERRCODE       256
3214
3215
3216 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3217    If N is 0, then set CURRENT to the empty location which ends
3218    the previous symbol: RHS[0] (always defined).  */
3219
3220 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3221 #ifndef YYLLOC_DEFAULT
3222 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
3223     do                                                                  \
3224       if (YYID (N))                                                    \
3225         {                                                               \
3226           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
3227           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
3228           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
3229           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
3230         }                                                               \
3231       else                                                              \
3232         {                                                               \
3233           (Current).first_line   = (Current).last_line   =              \
3234             YYRHSLOC (Rhs, 0).last_line;                                \
3235           (Current).first_column = (Current).last_column =              \
3236             YYRHSLOC (Rhs, 0).last_column;                              \
3237         }                                                               \
3238     while (YYID (0))
3239 #endif
3240
3241
3242 /* YY_LOCATION_PRINT -- Print the location on the stream.
3243    This macro was not mandated originally: define only if we know
3244    we won't break user code: when these are the locations we know.  */
3245
3246 #ifndef YY_LOCATION_PRINT
3247 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3248 #  define YY_LOCATION_PRINT(File, Loc)                  \
3249      fprintf (File, "%d.%d-%d.%d",                      \
3250               (Loc).first_line, (Loc).first_column,     \
3251               (Loc).last_line,  (Loc).last_column)
3252 # else
3253 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3254 # endif
3255 #endif
3256
3257
3258 /* YYLEX -- calling `yylex' with the right arguments.  */
3259
3260 #ifdef YYLEX_PARAM
3261 # define YYLEX yylex (YYLEX_PARAM)
3262 #else
3263 # define YYLEX yylex ()
3264 #endif
3265
3266 /* Enable debugging if requested.  */
3267 #if YYDEBUG
3268
3269 # ifndef YYFPRINTF
3270 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3271 #  define YYFPRINTF fprintf
3272 # endif
3273
3274 # define YYDPRINTF(Args)                        \
3275 do {                                            \
3276   if (yydebug)                                  \
3277     YYFPRINTF Args;                             \
3278 } while (YYID (0))
3279
3280 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3281 do {                                                                      \
3282   if (yydebug)                                                            \
3283     {                                                                     \
3284       YYFPRINTF (stderr, "%s ", Title);                                   \
3285       yy_symbol_print (stderr,                                            \
3286                   Type, Value, Location); \
3287       YYFPRINTF (stderr, "\n");                                           \
3288     }                                                                     \
3289 } while (YYID (0))
3290
3291
3292 /*--------------------------------.
3293 | Print this symbol on YYOUTPUT.  |
3294 `--------------------------------*/
3295
3296 /*ARGSUSED*/
3297 #if (defined __STDC__ || defined __C99__FUNC__ \
3298      || defined __cplusplus || defined _MSC_VER)
3299 static void
3300 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3301 #else
3302 static void
3303 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
3304     FILE *yyoutput;
3305     int yytype;
3306     YYSTYPE const * const yyvaluep;
3307     YYLTYPE const * const yylocationp;
3308 #endif
3309 {
3310   if (!yyvaluep)
3311     return;
3312   YYUSE (yylocationp);
3313 # ifdef YYPRINT
3314   if (yytype < YYNTOKENS)
3315     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3316 # else
3317   YYUSE (yyoutput);
3318 # endif
3319   switch (yytype)
3320     {
3321       default:
3322         break;
3323     }
3324 }
3325
3326
3327 /*--------------------------------.
3328 | Print this symbol on YYOUTPUT.  |
3329 `--------------------------------*/
3330
3331 #if (defined __STDC__ || defined __C99__FUNC__ \
3332      || defined __cplusplus || defined _MSC_VER)
3333 static void
3334 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
3335 #else
3336 static void
3337 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
3338     FILE *yyoutput;
3339     int yytype;
3340     YYSTYPE const * const yyvaluep;
3341     YYLTYPE const * const yylocationp;
3342 #endif
3343 {
3344   if (yytype < YYNTOKENS)
3345     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3346   else
3347     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3348
3349   YY_LOCATION_PRINT (yyoutput, *yylocationp);
3350   YYFPRINTF (yyoutput, ": ");
3351   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
3352   YYFPRINTF (yyoutput, ")");
3353 }
3354
3355 /*------------------------------------------------------------------.
3356 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3357 | TOP (included).                                                   |
3358 `------------------------------------------------------------------*/
3359
3360 #if (defined __STDC__ || defined __C99__FUNC__ \
3361      || defined __cplusplus || defined _MSC_VER)
3362 static void
3363 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3364 #else
3365 static void
3366 yy_stack_print (yybottom, yytop)
3367     yytype_int16 *yybottom;
3368     yytype_int16 *yytop;
3369 #endif
3370 {
3371   YYFPRINTF (stderr, "Stack now");
3372   for (; yybottom <= yytop; yybottom++)
3373     {
3374       int yybot = *yybottom;
3375       YYFPRINTF (stderr, " %d", yybot);
3376     }
3377   YYFPRINTF (stderr, "\n");
3378 }
3379
3380 # define YY_STACK_PRINT(Bottom, Top)                            \
3381 do {                                                            \
3382   if (yydebug)                                                  \
3383     yy_stack_print ((Bottom), (Top));                           \
3384 } while (YYID (0))
3385
3386
3387 /*------------------------------------------------.
3388 | Report that the YYRULE is going to be reduced.  |
3389 `------------------------------------------------*/
3390
3391 #if (defined __STDC__ || defined __C99__FUNC__ \
3392      || defined __cplusplus || defined _MSC_VER)
3393 static void
3394 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3395 #else
3396 static void
3397 yy_reduce_print (yyvsp, yylsp, yyrule)
3398     YYSTYPE *yyvsp;
3399     YYLTYPE *yylsp;
3400     int yyrule;
3401 #endif
3402 {
3403   int yynrhs = yyr2[yyrule];
3404   int yyi;
3405   unsigned long int yylno = yyrline[yyrule];
3406   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3407              yyrule - 1, yylno);
3408   /* The symbols being reduced.  */
3409   for (yyi = 0; yyi < yynrhs; yyi++)
3410     {
3411       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3412       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3413                        &(yyvsp[(yyi + 1) - (yynrhs)])
3414                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3415       YYFPRINTF (stderr, "\n");
3416     }
3417 }
3418
3419 # define YY_REDUCE_PRINT(Rule)          \
3420 do {                                    \
3421   if (yydebug)                          \
3422     yy_reduce_print (yyvsp, yylsp, Rule); \
3423 } while (YYID (0))
3424
3425 /* Nonzero means print parse trace.  It is left uninitialized so that
3426    multiple parsers can coexist.  */
3427 int yydebug;
3428 #else /* !YYDEBUG */
3429 # define YYDPRINTF(Args)
3430 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3431 # define YY_STACK_PRINT(Bottom, Top)
3432 # define YY_REDUCE_PRINT(Rule)
3433 #endif /* !YYDEBUG */
3434
3435
3436 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3437 #ifndef YYINITDEPTH
3438 # define YYINITDEPTH 200
3439 #endif
3440
3441 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3442    if the built-in stack extension method is used).
3443
3444    Do not make this value too large; the results are undefined if
3445    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3446    evaluated with infinite-precision integer arithmetic.  */
3447
3448 #ifndef YYMAXDEPTH
3449 # define YYMAXDEPTH 10000
3450 #endif
3451
3452 \f
3453
3454 #if YYERROR_VERBOSE
3455
3456 # ifndef yystrlen
3457 #  if defined __GLIBC__ && defined _STRING_H
3458 #   define yystrlen strlen
3459 #  else
3460 /* Return the length of YYSTR.  */
3461 #if (defined __STDC__ || defined __C99__FUNC__ \
3462      || defined __cplusplus || defined _MSC_VER)
3463 static YYSIZE_T
3464 yystrlen (const char *yystr)
3465 #else
3466 static YYSIZE_T
3467 yystrlen (yystr)
3468     const char *yystr;
3469 #endif
3470 {
3471   YYSIZE_T yylen;
3472   for (yylen = 0; yystr[yylen]; yylen++)
3473     continue;
3474   return yylen;
3475 }
3476 #  endif
3477 # endif
3478
3479 # ifndef yystpcpy
3480 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3481 #   define yystpcpy stpcpy
3482 #  else
3483 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3484    YYDEST.  */
3485 #if (defined __STDC__ || defined __C99__FUNC__ \
3486      || defined __cplusplus || defined _MSC_VER)
3487 static char *
3488 yystpcpy (char *yydest, const char *yysrc)
3489 #else
3490 static char *
3491 yystpcpy (yydest, yysrc)
3492     char *yydest;
3493     const char *yysrc;
3494 #endif
3495 {
3496   char *yyd = yydest;
3497   const char *yys = yysrc;
3498
3499   while ((*yyd++ = *yys++) != '\0')
3500     continue;
3501
3502   return yyd - 1;
3503 }
3504 #  endif
3505 # endif
3506
3507 # ifndef yytnamerr
3508 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3509    quotes and backslashes, so that it's suitable for yyerror.  The
3510    heuristic is that double-quoting is unnecessary unless the string
3511    contains an apostrophe, a comma, or backslash (other than
3512    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3513    null, do not copy; instead, return the length of what the result
3514    would have been.  */
3515 static YYSIZE_T
3516 yytnamerr (char *yyres, const char *yystr)
3517 {
3518   if (*yystr == '"')
3519     {
3520       YYSIZE_T yyn = 0;
3521       char const *yyp = yystr;
3522
3523       for (;;)
3524         switch (*++yyp)
3525           {
3526           case '\'':
3527           case ',':
3528             goto do_not_strip_quotes;
3529
3530           case '\\':
3531             if (*++yyp != '\\')
3532               goto do_not_strip_quotes;
3533             /* Fall through.  */
3534           default:
3535             if (yyres)
3536               yyres[yyn] = *yyp;
3537             yyn++;
3538             break;
3539
3540           case '"':
3541             if (yyres)
3542               yyres[yyn] = '\0';
3543             return yyn;
3544           }
3545     do_not_strip_quotes: ;
3546     }
3547
3548   if (! yyres)
3549     return yystrlen (yystr);
3550
3551   return yystpcpy (yyres, yystr) - yyres;
3552 }
3553 # endif
3554
3555 /* Copy into YYRESULT an error message about the unexpected token
3556    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3557    including the terminating null byte.  If YYRESULT is null, do not
3558    copy anything; just return the number of bytes that would be
3559    copied.  As a special case, return 0 if an ordinary "syntax error"
3560    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3561    size calculation.  */
3562 static YYSIZE_T
3563 yysyntax_error (char *yyresult, int yystate, int yychar)
3564 {
3565   int yyn = yypact[yystate];
3566
3567   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3568     return 0;
3569   else
3570     {
3571       int yytype = YYTRANSLATE (yychar);
3572       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3573       YYSIZE_T yysize = yysize0;
3574       YYSIZE_T yysize1;
3575       int yysize_overflow = 0;
3576       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3577       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3578       int yyx;
3579
3580 # if 0
3581       /* This is so xgettext sees the translatable formats that are
3582          constructed on the fly.  */
3583       YY_("syntax error, unexpected %s");
3584       YY_("syntax error, unexpected %s, expecting %s");
3585       YY_("syntax error, unexpected %s, expecting %s or %s");
3586       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3587       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3588 # endif
3589       char *yyfmt;
3590       char const *yyf;
3591       static char const yyunexpected[] = "syntax error, unexpected %s";
3592       static char const yyexpecting[] = ", expecting %s";
3593       static char const yyor[] = " or %s";
3594       char yyformat[sizeof yyunexpected
3595                     + sizeof yyexpecting - 1
3596                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3597                        * (sizeof yyor - 1))];
3598       char const *yyprefix = yyexpecting;
3599
3600       /* Start YYX at -YYN if negative to avoid negative indexes in
3601          YYCHECK.  */
3602       int yyxbegin = yyn < 0 ? -yyn : 0;
3603
3604       /* Stay within bounds of both yycheck and yytname.  */
3605       int yychecklim = YYLAST - yyn + 1;
3606       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3607       int yycount = 1;
3608
3609       yyarg[0] = yytname[yytype];
3610       yyfmt = yystpcpy (yyformat, yyunexpected);
3611
3612       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3613         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3614           {
3615             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3616               {
3617                 yycount = 1;
3618                 yysize = yysize0;
3619                 yyformat[sizeof yyunexpected - 1] = '\0';
3620                 break;
3621               }
3622             yyarg[yycount++] = yytname[yyx];
3623             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3624             yysize_overflow |= (yysize1 < yysize);
3625             yysize = yysize1;
3626             yyfmt = yystpcpy (yyfmt, yyprefix);
3627             yyprefix = yyor;
3628           }
3629
3630       yyf = YY_(yyformat);
3631       yysize1 = yysize + yystrlen (yyf);
3632       yysize_overflow |= (yysize1 < yysize);
3633       yysize = yysize1;
3634
3635       if (yysize_overflow)
3636         return YYSIZE_MAXIMUM;
3637
3638       if (yyresult)
3639         {
3640           /* Avoid sprintf, as that infringes on the user's name space.
3641              Don't have undefined behavior even if the translation
3642              produced a string with the wrong number of "%s"s.  */
3643           char *yyp = yyresult;
3644           int yyi = 0;
3645           while ((*yyp = *yyf) != '\0')
3646             {
3647               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3648                 {
3649                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3650                   yyf += 2;
3651                 }
3652               else
3653                 {
3654                   yyp++;
3655                   yyf++;
3656                 }
3657             }
3658         }
3659       return yysize;
3660     }
3661 }
3662 #endif /* YYERROR_VERBOSE */
3663 \f
3664
3665 /*-----------------------------------------------.
3666 | Release the memory associated to this symbol.  |
3667 `-----------------------------------------------*/
3668
3669 /*ARGSUSED*/
3670 #if (defined __STDC__ || defined __C99__FUNC__ \
3671      || defined __cplusplus || defined _MSC_VER)
3672 static void
3673 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3674 #else
3675 static void
3676 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3677     const char *yymsg;
3678     int yytype;
3679     YYSTYPE *yyvaluep;
3680     YYLTYPE *yylocationp;
3681 #endif
3682 {
3683   YYUSE (yyvaluep);
3684   YYUSE (yylocationp);
3685
3686   if (!yymsg)
3687     yymsg = "Deleting";
3688   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3689
3690   switch (yytype)
3691     {
3692       case 138: /* "guess_type" */
3693
3694 /* Line 1009 of yacc.c  */
3695 #line 170 "type.y"
3696         { FreeSpecifier((yyvaluep->specifier)); };
3697
3698 /* Line 1009 of yacc.c  */
3699 #line 3700 "type.ec"
3700         break;
3701       case 140: /* "type" */
3702
3703 /* Line 1009 of yacc.c  */
3704 #line 170 "type.y"
3705         { FreeSpecifier((yyvaluep->specifier)); };
3706
3707 /* Line 1009 of yacc.c  */
3708 #line 3709 "type.ec"
3709         break;
3710       case 141: /* "base_strict_type" */
3711
3712 /* Line 1009 of yacc.c  */
3713 #line 170 "type.y"
3714         { FreeSpecifier((yyvaluep->specifier)); };
3715
3716 /* Line 1009 of yacc.c  */
3717 #line 3718 "type.ec"
3718         break;
3719       case 142: /* "strict_type" */
3720
3721 /* Line 1009 of yacc.c  */
3722 #line 170 "type.y"
3723         { FreeSpecifier((yyvaluep->specifier)); };
3724
3725 /* Line 1009 of yacc.c  */
3726 #line 3727 "type.ec"
3727         break;
3728       case 143: /* "class_function_definition_start" */
3729
3730 /* Line 1009 of yacc.c  */
3731 #line 191 "type.y"
3732         { FreeClassFunction((yyvaluep->classFunction)); };
3733
3734 /* Line 1009 of yacc.c  */
3735 #line 3736 "type.ec"
3736         break;
3737       case 144: /* "constructor_function_definition_start" */
3738
3739 /* Line 1009 of yacc.c  */
3740 #line 191 "type.y"
3741         { FreeClassFunction((yyvaluep->classFunction)); };
3742
3743 /* Line 1009 of yacc.c  */
3744 #line 3745 "type.ec"
3745         break;
3746       case 145: /* "destructor_function_definition_start" */
3747
3748 /* Line 1009 of yacc.c  */
3749 #line 191 "type.y"
3750         { FreeClassFunction((yyvaluep->classFunction)); };
3751
3752 /* Line 1009 of yacc.c  */
3753 #line 3754 "type.ec"
3754         break;
3755       case 146: /* "virtual_class_function_definition_start" */
3756
3757 /* Line 1009 of yacc.c  */
3758 #line 191 "type.y"
3759         { FreeClassFunction((yyvaluep->classFunction)); };
3760
3761 /* Line 1009 of yacc.c  */
3762 #line 3763 "type.ec"
3763         break;
3764       case 147: /* "identifier" */
3765
3766 /* Line 1009 of yacc.c  */
3767 #line 162 "type.y"
3768         { FreeIdentifier((yyvaluep->id)); };
3769
3770 /* Line 1009 of yacc.c  */
3771 #line 3772 "type.ec"
3772         break;
3773       case 148: /* "primary_expression" */
3774
3775 /* Line 1009 of yacc.c  */
3776 #line 164 "type.y"
3777         { FreeExpression((yyvaluep->exp)); };
3778
3779 /* Line 1009 of yacc.c  */
3780 #line 3781 "type.ec"
3781         break;
3782       case 150: /* "postfix_expression" */
3783
3784 /* Line 1009 of yacc.c  */
3785 #line 164 "type.y"
3786         { FreeExpression((yyvaluep->exp)); };
3787
3788 /* Line 1009 of yacc.c  */
3789 #line 3790 "type.ec"
3790         break;
3791       case 153: /* "argument_expression_list" */
3792
3793 /* Line 1009 of yacc.c  */
3794 #line 199 "type.y"
3795         { FreeList((yyvaluep->list), FreeExpression); };
3796
3797 /* Line 1009 of yacc.c  */
3798 #line 3799 "type.ec"
3799         break;
3800       case 155: /* "unary_expression" */
3801
3802 /* Line 1009 of yacc.c  */
3803 #line 164 "type.y"
3804         { FreeExpression((yyvaluep->exp)); };
3805
3806 /* Line 1009 of yacc.c  */
3807 #line 3808 "type.ec"
3808         break;
3809       case 158: /* "cast_expression" */
3810
3811 /* Line 1009 of yacc.c  */
3812 #line 164 "type.y"
3813         { FreeExpression((yyvaluep->exp)); };
3814
3815 /* Line 1009 of yacc.c  */
3816 #line 3817 "type.ec"
3817         break;
3818       case 159: /* "multiplicative_expression" */
3819
3820 /* Line 1009 of yacc.c  */
3821 #line 164 "type.y"
3822         { FreeExpression((yyvaluep->exp)); };
3823
3824 /* Line 1009 of yacc.c  */
3825 #line 3826 "type.ec"
3826         break;
3827       case 160: /* "additive_expression" */
3828
3829 /* Line 1009 of yacc.c  */
3830 #line 164 "type.y"
3831         { FreeExpression((yyvaluep->exp)); };
3832
3833 /* Line 1009 of yacc.c  */
3834 #line 3835 "type.ec"
3835         break;
3836       case 161: /* "shift_expression" */
3837
3838 /* Line 1009 of yacc.c  */
3839 #line 164 "type.y"
3840         { FreeExpression((yyvaluep->exp)); };
3841
3842 /* Line 1009 of yacc.c  */
3843 #line 3844 "type.ec"
3844         break;
3845       case 163: /* "relational_expression" */
3846
3847 /* Line 1009 of yacc.c  */
3848 #line 164 "type.y"
3849         { FreeExpression((yyvaluep->exp)); };
3850
3851 /* Line 1009 of yacc.c  */
3852 #line 3853 "type.ec"
3853         break;
3854       case 164: /* "equality_expression" */
3855
3856 /* Line 1009 of yacc.c  */
3857 #line 164 "type.y"
3858         { FreeExpression((yyvaluep->exp)); };
3859
3860 /* Line 1009 of yacc.c  */
3861 #line 3862 "type.ec"
3862         break;
3863       case 165: /* "and_expression" */
3864
3865 /* Line 1009 of yacc.c  */
3866 #line 164 "type.y"
3867         { FreeExpression((yyvaluep->exp)); };
3868
3869 /* Line 1009 of yacc.c  */
3870 #line 3871 "type.ec"
3871         break;
3872       case 166: /* "exclusive_or_expression" */
3873
3874 /* Line 1009 of yacc.c  */
3875 #line 164 "type.y"
3876         { FreeExpression((yyvaluep->exp)); };
3877
3878 /* Line 1009 of yacc.c  */
3879 #line 3880 "type.ec"
3880         break;
3881       case 167: /* "inclusive_or_expression" */
3882
3883 /* Line 1009 of yacc.c  */
3884 #line 164 "type.y"
3885         { FreeExpression((yyvaluep->exp)); };
3886
3887 /* Line 1009 of yacc.c  */
3888 #line 3889 "type.ec"
3889         break;
3890       case 168: /* "logical_and_expression" */
3891
3892 /* Line 1009 of yacc.c  */
3893 #line 164 "type.y"
3894         { FreeExpression((yyvaluep->exp)); };
3895
3896 /* Line 1009 of yacc.c  */
3897 #line 3898 "type.ec"
3898         break;
3899       case 169: /* "logical_or_expression" */
3900
3901 /* Line 1009 of yacc.c  */
3902 #line 164 "type.y"
3903         { FreeExpression((yyvaluep->exp)); };
3904
3905 /* Line 1009 of yacc.c  */
3906 #line 3907 "type.ec"
3907         break;
3908       case 170: /* "conditional_expression" */
3909
3910 /* Line 1009 of yacc.c  */
3911 #line 164 "type.y"
3912         { FreeExpression((yyvaluep->exp)); };
3913
3914 /* Line 1009 of yacc.c  */
3915 #line 3916 "type.ec"
3916         break;
3917       case 171: /* "assignment_expression" */
3918
3919 /* Line 1009 of yacc.c  */
3920 #line 164 "type.y"
3921         { FreeExpression((yyvaluep->exp)); };
3922
3923 /* Line 1009 of yacc.c  */
3924 #line 3925 "type.ec"
3925         break;
3926       case 173: /* "expression" */
3927
3928 /* Line 1009 of yacc.c  */
3929 #line 199 "type.y"
3930         { FreeList((yyvaluep->list), FreeExpression); };
3931
3932 /* Line 1009 of yacc.c  */
3933 #line 3934 "type.ec"
3934         break;
3935       case 174: /* "constant_expression" */
3936
3937 /* Line 1009 of yacc.c  */
3938 #line 164 "type.y"
3939         { FreeExpression((yyvaluep->exp)); };
3940
3941 /* Line 1009 of yacc.c  */
3942 #line 3943 "type.ec"
3943         break;
3944       case 175: /* "declaration" */
3945
3946 /* Line 1009 of yacc.c  */
3947 #line 185 "type.y"
3948         { FreeDeclaration((yyvaluep->declaration)); };
3949
3950 /* Line 1009 of yacc.c  */
3951 #line 3952 "type.ec"
3952         break;
3953       case 176: /* "specifier_qualifier_list" */
3954
3955 /* Line 1009 of yacc.c  */
3956 #line 201 "type.y"
3957         { FreeList((yyvaluep->list), FreeSpecifier); };
3958
3959 /* Line 1009 of yacc.c  */
3960 #line 3961 "type.ec"
3961         break;
3962       case 177: /* "guess_specifier_qualifier_list" */
3963
3964 /* Line 1009 of yacc.c  */
3965 #line 201 "type.y"
3966         { FreeList((yyvaluep->list), FreeSpecifier); };
3967
3968 /* Line 1009 of yacc.c  */
3969 #line 3970 "type.ec"
3970         break;
3971       case 178: /* "declaration_specifiers" */
3972
3973 /* Line 1009 of yacc.c  */
3974 #line 201 "type.y"
3975         { FreeList((yyvaluep->list), FreeSpecifier); };
3976
3977 /* Line 1009 of yacc.c  */
3978 #line 3979 "type.ec"
3979         break;
3980       case 179: /* "guess_declaration_specifiers" */
3981
3982 /* Line 1009 of yacc.c  */
3983 #line 201 "type.y"
3984         { FreeList((yyvaluep->list), FreeSpecifier); };
3985
3986 /* Line 1009 of yacc.c  */
3987 #line 3988 "type.ec"
3988         break;
3989       case 183: /* "init_declarator_list" */
3990
3991 /* Line 1009 of yacc.c  */
3992 #line 206 "type.y"
3993         { FreeList((yyvaluep->list), FreeInitDeclarator); };
3994
3995 /* Line 1009 of yacc.c  */
3996 #line 3997 "type.ec"
3997         break;
3998       case 184: /* "init_declarator" */
3999
4000 /* Line 1009 of yacc.c  */
4001 #line 180 "type.y"
4002         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
4003
4004 /* Line 1009 of yacc.c  */
4005 #line 4006 "type.ec"
4006         break;
4007       case 185: /* "storage_class_specifier" */
4008
4009 /* Line 1009 of yacc.c  */
4010 #line 170 "type.y"
4011         { FreeSpecifier((yyvaluep->specifier)); };
4012
4013 /* Line 1009 of yacc.c  */
4014 #line 4015 "type.ec"
4015         break;
4016       case 186: /* "ext_decl" */
4017
4018 /* Line 1009 of yacc.c  */
4019 #line 216 "type.y"
4020         { FreeExtDecl((yyvaluep->extDecl)); };
4021
4022 /* Line 1009 of yacc.c  */
4023 #line 4024 "type.ec"
4024         break;
4025       case 188: /* "attribute_word" */
4026
4027 /* Line 1009 of yacc.c  */
4028 #line 196 "type.y"
4029         { delete (yyvaluep->string); };
4030
4031 /* Line 1009 of yacc.c  */
4032 #line 4033 "type.ec"
4033         break;
4034       case 189: /* "attribute" */
4035
4036 /* Line 1009 of yacc.c  */
4037 #line 217 "type.y"
4038         { FreeAttribute((yyvaluep->attribute)); };
4039
4040 /* Line 1009 of yacc.c  */
4041 #line 4042 "type.ec"
4042         break;
4043       case 190: /* "attribs_list" */
4044
4045 /* Line 1009 of yacc.c  */
4046 #line 218 "type.y"
4047         { FreeList((yyvaluep->list), FreeAttribute); };
4048
4049 /* Line 1009 of yacc.c  */
4050 #line 4051 "type.ec"
4051         break;
4052       case 191: /* "attrib" */
4053
4054 /* Line 1009 of yacc.c  */
4055 #line 215 "type.y"
4056         { FreeAttrib((yyvaluep->attrib)); };
4057
4058 /* Line 1009 of yacc.c  */
4059 #line 4060 "type.ec"
4060         break;
4061       case 192: /* "ext_storage" */
4062
4063 /* Line 1009 of yacc.c  */
4064 #line 170 "type.y"
4065         { FreeSpecifier((yyvaluep->specifier)); };
4066
4067 /* Line 1009 of yacc.c  */
4068 #line 4069 "type.ec"
4069         break;
4070       case 193: /* "type_qualifier" */
4071
4072 /* Line 1009 of yacc.c  */
4073 #line 170 "type.y"
4074         { FreeSpecifier((yyvaluep->specifier)); };
4075
4076 /* Line 1009 of yacc.c  */
4077 #line 4078 "type.ec"
4078         break;
4079       case 194: /* "type_specifier" */
4080
4081 /* Line 1009 of yacc.c  */
4082 #line 170 "type.y"
4083         { FreeSpecifier((yyvaluep->specifier)); };
4084
4085 /* Line 1009 of yacc.c  */
4086 #line 4087 "type.ec"
4087         break;
4088       case 195: /* "strict_type_specifier" */
4089
4090 /* Line 1009 of yacc.c  */
4091 #line 170 "type.y"
4092         { FreeSpecifier((yyvaluep->specifier)); };
4093
4094 /* Line 1009 of yacc.c  */
4095 #line 4096 "type.ec"
4096         break;
4097       case 196: /* "struct_or_union_specifier_compound" */
4098
4099 /* Line 1009 of yacc.c  */
4100 #line 170 "type.y"
4101         { FreeSpecifier((yyvaluep->specifier)); };
4102
4103 /* Line 1009 of yacc.c  */
4104 #line 4105 "type.ec"
4105         break;
4106       case 197: /* "struct_or_union_specifier_nocompound" */
4107
4108 /* Line 1009 of yacc.c  */
4109 #line 170 "type.y"
4110         { FreeSpecifier((yyvaluep->specifier)); };
4111
4112 /* Line 1009 of yacc.c  */
4113 #line 4114 "type.ec"
4114         break;
4115       case 198: /* "template_datatype" */
4116
4117 /* Line 1009 of yacc.c  */
4118 #line 214 "type.y"
4119         { FreeTemplateDataType((yyvaluep->templateDatatype)); };
4120
4121 /* Line 1009 of yacc.c  */
4122 #line 4123 "type.ec"
4123         break;
4124       case 199: /* "template_type_argument" */
4125
4126 /* Line 1009 of yacc.c  */
4127 #line 213 "type.y"
4128         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4129
4130 /* Line 1009 of yacc.c  */
4131 #line 4132 "type.ec"
4132         break;
4133       case 200: /* "template_expression_argument" */
4134
4135 /* Line 1009 of yacc.c  */
4136 #line 213 "type.y"
4137         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4138
4139 /* Line 1009 of yacc.c  */
4140 #line 4141 "type.ec"
4141         break;
4142       case 201: /* "template_argument" */
4143
4144 /* Line 1009 of yacc.c  */
4145 #line 213 "type.y"
4146         { FreeTemplateArgument((yyvaluep->templateArgument)); };
4147
4148 /* Line 1009 of yacc.c  */
4149 #line 4150 "type.ec"
4150         break;
4151       case 204: /* "struct_declaration_list" */
4152
4153 /* Line 1009 of yacc.c  */
4154 #line 209 "type.y"
4155         { FreeList((yyvaluep->list), FreeClassDef); };
4156
4157 /* Line 1009 of yacc.c  */
4158 #line 4159 "type.ec"
4159         break;
4160       case 205: /* "default_property" */
4161
4162 /* Line 1009 of yacc.c  */
4163 #line 189 "type.y"
4164         { FreeMemberInit((yyvaluep->memberInit)); };
4165
4166 /* Line 1009 of yacc.c  */
4167 #line 4168 "type.ec"
4168         break;
4169       case 206: /* "default_property_list" */
4170
4171 /* Line 1009 of yacc.c  */
4172 #line 210 "type.y"
4173         { FreeList((yyvaluep->list), FreeMemberInit); };
4174
4175 /* Line 1009 of yacc.c  */
4176 #line 4177 "type.ec"
4177         break;
4178       case 207: /* "property" */
4179
4180 /* Line 1009 of yacc.c  */
4181 #line 197 "type.y"
4182         { FreeProperty((yyvaluep->prop)); };
4183
4184 /* Line 1009 of yacc.c  */
4185 #line 4186 "type.ec"
4186         break;
4187       case 208: /* "struct_declaration" */
4188
4189 /* Line 1009 of yacc.c  */
4190 #line 195 "type.y"
4191         { FreeClassDef((yyvaluep->classDef)); };
4192
4193 /* Line 1009 of yacc.c  */
4194 #line 4195 "type.ec"
4195         break;
4196       case 209: /* "struct_declarator_list" */
4197
4198 /* Line 1009 of yacc.c  */
4199 #line 203 "type.y"
4200         { FreeList((yyvaluep->list), FreeDeclarator); };
4201
4202 /* Line 1009 of yacc.c  */
4203 #line 4204 "type.ec"
4204         break;
4205       case 210: /* "struct_declarator" */
4206
4207 /* Line 1009 of yacc.c  */
4208 #line 174 "type.y"
4209         { FreeDeclarator((yyvaluep->declarator)); };
4210
4211 /* Line 1009 of yacc.c  */
4212 #line 4213 "type.ec"
4213         break;
4214       case 211: /* "enum_specifier_nocompound" */
4215
4216 /* Line 1009 of yacc.c  */
4217 #line 170 "type.y"
4218         { FreeSpecifier((yyvaluep->specifier)); };
4219
4220 /* Line 1009 of yacc.c  */
4221 #line 4222 "type.ec"
4222         break;
4223       case 212: /* "enum_specifier_compound" */
4224
4225 /* Line 1009 of yacc.c  */
4226 #line 170 "type.y"
4227         { FreeSpecifier((yyvaluep->specifier)); };
4228
4229 /* Line 1009 of yacc.c  */
4230 #line 4231 "type.ec"
4231         break;
4232       case 213: /* "enumerator_list" */
4233
4234 /* Line 1009 of yacc.c  */
4235 #line 200 "type.y"
4236         { FreeList((yyvaluep->list), FreeEnumerator); };
4237
4238 /* Line 1009 of yacc.c  */
4239 #line 4240 "type.ec"
4240         break;
4241       case 214: /* "enumerator" */
4242
4243 /* Line 1009 of yacc.c  */
4244 #line 173 "type.y"
4245         { FreeEnumerator((yyvaluep->enumerator)); };
4246
4247 /* Line 1009 of yacc.c  */
4248 #line 4249 "type.ec"
4249         break;
4250       case 215: /* "direct_abstract_declarator" */
4251
4252 /* Line 1009 of yacc.c  */
4253 #line 174 "type.y"
4254         { FreeDeclarator((yyvaluep->declarator)); };
4255
4256 /* Line 1009 of yacc.c  */
4257 #line 4258 "type.ec"
4258         break;
4259       case 216: /* "direct_abstract_declarator_noarray" */
4260
4261 /* Line 1009 of yacc.c  */
4262 #line 174 "type.y"
4263         { FreeDeclarator((yyvaluep->declarator)); };
4264
4265 /* Line 1009 of yacc.c  */
4266 #line 4267 "type.ec"
4267         break;
4268       case 217: /* "abstract_declarator" */
4269
4270 /* Line 1009 of yacc.c  */
4271 #line 174 "type.y"
4272         { FreeDeclarator((yyvaluep->declarator)); };
4273
4274 /* Line 1009 of yacc.c  */
4275 #line 4276 "type.ec"
4276         break;
4277       case 218: /* "abstract_declarator_noarray" */
4278
4279 /* Line 1009 of yacc.c  */
4280 #line 174 "type.y"
4281         { FreeDeclarator((yyvaluep->declarator)); };
4282
4283 /* Line 1009 of yacc.c  */
4284 #line 4285 "type.ec"
4285         break;
4286       case 219: /* "declarator" */
4287
4288 /* Line 1009 of yacc.c  */
4289 #line 174 "type.y"
4290         { FreeDeclarator((yyvaluep->declarator)); };
4291
4292 /* Line 1009 of yacc.c  */
4293 #line 4294 "type.ec"
4294         break;
4295       case 220: /* "direct_declarator_nofunction" */
4296
4297 /* Line 1009 of yacc.c  */
4298 #line 174 "type.y"
4299         { FreeDeclarator((yyvaluep->declarator)); };
4300
4301 /* Line 1009 of yacc.c  */
4302 #line 4303 "type.ec"
4303         break;
4304       case 221: /* "declarator_function" */
4305
4306 /* Line 1009 of yacc.c  */
4307 #line 174 "type.y"
4308         { FreeDeclarator((yyvaluep->declarator)); };
4309
4310 /* Line 1009 of yacc.c  */
4311 #line 4312 "type.ec"
4312         break;
4313       case 222: /* "direct_declarator_function_start" */
4314
4315 /* Line 1009 of yacc.c  */
4316 #line 174 "type.y"
4317         { FreeDeclarator((yyvaluep->declarator)); };
4318
4319 /* Line 1009 of yacc.c  */
4320 #line 4321 "type.ec"
4321         break;
4322       case 223: /* "direct_declarator_function" */
4323
4324 /* Line 1009 of yacc.c  */
4325 #line 174 "type.y"
4326         { FreeDeclarator((yyvaluep->declarator)); };
4327
4328 /* Line 1009 of yacc.c  */
4329 #line 4330 "type.ec"
4330         break;
4331       case 224: /* "direct_declarator" */
4332
4333 /* Line 1009 of yacc.c  */
4334 #line 174 "type.y"
4335         { FreeDeclarator((yyvaluep->declarator)); };
4336
4337 /* Line 1009 of yacc.c  */
4338 #line 4339 "type.ec"
4339         break;
4340       case 225: /* "declarator_nofunction" */
4341
4342 /* Line 1009 of yacc.c  */
4343 #line 174 "type.y"
4344         { FreeDeclarator((yyvaluep->declarator)); };
4345
4346 /* Line 1009 of yacc.c  */
4347 #line 4348 "type.ec"
4348         break;
4349       case 226: /* "type_qualifier_list" */
4350
4351 /* Line 1009 of yacc.c  */
4352 #line 201 "type.y"
4353         { FreeList((yyvaluep->list), FreeSpecifier); };
4354
4355 /* Line 1009 of yacc.c  */
4356 #line 4357 "type.ec"
4357         break;
4358       case 227: /* "pointer" */
4359
4360 /* Line 1009 of yacc.c  */
4361 #line 163 "type.y"
4362         { FreePointer((yyvaluep->pointer)); };
4363
4364 /* Line 1009 of yacc.c  */
4365 #line 4366 "type.ec"
4366         break;
4367       case 228: /* "parameter_type_list" */
4368
4369 /* Line 1009 of yacc.c  */
4370 #line 207 "type.y"
4371         { FreeList((yyvaluep->list), FreeTypeName); };
4372
4373 /* Line 1009 of yacc.c  */
4374 #line 4375 "type.ec"
4375         break;
4376       case 229: /* "parameter_list" */
4377
4378 /* Line 1009 of yacc.c  */
4379 #line 207 "type.y"
4380         { FreeList((yyvaluep->list), FreeTypeName); };
4381
4382 /* Line 1009 of yacc.c  */
4383 #line 4384 "type.ec"
4384         break;
4385       case 230: /* "parameter_declaration" */
4386
4387 /* Line 1009 of yacc.c  */
4388 #line 181 "type.y"
4389         { FreeTypeName((yyvaluep->typeName)); };
4390
4391 /* Line 1009 of yacc.c  */
4392 #line 4393 "type.ec"
4393         break;
4394       case 231: /* "identifier_list" */
4395
4396 /* Line 1009 of yacc.c  */
4397 #line 207 "type.y"
4398         { FreeList((yyvaluep->list), FreeTypeName); };
4399
4400 /* Line 1009 of yacc.c  */
4401 #line 4402 "type.ec"
4402         break;
4403       case 232: /* "type_name" */
4404
4405 /* Line 1009 of yacc.c  */
4406 #line 181 "type.y"
4407         { FreeTypeName((yyvaluep->typeName)); };
4408
4409 /* Line 1009 of yacc.c  */
4410 #line 4411 "type.ec"
4411         break;
4412       case 233: /* "guess_type_name" */
4413
4414 /* Line 1009 of yacc.c  */
4415 #line 181 "type.y"
4416         { FreeTypeName((yyvaluep->typeName)); };
4417
4418 /* Line 1009 of yacc.c  */
4419 #line 4420 "type.ec"
4420         break;
4421       case 234: /* "initializer" */
4422
4423 /* Line 1009 of yacc.c  */
4424 #line 179 "type.y"
4425         { FreeInitializer((yyvaluep->initializer)); };
4426
4427 /* Line 1009 of yacc.c  */
4428 #line 4429 "type.ec"
4429         break;
4430       case 235: /* "initializer_condition" */
4431
4432 /* Line 1009 of yacc.c  */
4433 #line 179 "type.y"
4434         { FreeInitializer((yyvaluep->initializer)); };
4435
4436 /* Line 1009 of yacc.c  */
4437 #line 4438 "type.ec"
4438         break;
4439       case 236: /* "initializer_list" */
4440
4441 /* Line 1009 of yacc.c  */
4442 #line 205 "type.y"
4443         { FreeList((yyvaluep->list), FreeInitializer); };
4444
4445 /* Line 1009 of yacc.c  */
4446 #line 4447 "type.ec"
4447         break;
4448       case 237: /* "statement" */
4449
4450 /* Line 1009 of yacc.c  */
4451 #line 182 "type.y"
4452         { FreeStatement((yyvaluep->stmt)); };
4453
4454 /* Line 1009 of yacc.c  */
4455 #line 4456 "type.ec"
4456         break;
4457       case 238: /* "labeled_statement" */
4458
4459 /* Line 1009 of yacc.c  */
4460 #line 182 "type.y"
4461         { FreeStatement((yyvaluep->stmt)); };
4462
4463 /* Line 1009 of yacc.c  */
4464 #line 4465 "type.ec"
4465         break;
4466       case 239: /* "declaration_list" */
4467
4468 /* Line 1009 of yacc.c  */
4469 #line 204 "type.y"
4470         { FreeList((yyvaluep->list), FreeDeclaration); };
4471
4472 /* Line 1009 of yacc.c  */
4473 #line 4474 "type.ec"
4474         break;
4475       case 240: /* "statement_list" */
4476
4477 /* Line 1009 of yacc.c  */
4478 #line 208 "type.y"
4479         { FreeList((yyvaluep->list), FreeStatement); };
4480
4481 /* Line 1009 of yacc.c  */
4482 #line 4483 "type.ec"
4483         break;
4484       case 241: /* "compound_inside" */
4485
4486 /* Line 1009 of yacc.c  */
4487 #line 182 "type.y"
4488         { FreeStatement((yyvaluep->stmt)); };
4489
4490 /* Line 1009 of yacc.c  */
4491 #line 4492 "type.ec"
4492         break;
4493       case 242: /* "compound_start" */
4494
4495 /* Line 1009 of yacc.c  */
4496 #line 212 "type.y"
4497         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
4498
4499 /* Line 1009 of yacc.c  */
4500 #line 4501 "type.ec"
4501         break;
4502       case 243: /* "compound_statement" */
4503
4504 /* Line 1009 of yacc.c  */
4505 #line 182 "type.y"
4506         { FreeStatement((yyvaluep->stmt)); };
4507
4508 /* Line 1009 of yacc.c  */
4509 #line 4510 "type.ec"
4510         break;
4511       case 244: /* "expression_statement" */
4512
4513 /* Line 1009 of yacc.c  */
4514 #line 182 "type.y"
4515         { FreeStatement((yyvaluep->stmt)); };
4516
4517 /* Line 1009 of yacc.c  */
4518 #line 4519 "type.ec"
4519         break;
4520       case 245: /* "selection_statement" */
4521
4522 /* Line 1009 of yacc.c  */
4523 #line 182 "type.y"
4524         { FreeStatement((yyvaluep->stmt)); };
4525
4526 /* Line 1009 of yacc.c  */
4527 #line 4528 "type.ec"
4528         break;
4529       case 246: /* "iteration_statement" */
4530
4531 /* Line 1009 of yacc.c  */
4532 #line 182 "type.y"
4533         { FreeStatement((yyvaluep->stmt)); };
4534
4535 /* Line 1009 of yacc.c  */
4536 #line 4537 "type.ec"
4537         break;
4538       case 247: /* "jump_statement" */
4539
4540 /* Line 1009 of yacc.c  */
4541 #line 182 "type.y"
4542         { FreeStatement((yyvaluep->stmt)); };
4543
4544 /* Line 1009 of yacc.c  */
4545 #line 4546 "type.ec"
4546         break;
4547       case 248: /* "string_literal" */
4548
4549 /* Line 1009 of yacc.c  */
4550 #line 196 "type.y"
4551         { delete (yyvaluep->string); };
4552
4553 /* Line 1009 of yacc.c  */
4554 #line 4555 "type.ec"
4555         break;
4556       case 249: /* "instantiation_named" */
4557
4558 /* Line 1009 of yacc.c  */
4559 #line 187 "type.y"
4560         { FreeInstance((yyvaluep->instance)); };
4561
4562 /* Line 1009 of yacc.c  */
4563 #line 4564 "type.ec"
4564         break;
4565       case 251: /* "instantiation_unnamed" */
4566
4567 /* Line 1009 of yacc.c  */
4568 #line 187 "type.y"
4569         { FreeInstance((yyvaluep->instance)); };
4570
4571 /* Line 1009 of yacc.c  */
4572 #line 4573 "type.ec"
4573         break;
4574       case 253: /* "class_function_definition" */
4575
4576 /* Line 1009 of yacc.c  */
4577 #line 191 "type.y"
4578         { FreeClassFunction((yyvaluep->classFunction)); };
4579
4580 /* Line 1009 of yacc.c  */
4581 #line 4582 "type.ec"
4582         break;
4583       case 254: /* "instance_class_function_definition_start" */
4584
4585 /* Line 1009 of yacc.c  */
4586 #line 191 "type.y"
4587         { FreeClassFunction((yyvaluep->classFunction)); };
4588
4589 /* Line 1009 of yacc.c  */
4590 #line 4591 "type.ec"
4591         break;
4592       case 255: /* "instance_class_function_definition" */
4593
4594 /* Line 1009 of yacc.c  */
4595 #line 191 "type.y"
4596         { FreeClassFunction((yyvaluep->classFunction)); };
4597
4598 /* Line 1009 of yacc.c  */
4599 #line 4600 "type.ec"
4600         break;
4601       case 256: /* "data_member_initialization" */
4602
4603 /* Line 1009 of yacc.c  */
4604 #line 189 "type.y"
4605         { FreeMemberInit((yyvaluep->memberInit)); };
4606
4607 /* Line 1009 of yacc.c  */
4608 #line 4609 "type.ec"
4609         break;
4610       case 257: /* "data_member_initialization_list" */
4611
4612 /* Line 1009 of yacc.c  */
4613 #line 210 "type.y"
4614         { FreeList((yyvaluep->list), FreeMemberInit); };
4615
4616 /* Line 1009 of yacc.c  */
4617 #line 4618 "type.ec"
4618         break;
4619       case 258: /* "data_member_initialization_list_coloned" */
4620
4621 /* Line 1009 of yacc.c  */
4622 #line 210 "type.y"
4623         { FreeList((yyvaluep->list), FreeMemberInit); };
4624
4625 /* Line 1009 of yacc.c  */
4626 #line 4627 "type.ec"
4627         break;
4628       case 259: /* "members_initialization_list_coloned" */
4629
4630 /* Line 1009 of yacc.c  */
4631 #line 211 "type.y"
4632         { FreeList((yyvaluep->list), FreeMembersInit); };
4633
4634 /* Line 1009 of yacc.c  */
4635 #line 4636 "type.ec"
4636         break;
4637       case 260: /* "members_initialization_list" */
4638
4639 /* Line 1009 of yacc.c  */
4640 #line 211 "type.y"
4641         { FreeList((yyvaluep->list), FreeMembersInit); };
4642
4643 /* Line 1009 of yacc.c  */
4644 #line 4645 "type.ec"
4645         break;
4646
4647       default:
4648         break;
4649     }
4650 }
4651
4652 /* Prevent warnings from -Wmissing-prototypes.  */
4653 #ifdef YYPARSE_PARAM
4654 #if defined __STDC__ || defined __cplusplus
4655 int yyparse (void *YYPARSE_PARAM);
4656 #else
4657 int yyparse ();
4658 #endif
4659 #else /* ! YYPARSE_PARAM */
4660 #if defined __STDC__ || defined __cplusplus
4661 int yyparse (void);
4662 #else
4663 int yyparse ();
4664 #endif
4665 #endif /* ! YYPARSE_PARAM */
4666
4667
4668 /* The lookahead symbol.  */
4669 int yychar;
4670
4671 /* The semantic value of the lookahead symbol.  */
4672 YYSTYPE yylval;
4673
4674 /* Location data for the lookahead symbol.  */
4675 YYLTYPE yylloc;
4676
4677 /* Number of syntax errors so far.  */
4678 int yynerrs;
4679
4680
4681
4682 /*-------------------------.
4683 | yyparse or yypush_parse.  |
4684 `-------------------------*/
4685
4686 #ifdef YYPARSE_PARAM
4687 #if (defined __STDC__ || defined __C99__FUNC__ \
4688      || defined __cplusplus || defined _MSC_VER)
4689 int
4690 yyparse (void *YYPARSE_PARAM)
4691 #else
4692 int
4693 yyparse (YYPARSE_PARAM)
4694     void *YYPARSE_PARAM;
4695 #endif
4696 #else /* ! YYPARSE_PARAM */
4697 #if (defined __STDC__ || defined __C99__FUNC__ \
4698      || defined __cplusplus || defined _MSC_VER)
4699 int
4700 yyparse (void)
4701 #else
4702 int
4703 yyparse ()
4704
4705 #endif
4706 #endif
4707 {
4708
4709
4710     int yystate;
4711     /* Number of tokens to shift before error messages enabled.  */
4712     int yyerrstatus;
4713
4714     /* The stacks and their tools:
4715        `yyss': related to states.
4716        `yyvs': related to semantic values.
4717        `yyls': related to locations.
4718
4719        Refer to the stacks thru separate pointers, to allow yyoverflow
4720        to reallocate them elsewhere.  */
4721
4722     /* The state stack.  */
4723     yytype_int16 yyssa[YYINITDEPTH];
4724     yytype_int16 *yyss;
4725     yytype_int16 *yyssp;
4726
4727     /* The semantic value stack.  */
4728     YYSTYPE yyvsa[YYINITDEPTH];
4729     YYSTYPE *yyvs;
4730     YYSTYPE *yyvsp;
4731
4732     /* The location stack.  */
4733     YYLTYPE yylsa[YYINITDEPTH];
4734     YYLTYPE *yyls;
4735     YYLTYPE *yylsp;
4736
4737     /* The locations where the error started and ended.  */
4738     YYLTYPE yyerror_range[2];
4739
4740     YYSIZE_T yystacksize;
4741
4742   int yyn;
4743   int yyresult;
4744   /* Lookahead token as an internal (translated) token number.  */
4745   int yytoken;
4746   /* The variables used to return semantic value and location from the
4747      action routines.  */
4748   YYSTYPE yyval;
4749   YYLTYPE yyloc;
4750
4751 #if YYERROR_VERBOSE
4752   /* Buffer for error messages, and its allocated size.  */
4753   char yymsgbuf[128];
4754   char *yymsg = yymsgbuf;
4755   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4756 #endif
4757
4758 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4759
4760   /* The number of symbols on the RHS of the reduced rule.
4761      Keep to zero when no symbol should be popped.  */
4762   int yylen = 0;
4763
4764   yytoken = 0;
4765   yyss = yyssa;
4766   yyvs = yyvsa;
4767   yyls = yylsa;
4768   yystacksize = YYINITDEPTH;
4769
4770   YYDPRINTF ((stderr, "Starting parse\n"));
4771
4772   yystate = 0;
4773   yyerrstatus = 0;
4774   yynerrs = 0;
4775   yychar = YYEMPTY; /* Cause a token to be read.  */
4776
4777   /* Initialize stack pointers.
4778      Waste one element of value and location stack
4779      so that they stay on the same level as the state stack.
4780      The wasted elements are never initialized.  */
4781   yyssp = yyss;
4782   yyvsp = yyvs;
4783   yylsp = yyls;
4784
4785 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4786   /* Initialize the default location before parsing starts.  */
4787   yylloc.first_line   = yylloc.last_line   = 1;
4788   yylloc.first_column = yylloc.last_column = 1;
4789 #endif
4790
4791   goto yysetstate;
4792
4793 /*------------------------------------------------------------.
4794 | yynewstate -- Push a new state, which is found in yystate.  |
4795 `------------------------------------------------------------*/
4796  yynewstate:
4797   /* In all cases, when you get here, the value and location stacks
4798      have just been pushed.  So pushing a state here evens the stacks.  */
4799   yyssp++;
4800
4801  yysetstate:
4802   *yyssp = yystate;
4803
4804   if (yyss + yystacksize - 1 <= yyssp)
4805     {
4806       /* Get the current used size of the three stacks, in elements.  */
4807       YYSIZE_T yysize = yyssp - yyss + 1;
4808
4809 #ifdef yyoverflow
4810       {
4811         /* Give user a chance to reallocate the stack.  Use copies of
4812            these so that the &'s don't force the real ones into
4813            memory.  */
4814         YYSTYPE *yyvs1 = yyvs;
4815         yytype_int16 *yyss1 = yyss;
4816         YYLTYPE *yyls1 = yyls;
4817
4818         /* Each stack pointer address is followed by the size of the
4819            data in use in that stack, in bytes.  This used to be a
4820            conditional around just the two extra args, but that might
4821            be undefined if yyoverflow is a macro.  */
4822         yyoverflow (YY_("memory exhausted"),
4823                     &yyss1, yysize * sizeof (*yyssp),
4824                     &yyvs1, yysize * sizeof (*yyvsp),
4825                     &yyls1, yysize * sizeof (*yylsp),
4826                     &yystacksize);
4827
4828         yyls = yyls1;
4829         yyss = yyss1;
4830         yyvs = yyvs1;
4831       }
4832 #else /* no yyoverflow */
4833 # ifndef YYSTACK_RELOCATE
4834       goto yyexhaustedlab;
4835 # else
4836       /* Extend the stack our own way.  */
4837       if (YYMAXDEPTH <= yystacksize)
4838         goto yyexhaustedlab;
4839       yystacksize *= 2;
4840       if (YYMAXDEPTH < yystacksize)
4841         yystacksize = YYMAXDEPTH;
4842
4843       {
4844         yytype_int16 *yyss1 = yyss;
4845         union yyalloc *yyptr =
4846           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4847         if (! yyptr)
4848           goto yyexhaustedlab;
4849         YYSTACK_RELOCATE (yyss_alloc, yyss);
4850         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4851         YYSTACK_RELOCATE (yyls_alloc, yyls);
4852 #  undef YYSTACK_RELOCATE
4853         if (yyss1 != yyssa)
4854           YYSTACK_FREE (yyss1);
4855       }
4856 # endif
4857 #endif /* no yyoverflow */
4858
4859       yyssp = yyss + yysize - 1;
4860       yyvsp = yyvs + yysize - 1;
4861       yylsp = yyls + yysize - 1;
4862
4863       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4864                   (unsigned long int) yystacksize));
4865
4866       if (yyss + yystacksize - 1 <= yyssp)
4867         YYABORT;
4868     }
4869
4870   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4871
4872   if (yystate == YYFINAL)
4873     YYACCEPT;
4874
4875   goto yybackup;
4876
4877 /*-----------.
4878 | yybackup.  |
4879 `-----------*/
4880 yybackup:
4881
4882   /* Do appropriate processing given the current state.  Read a
4883      lookahead token if we need one and don't already have one.  */
4884
4885   /* First try to decide what to do without reference to lookahead token.  */
4886   yyn = yypact[yystate];
4887   if (yyn == YYPACT_NINF)
4888     goto yydefault;
4889
4890   /* Not known => get a lookahead token if don't already have one.  */
4891
4892   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4893   if (yychar == YYEMPTY)
4894     {
4895       YYDPRINTF ((stderr, "Reading a token: "));
4896       yychar = YYLEX;
4897     }
4898
4899   if (yychar <= YYEOF)
4900     {
4901       yychar = yytoken = YYEOF;
4902       YYDPRINTF ((stderr, "Now at end of input.\n"));
4903     }
4904   else
4905     {
4906       yytoken = YYTRANSLATE (yychar);
4907       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4908     }
4909
4910   /* If the proper action on seeing token YYTOKEN is to reduce or to
4911      detect an error, take that action.  */
4912   yyn += yytoken;
4913   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4914     goto yydefault;
4915   yyn = yytable[yyn];
4916   if (yyn <= 0)
4917     {
4918       if (yyn == 0 || yyn == YYTABLE_NINF)
4919         goto yyerrlab;
4920       yyn = -yyn;
4921       goto yyreduce;
4922     }
4923
4924   /* Count tokens shifted since error; after three, turn off error
4925      status.  */
4926   if (yyerrstatus)
4927     yyerrstatus--;
4928
4929   /* Shift the lookahead token.  */
4930   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4931
4932   /* Discard the shifted token.  */
4933   yychar = YYEMPTY;
4934
4935   yystate = yyn;
4936   *++yyvsp = yylval;
4937   *++yylsp = yylloc;
4938   goto yynewstate;
4939
4940
4941 /*-----------------------------------------------------------.
4942 | yydefault -- do the default action for the current state.  |
4943 `-----------------------------------------------------------*/
4944 yydefault:
4945   yyn = yydefact[yystate];
4946   if (yyn == 0)
4947     goto yyerrlab;
4948   goto yyreduce;
4949
4950
4951 /*-----------------------------.
4952 | yyreduce -- Do a reduction.  |
4953 `-----------------------------*/
4954 yyreduce:
4955   /* yyn is the number of a rule to reduce with.  */
4956   yylen = yyr2[yyn];
4957
4958   /* If YYLEN is nonzero, implement the default value of the action:
4959      `$$ = $1'.
4960
4961      Otherwise, the following line sets YYVAL to garbage.
4962      This behavior is undocumented and Bison
4963      users should not rely upon it.  Assigning to YYVAL
4964      unconditionally makes the parser a bit smaller, and it avoids a
4965      GCC warning that YYVAL may be used uninitialized.  */
4966   yyval = yyvsp[1-yylen];
4967
4968   /* Default location.  */
4969   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
4970   YY_REDUCE_PRINT (yyn);
4971   switch (yyn)
4972     {
4973         case 2:
4974
4975 /* Line 1464 of yacc.c  */
4976 #line 226 "type.y"
4977     {
4978       (yyval.specifier) = null;
4979       DeclClass(0, (yyvsp[(1) - (2)].id).string);
4980       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
4981       resetScannerPos(&(yylsp[(1) - (2)]).start);
4982       yyclearin;
4983       
4984       FreeIdentifier((yyvsp[(1) - (2)].id));
4985
4986       YYPOPSTACK(1);
4987       yystate = *yyssp;
4988       YY_STACK_PRINT (yyss, yyssp);
4989       YYPOPSTACK(1);
4990       yystate = *yyssp;
4991       YY_STACK_PRINT (yyss, yyssp);
4992       goto yysetstate;
4993    ;}
4994     break;
4995
4996   case 3:
4997
4998 /* Line 1464 of yacc.c  */
4999 #line 244 "type.y"
5000     {
5001       (yyval.specifier) = null;
5002    #ifdef PRECOMPILER
5003       // if($1._class && !$1._class.name)
5004       if((yyvsp[(1) - (2)].id)._class)
5005       {
5006          char name[1024];
5007          strcpy(name,  (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
5008          strcat(name, "::");
5009          strcat(name, (yyvsp[(1) - (2)].id).string);
5010          _DeclClass(0, name);
5011       }
5012       else
5013          _DeclClass(0, (yyvsp[(1) - (2)].id).string);
5014
5015       FreeIdentifier((yyvsp[(1) - (2)].id));
5016
5017       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5018       resetScannerPos(&(yylsp[(1) - (2)]).start);
5019       yyclearin;
5020
5021       YYPOPSTACK(1);
5022       yystate = *yyssp;
5023       YY_STACK_PRINT (yyss, yyssp);
5024       YYPOPSTACK(1);
5025       yystate = *yyssp;
5026       YY_STACK_PRINT (yyss, yyssp);
5027       goto yysetstate;
5028    #endif
5029    ;}
5030     break;
5031
5032   case 4:
5033
5034 /* Line 1464 of yacc.c  */
5035 #line 278 "type.y"
5036     {
5037       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5038       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5039       parseTypeError = 0;
5040       resetScannerPos(&(yylsp[(1) - (2)]).start);
5041       yyclearin;
5042       FreeIdentifier((yyvsp[(1) - (2)].id));
5043
5044       YYPOPSTACK(1);
5045       yystate = *yyssp;
5046       YY_STACK_PRINT (yyss, yyssp);
5047       YYPOPSTACK(1);
5048       yystate = *yyssp;
5049       YY_STACK_PRINT (yyss, yyssp);
5050       goto yysetstate;
5051    ;}
5052     break;
5053
5054   case 5:
5055
5056 /* Line 1464 of yacc.c  */
5057 #line 327 "type.y"
5058     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5059     break;
5060
5061   case 6:
5062
5063 /* Line 1464 of yacc.c  */
5064 #line 329 "type.y"
5065     {
5066    #ifdef PRECOMPILER
5067       DeclClass(0, (yyvsp[(1) - (2)].id).string);
5068       fileInput.Seek((yylsp[(1) - (2)]).start.pos, start); 
5069       resetScannerPos(&(yylsp[(1) - (2)]).start);
5070       yyclearin;
5071
5072       FreeIdentifier((yyvsp[(1) - (2)].id));
5073       FreeIdentifier((yyvsp[(2) - (2)].id));
5074
5075       YYPOPSTACK(1);
5076       yystate = *yyssp;
5077       YY_STACK_PRINT (yyss, yyssp);
5078       YYPOPSTACK(1);
5079       yystate = *yyssp;
5080       YY_STACK_PRINT (yyss, yyssp);
5081       goto yysetstate;
5082    #else
5083       Location tmpLoc = yylloc; (yyval.specifier) = (yyvsp[(2) - (2)].id); yylloc = (yylsp[(1) - (2)]); 
5084       Compiler_Error($"Not a type: %s\n", (yyvsp[(1) - (2)].id).string);      
5085       yylloc = tmpLoc; (yyvsp[(2) - (2)].id).badID = (yyvsp[(1) - (2)].id); // FreeIdentifier($1);
5086    #endif
5087    ;}
5088     break;
5089
5090   case 7:
5091
5092 /* Line 1464 of yacc.c  */
5093 #line 355 "type.y"
5094     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5095     break;
5096
5097   case 9:
5098
5099 /* Line 1464 of yacc.c  */
5100 #line 360 "type.y"
5101     { (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
5102     break;
5103
5104   case 10:
5105
5106 /* Line 1464 of yacc.c  */
5107 #line 362 "type.y"
5108     {
5109       (yyval.specifier) = (yyvsp[(1) - (4)].specifier);
5110       SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
5111       (yyval.specifier).loc = (yyloc);
5112
5113       (yylsp[(4) - (4)]).end.pos--;
5114       fileInput.Seek((yylsp[(4) - (4)]).end.pos, start); 
5115       resetScannerPos(&(yylsp[(4) - (4)]).end);
5116       yyclearin;
5117     ;}
5118     break;
5119
5120   case 11:
5121
5122 /* Line 1464 of yacc.c  */
5123 #line 379 "type.y"
5124     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5125     break;
5126
5127   case 12:
5128
5129 /* Line 1464 of yacc.c  */
5130 #line 381 "type.y"
5131     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5132     break;
5133
5134   case 13:
5135
5136 /* Line 1464 of yacc.c  */
5137 #line 386 "type.y"
5138     { (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); ;}
5139     break;
5140
5141   case 14:
5142
5143 /* Line 1464 of yacc.c  */
5144 #line 391 "type.y"
5145     { (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); ;}
5146     break;
5147
5148   case 15:
5149
5150 /* Line 1464 of yacc.c  */
5151 #line 396 "type.y"
5152     { (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; ;}
5153     break;
5154
5155   case 16:
5156
5157 /* Line 1464 of yacc.c  */
5158 #line 398 "type.y"
5159     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
5160     break;
5161
5162   case 17:
5163
5164 /* Line 1464 of yacc.c  */
5165 #line 403 "type.y"
5166     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
5167     break;
5168
5169   case 19:
5170
5171 /* Line 1464 of yacc.c  */
5172 #line 409 "type.y"
5173     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
5174     break;
5175
5176   case 20:
5177
5178 /* Line 1464 of yacc.c  */
5179 #line 414 "type.y"
5180     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
5181     break;
5182
5183   case 21:
5184
5185 /* Line 1464 of yacc.c  */
5186 #line 416 "type.y"
5187     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5188     break;
5189
5190   case 22:
5191
5192 /* Line 1464 of yacc.c  */
5193 #line 418 "type.y"
5194     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
5195     break;
5196
5197   case 23:
5198
5199 /* Line 1464 of yacc.c  */
5200 #line 420 "type.y"
5201     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
5202     break;
5203
5204   case 24:
5205
5206 /* Line 1464 of yacc.c  */
5207 #line 421 "type.y"
5208     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
5209     break;
5210
5211   case 25:
5212
5213 /* Line 1464 of yacc.c  */
5214 #line 422 "type.y"
5215     { (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); ;}
5216     break;
5217
5218   case 26:
5219
5220 /* Line 1464 of yacc.c  */
5221 #line 424 "type.y"
5222     { 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(); ;}
5223     break;
5224
5225   case 27:
5226
5227 /* Line 1464 of yacc.c  */
5228 #line 426 "type.y"
5229     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5230     break;
5231
5232   case 28:
5233
5234 /* Line 1464 of yacc.c  */
5235 #line 427 "type.y"
5236     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5237     break;
5238
5239   case 29:
5240
5241 /* Line 1464 of yacc.c  */
5242 #line 428 "type.y"
5243     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5244     break;
5245
5246   case 30:
5247
5248 /* Line 1464 of yacc.c  */
5249 #line 429 "type.y"
5250     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5251     break;
5252
5253   case 31:
5254
5255 /* Line 1464 of yacc.c  */
5256 #line 430 "type.y"
5257     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5258     break;
5259
5260   case 32:
5261
5262 /* Line 1464 of yacc.c  */
5263 #line 431 "type.y"
5264     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5265     break;
5266
5267   case 33:
5268
5269 /* Line 1464 of yacc.c  */
5270 #line 432 "type.y"
5271     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
5272     break;
5273
5274   case 34:
5275
5276 /* Line 1464 of yacc.c  */
5277 #line 433 "type.y"
5278     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
5279     break;
5280
5281   case 35:
5282
5283 /* Line 1464 of yacc.c  */
5284 #line 434 "type.y"
5285     { (yyval.exp) = MkExpDummy(); ;}
5286     break;
5287
5288   case 37:
5289
5290 /* Line 1464 of yacc.c  */
5291 #line 439 "type.y"
5292     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5293     break;
5294
5295   case 38:
5296
5297 /* Line 1464 of yacc.c  */
5298 #line 440 "type.y"
5299     { (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); ;}
5300     break;
5301
5302   case 39:
5303
5304 /* Line 1464 of yacc.c  */
5305 #line 441 "type.y"
5306     { (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); ;}
5307     break;
5308
5309   case 40:
5310
5311 /* Line 1464 of yacc.c  */
5312 #line 442 "type.y"
5313     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5314     break;
5315
5316   case 41:
5317
5318 /* Line 1464 of yacc.c  */
5319 #line 443 "type.y"
5320     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5321     break;
5322
5323   case 42:
5324
5325 /* Line 1464 of yacc.c  */
5326 #line 444 "type.y"
5327     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5328     break;
5329
5330   case 43:
5331
5332 /* Line 1464 of yacc.c  */
5333 #line 445 "type.y"
5334     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5335     break;
5336
5337   case 44:
5338
5339 /* Line 1464 of yacc.c  */
5340 #line 449 "type.y"
5341     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
5342     break;
5343
5344   case 46:
5345
5346 /* Line 1464 of yacc.c  */
5347 #line 455 "type.y"
5348     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
5349     break;
5350
5351   case 47:
5352
5353 /* Line 1464 of yacc.c  */
5354 #line 456 "type.y"
5355     { (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); ;}
5356     break;
5357
5358   case 48:
5359
5360 /* Line 1464 of yacc.c  */
5361 #line 457 "type.y"
5362     { (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); ;}
5363     break;
5364
5365   case 49:
5366
5367 /* Line 1464 of yacc.c  */
5368 #line 458 "type.y"
5369     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5370     break;
5371
5372   case 50:
5373
5374 /* Line 1464 of yacc.c  */
5375 #line 459 "type.y"
5376     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
5377     break;
5378
5379   case 51:
5380
5381 /* Line 1464 of yacc.c  */
5382 #line 460 "type.y"
5383     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
5384     break;
5385
5386   case 52:
5387
5388 /* Line 1464 of yacc.c  */
5389 #line 461 "type.y"
5390     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
5391     break;
5392
5393   case 53:
5394
5395 /* Line 1464 of yacc.c  */
5396 #line 465 "type.y"
5397     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5398     break;
5399
5400   case 54:
5401
5402 /* Line 1464 of yacc.c  */
5403 #line 466 "type.y"
5404     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5405     break;
5406
5407   case 55:
5408
5409 /* Line 1464 of yacc.c  */
5410 #line 467 "type.y"
5411     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5412     break;
5413
5414   case 56:
5415
5416 /* Line 1464 of yacc.c  */
5417 #line 468 "type.y"
5418     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
5419     break;
5420
5421   case 57:
5422
5423 /* Line 1464 of yacc.c  */
5424 #line 472 "type.y"
5425     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5426     break;
5427
5428   case 58:
5429
5430 /* Line 1464 of yacc.c  */
5431 #line 473 "type.y"
5432     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5433     break;
5434
5435   case 59:
5436
5437 /* Line 1464 of yacc.c  */
5438 #line 474 "type.y"
5439     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5440     break;
5441
5442   case 60:
5443
5444 /* Line 1464 of yacc.c  */
5445 #line 475 "type.y"
5446     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5447     break;
5448
5449   case 61:
5450
5451 /* Line 1464 of yacc.c  */
5452 #line 476 "type.y"
5453     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5454     break;
5455
5456   case 62:
5457
5458 /* Line 1464 of yacc.c  */
5459 #line 477 "type.y"
5460     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5461     break;
5462
5463   case 63:
5464
5465 /* Line 1464 of yacc.c  */
5466 #line 478 "type.y"
5467     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5468     break;
5469
5470   case 64:
5471
5472 /* Line 1464 of yacc.c  */
5473 #line 479 "type.y"
5474     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
5475     break;
5476
5477   case 65:
5478
5479 /* Line 1464 of yacc.c  */
5480 #line 480 "type.y"
5481     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
5482     break;
5483
5484   case 70:
5485
5486 /* Line 1464 of yacc.c  */
5487 #line 494 "type.y"
5488     { (yyval.i) = '&'; ;}
5489     break;
5490
5491   case 71:
5492
5493 /* Line 1464 of yacc.c  */
5494 #line 495 "type.y"
5495     { (yyval.i) = '*'; ;}
5496     break;
5497
5498   case 72:
5499
5500 /* Line 1464 of yacc.c  */
5501 #line 496 "type.y"
5502     { (yyval.i) = '+'; ;}
5503     break;
5504
5505   case 73:
5506
5507 /* Line 1464 of yacc.c  */
5508 #line 497 "type.y"
5509     { (yyval.i) = '-'; ;}
5510     break;
5511
5512   case 74:
5513
5514 /* Line 1464 of yacc.c  */
5515 #line 498 "type.y"
5516     { (yyval.i) = '~'; ;}
5517     break;
5518
5519   case 75:
5520
5521 /* Line 1464 of yacc.c  */
5522 #line 499 "type.y"
5523     { (yyval.i) = '!'; ;}
5524     break;
5525
5526   case 76:
5527
5528 /* Line 1464 of yacc.c  */
5529 #line 500 "type.y"
5530     { (yyval.i) = DELETE; ;}
5531     break;
5532
5533   case 78:
5534
5535 /* Line 1464 of yacc.c  */
5536 #line 505 "type.y"
5537     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
5538     break;
5539
5540   case 80:
5541
5542 /* Line 1464 of yacc.c  */
5543 #line 510 "type.y"
5544     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5545     break;
5546
5547   case 81:
5548
5549 /* Line 1464 of yacc.c  */
5550 #line 511 "type.y"
5551     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5552     break;
5553
5554   case 82:
5555
5556 /* Line 1464 of yacc.c  */
5557 #line 512 "type.y"
5558     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5559     break;
5560
5561   case 84:
5562
5563 /* Line 1464 of yacc.c  */
5564 #line 517 "type.y"
5565     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5566     break;
5567
5568   case 85:
5569
5570 /* Line 1464 of yacc.c  */
5571 #line 518 "type.y"
5572     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5573     break;
5574
5575   case 87:
5576
5577 /* Line 1464 of yacc.c  */
5578 #line 523 "type.y"
5579     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5580     break;
5581
5582   case 88:
5583
5584 /* Line 1464 of yacc.c  */
5585 #line 524 "type.y"
5586     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5587     break;
5588
5589   case 89:
5590
5591 /* Line 1464 of yacc.c  */
5592 #line 529 "type.y"
5593     {
5594       (yyval.exp) = (yyvsp[(1) - (2)].exp);
5595       skipErrors = true;
5596    ;}
5597     break;
5598
5599   case 91:
5600
5601 /* Line 1464 of yacc.c  */
5602 #line 537 "type.y"
5603     { skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
5604     break;
5605
5606   case 92:
5607
5608 /* Line 1464 of yacc.c  */
5609 #line 538 "type.y"
5610     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5611     break;
5612
5613   case 93:
5614
5615 /* Line 1464 of yacc.c  */
5616 #line 539 "type.y"
5617     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5618     break;
5619
5620   case 94:
5621
5622 /* Line 1464 of yacc.c  */
5623 #line 540 "type.y"
5624     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5625     break;
5626
5627   case 96:
5628
5629 /* Line 1464 of yacc.c  */
5630 #line 545 "type.y"
5631     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5632     break;
5633
5634   case 97:
5635
5636 /* Line 1464 of yacc.c  */
5637 #line 546 "type.y"
5638     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5639     break;
5640
5641   case 99:
5642
5643 /* Line 1464 of yacc.c  */
5644 #line 551 "type.y"
5645     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5646     break;
5647
5648   case 101:
5649
5650 /* Line 1464 of yacc.c  */
5651 #line 556 "type.y"
5652     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5653     break;
5654
5655   case 103:
5656
5657 /* Line 1464 of yacc.c  */
5658 #line 561 "type.y"
5659     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5660     break;
5661
5662   case 105:
5663
5664 /* Line 1464 of yacc.c  */
5665 #line 566 "type.y"
5666     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5667     break;
5668
5669   case 107:
5670
5671 /* Line 1464 of yacc.c  */
5672 #line 571 "type.y"
5673     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5674     break;
5675
5676   case 109:
5677
5678 /* Line 1464 of yacc.c  */
5679 #line 576 "type.y"
5680     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5681     break;
5682
5683   case 111:
5684
5685 /* Line 1464 of yacc.c  */
5686 #line 581 "type.y"
5687     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5688     break;
5689
5690   case 112:
5691
5692 /* Line 1464 of yacc.c  */
5693 #line 582 "type.y"
5694     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5695     break;
5696
5697   case 113:
5698
5699 /* Line 1464 of yacc.c  */
5700 #line 586 "type.y"
5701     { (yyval.i) = '='; ;}
5702     break;
5703
5704   case 114:
5705
5706 /* Line 1464 of yacc.c  */
5707 #line 587 "type.y"
5708     { (yyval.i) = MUL_ASSIGN; ;}
5709     break;
5710
5711   case 115:
5712
5713 /* Line 1464 of yacc.c  */
5714 #line 588 "type.y"
5715     { (yyval.i) = DIV_ASSIGN; ;}
5716     break;
5717
5718   case 116:
5719
5720 /* Line 1464 of yacc.c  */
5721 #line 589 "type.y"
5722     { (yyval.i) = MOD_ASSIGN; ;}
5723     break;
5724
5725   case 117:
5726
5727 /* Line 1464 of yacc.c  */
5728 #line 590 "type.y"
5729     { (yyval.i) = ADD_ASSIGN; ;}
5730     break;
5731
5732   case 118:
5733
5734 /* Line 1464 of yacc.c  */
5735 #line 591 "type.y"
5736     { (yyval.i) = SUB_ASSIGN; ;}
5737     break;
5738
5739   case 119:
5740
5741 /* Line 1464 of yacc.c  */
5742 #line 592 "type.y"
5743     { (yyval.i) = LEFT_ASSIGN; ;}
5744     break;
5745
5746   case 120:
5747
5748 /* Line 1464 of yacc.c  */
5749 #line 593 "type.y"
5750     { (yyval.i) = RIGHT_ASSIGN; ;}
5751     break;
5752
5753   case 121:
5754
5755 /* Line 1464 of yacc.c  */
5756 #line 594 "type.y"
5757     { (yyval.i) = AND_ASSIGN; ;}
5758     break;
5759
5760   case 122:
5761
5762 /* Line 1464 of yacc.c  */
5763 #line 595 "type.y"
5764     { (yyval.i) = XOR_ASSIGN; ;}
5765     break;
5766
5767   case 123:
5768
5769 /* Line 1464 of yacc.c  */
5770 #line 596 "type.y"
5771     { (yyval.i) = OR_ASSIGN; ;}
5772     break;
5773
5774   case 124:
5775
5776 /* Line 1464 of yacc.c  */
5777 #line 600 "type.y"
5778     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5779     break;
5780
5781   case 125:
5782
5783 /* Line 1464 of yacc.c  */
5784 #line 601 "type.y"
5785     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5786     break;
5787
5788   case 127:
5789
5790 /* Line 1464 of yacc.c  */
5791 #line 609 "type.y"
5792     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5793     break;
5794
5795   case 128:
5796
5797 /* Line 1464 of yacc.c  */
5798 #line 610 "type.y"
5799     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5800     break;
5801
5802   case 129:
5803
5804 /* Line 1464 of yacc.c  */
5805 #line 611 "type.y"
5806     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5807     break;
5808
5809   case 130:
5810
5811 /* Line 1464 of yacc.c  */
5812 #line 612 "type.y"
5813     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5814     break;
5815
5816   case 131:
5817
5818 /* Line 1464 of yacc.c  */
5819 #line 616 "type.y"
5820     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5821     break;
5822
5823   case 132:
5824
5825 /* Line 1464 of yacc.c  */
5826 #line 617 "type.y"
5827     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5828     break;
5829
5830   case 133:
5831
5832 /* Line 1464 of yacc.c  */
5833 #line 618 "type.y"
5834     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5835     break;
5836
5837   case 134:
5838
5839 /* Line 1464 of yacc.c  */
5840 #line 619 "type.y"
5841     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5842     break;
5843
5844   case 135:
5845
5846 /* Line 1464 of yacc.c  */
5847 #line 620 "type.y"
5848     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5849     break;
5850
5851   case 136:
5852
5853 /* Line 1464 of yacc.c  */
5854 #line 621 "type.y"
5855     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5856     break;
5857
5858   case 137:
5859
5860 /* Line 1464 of yacc.c  */
5861 #line 622 "type.y"
5862     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5863     break;
5864
5865   case 138:
5866
5867 /* Line 1464 of yacc.c  */
5868 #line 623 "type.y"
5869     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5870     break;
5871
5872   case 139:
5873
5874 /* Line 1464 of yacc.c  */
5875 #line 627 "type.y"
5876     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5877     break;
5878
5879   case 140:
5880
5881 /* Line 1464 of yacc.c  */
5882 #line 628 "type.y"
5883     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5884     break;
5885
5886   case 141:
5887
5888 /* Line 1464 of yacc.c  */
5889 #line 629 "type.y"
5890     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5891     break;
5892
5893   case 142:
5894
5895 /* Line 1464 of yacc.c  */
5896 #line 630 "type.y"
5897     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5898     break;
5899
5900   case 143:
5901
5902 /* Line 1464 of yacc.c  */
5903 #line 631 "type.y"
5904     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5905     break;
5906
5907   case 144:
5908
5909 /* Line 1464 of yacc.c  */
5910 #line 632 "type.y"
5911     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5912     break;
5913
5914   case 145:
5915
5916 /* Line 1464 of yacc.c  */
5917 #line 633 "type.y"
5918     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5919     break;
5920
5921   case 146:
5922
5923 /* Line 1464 of yacc.c  */
5924 #line 634 "type.y"
5925     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5926     break;
5927
5928   case 147:
5929
5930 /* Line 1464 of yacc.c  */
5931 #line 635 "type.y"
5932     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5933     break;
5934
5935   case 148:
5936
5937 /* Line 1464 of yacc.c  */
5938 #line 636 "type.y"
5939     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5940     break;
5941
5942   case 149:
5943
5944 /* Line 1464 of yacc.c  */
5945 #line 640 "type.y"
5946     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5947     break;
5948
5949   case 150:
5950
5951 /* Line 1464 of yacc.c  */
5952 #line 641 "type.y"
5953     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5954     break;
5955
5956   case 151:
5957
5958 /* Line 1464 of yacc.c  */
5959 #line 642 "type.y"
5960     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5961     break;
5962
5963   case 152:
5964
5965 /* Line 1464 of yacc.c  */
5966 #line 643 "type.y"
5967     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5968     break;
5969
5970   case 153:
5971
5972 /* Line 1464 of yacc.c  */
5973 #line 644 "type.y"
5974     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5975     break;
5976
5977   case 154:
5978
5979 /* Line 1464 of yacc.c  */
5980 #line 645 "type.y"
5981     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5982     break;
5983
5984   case 155:
5985
5986 /* Line 1464 of yacc.c  */
5987 #line 646 "type.y"
5988     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5989     break;
5990
5991   case 156:
5992
5993 /* Line 1464 of yacc.c  */
5994 #line 647 "type.y"
5995     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5996     break;
5997
5998   case 157:
5999
6000 /* Line 1464 of yacc.c  */
6001 #line 648 "type.y"
6002     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6003     break;
6004
6005   case 158:
6006
6007 /* Line 1464 of yacc.c  */
6008 #line 649 "type.y"
6009     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6010     break;
6011
6012   case 159:
6013
6014 /* Line 1464 of yacc.c  */
6015 #line 653 "type.y"
6016     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6017     break;
6018
6019   case 160:
6020
6021 /* Line 1464 of yacc.c  */
6022 #line 654 "type.y"
6023     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6024     break;
6025
6026   case 161:
6027
6028 /* Line 1464 of yacc.c  */
6029 #line 655 "type.y"
6030     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6031     break;
6032
6033   case 162:
6034
6035 /* Line 1464 of yacc.c  */
6036 #line 656 "type.y"
6037     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6038     break;
6039
6040   case 163:
6041
6042 /* Line 1464 of yacc.c  */
6043 #line 657 "type.y"
6044     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6045     break;
6046
6047   case 164:
6048
6049 /* Line 1464 of yacc.c  */
6050 #line 658 "type.y"
6051     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6052     break;
6053
6054   case 165:
6055
6056 /* Line 1464 of yacc.c  */
6057 #line 659 "type.y"
6058     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6059     break;
6060
6061   case 166:
6062
6063 /* Line 1464 of yacc.c  */
6064 #line 660 "type.y"
6065     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6066     break;
6067
6068   case 167:
6069
6070 /* Line 1464 of yacc.c  */
6071 #line 661 "type.y"
6072     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6073     break;
6074
6075   case 168:
6076
6077 /* Line 1464 of yacc.c  */
6078 #line 662 "type.y"
6079     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6080     break;
6081
6082   case 169:
6083
6084 /* Line 1464 of yacc.c  */
6085 #line 663 "type.y"
6086     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6087     break;
6088
6089   case 170:
6090
6091 /* Line 1464 of yacc.c  */
6092 #line 664 "type.y"
6093     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6094     break;
6095
6096   case 171:
6097
6098 /* Line 1464 of yacc.c  */
6099 #line 668 "type.y"
6100     { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
6101     break;
6102
6103   case 172:
6104
6105 /* Line 1464 of yacc.c  */
6106 #line 669 "type.y"
6107     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6108     break;
6109
6110   case 173:
6111
6112 /* Line 1464 of yacc.c  */
6113 #line 673 "type.y"
6114     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6115     break;
6116
6117   case 174:
6118
6119 /* Line 1464 of yacc.c  */
6120 #line 674 "type.y"
6121     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6122     break;
6123
6124   case 175:
6125
6126 /* Line 1464 of yacc.c  */
6127 #line 675 "type.y"
6128     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6129     break;
6130
6131   case 176:
6132
6133 /* Line 1464 of yacc.c  */
6134 #line 676 "type.y"
6135     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6136     break;
6137
6138   case 177:
6139
6140 /* Line 1464 of yacc.c  */
6141 #line 677 "type.y"
6142     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6143     break;
6144
6145   case 178:
6146
6147 /* Line 1464 of yacc.c  */
6148 #line 678 "type.y"
6149     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6150     break;
6151
6152   case 179:
6153
6154 /* Line 1464 of yacc.c  */
6155 #line 679 "type.y"
6156     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6157     break;
6158
6159   case 180:
6160
6161 /* Line 1464 of yacc.c  */
6162 #line 680 "type.y"
6163     { ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
6164     break;
6165
6166   case 181:
6167
6168 /* Line 1464 of yacc.c  */
6169 #line 682 "type.y"
6170     {
6171          // if($1._class && !$1._class.name)
6172          if((yyvsp[(1) - (4)].id)._class)
6173          {
6174             char name[1024];
6175             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6176             strcat(name, "::");
6177             strcat(name, (yyvsp[(1) - (4)].id).string);
6178             _DeclClass(0, name);
6179          }
6180          else
6181             _DeclClass(0, (yyvsp[(1) - (4)].id).string);
6182
6183          (yyval.list) = MkList();
6184          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6185          FreeIdentifier((yyvsp[(1) - (4)].id));
6186       ;}
6187     break;
6188
6189   case 182:
6190
6191 /* Line 1464 of yacc.c  */
6192 #line 700 "type.y"
6193     {
6194          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6195          {
6196             char name[1024];
6197             strcpy(name, "::");
6198             strcat(name, (yyvsp[(2) - (5)].id).string);
6199             _DeclClass(0, name);
6200          }
6201          else
6202             _DeclClass(0, (yyvsp[(2) - (5)].id).string);
6203          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6204          FreeIdentifier((yyvsp[(2) - (5)].id));
6205       ;}
6206     break;
6207
6208   case 183:
6209
6210 /* Line 1464 of yacc.c  */
6211 #line 716 "type.y"
6212     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6213     break;
6214
6215   case 184:
6216
6217 /* Line 1464 of yacc.c  */
6218 #line 717 "type.y"
6219     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6220     break;
6221
6222   case 185:
6223
6224 /* Line 1464 of yacc.c  */
6225 #line 718 "type.y"
6226     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6227     break;
6228
6229   case 186:
6230
6231 /* Line 1464 of yacc.c  */
6232 #line 719 "type.y"
6233     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6234     break;
6235
6236   case 187:
6237
6238 /* Line 1464 of yacc.c  */
6239 #line 720 "type.y"
6240     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6241     break;
6242
6243   case 188:
6244
6245 /* Line 1464 of yacc.c  */
6246 #line 721 "type.y"
6247     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6248     break;
6249
6250   case 189:
6251
6252 /* Line 1464 of yacc.c  */
6253 #line 722 "type.y"
6254     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6255     break;
6256
6257   case 190:
6258
6259 /* Line 1464 of yacc.c  */
6260 #line 723 "type.y"
6261     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6262     break;
6263
6264   case 191:
6265
6266 /* Line 1464 of yacc.c  */
6267 #line 724 "type.y"
6268     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6269     break;
6270
6271   case 192:
6272
6273 /* Line 1464 of yacc.c  */
6274 #line 725 "type.y"
6275     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
6276     break;
6277
6278   case 193:
6279
6280 /* Line 1464 of yacc.c  */
6281 #line 726 "type.y"
6282     { (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
6283     break;
6284
6285   case 194:
6286
6287 /* Line 1464 of yacc.c  */
6288 #line 727 "type.y"
6289     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
6290     break;
6291
6292   case 195:
6293
6294 /* Line 1464 of yacc.c  */
6295 #line 729 "type.y"
6296     {
6297          // if($1._class && !$1._class.name)
6298          if((yyvsp[(1) - (4)].id)._class)
6299          {
6300             char name[1024];
6301             strcpy(name,  (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
6302             strcat(name, "::");
6303             strcat(name, (yyvsp[(1) - (4)].id).string);
6304             _DeclClass(0, name);
6305          }
6306          else
6307             _DeclClass(0, (yyvsp[(1) - (4)].id).string);
6308
6309          (yyval.list) = MkList();
6310          ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
6311          FreeIdentifier((yyvsp[(1) - (4)].id));
6312       ;}
6313     break;
6314
6315   case 196:
6316
6317 /* Line 1464 of yacc.c  */
6318 #line 747 "type.y"
6319     {
6320          if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
6321          {
6322             char name[1024];
6323             strcpy(name, "::");
6324             strcat(name, (yyvsp[(2) - (5)].id).string);
6325             _DeclClass(0, name);
6326          }
6327          else
6328             _DeclClass(0, (yyvsp[(2) - (5)].id).string);
6329          ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
6330          FreeIdentifier((yyvsp[(2) - (5)].id));
6331       ;}
6332     break;
6333
6334   case 197:
6335
6336 /* Line 1464 of yacc.c  */
6337 #line 763 "type.y"
6338     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
6339     break;
6340
6341   case 198:
6342
6343 /* Line 1464 of yacc.c  */
6344 #line 764 "type.y"
6345     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
6346     break;
6347
6348   case 199:
6349
6350 /* Line 1464 of yacc.c  */
6351 #line 768 "type.y"
6352     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
6353     break;
6354
6355   case 200:
6356
6357 /* Line 1464 of yacc.c  */
6358 #line 769 "type.y"
6359     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
6360     break;
6361
6362   case 201:
6363
6364 /* Line 1464 of yacc.c  */
6365 #line 773 "type.y"
6366     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
6367     break;
6368
6369   case 202:
6370
6371 /* Line 1464 of yacc.c  */
6372 #line 774 "type.y"
6373     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
6374     break;
6375
6376   case 203:
6377
6378 /* Line 1464 of yacc.c  */
6379 #line 775 "type.y"
6380     { (yyval.specifier) = MkSpecifier(STATIC); ;}
6381     break;
6382
6383   case 204:
6384
6385 /* Line 1464 of yacc.c  */
6386 #line 776 "type.y"
6387     { (yyval.specifier) = MkSpecifier(AUTO); ;}
6388     break;
6389
6390   case 205:
6391
6392 /* Line 1464 of yacc.c  */
6393 #line 777 "type.y"
6394     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
6395     break;
6396
6397   case 206:
6398
6399 /* Line 1464 of yacc.c  */
6400 #line 781 "type.y"
6401     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6402     break;
6403
6404   case 207:
6405
6406 /* Line 1464 of yacc.c  */
6407 #line 782 "type.y"
6408     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
6409     break;
6410
6411   case 208:
6412
6413 /* Line 1464 of yacc.c  */
6414 #line 783 "type.y"
6415     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
6416     break;
6417
6418   case 209:
6419
6420 /* Line 1464 of yacc.c  */
6421 #line 787 "type.y"
6422     { (yyval.i) = ATTRIB; ;}
6423     break;
6424
6425   case 210:
6426
6427 /* Line 1464 of yacc.c  */
6428 #line 788 "type.y"
6429     { (yyval.i) = ATTRIB_DEP; ;}
6430     break;
6431
6432   case 211:
6433
6434 /* Line 1464 of yacc.c  */
6435 #line 789 "type.y"
6436     { (yyval.i) = __ATTRIB; ;}
6437     break;
6438
6439   case 212:
6440
6441 /* Line 1464 of yacc.c  */
6442 #line 794 "type.y"
6443     { (yyval.string)  = CopyString(yytext); ;}
6444     break;
6445
6446   case 213:
6447
6448 /* Line 1464 of yacc.c  */
6449 #line 795 "type.y"
6450     { (yyval.string)  = CopyString(yytext); ;}
6451     break;
6452
6453   case 214:
6454
6455 /* Line 1464 of yacc.c  */
6456 #line 796 "type.y"
6457     { (yyval.string)  = CopyString(yytext); ;}
6458     break;
6459
6460   case 215:
6461
6462 /* Line 1464 of yacc.c  */
6463 #line 797 "type.y"
6464     { (yyval.string)  = CopyString(yytext); ;}
6465     break;
6466
6467   case 216:
6468
6469 /* Line 1464 of yacc.c  */
6470 #line 798 "type.y"
6471     { (yyval.string)  = CopyString(yytext); ;}
6472     break;
6473
6474   case 217:
6475
6476 /* Line 1464 of yacc.c  */
6477 #line 802 "type.y"
6478     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
6479     break;
6480
6481   case 218:
6482
6483 /* Line 1464 of yacc.c  */
6484 #line 803 "type.y"
6485     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
6486     break;
6487
6488   case 219:
6489
6490 /* Line 1464 of yacc.c  */
6491 #line 807 "type.y"
6492     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
6493     break;
6494
6495   case 220:
6496
6497 /* Line 1464 of yacc.c  */
6498 #line 808 "type.y"
6499     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
6500     break;
6501
6502   case 221:
6503
6504 /* Line 1464 of yacc.c  */
6505 #line 809 "type.y"
6506     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
6507     break;
6508
6509   case 222:
6510
6511 /* Line 1464 of yacc.c  */
6512 #line 813 "type.y"
6513     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
6514     break;
6515
6516   case 223:
6517
6518 /* Line 1464 of yacc.c  */
6519 #line 814 "type.y"
6520     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
6521     break;
6522
6523   case 224:
6524
6525 /* Line 1464 of yacc.c  */
6526 #line 818 "type.y"
6527     { (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
6528     break;
6529
6530   case 225:
6531
6532 /* Line 1464 of yacc.c  */
6533 #line 822 "type.y"
6534     { (yyval.specifier) = MkSpecifier(CONST); ;}
6535     break;
6536
6537   case 226:
6538
6539 /* Line 1464 of yacc.c  */
6540 #line 823 "type.y"
6541     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
6542     break;
6543
6544   case 227:
6545
6546 /* Line 1464 of yacc.c  */
6547 #line 824 "type.y"
6548     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
6549     break;
6550
6551   case 228:
6552
6553 /* Line 1464 of yacc.c  */
6554 #line 829 "type.y"
6555     { (yyval.specifier) = MkSpecifier(VOID); ;}
6556     break;
6557
6558   case 229:
6559
6560 /* Line 1464 of yacc.c  */
6561 #line 830 "type.y"
6562     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6563     break;
6564
6565   case 230:
6566
6567 /* Line 1464 of yacc.c  */
6568 #line 831 "type.y"
6569     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6570     break;
6571
6572   case 231:
6573
6574 /* Line 1464 of yacc.c  */
6575 #line 832 "type.y"
6576     { (yyval.specifier) = MkSpecifier(INT); ;}
6577     break;
6578
6579   case 232:
6580
6581 /* Line 1464 of yacc.c  */
6582 #line 833 "type.y"
6583     { (yyval.specifier) = MkSpecifier(UINT); ;}
6584     break;
6585
6586   case 233:
6587
6588 /* Line 1464 of yacc.c  */
6589 #line 834 "type.y"
6590     { (yyval.specifier) = MkSpecifier(INT64); ;}
6591     break;
6592
6593   case 234:
6594
6595 /* Line 1464 of yacc.c  */
6596 #line 835 "type.y"
6597     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6598     break;
6599
6600   case 235:
6601
6602 /* Line 1464 of yacc.c  */
6603 #line 836 "type.y"
6604     { (yyval.specifier) = MkSpecifier(LONG); ;}
6605     break;
6606
6607   case 236:
6608
6609 /* Line 1464 of yacc.c  */
6610 #line 837 "type.y"
6611     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6612     break;
6613
6614   case 237:
6615
6616 /* Line 1464 of yacc.c  */
6617 #line 838 "type.y"
6618     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6619     break;
6620
6621   case 238:
6622
6623 /* Line 1464 of yacc.c  */
6624 #line 839 "type.y"
6625     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6626     break;
6627
6628   case 239:
6629
6630 /* Line 1464 of yacc.c  */
6631 #line 840 "type.y"
6632     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6633     break;
6634
6635   case 240:
6636
6637 /* Line 1464 of yacc.c  */
6638 #line 841 "type.y"
6639     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6640     break;
6641
6642   case 244:
6643
6644 /* Line 1464 of yacc.c  */
6645 #line 845 "type.y"
6646     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6647     break;
6648
6649   case 245:
6650
6651 /* Line 1464 of yacc.c  */
6652 #line 846 "type.y"
6653     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6654     break;
6655
6656   case 246:
6657
6658 /* Line 1464 of yacc.c  */
6659 #line 847 "type.y"
6660     { _DeclClass(0, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6661     break;
6662
6663   case 247:
6664
6665 /* Line 1464 of yacc.c  */
6666 #line 848 "type.y"
6667     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6668     break;
6669
6670   case 248:
6671
6672 /* Line 1464 of yacc.c  */
6673 #line 849 "type.y"
6674     { (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
6675     break;
6676
6677   case 249:
6678
6679 /* Line 1464 of yacc.c  */
6680 #line 850 "type.y"
6681     { (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
6682     break;
6683
6684   case 250:
6685
6686 /* Line 1464 of yacc.c  */
6687 #line 854 "type.y"
6688     { (yyval.specifier) = MkSpecifier(VOID); ;}
6689     break;
6690
6691   case 251:
6692
6693 /* Line 1464 of yacc.c  */
6694 #line 855 "type.y"
6695     { (yyval.specifier) = MkSpecifier(CHAR); ;}
6696     break;
6697
6698   case 252:
6699
6700 /* Line 1464 of yacc.c  */
6701 #line 856 "type.y"
6702     { (yyval.specifier) = MkSpecifier(SHORT); ;}
6703     break;
6704
6705   case 253:
6706
6707 /* Line 1464 of yacc.c  */
6708 #line 857 "type.y"
6709     { (yyval.specifier) = MkSpecifier(INT); ;}
6710     break;
6711
6712   case 254:
6713
6714 /* Line 1464 of yacc.c  */
6715 #line 858 "type.y"
6716     { (yyval.specifier) = MkSpecifier(UINT); ;}
6717     break;
6718
6719   case 255:
6720
6721 /* Line 1464 of yacc.c  */
6722 #line 859 "type.y"
6723     { (yyval.specifier) = MkSpecifier(INT64); ;}
6724     break;
6725
6726   case 256:
6727
6728 /* Line 1464 of yacc.c  */
6729 #line 860 "type.y"
6730     { (yyval.specifier) = MkSpecifier(VALIST); ;}
6731     break;
6732
6733   case 257:
6734
6735 /* Line 1464 of yacc.c  */
6736 #line 861 "type.y"
6737     { (yyval.specifier) = MkSpecifier(LONG); ;}
6738     break;
6739
6740   case 258:
6741
6742 /* Line 1464 of yacc.c  */
6743 #line 862 "type.y"
6744     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
6745     break;
6746
6747   case 259:
6748
6749 /* Line 1464 of yacc.c  */
6750 #line 863 "type.y"
6751     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
6752     break;
6753
6754   case 260:
6755
6756 /* Line 1464 of yacc.c  */
6757 #line 864 "type.y"
6758     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
6759     break;
6760
6761   case 261:
6762
6763 /* Line 1464 of yacc.c  */
6764 #line 865 "type.y"
6765     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
6766     break;
6767
6768   case 262:
6769
6770 /* Line 1464 of yacc.c  */
6771 #line 866 "type.y"
6772     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
6773     break;
6774
6775   case 266:
6776
6777 /* Line 1464 of yacc.c  */
6778 #line 870 "type.y"
6779     { (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
6780     break;
6781
6782   case 267:
6783
6784 /* Line 1464 of yacc.c  */
6785 #line 871 "type.y"
6786     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
6787     break;
6788
6789   case 268:
6790
6791 /* Line 1464 of yacc.c  */
6792 #line 872 "type.y"
6793     { _DeclClass(0, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
6794     break;
6795
6796   case 269:
6797
6798 /* Line 1464 of yacc.c  */
6799 #line 873 "type.y"
6800     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
6801     break;
6802
6803   case 270:
6804
6805 /* Line 1464 of yacc.c  */
6806 #line 878 "type.y"
6807     { (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); ;}
6808     break;
6809
6810   case 271:
6811
6812 /* Line 1464 of yacc.c  */
6813 #line 879 "type.y"
6814     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
6815     break;
6816
6817   case 272:
6818
6819 /* Line 1464 of yacc.c  */
6820 #line 880 "type.y"
6821     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (4)].id).string); ;}
6822     break;
6823
6824   case 273:
6825
6826 /* Line 1464 of yacc.c  */
6827 #line 881 "type.y"
6828     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
6829     break;
6830
6831   case 274:
6832
6833 /* Line 1464 of yacc.c  */
6834 #line 883 "type.y"
6835     { (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)); ;}
6836     break;
6837
6838   case 275:
6839
6840 /* Line 1464 of yacc.c  */
6841 #line 885 "type.y"
6842     { (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); ;}
6843     break;
6844
6845   case 276:
6846
6847 /* Line 1464 of yacc.c  */
6848 #line 886 "type.y"
6849     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
6850     break;
6851
6852   case 277:
6853
6854 /* Line 1464 of yacc.c  */
6855 #line 887 "type.y"
6856     { (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); ;}
6857     break;
6858
6859   case 278:
6860
6861 /* Line 1464 of yacc.c  */
6862 #line 888 "type.y"
6863     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
6864     break;
6865
6866   case 279:
6867
6868 /* Line 1464 of yacc.c  */
6869 #line 890 "type.y"
6870     { (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)); ;}
6871     break;
6872
6873   case 280:
6874
6875 /* Line 1464 of yacc.c  */
6876 #line 894 "type.y"
6877     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
6878     break;
6879
6880   case 281:
6881
6882 /* Line 1464 of yacc.c  */
6883 #line 896 "type.y"
6884     { (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)); ;}
6885     break;
6886
6887   case 282:
6888
6889 /* Line 1464 of yacc.c  */
6890 #line 899 "type.y"
6891     { (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); ;}
6892     break;
6893
6894   case 283:
6895
6896 /* Line 1464 of yacc.c  */
6897 #line 901 "type.y"
6898     { (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)); ;}
6899     break;
6900
6901   case 284:
6902
6903 /* Line 1464 of yacc.c  */
6904 #line 905 "type.y"
6905     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
6906     break;
6907
6908   case 285:
6909
6910 /* Line 1464 of yacc.c  */
6911 #line 906 "type.y"
6912     { (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6913     break;
6914
6915   case 286:
6916
6917 /* Line 1464 of yacc.c  */
6918 #line 911 "type.y"
6919     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
6920     break;
6921
6922   case 287:
6923
6924 /* Line 1464 of yacc.c  */
6925 #line 912 "type.y"
6926     { (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
6927     break;
6928
6929   case 288:
6930
6931 /* Line 1464 of yacc.c  */
6932 #line 923 "type.y"
6933     { (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
6934     break;
6935
6936   case 291:
6937
6938 /* Line 1464 of yacc.c  */
6939 #line 930 "type.y"
6940     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
6941     break;
6942
6943   case 292:
6944
6945 /* Line 1464 of yacc.c  */
6946 #line 932 "type.y"
6947     { (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
6948     break;
6949
6950   case 293:
6951
6952 /* Line 1464 of yacc.c  */
6953 #line 934 "type.y"
6954     {
6955       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); 
6956       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
6957       {
6958          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
6959          if(spec.type == nameSpecifier)
6960             (yyval.templateArgument).name = MkIdentifier(spec.name);
6961       }
6962       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
6963       (yyval.templateArgument).loc = (yyloc);
6964    ;}
6965     break;
6966
6967   case 294:
6968
6969 /* Line 1464 of yacc.c  */
6970 #line 958 "type.y"
6971     {
6972       (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); 
6973       if((yyvsp[(1) - (3)].templateDatatype).specifiers && (yyvsp[(1) - (3)].templateDatatype).specifiers->first)
6974       {
6975          Specifier spec = (yyvsp[(1) - (3)].templateDatatype).specifiers->first;
6976          if(spec.type == nameSpecifier)
6977             (yyval.templateArgument).name = MkIdentifier(spec.name);
6978       }
6979       FreeTemplateDataType((yyvsp[(1) - (3)].templateDatatype));
6980       (yyval.templateArgument).loc = (yyloc);
6981    ;}
6982     break;
6983
6984   case 295:
6985
6986 /* Line 1464 of yacc.c  */
6987 #line 972 "type.y"
6988     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
6989     break;
6990
6991   case 296:
6992
6993 /* Line 1464 of yacc.c  */
6994 #line 973 "type.y"
6995     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
6996     break;
6997
6998   case 297:
6999
7000 /* Line 1464 of yacc.c  */
7001 #line 977 "type.y"
7002     { (yyval.specifierType) = structSpecifier; ;}
7003     break;
7004
7005   case 298:
7006
7007 /* Line 1464 of yacc.c  */
7008 #line 978 "type.y"
7009     { (yyval.specifierType) = unionSpecifier; ;}
7010     break;
7011
7012   case 299:
7013
7014 /* Line 1464 of yacc.c  */
7015 #line 982 "type.y"
7016     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
7017     break;
7018
7019   case 300:
7020
7021 /* Line 1464 of yacc.c  */
7022 #line 983 "type.y"
7023     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
7024     break;
7025
7026   case 301:
7027
7028 /* Line 1464 of yacc.c  */
7029 #line 987 "type.y"
7030     { (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
7031     break;
7032
7033   case 302:
7034
7035 /* Line 1464 of yacc.c  */
7036 #line 991 "type.y"
7037     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
7038     break;
7039
7040   case 303:
7041
7042 /* Line 1464 of yacc.c  */
7043 #line 992 "type.y"
7044     { ((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); ;}
7045     break;
7046
7047   case 304:
7048
7049 /* Line 1464 of yacc.c  */
7050 #line 997 "type.y"
7051     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7052     break;
7053
7054   case 305:
7055
7056 /* Line 1464 of yacc.c  */
7057 #line 999 "type.y"
7058     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7059     break;
7060
7061   case 306:
7062
7063 /* Line 1464 of yacc.c  */
7064 #line 1001 "type.y"
7065     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7066     break;
7067
7068   case 307:
7069
7070 /* Line 1464 of yacc.c  */
7071 #line 1003 "type.y"
7072     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7073     break;
7074
7075   case 308:
7076
7077 /* Line 1464 of yacc.c  */
7078 #line 1005 "type.y"
7079     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7080     break;
7081
7082   case 309:
7083
7084 /* Line 1464 of yacc.c  */
7085 #line 1008 "type.y"
7086     { (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); ;}
7087     break;
7088
7089   case 310:
7090
7091 /* Line 1464 of yacc.c  */
7092 #line 1010 "type.y"
7093     { (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); ;}
7094     break;
7095
7096   case 311:
7097
7098 /* Line 1464 of yacc.c  */
7099 #line 1012 "type.y"
7100     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7101     break;
7102
7103   case 312:
7104
7105 /* Line 1464 of yacc.c  */
7106 #line 1014 "type.y"
7107     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7108     break;
7109
7110   case 313:
7111
7112 /* Line 1464 of yacc.c  */
7113 #line 1016 "type.y"
7114     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
7115     break;
7116
7117   case 314:
7118
7119 /* Line 1464 of yacc.c  */
7120 #line 1019 "type.y"
7121     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7122     break;
7123
7124   case 315:
7125
7126 /* Line 1464 of yacc.c  */
7127 #line 1021 "type.y"
7128     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
7129     break;
7130
7131   case 316:
7132
7133 /* Line 1464 of yacc.c  */
7134 #line 1023 "type.y"
7135     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7136     break;
7137
7138   case 317:
7139
7140 /* Line 1464 of yacc.c  */
7141 #line 1025 "type.y"
7142     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
7143     break;
7144
7145   case 318:
7146
7147 /* Line 1464 of yacc.c  */
7148 #line 1027 "type.y"
7149     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
7150     break;
7151
7152   case 319:
7153
7154 /* Line 1464 of yacc.c  */
7155 #line 1030 "type.y"
7156     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7157     break;
7158
7159   case 320:
7160
7161 /* Line 1464 of yacc.c  */
7162 #line 1032 "type.y"
7163     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
7164     break;
7165
7166   case 321:
7167
7168 /* Line 1464 of yacc.c  */
7169 #line 1034 "type.y"
7170     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
7171     break;
7172
7173   case 322:
7174
7175 /* Line 1464 of yacc.c  */
7176 #line 1036 "type.y"
7177     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
7178     break;
7179
7180   case 323:
7181
7182 /* Line 1464 of yacc.c  */
7183 #line 1038 "type.y"
7184     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
7185     break;
7186
7187   case 324:
7188
7189 /* Line 1464 of yacc.c  */
7190 #line 1042 "type.y"
7191     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7192     break;
7193
7194   case 325:
7195
7196 /* Line 1464 of yacc.c  */
7197 #line 1043 "type.y"
7198     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
7199     break;
7200
7201   case 326:
7202
7203 /* Line 1464 of yacc.c  */
7204 #line 1044 "type.y"
7205     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7206     break;
7207
7208   case 327:
7209
7210 /* Line 1464 of yacc.c  */
7211 #line 1045 "type.y"
7212     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
7213     break;
7214
7215   case 328:
7216
7217 /* Line 1464 of yacc.c  */
7218 #line 1046 "type.y"
7219     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
7220     break;
7221
7222   case 329:
7223
7224 /* Line 1464 of yacc.c  */
7225 #line 1047 "type.y"
7226     { (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); ;}
7227     break;
7228
7229   case 330:
7230
7231 /* Line 1464 of yacc.c  */
7232 #line 1048 "type.y"
7233     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; ;}
7234     break;
7235
7236   case 331:
7237
7238 /* Line 1464 of yacc.c  */
7239 #line 1049 "type.y"
7240     { (yyval.classDef) = null; ;}
7241     break;
7242
7243   case 332:
7244
7245 /* Line 1464 of yacc.c  */
7246 #line 1054 "type.y"
7247     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
7248     break;
7249
7250   case 333:
7251
7252 /* Line 1464 of yacc.c  */
7253 #line 1056 "type.y"
7254     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
7255     break;
7256
7257   case 334:
7258
7259 /* Line 1464 of yacc.c  */
7260 #line 1061 "type.y"
7261     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
7262     break;
7263
7264   case 335:
7265
7266 /* Line 1464 of yacc.c  */
7267 #line 1063 "type.y"
7268     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
7269     break;
7270
7271   case 336:
7272
7273 /* Line 1464 of yacc.c  */
7274 #line 1065 "type.y"
7275     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
7276     break;
7277
7278   case 337:
7279
7280 /* Line 1464 of yacc.c  */
7281 #line 1067 "type.y"
7282     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
7283     break;
7284
7285   case 338:
7286
7287 /* Line 1464 of yacc.c  */
7288 #line 1069 "type.y"
7289     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
7290     break;
7291
7292   case 339:
7293
7294 /* Line 1464 of yacc.c  */
7295 #line 1073 "type.y"
7296     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
7297     break;
7298
7299   case 340:
7300
7301 /* Line 1464 of yacc.c  */
7302 #line 1074 "type.y"
7303     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
7304     break;
7305
7306   case 341:
7307
7308 /* Line 1464 of yacc.c  */
7309 #line 1079 "type.y"
7310     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
7311     break;
7312
7313   case 342:
7314
7315 /* Line 1464 of yacc.c  */
7316 #line 1080 "type.y"
7317     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); ;}
7318     break;
7319
7320   case 343:
7321
7322 /* Line 1464 of yacc.c  */
7323 #line 1081 "type.y"
7324     { (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); ;}
7325     break;
7326
7327   case 344:
7328
7329 /* Line 1464 of yacc.c  */
7330 #line 1082 "type.y"
7331     { (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)); ;}
7332     break;
7333
7334   case 345:
7335
7336 /* Line 1464 of yacc.c  */
7337 #line 1083 "type.y"
7338     { (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)); ;}
7339     break;
7340
7341   case 346:
7342
7343 /* Line 1464 of yacc.c  */
7344 #line 1088 "type.y"
7345     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
7346     break;
7347
7348   case 347:
7349
7350 /* Line 1464 of yacc.c  */
7351 #line 1090 "type.y"
7352     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
7353     break;
7354
7355   case 348:
7356
7357 /* Line 1464 of yacc.c  */
7358 #line 1095 "type.y"
7359     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
7360     break;
7361
7362   case 349:
7363
7364 /* Line 1464 of yacc.c  */
7365 #line 1097 "type.y"
7366     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
7367     break;
7368
7369   case 350:
7370
7371 /* Line 1464 of yacc.c  */
7372 #line 1103 "type.y"
7373     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7374     break;
7375
7376   case 351:
7377
7378 /* Line 1464 of yacc.c  */
7379 #line 1105 "type.y"
7380     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
7381     break;
7382
7383   case 352:
7384
7385 /* Line 1464 of yacc.c  */
7386 #line 1107 "type.y"
7387     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
7388     break;
7389
7390   case 353:
7391
7392 /* Line 1464 of yacc.c  */
7393 #line 1109 "type.y"
7394     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
7395     break;
7396
7397   case 354:
7398
7399 /* Line 1464 of yacc.c  */
7400 #line 1111 "type.y"
7401     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7402     break;
7403
7404   case 355:
7405
7406 /* Line 1464 of yacc.c  */
7407 #line 1113 "type.y"
7408     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7409     break;
7410
7411   case 356:
7412
7413 /* Line 1464 of yacc.c  */
7414 #line 1115 "type.y"
7415     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7416     break;
7417
7418   case 357:
7419
7420 /* Line 1464 of yacc.c  */
7421 #line 1117 "type.y"
7422     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7423     break;
7424
7425   case 358:
7426
7427 /* Line 1464 of yacc.c  */
7428 #line 1119 "type.y"
7429     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7430     break;
7431
7432   case 359:
7433
7434 /* Line 1464 of yacc.c  */
7435 #line 1121 "type.y"
7436     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7437     break;
7438
7439   case 360:
7440
7441 /* Line 1464 of yacc.c  */
7442 #line 1123 "type.y"
7443     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7444     break;
7445
7446   case 361:
7447
7448 /* Line 1464 of yacc.c  */
7449 #line 1128 "type.y"
7450     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7451     break;
7452
7453   case 362:
7454
7455 /* Line 1464 of yacc.c  */
7456 #line 1130 "type.y"
7457     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
7458     break;
7459
7460   case 363:
7461
7462 /* Line 1464 of yacc.c  */
7463 #line 1132 "type.y"
7464     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
7465     break;
7466
7467   case 364:
7468
7469 /* Line 1464 of yacc.c  */
7470 #line 1134 "type.y"
7471     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
7472     break;
7473
7474   case 365:
7475
7476 /* Line 1464 of yacc.c  */
7477 #line 1136 "type.y"
7478     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
7479     break;
7480
7481   case 366:
7482
7483 /* Line 1464 of yacc.c  */
7484 #line 1140 "type.y"
7485     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7486     break;
7487
7488   case 368:
7489
7490 /* Line 1464 of yacc.c  */
7491 #line 1142 "type.y"
7492     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7493     break;
7494
7495   case 369:
7496
7497 /* Line 1464 of yacc.c  */
7498 #line 1143 "type.y"
7499     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7500     break;
7501
7502   case 370:
7503
7504 /* Line 1464 of yacc.c  */
7505 #line 1144 "type.y"
7506     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7507     break;
7508
7509   case 371:
7510
7511 /* Line 1464 of yacc.c  */
7512 #line 1145 "type.y"
7513     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7514     break;
7515
7516   case 372:
7517
7518 /* Line 1464 of yacc.c  */
7519 #line 1149 "type.y"
7520     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
7521     break;
7522
7523   case 374:
7524
7525 /* Line 1464 of yacc.c  */
7526 #line 1151 "type.y"
7527     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7528     break;
7529
7530   case 375:
7531
7532 /* Line 1464 of yacc.c  */
7533 #line 1152 "type.y"
7534     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
7535     break;
7536
7537   case 376:
7538
7539 /* Line 1464 of yacc.c  */
7540 #line 1153 "type.y"
7541     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7542     break;
7543
7544   case 377:
7545
7546 /* Line 1464 of yacc.c  */
7547 #line 1154 "type.y"
7548     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7549     break;
7550
7551   case 379:
7552
7553 /* Line 1464 of yacc.c  */
7554 #line 1202 "type.y"
7555     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7556     break;
7557
7558   case 380:
7559
7560 /* Line 1464 of yacc.c  */
7561 #line 1204 "type.y"
7562     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7563     break;
7564
7565   case 381:
7566
7567 /* Line 1464 of yacc.c  */
7568 #line 1206 "type.y"
7569     { (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
7570     break;
7571
7572   case 382:
7573
7574 /* Line 1464 of yacc.c  */
7575 #line 1211 "type.y"
7576     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
7577     break;
7578
7579   case 383:
7580
7581 /* Line 1464 of yacc.c  */
7582 #line 1213 "type.y"
7583     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
7584     break;
7585
7586   case 384:
7587
7588 /* Line 1464 of yacc.c  */
7589 #line 1215 "type.y"
7590     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
7591     break;
7592
7593   case 385:
7594
7595 /* Line 1464 of yacc.c  */
7596 #line 1217 "type.y"
7597     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
7598     break;
7599
7600   case 386:
7601
7602 /* Line 1464 of yacc.c  */
7603 #line 1219 "type.y"
7604     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
7605     break;
7606
7607   case 388:
7608
7609 /* Line 1464 of yacc.c  */
7610 #line 1225 "type.y"
7611     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7612     break;
7613
7614   case 389:
7615
7616 /* Line 1464 of yacc.c  */
7617 #line 1228 "type.y"
7618     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7619     break;
7620
7621   case 390:
7622
7623 /* Line 1464 of yacc.c  */
7624 #line 1230 "type.y"
7625     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7626     break;
7627
7628   case 391:
7629
7630 /* Line 1464 of yacc.c  */
7631 #line 1232 "type.y"
7632     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7633     break;
7634
7635   case 393:
7636
7637 /* Line 1464 of yacc.c  */
7638 #line 1242 "type.y"
7639     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7640     break;
7641
7642   case 394:
7643
7644 /* Line 1464 of yacc.c  */
7645 #line 1244 "type.y"
7646     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
7647     break;
7648
7649   case 395:
7650
7651 /* Line 1464 of yacc.c  */
7652 #line 1246 "type.y"
7653     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
7654     break;
7655
7656   case 398:
7657
7658 /* Line 1464 of yacc.c  */
7659 #line 1253 "type.y"
7660     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7661     break;
7662
7663   case 399:
7664
7665 /* Line 1464 of yacc.c  */
7666 #line 1255 "type.y"
7667     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7668     break;
7669
7670   case 401:
7671
7672 /* Line 1464 of yacc.c  */
7673 #line 1260 "type.y"
7674     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
7675     break;
7676
7677   case 402:
7678
7679 /* Line 1464 of yacc.c  */
7680 #line 1261 "type.y"
7681     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
7682     break;
7683
7684   case 403:
7685
7686 /* Line 1464 of yacc.c  */
7687 #line 1262 "type.y"
7688     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
7689     break;
7690
7691   case 404:
7692
7693 /* Line 1464 of yacc.c  */
7694 #line 1263 "type.y"
7695     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
7696     break;
7697
7698   case 405:
7699
7700 /* Line 1464 of yacc.c  */
7701 #line 1267 "type.y"
7702     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
7703     break;
7704
7705   case 406:
7706
7707 /* Line 1464 of yacc.c  */
7708 #line 1268 "type.y"
7709     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
7710     break;
7711
7712   case 407:
7713
7714 /* Line 1464 of yacc.c  */
7715 #line 1272 "type.y"
7716     { (yyval.pointer) = MkPointer(null, null); ;}
7717     break;
7718
7719   case 408:
7720
7721 /* Line 1464 of yacc.c  */
7722 #line 1273 "type.y"
7723     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
7724     break;
7725
7726   case 409:
7727
7728 /* Line 1464 of yacc.c  */
7729 #line 1274 "type.y"
7730     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
7731     break;
7732
7733   case 410:
7734
7735 /* Line 1464 of yacc.c  */
7736 #line 1275 "type.y"
7737     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
7738     break;
7739
7740   case 412:
7741
7742 /* Line 1464 of yacc.c  */
7743 #line 1280 "type.y"
7744     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
7745     break;
7746
7747   case 413:
7748
7749 /* Line 1464 of yacc.c  */
7750 #line 1284 "type.y"
7751     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
7752     break;
7753
7754   case 414:
7755
7756 /* Line 1464 of yacc.c  */
7757 #line 1285 "type.y"
7758     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
7759     break;
7760
7761   case 415:
7762
7763 /* Line 1464 of yacc.c  */
7764 #line 1289 "type.y"
7765     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7766     break;
7767
7768   case 416:
7769
7770 /* Line 1464 of yacc.c  */
7771 #line 1290 "type.y"
7772     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7773     break;
7774
7775   case 417:
7776
7777 /* Line 1464 of yacc.c  */
7778 #line 1291 "type.y"
7779     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
7780     break;
7781
7782   case 418:
7783
7784 /* Line 1464 of yacc.c  */
7785 #line 1292 "type.y"
7786     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
7787     break;
7788
7789   case 419:
7790
7791 /* Line 1464 of yacc.c  */
7792 #line 1293 "type.y"
7793     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7794     break;
7795
7796   case 420:
7797
7798 /* Line 1464 of yacc.c  */
7799 #line 1305 "type.y"
7800     { (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
7801     break;
7802
7803   case 421:
7804
7805 /* Line 1464 of yacc.c  */
7806 #line 1329 "type.y"
7807     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
7808     break;
7809
7810   case 422:
7811
7812 /* Line 1464 of yacc.c  */
7813 #line 1330 "type.y"
7814     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
7815     break;
7816
7817   case 423:
7818
7819 /* Line 1464 of yacc.c  */
7820 #line 1334 "type.y"
7821     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7822     break;
7823
7824   case 424:
7825
7826 /* Line 1464 of yacc.c  */
7827 #line 1335 "type.y"
7828     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7829     break;
7830
7831   case 425:
7832
7833 /* Line 1464 of yacc.c  */
7834 #line 1339 "type.y"
7835     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
7836     break;
7837
7838   case 426:
7839
7840 /* Line 1464 of yacc.c  */
7841 #line 1340 "type.y"
7842     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
7843     break;
7844
7845   case 427:
7846
7847 /* Line 1464 of yacc.c  */
7848 #line 1345 "type.y"
7849     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7850     break;
7851
7852   case 428:
7853
7854 /* Line 1464 of yacc.c  */
7855 #line 1347 "type.y"
7856     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
7857     break;
7858
7859   case 429:
7860
7861 /* Line 1464 of yacc.c  */
7862 #line 1349 "type.y"
7863     { 
7864          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); 
7865          (yyval.initializer).loc = (yyloc); 
7866
7867          {
7868             Expression exp = MkExpDummy();
7869             Initializer init = MkInitializerAssignment(exp);
7870             init.loc = (yylsp[(3) - (4)]);
7871             exp.loc = (yylsp[(3) - (4)]);
7872             ListAdd((yyvsp[(2) - (4)].list), init); 
7873          }
7874       ;}
7875     break;
7876
7877   case 430:
7878
7879 /* Line 1464 of yacc.c  */
7880 #line 1365 "type.y"
7881     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7882     break;
7883
7884   case 431:
7885
7886 /* Line 1464 of yacc.c  */
7887 #line 1367 "type.y"
7888     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
7889     break;
7890
7891   case 432:
7892
7893 /* Line 1464 of yacc.c  */
7894 #line 1389 "type.y"
7895     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
7896     break;
7897
7898   case 433:
7899
7900 /* Line 1464 of yacc.c  */
7901 #line 1391 "type.y"
7902     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
7903     break;
7904
7905   case 440:
7906
7907 /* Line 1464 of yacc.c  */
7908 #line 1405 "type.y"
7909     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7910     break;
7911
7912   case 441:
7913
7914 /* Line 1464 of yacc.c  */
7915 #line 1407 "type.y"
7916     { (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; ;}
7917     break;
7918
7919   case 442:
7920
7921 /* Line 1464 of yacc.c  */
7922 #line 1409 "type.y"
7923     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
7924     break;
7925
7926   case 443:
7927
7928 /* Line 1464 of yacc.c  */
7929 #line 1413 "type.y"
7930     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
7931     break;
7932
7933   case 444:
7934
7935 /* Line 1464 of yacc.c  */
7936 #line 1414 "type.y"
7937     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
7938     break;
7939
7940   case 445:
7941
7942 /* Line 1464 of yacc.c  */
7943 #line 1418 "type.y"
7944     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
7945     break;
7946
7947   case 446:
7948
7949 /* Line 1464 of yacc.c  */
7950 #line 1419 "type.y"
7951     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
7952     break;
7953
7954   case 447:
7955
7956 /* Line 1464 of yacc.c  */
7957 #line 1422 "type.y"
7958     { 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); ;}
7959     break;
7960
7961   case 448:
7962
7963 /* Line 1464 of yacc.c  */
7964 #line 1426 "type.y"
7965     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
7966     break;
7967
7968   case 449:
7969
7970 /* Line 1464 of yacc.c  */
7971 #line 1427 "type.y"
7972     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
7973     break;
7974
7975   case 450:
7976
7977 /* Line 1464 of yacc.c  */
7978 #line 1428 "type.y"
7979     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
7980     break;
7981
7982   case 451:
7983
7984 /* Line 1464 of yacc.c  */
7985 #line 1432 "type.y"
7986     { (yyval.context) = PushContext(); ;}
7987     break;
7988
7989   case 452:
7990
7991 /* Line 1464 of yacc.c  */
7992 #line 1437 "type.y"
7993     { 
7994       (yyval.stmt) = MkCompoundStmt(null, null); 
7995       (yyval.stmt).compound.context = PushContext(); 
7996       PopContext((yyval.stmt).compound.context);
7997       (yyval.stmt).loc = (yyloc); 
7998    ;}
7999     break;
8000
8001   case 453:
8002
8003 /* Line 1464 of yacc.c  */
8004 #line 1445 "type.y"
8005     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
8006     break;
8007
8008   case 454:
8009
8010 /* Line 1464 of yacc.c  */
8011 #line 1449 "type.y"
8012     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
8013     break;
8014
8015   case 455:
8016
8017 /* Line 1464 of yacc.c  */
8018 #line 1450 "type.y"
8019     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
8020     break;
8021
8022   case 456:
8023
8024 /* Line 1464 of yacc.c  */
8025 #line 1454 "type.y"
8026     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
8027     break;
8028
8029   case 457:
8030
8031 /* Line 1464 of yacc.c  */
8032 #line 1455 "type.y"
8033     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8034     break;
8035
8036   case 458:
8037
8038 /* Line 1464 of yacc.c  */
8039 #line 1456 "type.y"
8040     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8041     break;
8042
8043   case 459:
8044
8045 /* Line 1464 of yacc.c  */
8046 #line 1460 "type.y"
8047     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8048     break;
8049
8050   case 460:
8051
8052 /* Line 1464 of yacc.c  */
8053 #line 1461 "type.y"
8054     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
8055     break;
8056
8057   case 461:
8058
8059 /* Line 1464 of yacc.c  */
8060 #line 1462 "type.y"
8061     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8062     break;
8063
8064   case 462:
8065
8066 /* Line 1464 of yacc.c  */
8067 #line 1463 "type.y"
8068     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8069     break;
8070
8071   case 463:
8072
8073 /* Line 1464 of yacc.c  */
8074 #line 1465 "type.y"
8075     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8076     break;
8077
8078   case 464:
8079
8080 /* Line 1464 of yacc.c  */
8081 #line 1466 "type.y"
8082     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8083     break;
8084
8085   case 465:
8086
8087 /* Line 1464 of yacc.c  */
8088 #line 1467 "type.y"
8089     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
8090     break;
8091
8092   case 466:
8093
8094 /* Line 1464 of yacc.c  */
8095 #line 1471 "type.y"
8096     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
8097     break;
8098
8099   case 467:
8100
8101 /* Line 1464 of yacc.c  */
8102 #line 1472 "type.y"
8103     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
8104     break;
8105
8106   case 468:
8107
8108 /* Line 1464 of yacc.c  */
8109 #line 1473 "type.y"
8110     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
8111     break;
8112
8113   case 469:
8114
8115 /* Line 1464 of yacc.c  */
8116 #line 1474 "type.y"
8117     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
8118     break;
8119
8120   case 470:
8121
8122 /* Line 1464 of yacc.c  */
8123 #line 1475 "type.y"
8124     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
8125     break;
8126
8127   case 471:
8128
8129 /* Line 1464 of yacc.c  */
8130 #line 1479 "type.y"
8131     { (yyval.string) = CopyString(yytext); ;}
8132     break;
8133
8134   case 472:
8135
8136 /* Line 1464 of yacc.c  */
8137 #line 1484 "type.y"
8138     { (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;;}
8139     break;
8140
8141   case 473:
8142
8143 /* Line 1464 of yacc.c  */
8144 #line 1486 "type.y"
8145     { (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;;}
8146     break;
8147
8148   case 474:
8149
8150 /* Line 1464 of yacc.c  */
8151 #line 1491 "type.y"
8152     { (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;;}
8153     break;
8154
8155   case 475:
8156
8157 /* Line 1464 of yacc.c  */
8158 #line 1493 "type.y"
8159     { (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;;}
8160     break;
8161
8162   case 476:
8163
8164 /* Line 1464 of yacc.c  */
8165 #line 1518 "type.y"
8166     { (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; ;}
8167     break;
8168
8169   case 477:
8170
8171 /* Line 1464 of yacc.c  */
8172 #line 1520 "type.y"
8173     { (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;;}
8174     break;
8175
8176   case 478:
8177
8178 /* Line 1464 of yacc.c  */
8179 #line 1522 "type.y"
8180     { 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)); ;}
8181     break;
8182
8183   case 479:
8184
8185 /* Line 1464 of yacc.c  */
8186 #line 1524 "type.y"
8187     { 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)); ;}
8188     break;
8189
8190   case 480:
8191
8192 /* Line 1464 of yacc.c  */
8193 #line 1529 "type.y"
8194     { (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; ;}
8195     break;
8196
8197   case 481:
8198
8199 /* Line 1464 of yacc.c  */
8200 #line 1531 "type.y"
8201     { (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;;}
8202     break;
8203
8204   case 482:
8205
8206 /* Line 1464 of yacc.c  */
8207 #line 1535 "type.y"
8208     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8209     break;
8210
8211   case 483:
8212
8213 /* Line 1464 of yacc.c  */
8214 #line 1537 "type.y"
8215     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8216     break;
8217
8218   case 484:
8219
8220 /* Line 1464 of yacc.c  */
8221 #line 1539 "type.y"
8222     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
8223     break;
8224
8225   case 485:
8226
8227 /* Line 1464 of yacc.c  */
8228 #line 1541 "type.y"
8229     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8230     break;
8231
8232   case 486:
8233
8234 /* Line 1464 of yacc.c  */
8235 #line 1543 "type.y"
8236     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8237     break;
8238
8239   case 487:
8240
8241 /* Line 1464 of yacc.c  */
8242 #line 1549 "type.y"
8243     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
8244     break;
8245
8246   case 488:
8247
8248 /* Line 1464 of yacc.c  */
8249 #line 1551 "type.y"
8250     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
8251     break;
8252
8253   case 489:
8254
8255 /* Line 1464 of yacc.c  */
8256 #line 1556 "type.y"
8257     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
8258     break;
8259
8260   case 490:
8261
8262 /* Line 1464 of yacc.c  */
8263 #line 1560 "type.y"
8264     { (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;;}
8265     break;
8266
8267   case 491:
8268
8269 /* Line 1464 of yacc.c  */
8270 #line 1561 "type.y"
8271     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
8272     break;
8273
8274   case 492:
8275
8276 /* Line 1464 of yacc.c  */
8277 #line 1566 "type.y"
8278     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
8279     break;
8280
8281   case 493:
8282
8283 /* Line 1464 of yacc.c  */
8284 #line 1568 "type.y"
8285     { ((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); ;}
8286     break;
8287
8288   case 494:
8289
8290 /* Line 1464 of yacc.c  */
8291 #line 1573 "type.y"
8292     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8293     break;
8294
8295   case 495:
8296
8297 /* Line 1464 of yacc.c  */
8298 #line 1577 "type.y"
8299     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
8300     break;
8301
8302   case 496:
8303
8304 /* Line 1464 of yacc.c  */
8305 #line 1578 "type.y"
8306     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8307     break;
8308
8309   case 497:
8310
8311 /* Line 1464 of yacc.c  */
8312 #line 1579 "type.y"
8313     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8314     break;
8315
8316   case 498:
8317
8318 /* Line 1464 of yacc.c  */
8319 #line 1580 "type.y"
8320     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]);(yyval.list) = (yyvsp[(1) - (2)].list);  ;}
8321     break;
8322
8323   case 499:
8324
8325 /* Line 1464 of yacc.c  */
8326 #line 1581 "type.y"
8327     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
8328     break;
8329
8330   case 500:
8331
8332 /* Line 1464 of yacc.c  */
8333 #line 1582 "type.y"
8334     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
8335     break;
8336
8337   case 502:
8338
8339 /* Line 1464 of yacc.c  */
8340 #line 1587 "type.y"
8341     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
8342     break;
8343
8344   case 503:
8345
8346 /* Line 1464 of yacc.c  */
8347 #line 1588 "type.y"
8348     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
8349     break;
8350
8351   case 504:
8352
8353 /* Line 1464 of yacc.c  */
8354 #line 1592 "type.y"
8355     { parsedType = (yyvsp[(1) - (1)].typeName); ;}
8356     break;
8357
8358   case 505:
8359
8360 /* Line 1464 of yacc.c  */
8361 #line 1593 "type.y"
8362     { parsedType = (yyvsp[(1) - (3)].typeName); parsedType.bitCount = (yyvsp[(3) - (3)].exp); ;}
8363     break;
8364
8365
8366
8367 /* Line 1464 of yacc.c  */
8368 #line 8369 "type.ec"
8369       default: break;
8370     }
8371   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
8372
8373   YYPOPSTACK (yylen);
8374   yylen = 0;
8375   YY_STACK_PRINT (yyss, yyssp);
8376
8377   *++yyvsp = yyval;
8378   *++yylsp = yyloc;
8379
8380   /* Now `shift' the result of the reduction.  Determine what state
8381      that goes to, based on the state we popped back to and the rule
8382      number reduced by.  */
8383
8384   yyn = yyr1[yyn];
8385
8386   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
8387   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8388     yystate = yytable[yystate];
8389   else
8390     yystate = yydefgoto[yyn - YYNTOKENS];
8391
8392   goto yynewstate;
8393
8394
8395 /*------------------------------------.
8396 | yyerrlab -- here on detecting error |
8397 `------------------------------------*/
8398 yyerrlab:
8399   /* If not already recovering from an error, report this error.  */
8400   if (!yyerrstatus)
8401     {
8402       ++yynerrs;
8403 #if ! YYERROR_VERBOSE
8404       yyerror (YY_("syntax error"));
8405 #else
8406       {
8407         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
8408         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
8409           {
8410             YYSIZE_T yyalloc = 2 * yysize;
8411             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
8412               yyalloc = YYSTACK_ALLOC_MAXIMUM;
8413             if (yymsg != yymsgbuf)
8414               YYSTACK_FREE (yymsg);
8415             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
8416             if (yymsg)
8417               yymsg_alloc = yyalloc;
8418             else
8419               {
8420                 yymsg = yymsgbuf;
8421                 yymsg_alloc = sizeof yymsgbuf;
8422               }
8423           }
8424
8425         if (0 < yysize && yysize <= yymsg_alloc)
8426           {
8427             (void) yysyntax_error (yymsg, yystate, yychar);
8428             yyerror (yymsg);
8429           }
8430         else
8431           {
8432             yyerror (YY_("syntax error"));
8433             if (yysize != 0)
8434               goto yyexhaustedlab;
8435           }
8436       }
8437 #endif
8438     }
8439
8440   yyerror_range[0] = yylloc;
8441
8442   if (yyerrstatus == 3)
8443     {
8444       /* If just tried and failed to reuse lookahead token after an
8445          error, discard it.  */
8446
8447       if (yychar <= YYEOF)
8448         {
8449           /* Return failure if at end of input.  */
8450           if (yychar == YYEOF)
8451             YYABORT;
8452         }
8453       else
8454         {
8455           yydestruct ("Error: discarding",
8456                       yytoken, &yylval, &yylloc);
8457           yychar = YYEMPTY;
8458         }
8459     }
8460
8461   /* Else will try to reuse lookahead token after shifting the error
8462      token.  */
8463   goto yyerrlab1;
8464
8465
8466 /*---------------------------------------------------.
8467 | yyerrorlab -- error raised explicitly by YYERROR.  |
8468 `---------------------------------------------------*/
8469 yyerrorlab:
8470
8471   /* Pacify compilers like GCC when the user code never invokes
8472      YYERROR and the label yyerrorlab therefore never appears in user
8473      code.  */
8474   if (/*CONSTCOND*/ 0)
8475      goto yyerrorlab;
8476
8477   yyerror_range[0] = yylsp[1-yylen];
8478   /* Do not reclaim the symbols of the rule which action triggered
8479      this YYERROR.  */
8480   YYPOPSTACK (yylen);
8481   yylen = 0;
8482   YY_STACK_PRINT (yyss, yyssp);
8483   yystate = *yyssp;
8484   goto yyerrlab1;
8485
8486
8487 /*-------------------------------------------------------------.
8488 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
8489 `-------------------------------------------------------------*/
8490 yyerrlab1:
8491   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
8492
8493   for (;;)
8494     {
8495       yyn = yypact[yystate];
8496       if (yyn != YYPACT_NINF)
8497         {
8498           yyn += YYTERROR;
8499           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8500             {
8501               yyn = yytable[yyn];
8502               if (0 < yyn)
8503                 break;
8504             }
8505         }
8506
8507       /* Pop the current state because it cannot handle the error token.  */
8508       if (yyssp == yyss)
8509         YYABORT;
8510
8511       yyerror_range[0] = *yylsp;
8512       yydestruct ("Error: popping",
8513                   yystos[yystate], yyvsp, yylsp);
8514       YYPOPSTACK (1);
8515       yystate = *yyssp;
8516       YY_STACK_PRINT (yyss, yyssp);
8517     }
8518
8519   *++yyvsp = yylval;
8520
8521   yyerror_range[1] = yylloc;
8522   /* Using YYLLOC is tempting, but would change the location of
8523      the lookahead.  YYLOC is available though.  */
8524   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
8525   *++yylsp = yyloc;
8526
8527   /* Shift the error token.  */
8528   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8529
8530   yystate = yyn;
8531   goto yynewstate;
8532
8533
8534 /*-------------------------------------.
8535 | yyacceptlab -- YYACCEPT comes here.  |
8536 `-------------------------------------*/
8537 yyacceptlab:
8538   yyresult = 0;
8539   goto yyreturn;
8540
8541 /*-----------------------------------.
8542 | yyabortlab -- YYABORT comes here.  |
8543 `-----------------------------------*/
8544 yyabortlab:
8545   yyresult = 1;
8546   goto yyreturn;
8547
8548 #if !defined(yyoverflow) || YYERROR_VERBOSE
8549 /*-------------------------------------------------.
8550 | yyexhaustedlab -- memory exhaustion comes here.  |
8551 `-------------------------------------------------*/
8552 yyexhaustedlab:
8553   yyerror (YY_("memory exhausted"));
8554   yyresult = 2;
8555   /* Fall through.  */
8556 #endif
8557
8558 yyreturn:
8559   if (yychar != YYEMPTY)
8560      yydestruct ("Cleanup: discarding lookahead",
8561                  yytoken, &yylval, &yylloc);
8562   /* Do not reclaim the symbols of the rule which action triggered
8563      this YYABORT or YYACCEPT.  */
8564   YYPOPSTACK (yylen);
8565   YY_STACK_PRINT (yyss, yyssp);
8566   while (yyssp != yyss)
8567     {
8568       yydestruct ("Cleanup: popping",
8569                   yystos[*yyssp], yyvsp, yylsp);
8570       YYPOPSTACK (1);
8571     }
8572 #ifndef yyoverflow
8573   if (yyss != yyssa)
8574     YYSTACK_FREE (yyss);
8575 #endif
8576 #if YYERROR_VERBOSE
8577   if (yymsg != yymsgbuf)
8578     YYSTACK_FREE (yymsg);
8579 #endif
8580   /* Make sure YYID is used.  */
8581   return YYID (yyresult);
8582 }
8583
8584
8585
8586 /* Line 1684 of yacc.c  */
8587 #line 1596 "type.y"
8588
8589