marked all generated bootstrap C source files with the updated 'code generated from...
[sdk] / compiler / libec / src / expression.ec
1 /* Code generated from Bison source file: expression.y */
2 /* A Bison parser, made by GNU Bison 2.4.2.  */
3
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5    
6       Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
7    Foundation, Inc.
8    
9    This program is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13    
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18    
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21
22 /* As a special exception, you may create a larger work that contains
23    part or all of the Bison parser skeleton and distribute that work
24    under terms of your choice, so long as that work isn't itself a
25    parser generator using the skeleton or a modified version thereof
26    as a parser skeleton.  Alternatively, if you modify or redistribute
27    the parser skeleton itself, you may (at your option) remove this
28    special exception, which will cause the skeleton and the resulting
29    Bison output files to be licensed under the GNU General Public
30    License without this special exception.
31    
32    This special exception was added by the Free Software Foundation in
33    version 2.2 of Bison.  */
34
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36    simplifying the original so-called "semantic" parser.  */
37
38 /* All symbols defined below should begin with yy or YY, to avoid
39    infringing on user name space.  This should be done even for local
40    variables, as they might otherwise be expanded by user macros.
41    There are some unavoidable exceptions within include files to
42    define necessary library symbols; they are noted "INFRINGES ON
43    USER NAME SPACE" below.  */
44
45 /* Identify Bison output.  */
46 #define YYBISON 1
47
48 /* Bison version.  */
49 #define YYBISON_VERSION "2.4.2"
50
51 /* Skeleton name.  */
52 #define YYSKELETON_NAME "yacc.c"
53
54 /* Pure parsers.  */
55 #define YYPURE 0
56
57 /* Push parsers.  */
58 #define YYPUSH 0
59
60 /* Pull parsers.  */
61 #define YYPULL 1
62
63 /* Using locations.  */
64 #define YYLSP_NEEDED 1
65
66
67
68 /* Copy the first part of user declarations.  */
69
70 /* Line 189 of yacc.c  */
71 #line 1 "expression.y"
72
73
74 import "ecdefs"
75
76 #define YYLTYPE Location
77 #include "grammar.h"
78
79 #ifndef YYLLOC_DEFAULT
80 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
81   (Current).start = (Rhs)[1].start;      \
82   (Current).end = (Rhs)[N].end;
83 #endif
84
85 Expression parsedExpression;
86
87 #define yyparse expression_yyparse
88 #define yylval  expression_yylval
89 #define yychar  expression_yychar
90 #define yydebug expression_yydebug
91 #define yynerrs expression_yynerrs
92 #define yylloc expression_yylloc
93
94 // #define PRECOMPILER
95 extern File fileInput;
96 extern char * yytext;
97
98 int yylex();
99 int yyerror();
100
101 #define uint _uint
102 default:
103
104
105
106 /* Line 189 of yacc.c  */
107 #line 107 "expression.ec"
108
109 /* Enabling traces.  */
110 #ifndef YYDEBUG
111 # define YYDEBUG 1
112 #endif
113
114 /* Enabling verbose error messages.  */
115 #ifdef YYERROR_VERBOSE
116 # undef YYERROR_VERBOSE
117 # define YYERROR_VERBOSE 1
118 #else
119 # define YYERROR_VERBOSE 0
120 #endif
121
122 /* Enabling the token table.  */
123 #ifndef YYTOKEN_TABLE
124 # define YYTOKEN_TABLE 0
125 #endif
126
127
128 /* Tokens.  */
129 #ifndef YYTOKENTYPE
130 # define YYTOKENTYPE
131    /* Put the tokens into the symbol table, so that GDB and other debuggers
132       know about them.  */
133    enum yytokentype {
134      IDENTIFIER = 258,
135      CONSTANT = 259,
136      STRING_LITERAL = 260,
137      SIZEOF = 261,
138      PTR_OP = 262,
139      INC_OP = 263,
140      DEC_OP = 264,
141      LEFT_OP = 265,
142      RIGHT_OP = 266,
143      LE_OP = 267,
144      GE_OP = 268,
145      EQ_OP = 269,
146      NE_OP = 270,
147      AND_OP = 271,
148      OR_OP = 272,
149      MUL_ASSIGN = 273,
150      DIV_ASSIGN = 274,
151      MOD_ASSIGN = 275,
152      ADD_ASSIGN = 276,
153      SUB_ASSIGN = 277,
154      LEFT_ASSIGN = 278,
155      RIGHT_ASSIGN = 279,
156      AND_ASSIGN = 280,
157      XOR_ASSIGN = 281,
158      OR_ASSIGN = 282,
159      TYPE_NAME = 283,
160      TYPEDEF = 284,
161      EXTERN = 285,
162      STATIC = 286,
163      AUTO = 287,
164      REGISTER = 288,
165      CHAR = 289,
166      SHORT = 290,
167      INT = 291,
168      UINT = 292,
169      INT64 = 293,
170      LONG = 294,
171      SIGNED = 295,
172      UNSIGNED = 296,
173      FLOAT = 297,
174      DOUBLE = 298,
175      CONST = 299,
176      VOLATILE = 300,
177      VOID = 301,
178      VALIST = 302,
179      STRUCT = 303,
180      UNION = 304,
181      ENUM = 305,
182      ELLIPSIS = 306,
183      CASE = 307,
184      DEFAULT = 308,
185      IF = 309,
186      SWITCH = 310,
187      WHILE = 311,
188      DO = 312,
189      FOR = 313,
190      GOTO = 314,
191      CONTINUE = 315,
192      BREAK = 316,
193      RETURN = 317,
194      IFX = 318,
195      ELSE = 319,
196      CLASS = 320,
197      THISCLASS = 321,
198      CLASS_NAME = 322,
199      PROPERTY = 323,
200      SETPROP = 324,
201      GETPROP = 325,
202      NEWOP = 326,
203      RENEW = 327,
204      DELETE = 328,
205      EXT_DECL = 329,
206      EXT_STORAGE = 330,
207      IMPORT = 331,
208      DEFINE = 332,
209      VIRTUAL = 333,
210      ATTRIB = 334,
211      PUBLIC = 335,
212      PRIVATE = 336,
213      TYPED_OBJECT = 337,
214      ANY_OBJECT = 338,
215      _INCREF = 339,
216      EXTENSION = 340,
217      ASM = 341,
218      TYPEOF = 342,
219      WATCH = 343,
220      STOPWATCHING = 344,
221      FIREWATCHERS = 345,
222      WATCHABLE = 346,
223      CLASS_DESIGNER = 347,
224      CLASS_NO_EXPANSION = 348,
225      CLASS_FIXED = 349,
226      ISPROPSET = 350,
227      CLASS_DEFAULT_PROPERTY = 351,
228      PROPERTY_CATEGORY = 352,
229      CLASS_DATA = 353,
230      CLASS_PROPERTY = 354,
231      SUBCLASS = 355,
232      NAMESPACE = 356,
233      NEW0OP = 357,
234      RENEW0 = 358,
235      VAARG = 359,
236      DBTABLE = 360,
237      DBFIELD = 361,
238      DBINDEX = 362,
239      DATABASE_OPEN = 363,
240      ALIGNOF = 364,
241      ATTRIB_DEP = 365,
242      __ATTRIB = 366
243    };
244 #endif
245
246
247
248 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
249 typedef union YYSTYPE
250 {
251
252 /* Line 214 of yacc.c  */
253 #line 37 "expression.y"
254
255    int i;
256    AccessMode declMode;
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
287
288
289 /* Line 214 of yacc.c  */
290 #line 290 "expression.ec"
291 } YYSTYPE;
292 # define YYSTYPE_IS_TRIVIAL 1
293 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
294 # define YYSTYPE_IS_DECLARED 1
295 #endif
296
297 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
298 typedef struct YYLTYPE
299 {
300   int first_line;
301   int first_column;
302   int last_line;
303   int last_column;
304 } YYLTYPE;
305 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
306 # define YYLTYPE_IS_DECLARED 1
307 # define YYLTYPE_IS_TRIVIAL 1
308 #endif
309
310
311 /* Copy the second part of user declarations.  */
312
313
314 /* Line 264 of yacc.c  */
315 #line 315 "expression.ec"
316
317 #ifdef short
318 # undef short
319 #endif
320
321 #ifdef YYTYPE_UINT8
322 typedef YYTYPE_UINT8 yytype_uint8;
323 #else
324 typedef unsigned char yytype_uint8;
325 #endif
326
327 #ifdef YYTYPE_INT8
328 typedef YYTYPE_INT8 yytype_int8;
329 #elif (defined __STDC__ || defined __C99__FUNC__ \
330      || defined __cplusplus || defined _MSC_VER)
331 typedef signed char yytype_int8;
332 #else
333 typedef short int yytype_int8;
334 #endif
335
336 #ifdef YYTYPE_UINT16
337 typedef YYTYPE_UINT16 yytype_uint16;
338 #else
339 typedef unsigned short int yytype_uint16;
340 #endif
341
342 #ifdef YYTYPE_INT16
343 typedef YYTYPE_INT16 yytype_int16;
344 #else
345 typedef short int yytype_int16;
346 #endif
347
348 #ifndef YYSIZE_T
349 # ifdef __SIZE_TYPE__
350 #  define YYSIZE_T __SIZE_TYPE__
351 # elif defined size_t
352 #  define YYSIZE_T size_t
353 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
354      || defined __cplusplus || defined _MSC_VER)
355 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
356 #  define YYSIZE_T size_t
357 # else
358 #  define YYSIZE_T unsigned int
359 # endif
360 #endif
361
362 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
363
364 #ifndef YY_
365 # if defined YYENABLE_NLS && YYENABLE_NLS
366 #  if ENABLE_NLS
367 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
368 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
369 #  endif
370 # endif
371 # ifndef YY_
372 #  define YY_(msgid) msgid
373 # endif
374 #endif
375
376 /* Suppress unused-variable warnings by "using" E.  */
377 #if ! defined lint || defined __GNUC__
378 # define YYUSE(e) ((void) (e))
379 #else
380 # define YYUSE(e) /* empty */
381 #endif
382
383 /* Identity function, used to suppress warnings about constant conditions.  */
384 #ifndef lint
385 # define YYID(n) (n)
386 #else
387 #if (defined __STDC__ || defined __C99__FUNC__ \
388      || defined __cplusplus || defined _MSC_VER)
389 static int
390 YYID (int yyi)
391 #else
392 static int
393 YYID (yyi)
394     int yyi;
395 #endif
396 {
397   return yyi;
398 }
399 #endif
400
401 #if ! defined yyoverflow || YYERROR_VERBOSE
402
403 /* The parser invokes alloca or malloc; define the necessary symbols.  */
404
405 # ifdef YYSTACK_USE_ALLOCA
406 #  if YYSTACK_USE_ALLOCA
407 #   ifdef __GNUC__
408 #    define YYSTACK_ALLOC __builtin_alloca
409 #   elif defined __BUILTIN_VA_ARG_INCR
410 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
411 #   elif defined _AIX
412 #    define YYSTACK_ALLOC __alloca
413 #   elif defined _MSC_VER
414 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
415 #    define alloca _alloca
416 #   else
417 #    define YYSTACK_ALLOC alloca
418 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
419      || defined __cplusplus || defined _MSC_VER)
420 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
421 #     ifndef _STDLIB_H
422 #      define _STDLIB_H 1
423 #     endif
424 #    endif
425 #   endif
426 #  endif
427 # endif
428
429 # ifdef YYSTACK_ALLOC
430    /* Pacify GCC's `empty if-body' warning.  */
431 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
432 #  ifndef YYSTACK_ALLOC_MAXIMUM
433     /* The OS might guarantee only one guard page at the bottom of the stack,
434        and a page size can be as small as 4096 bytes.  So we cannot safely
435        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
436        to allow for a few compiler-allocated temporary stack slots.  */
437 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
438 #  endif
439 # else
440 #  define YYSTACK_ALLOC YYMALLOC
441 #  define YYSTACK_FREE YYFREE
442 #  ifndef YYSTACK_ALLOC_MAXIMUM
443 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
444 #  endif
445 #  if (defined __cplusplus && ! defined _STDLIB_H \
446        && ! ((defined YYMALLOC || defined malloc) \
447              && (defined YYFREE || defined free)))
448 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
449 #   ifndef _STDLIB_H
450 #    define _STDLIB_H 1
451 #   endif
452 #  endif
453 #  ifndef YYMALLOC
454 #   define YYMALLOC malloc
455 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
456      || defined __cplusplus || defined _MSC_VER)
457 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
458 #   endif
459 #  endif
460 #  ifndef YYFREE
461 #   define YYFREE free
462 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
463      || defined __cplusplus || defined _MSC_VER)
464 void free (void *); /* INFRINGES ON USER NAME SPACE */
465 #   endif
466 #  endif
467 # endif
468 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
469
470
471 #if (! defined yyoverflow \
472      && (! defined __cplusplus \
473          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
474              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
475
476 /* A type that is properly aligned for any stack member.  */
477 union yyalloc
478 {
479   yytype_int16 yyss_alloc;
480   YYSTYPE yyvs_alloc;
481   YYLTYPE yyls_alloc;
482 };
483
484 /* The size of the maximum gap between one aligned stack and the next.  */
485 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
486
487 /* The size of an array large to enough to hold all stacks, each with
488    N elements.  */
489 # define YYSTACK_BYTES(N) \
490      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
491       + 2 * YYSTACK_GAP_MAXIMUM)
492
493 /* Copy COUNT objects from FROM to TO.  The source and destination do
494    not overlap.  */
495 # ifndef YYCOPY
496 #  if defined __GNUC__ && 1 < __GNUC__
497 #   define YYCOPY(To, From, Count) \
498       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
499 #  else
500 #   define YYCOPY(To, From, Count)              \
501       do                                        \
502         {                                       \
503           YYSIZE_T yyi;                         \
504           for (yyi = 0; yyi < (Count); yyi++)   \
505             (To)[yyi] = (From)[yyi];            \
506         }                                       \
507       while (YYID (0))
508 #  endif
509 # endif
510
511 /* Relocate STACK from its old location to the new one.  The
512    local variables YYSIZE and YYSTACKSIZE give the old and new number of
513    elements in the stack, and YYPTR gives the new location of the
514    stack.  Advance YYPTR to a properly aligned location for the next
515    stack.  */
516 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
517     do                                                                  \
518       {                                                                 \
519         YYSIZE_T yynewbytes;                                            \
520         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
521         Stack = &yyptr->Stack_alloc;                                    \
522         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
523         yyptr += yynewbytes / sizeof (*yyptr);                          \
524       }                                                                 \
525     while (YYID (0))
526
527 #endif
528
529 /* YYFINAL -- State number of the termination state.  */
530 #define YYFINAL  150
531 /* YYLAST -- Last index in YYTABLE.  */
532 #define YYLAST   7325
533
534 /* YYNTOKENS -- Number of terminals.  */
535 #define YYNTOKENS  137
536 /* YYNNTS -- Number of nonterminals.  */
537 #define YYNNTS  109
538 /* YYNRULES -- Number of rules.  */
539 #define YYNRULES  430
540 /* YYNRULES -- Number of states.  */
541 #define YYNSTATES  758
542
543 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
544 #define YYUNDEFTOK  2
545 #define YYMAXUTOK   366
546
547 #define YYTRANSLATE(YYX)                                                \
548   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
549
550 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
551 static const yytype_uint8 yytranslate[] =
552 {
553        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
556        2,     2,     2,   124,     2,     2,   114,   126,   119,     2,
557      112,   113,   120,   121,   118,   122,   115,   125,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
559      127,   133,   128,   131,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
562        2,   116,     2,   117,   129,     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,     2,     2,   135,   130,   136,   123,     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,     2,     2,     2,     2,     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,     1,     2,     3,     4,
579        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
580       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
581       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
582       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
583       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
584       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
585       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
586       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
587       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
588       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
589      105,   106,   107,   108,   109,   110,   111
590 };
591
592 #if YYDEBUG
593 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
594    YYRHS.  */
595 static const yytype_uint16 yyprhs[] =
596 {
597        0,     0,     3,     5,     7,    11,    13,    15,    17,    19,
598       22,    27,    30,    37,    43,    50,    56,    64,    71,    79,
599       86,    88,    90,    92,    97,   101,   106,   110,   114,   117,
600      120,   122,   127,   131,   136,   140,   144,   147,   150,   152,
601      154,   158,   162,   165,   168,   171,   176,   179,   184,   189,
602      192,   197,   199,   201,   203,   205,   207,   209,   211,   213,
603      215,   217,   219,   221,   226,   228,   232,   236,   240,   242,
604      246,   250,   252,   256,   260,   262,   266,   270,   274,   278,
605      280,   284,   288,   290,   294,   296,   300,   302,   306,   308,
606      312,   314,   318,   320,   326,   328,   332,   336,   338,   340,
607      342,   344,   346,   348,   350,   352,   354,   356,   358,   360,
608      364,   366,   369,   373,   376,   382,   384,   387,   389,   392,
609      394,   397,   399,   402,   404,   407,   409,   412,   414,   417,
610      419,   422,   424,   427,   429,   432,   434,   437,   439,   442,
611      444,   447,   449,   452,   454,   457,   459,   462,   464,   467,
612      469,   472,   474,   478,   480,   484,   486,   488,   490,   492,
613      494,   496,   498,   500,   502,   504,   506,   508,   510,   512,
614      514,   516,   521,   523,   526,   530,   537,   543,   545,   547,
615      549,   551,   553,   555,   557,   559,   561,   563,   565,   567,
616      569,   571,   573,   575,   577,   579,   581,   583,   585,   590,
617      592,   594,   596,   598,   600,   602,   604,   606,   608,   610,
618      612,   614,   616,   618,   620,   622,   627,   629,   635,   640,
619      645,   649,   655,   662,   668,   674,   679,   686,   689,   692,
620      696,   700,   702,   704,   706,   709,   713,   715,   719,   729,
621      739,   747,   755,   761,   772,   783,   792,   801,   808,   817,
622      826,   833,   840,   845,   855,   865,   873,   881,   887,   891,
623      894,   897,   900,   902,   905,   907,   909,   911,   915,   917,
624      920,   923,   927,   933,   936,   939,   944,   950,   958,   966,
625      972,   974,   978,   980,   984,   988,   991,   995,   999,  1003,
626     1008,  1013,  1016,  1020,  1024,  1029,  1033,  1036,  1040,  1044,
627     1049,  1051,  1053,  1056,  1059,  1062,  1066,  1068,  1070,  1073,
628     1076,  1079,  1083,  1085,  1088,  1092,  1094,  1098,  1103,  1107,
629     1112,  1114,  1117,  1120,  1124,  1128,  1130,  1132,  1135,  1138,
630     1141,  1145,  1149,  1152,  1154,  1157,  1159,  1162,  1165,  1169,
631     1171,  1175,  1177,  1181,  1184,  1187,  1189,  1191,  1195,  1197,
632     1200,  1202,  1206,  1211,  1213,  1215,  1217,  1221,  1223,  1225,
633     1227,  1229,  1231,  1233,  1237,  1242,  1246,  1248,  1251,  1253,
634     1256,  1259,  1261,  1263,  1266,  1268,  1271,  1275,  1277,  1280,
635     1286,  1294,  1300,  1306,  1314,  1321,  1329,  1334,  1340,  1345,
636     1349,  1352,  1355,  1358,  1362,  1364,  1370,  1375,  1380,  1384,
637     1389,  1393,  1397,  1400,  1403,  1405,  1409,  1414,  1418,  1421,
638     1424,  1427,  1430,  1433,  1436,  1439,  1442,  1446,  1448,  1450,
639     1454,  1457,  1459,  1461,  1464,  1467,  1469,  1472,  1474,  1476,
640     1479
641 };
642
643 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
644 static const yytype_int16 yyrhs[] =
645 {
646      245,     0,    -1,     3,    -1,   140,    -1,   112,   163,   113,
647       -1,   138,    -1,   231,    -1,     4,    -1,   229,    -1,   114,
648      229,    -1,   114,   229,   115,   229,    -1,   112,   113,    -1,
649       71,   167,   201,   116,   164,   117,    -1,    71,   167,   116,
650      164,   117,    -1,   102,   167,   201,   116,   164,   117,    -1,
651      102,   167,   116,   164,   117,    -1,    72,   164,   169,   201,
652      116,   164,   117,    -1,    72,   164,   169,   116,   164,   117,
653       -1,   103,   164,   169,   201,   116,   164,   117,    -1,   103,
654      164,   169,   116,   164,   117,    -1,     1,    -1,   232,    -1,
655      139,    -1,   142,   116,   163,   117,    -1,   142,   112,   113,
656       -1,   142,   112,   144,   113,    -1,   142,   115,   138,    -1,
657      142,     7,   138,    -1,   142,     8,    -1,   142,     9,    -1,
658      140,    -1,   143,   116,   163,   117,    -1,   143,   112,   113,
659       -1,   143,   112,   144,   113,    -1,   143,   115,   138,    -1,
660      143,     7,   138,    -1,   143,     8,    -1,   143,     9,    -1,
661      161,    -1,   141,    -1,   144,   118,   161,    -1,   144,   118,
662      141,    -1,     8,   146,    -1,     9,   146,    -1,   148,   149,
663       -1,     6,   112,   146,   113,    -1,     6,   147,    -1,     6,
664      112,   214,   113,    -1,   109,   112,   146,   113,    -1,   109,
665      147,    -1,   109,   112,   214,   113,    -1,   145,    -1,   142,
666       -1,   145,    -1,   143,    -1,   119,    -1,   120,    -1,   121,
667       -1,   122,    -1,   123,    -1,   124,    -1,    73,    -1,   146,
668       -1,   112,   214,   113,   149,    -1,   149,    -1,   150,   120,
669      149,    -1,   150,   125,   149,    -1,   150,   126,   149,    -1,
670      150,    -1,   151,   121,   150,    -1,   151,   122,   150,    -1,
671      151,    -1,   152,    10,   151,    -1,   152,    11,   151,    -1,
672      152,    -1,   153,   127,   152,    -1,   153,   128,   152,    -1,
673      153,    12,   152,    -1,   153,    13,   152,    -1,   153,    -1,
674      154,    14,   153,    -1,   154,    15,   153,    -1,   154,    -1,
675      155,   119,   154,    -1,   155,    -1,   156,   129,   155,    -1,
676      156,    -1,   157,   130,   156,    -1,   157,    -1,   158,    16,
677      157,    -1,   158,    -1,   159,    17,   158,    -1,   159,    -1,
678      159,   131,   163,   132,   160,    -1,   160,    -1,   146,   162,
679      161,    -1,   146,   162,   141,    -1,   133,    -1,    18,    -1,
680       19,    -1,    20,    -1,    21,    -1,    22,    -1,    23,    -1,
681       24,    -1,    25,    -1,    26,    -1,    27,    -1,   161,    -1,
682      163,   118,   161,    -1,   160,    -1,   167,   134,    -1,   167,
683      170,   134,    -1,   230,   134,    -1,    77,   138,   133,   164,
684      134,    -1,   179,    -1,   166,   179,    -1,   182,    -1,   166,
685      182,    -1,   195,    -1,   166,   195,    -1,   184,    -1,   166,
686      184,    -1,   172,    -1,   167,   172,    -1,   179,    -1,   167,
687      179,    -1,   182,    -1,   167,   182,    -1,   195,    -1,   167,
688      195,    -1,   184,    -1,   167,   184,    -1,   172,    -1,   168,
689      172,    -1,   179,    -1,   168,   179,    -1,   182,    -1,   168,
690      182,    -1,   180,    -1,   168,   180,    -1,   172,    -1,   169,
691      172,    -1,   179,    -1,   169,   179,    -1,   183,    -1,   169,
692      183,    -1,   184,    -1,   169,   184,    -1,   195,    -1,   169,
693      195,    -1,   171,    -1,   170,   118,   171,    -1,   202,    -1,
694      202,   133,   215,    -1,    29,    -1,    30,    -1,    31,    -1,
695       32,    -1,    33,    -1,    74,    -1,   178,    -1,    79,    -1,
696      110,    -1,   111,    -1,     3,    -1,    28,    -1,    75,    -1,
697       74,    -1,    44,    -1,   175,    -1,   175,   112,   163,   113,
698       -1,   176,    -1,   177,   176,    -1,   177,   118,   176,    -1,
699      174,   112,   112,   177,   113,   113,    -1,   174,   112,   112,
700      113,   113,    -1,    44,    -1,    45,    -1,    75,    -1,   181,
701       -1,    28,    -1,    46,    -1,    34,    -1,    35,    -1,    36,
702       -1,    37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,
703       -1,    43,    -1,    40,    -1,    41,    -1,    85,    -1,   185,
704       -1,   194,    -1,   180,    -1,   100,   112,   180,   113,    -1,
705       66,    -1,    46,    -1,    34,    -1,    35,    -1,    36,    -1,
706       37,    -1,    38,    -1,    47,    -1,    39,    -1,    42,    -1,
707       43,    -1,    40,    -1,    41,    -1,   185,    -1,   194,    -1,
708      181,    -1,   100,   112,   180,   113,    -1,    66,    -1,   186,
709      138,   135,   187,   136,    -1,   186,   135,   187,   136,    -1,
710      186,   138,   135,   136,    -1,   186,   135,   136,    -1,   186,
711      181,   135,   187,   136,    -1,   186,   173,   138,   135,   187,
712      136,    -1,   186,   173,   135,   187,   136,    -1,   186,   173,
713      138,   135,   136,    -1,   186,   173,   135,   136,    -1,   186,
714      173,   181,   135,   187,   136,    -1,   186,   138,    -1,   186,
715      181,    -1,   186,   173,   138,    -1,   186,   173,   181,    -1,
716       48,    -1,    49,    -1,   191,    -1,   187,   191,    -1,   142,
717      133,   216,    -1,   188,    -1,   189,   118,   188,    -1,    68,
718      168,   138,   135,    69,   224,    70,   224,   136,    -1,    68,
719      168,   138,   135,    70,   224,    69,   224,   136,    -1,    68,
720      168,   138,   135,    69,   224,   136,    -1,    68,   168,   138,
721      135,    70,   224,   136,    -1,    68,   168,   138,   135,   136,
722       -1,    68,   168,   200,   138,   135,    69,   224,    70,   224,
723      136,    -1,    68,   168,   200,   138,   135,    70,   224,    69,
724      224,   136,    -1,    68,   168,   200,   138,   135,    69,   224,
725      136,    -1,    68,   168,   200,   138,   135,    70,   224,   136,
726       -1,    68,   168,   200,   138,   135,   136,    -1,    68,   168,
727      135,    69,   224,    70,   224,   136,    -1,    68,   168,   135,
728       70,   224,    69,   224,   136,    -1,    68,   168,   135,    69,
729      224,   136,    -1,    68,   168,   135,    70,   224,   136,    -1,
730       68,   168,   135,   136,    -1,    68,   168,   200,   135,    69,
731      224,    70,   224,   136,    -1,    68,   168,   200,   135,    70,
732      224,    69,   224,   136,    -1,    68,   168,   200,   135,    69,
733      224,   136,    -1,    68,   168,   200,   135,    70,   224,   136,
734       -1,    68,   168,   200,   135,   136,    -1,   167,   192,   134,
735       -1,   167,   134,    -1,   231,   134,    -1,   230,   134,    -1,
736      237,    -1,   189,   134,    -1,   190,    -1,   134,    -1,   193,
737       -1,   192,   118,   193,    -1,   202,    -1,   202,   178,    -1,
738      132,   164,    -1,   202,   132,   164,    -1,   202,   132,   164,
739      132,   164,    -1,    50,   138,    -1,    50,   181,    -1,    50,
740      135,   196,   136,    -1,    50,   138,   135,   196,   136,    -1,
741       50,   138,   135,   196,   134,   187,   136,    -1,    50,   181,
742      135,   196,   134,   187,   136,    -1,    50,   181,   135,   196,
743      136,    -1,   197,    -1,   196,   118,   197,    -1,   138,    -1,
744      138,   133,   164,    -1,   112,   200,   113,    -1,   116,   117,
745       -1,   116,   164,   117,    -1,   116,   180,   117,    -1,   198,
746      116,   117,    -1,   198,   116,   164,   117,    -1,   198,   116,
747      180,   117,    -1,   112,   113,    -1,   112,   210,   113,    -1,
748      198,   112,   113,    -1,   198,   112,   210,   113,    -1,   112,
749      201,   113,    -1,   112,   113,    -1,   112,   210,   113,    -1,
750      199,   112,   113,    -1,   199,   112,   210,   113,    -1,   209,
751       -1,   198,    -1,   209,   198,    -1,   173,   209,    -1,   173,
752      198,    -1,   173,   209,   198,    -1,   209,    -1,   199,    -1,
753      209,   199,    -1,   173,   209,    -1,   173,   199,    -1,   173,
754      209,   199,    -1,   205,    -1,   209,   205,    -1,   173,   209,
755      205,    -1,   138,    -1,   112,   202,   113,    -1,   203,   116,
756      164,   117,    -1,   203,   116,   117,    -1,   203,   116,   180,
757      117,    -1,   207,    -1,   209,   207,    -1,   173,   207,    -1,
758      173,   209,   207,    -1,   209,   173,   207,    -1,   207,    -1,
759      203,    -1,   173,   207,    -1,   173,   203,    -1,   203,   112,
760       -1,   206,   210,   113,    -1,   206,   213,   113,    -1,   206,
761      113,    -1,   179,    -1,   208,   179,    -1,   120,    -1,   120,
762      208,    -1,   120,   209,    -1,   120,   208,   209,    -1,   211,
763       -1,   211,   118,    51,    -1,   212,    -1,   211,   118,   212,
764       -1,   167,   202,    -1,   167,   200,    -1,   167,    -1,   138,
765       -1,   213,   118,   138,    -1,   166,    -1,   166,   200,    -1,
766      161,    -1,   135,   217,   136,    -1,   135,   217,   118,   136,
767       -1,   160,    -1,   141,    -1,   215,    -1,   217,   118,   215,
768       -1,   219,    -1,   224,    -1,   225,    -1,   226,    -1,   227,
769       -1,   228,    -1,   138,   132,   218,    -1,    52,   164,   132,
770      218,    -1,    53,   132,   218,    -1,   165,    -1,   220,   165,
771       -1,   218,    -1,   221,   218,    -1,   221,   165,    -1,   221,
772       -1,   220,    -1,   220,   221,    -1,   135,    -1,   135,   136,
773       -1,   223,   222,   136,    -1,   134,    -1,   163,   134,    -1,
774       54,   112,   163,   113,   218,    -1,    54,   112,   163,   113,
775      218,    64,   218,    -1,    55,   112,   163,   113,   218,    -1,
776       56,   112,   163,   113,   218,    -1,    57,   218,    56,   112,
777      163,   113,   134,    -1,    58,   112,   225,   225,   113,   218,
778       -1,    58,   112,   225,   225,   163,   113,   218,    -1,    56,
779      112,   113,   218,    -1,    58,   112,   225,   113,   218,    -1,
780       58,   112,   113,   218,    -1,    59,   138,   134,    -1,    60,
781      134,    -1,    61,   134,    -1,    62,   134,    -1,    62,   163,
782      134,    -1,     5,    -1,   167,   138,   135,   244,   136,    -1,
783      167,   138,   135,   136,    -1,   180,   135,   244,   136,    -1,
784      180,   135,   136,    -1,   138,   135,   244,   136,    -1,   138,
785      135,   136,    -1,   135,   244,   136,    -1,   135,   136,    -1,
786      167,   204,    -1,   204,    -1,   167,   112,   113,    -1,   123,
787      167,   112,   113,    -1,    78,   167,   204,    -1,    78,   204,
788       -1,   233,   224,    -1,   236,   224,    -1,   236,   134,    -1,
789      234,   224,    -1,   235,   224,    -1,   167,   204,    -1,   238,
790      224,    -1,   142,   133,   216,    -1,   216,    -1,   240,    -1,
791      241,   118,   240,    -1,   241,   134,    -1,   242,    -1,   239,
792       -1,   243,   242,    -1,   243,   239,    -1,   134,    -1,   243,
793      134,    -1,   243,    -1,   241,    -1,   243,   241,    -1,   161,
794       -1
795 };
796
797 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
798 static const yytype_uint16 yyrline[] =
799 {
800        0,   210,   210,   215,   216,   221,   223,   225,   227,   229,
801      230,   231,   234,   235,   236,   237,   238,   239,   240,   241,
802      242,   246,   250,   251,   252,   253,   254,   255,   256,   257,
803      262,   263,   264,   265,   266,   267,   268,   269,   273,   274,
804      275,   276,   280,   281,   282,   283,   284,   285,   286,   287,
805      288,   292,   293,   297,   298,   302,   303,   304,   305,   306,
806      307,   308,   312,   313,   317,   318,   319,   320,   324,   325,
807      326,   330,   331,   332,   336,   337,   338,   339,   340,   344,
808      345,   346,   350,   351,   355,   356,   360,   361,   365,   366,
809      370,   371,   375,   376,   380,   381,   383,   388,   389,   390,
810      391,   392,   393,   394,   395,   396,   397,   398,   402,   403,
811      407,   411,   412,   413,   414,   418,   419,   420,   421,   422,
812      423,   424,   425,   429,   430,   431,   432,   433,   434,   435,
813      436,   437,   438,   443,   444,   445,   446,   447,   448,   449,
814      450,   454,   455,   456,   457,   458,   459,   460,   461,   462,
815      463,   467,   468,   472,   473,   477,   478,   479,   480,   481,
816      485,   486,   490,   491,   492,   497,   498,   499,   500,   501,
817      505,   506,   510,   511,   512,   516,   517,   521,   522,   523,
818      527,   552,   556,   557,   558,   559,   560,   561,   562,   563,
819      564,   565,   566,   567,   568,   569,   570,   571,   572,   573,
820      577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
821      587,   588,   589,   590,   591,   592,   593,   598,   599,   600,
822      601,   602,   605,   606,   607,   608,   609,   614,   615,   618,
823      620,   625,   626,   630,   631,   635,   639,   640,   644,   646,
824      648,   650,   652,   655,   657,   659,   661,   663,   666,   668,
825      670,   672,   674,   677,   679,   681,   683,   685,   690,   691,
826      692,   693,   694,   695,   696,   697,   701,   703,   708,   710,
827      712,   714,   716,   721,   722,   726,   728,   729,   730,   731,
828      735,   737,   742,   744,   750,   752,   754,   756,   758,   760,
829      762,   764,   766,   768,   770,   775,   777,   779,   781,   783,
830      788,   789,   790,   791,   792,   793,   797,   798,   799,   800,
831      801,   802,   848,   849,   851,   857,   859,   861,   863,   865,
832      870,   871,   874,   876,   878,   884,   885,   886,   888,   893,
833      897,   899,   901,   906,   907,   911,   912,   913,   914,   918,
834      919,   923,   924,   928,   929,   930,   934,   935,   939,   940,
835      949,   951,   953,   969,   970,   991,   993,   998,   999,  1000,
836     1001,  1002,  1003,  1007,  1009,  1011,  1016,  1017,  1021,  1022,
837     1025,  1029,  1030,  1031,  1035,  1039,  1047,  1052,  1053,  1057,
838     1058,  1059,  1063,  1064,  1065,  1066,  1068,  1069,  1070,  1074,
839     1075,  1076,  1077,  1078,  1082,  1086,  1088,  1093,  1095,  1097,
840     1099,  1104,  1106,  1111,  1113,  1118,  1123,  1128,  1130,  1135,
841     1137,  1139,  1141,  1143,  1149,  1154,  1159,  1160,  1164,  1166,
842     1171,  1176,  1177,  1178,  1179,  1180,  1181,  1185,  1186,  1187,
843     1191
844 };
845 #endif
846
847 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
848 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
849    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
850 static const char *const yytname[] =
851 {
852   "$end", "error", "$undefined", "IDENTIFIER", "CONSTANT",
853   "STRING_LITERAL", "SIZEOF", "PTR_OP", "INC_OP", "DEC_OP", "LEFT_OP",
854   "RIGHT_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
855   "MUL_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "ADD_ASSIGN", "SUB_ASSIGN",
856   "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
857   "TYPE_NAME", "TYPEDEF", "EXTERN", "STATIC", "AUTO", "REGISTER", "CHAR",
858   "SHORT", "INT", "UINT", "INT64", "LONG", "SIGNED", "UNSIGNED", "FLOAT",
859   "DOUBLE", "CONST", "VOLATILE", "VOID", "VALIST", "STRUCT", "UNION",
860   "ENUM", "ELLIPSIS", "CASE", "DEFAULT", "IF", "SWITCH", "WHILE", "DO",
861   "FOR", "GOTO", "CONTINUE", "BREAK", "RETURN", "IFX", "ELSE", "CLASS",
862   "THISCLASS", "CLASS_NAME", "PROPERTY", "SETPROP", "GETPROP", "NEWOP",
863   "RENEW", "DELETE", "EXT_DECL", "EXT_STORAGE", "IMPORT", "DEFINE",
864   "VIRTUAL", "ATTRIB", "PUBLIC", "PRIVATE", "TYPED_OBJECT", "ANY_OBJECT",
865   "_INCREF", "EXTENSION", "ASM", "TYPEOF", "WATCH", "STOPWATCHING",
866   "FIREWATCHERS", "WATCHABLE", "CLASS_DESIGNER", "CLASS_NO_EXPANSION",
867   "CLASS_FIXED", "ISPROPSET", "CLASS_DEFAULT_PROPERTY",
868   "PROPERTY_CATEGORY", "CLASS_DATA", "CLASS_PROPERTY", "SUBCLASS",
869   "NAMESPACE", "NEW0OP", "RENEW0", "VAARG", "DBTABLE", "DBFIELD",
870   "DBINDEX", "DATABASE_OPEN", "ALIGNOF", "ATTRIB_DEP", "__ATTRIB", "'('",
871   "')'", "'$'", "'.'", "'['", "']'", "','", "'&'", "'*'", "'+'", "'-'",
872   "'~'", "'!'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "':'",
873   "'='", "';'", "'{'", "'}'", "$accept", "identifier",
874   "primary_expression", "simple_primary_expression",
875   "anon_instantiation_expression", "postfix_expression",
876   "simple_postfix_expression", "argument_expression_list",
877   "common_unary_expression", "unary_expression", "simple_unary_expression",
878   "unary_operator", "cast_expression", "multiplicative_expression",
879   "additive_expression", "shift_expression", "relational_expression",
880   "equality_expression", "and_expression", "exclusive_or_expression",
881   "inclusive_or_expression", "logical_and_expression",
882   "logical_or_expression", "conditional_expression",
883   "assignment_expression", "assignment_operator", "expression",
884   "constant_expression", "declaration", "specifier_qualifier_list",
885   "declaration_specifiers", "property_specifiers", "renew_specifiers",
886   "init_declarator_list", "init_declarator", "storage_class_specifier",
887   "ext_decl", "_attrib", "attribute_word", "attribute", "attribs_list",
888   "attrib", "type_qualifier", "type", "strict_type", "type_specifier",
889   "strict_type_specifier", "struct_or_union_specifier_compound",
890   "struct_or_union_specifier_nocompound", "struct_or_union",
891   "struct_declaration_list", "default_property", "default_property_list",
892   "property", "struct_declaration", "struct_declarator_list",
893   "struct_declarator", "enum_specifier_nocompound",
894   "enum_specifier_compound", "enumerator_list", "enumerator",
895   "direct_abstract_declarator", "direct_abstract_declarator_noarray",
896   "abstract_declarator", "abstract_declarator_noarray", "declarator",
897   "direct_declarator_nofunction", "declarator_function",
898   "direct_declarator", "direct_declarator_function_start",
899   "direct_declarator_function", "type_qualifier_list", "pointer",
900   "parameter_type_list", "parameter_list", "parameter_declaration",
901   "identifier_list", "type_name", "initializer", "initializer_condition",
902   "initializer_list", "statement", "labeled_statement", "declaration_list",
903   "statement_list", "compound_inside", "compound_start",
904   "compound_statement", "expression_statement", "selection_statement",
905   "iteration_statement", "jump_statement", "string_literal",
906   "instantiation_named", "instantiation_unnamed", "instantiation_anon",
907   "class_function_definition_start",
908   "constructor_function_definition_start",
909   "destructor_function_definition_start",
910   "virtual_class_function_definition_start", "class_function_definition",
911   "instance_class_function_definition_start",
912   "instance_class_function_definition", "data_member_initialization",
913   "data_member_initialization_list",
914   "data_member_initialization_list_coloned",
915   "members_initialization_list_coloned", "members_initialization_list",
916   "expression_unit", 0
917 };
918 #endif
919
920 # ifdef YYPRINT
921 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
922    token YYLEX-NUM.  */
923 static const yytype_uint16 yytoknum[] =
924 {
925        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
926      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
927      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
928      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
929      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
930      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
931      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
932      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
933      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
934      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
935      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
936      365,   366,    40,    41,    36,    46,    91,    93,    44,    38,
937       42,    43,    45,   126,    33,    47,    37,    60,    62,    94,
938      124,    63,    58,    61,    59,   123,   125
939 };
940 # endif
941
942 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
943 static const yytype_uint8 yyr1[] =
944 {
945        0,   137,   138,   139,   139,   140,   140,   140,   140,   140,
946      140,   140,   140,   140,   140,   140,   140,   140,   140,   140,
947      140,   141,   142,   142,   142,   142,   142,   142,   142,   142,
948      143,   143,   143,   143,   143,   143,   143,   143,   144,   144,
949      144,   144,   145,   145,   145,   145,   145,   145,   145,   145,
950      145,   146,   146,   147,   147,   148,   148,   148,   148,   148,
951      148,   148,   149,   149,   150,   150,   150,   150,   151,   151,
952      151,   152,   152,   152,   153,   153,   153,   153,   153,   154,
953      154,   154,   155,   155,   156,   156,   157,   157,   158,   158,
954      159,   159,   160,   160,   161,   161,   161,   162,   162,   162,
955      162,   162,   162,   162,   162,   162,   162,   162,   163,   163,
956      164,   165,   165,   165,   165,   166,   166,   166,   166,   166,
957      166,   166,   166,   167,   167,   167,   167,   167,   167,   167,
958      167,   167,   167,   168,   168,   168,   168,   168,   168,   168,
959      168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
960      169,   170,   170,   171,   171,   172,   172,   172,   172,   172,
961      173,   173,   174,   174,   174,   175,   175,   175,   175,   175,
962      176,   176,   177,   177,   177,   178,   178,   179,   179,   179,
963      180,   181,   182,   182,   182,   182,   182,   182,   182,   182,
964      182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
965      183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
966      183,   183,   183,   183,   183,   183,   183,   184,   184,   184,
967      184,   184,   184,   184,   184,   184,   184,   185,   185,   185,
968      185,   186,   186,   187,   187,   188,   189,   189,   190,   190,
969      190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
970      190,   190,   190,   190,   190,   190,   190,   190,   191,   191,
971      191,   191,   191,   191,   191,   191,   192,   192,   193,   193,
972      193,   193,   193,   194,   194,   195,   195,   195,   195,   195,
973      196,   196,   197,   197,   198,   198,   198,   198,   198,   198,
974      198,   198,   198,   198,   198,   199,   199,   199,   199,   199,
975      200,   200,   200,   200,   200,   200,   201,   201,   201,   201,
976      201,   201,   202,   202,   202,   203,   203,   203,   203,   203,
977      204,   204,   204,   204,   204,   205,   205,   205,   205,   206,
978      207,   207,   207,   208,   208,   209,   209,   209,   209,   210,
979      210,   211,   211,   212,   212,   212,   213,   213,   214,   214,
980      215,   215,   215,   216,   216,   217,   217,   218,   218,   218,
981      218,   218,   218,   219,   219,   219,   220,   220,   221,   221,
982      221,   222,   222,   222,   223,   224,   224,   225,   225,   226,
983      226,   226,   227,   227,   227,   227,   227,   227,   227,   228,
984      228,   228,   228,   228,   229,   230,   230,   231,   231,   231,
985      231,   232,   232,   233,   233,   234,   235,   236,   236,   237,
986      237,   237,   237,   237,   238,   239,   240,   240,   241,   241,
987      242,   243,   243,   243,   243,   243,   243,   244,   244,   244,
988      245
989 };
990
991 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
992 static const yytype_uint8 yyr2[] =
993 {
994        0,     2,     1,     1,     3,     1,     1,     1,     1,     2,
995        4,     2,     6,     5,     6,     5,     7,     6,     7,     6,
996        1,     1,     1,     4,     3,     4,     3,     3,     2,     2,
997        1,     4,     3,     4,     3,     3,     2,     2,     1,     1,
998        3,     3,     2,     2,     2,     4,     2,     4,     4,     2,
999        4,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1000        1,     1,     1,     4,     1,     3,     3,     3,     1,     3,
1001        3,     1,     3,     3,     1,     3,     3,     3,     3,     1,
1002        3,     3,     1,     3,     1,     3,     1,     3,     1,     3,
1003        1,     3,     1,     5,     1,     3,     3,     1,     1,     1,
1004        1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
1005        1,     2,     3,     2,     5,     1,     2,     1,     2,     1,
1006        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1007        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1008        2,     1,     2,     1,     2,     1,     2,     1,     2,     1,
1009        2,     1,     3,     1,     3,     1,     1,     1,     1,     1,
1010        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1011        1,     4,     1,     2,     3,     6,     5,     1,     1,     1,
1012        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1013        1,     1,     1,     1,     1,     1,     1,     1,     4,     1,
1014        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1015        1,     1,     1,     1,     1,     4,     1,     5,     4,     4,
1016        3,     5,     6,     5,     5,     4,     6,     2,     2,     3,
1017        3,     1,     1,     1,     2,     3,     1,     3,     9,     9,
1018        7,     7,     5,    10,    10,     8,     8,     6,     8,     8,
1019        6,     6,     4,     9,     9,     7,     7,     5,     3,     2,
1020        2,     2,     1,     2,     1,     1,     1,     3,     1,     2,
1021        2,     3,     5,     2,     2,     4,     5,     7,     7,     5,
1022        1,     3,     1,     3,     3,     2,     3,     3,     3,     4,
1023        4,     2,     3,     3,     4,     3,     2,     3,     3,     4,
1024        1,     1,     2,     2,     2,     3,     1,     1,     2,     2,
1025        2,     3,     1,     2,     3,     1,     3,     4,     3,     4,
1026        1,     2,     2,     3,     3,     1,     1,     2,     2,     2,
1027        3,     3,     2,     1,     2,     1,     2,     2,     3,     1,
1028        3,     1,     3,     2,     2,     1,     1,     3,     1,     2,
1029        1,     3,     4,     1,     1,     1,     3,     1,     1,     1,
1030        1,     1,     1,     3,     4,     3,     1,     2,     1,     2,
1031        2,     1,     1,     2,     1,     2,     3,     1,     2,     5,
1032        7,     5,     5,     7,     6,     7,     4,     5,     4,     3,
1033        2,     2,     2,     3,     1,     5,     4,     4,     3,     4,
1034        3,     3,     2,     2,     1,     3,     4,     3,     2,     2,
1035        2,     2,     2,     2,     2,     2,     3,     1,     1,     3,
1036        2,     1,     1,     2,     2,     1,     2,     1,     1,     2,
1037        1
1038 };
1039
1040 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1041    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1042    means the default is an error.  */
1043 static const yytype_uint16 yydefact[] =
1044 {
1045        0,    20,     2,     7,   394,     0,     0,     0,   181,     0,
1046        0,    61,     0,     0,     0,     0,     0,    55,    56,    57,
1047       58,    59,    60,     5,    22,     3,    52,    51,    62,     0,
1048       64,    68,    71,    74,    79,    82,    84,    86,    88,    90,
1049       92,    94,   430,     0,   180,     8,     6,     0,     0,    30,
1050       54,    53,    46,     0,    42,    43,   155,   156,   157,   158,
1051      159,   183,   184,   185,   186,   187,   189,   192,   193,   190,
1052      191,   177,   178,   182,   188,   231,   232,     0,   199,   179,
1053      194,     0,     0,   123,   125,   197,   127,   131,   195,     0,
1054      196,   129,    62,   110,     0,     0,     0,     0,    49,    11,
1055      108,     0,   348,   115,   197,   117,   121,   119,     0,     9,
1056        0,     0,    28,    29,     0,     0,     0,    98,    99,   100,
1057      101,   102,   103,   104,   105,   106,   107,    97,     0,    44,
1058        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1059        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1060        1,     0,     0,     0,    36,    37,     0,     0,     0,     0,
1061      273,   274,     0,   160,   162,   163,   164,     0,     0,   335,
1062      124,     0,     0,   161,   126,   128,   132,   130,   307,     0,
1063      306,     0,   227,     0,   228,   201,   202,   203,   204,   205,
1064      207,   210,   211,   208,   209,   200,   206,   216,     0,     0,
1065      141,   143,   214,   145,   147,   212,   213,   149,     0,     0,
1066        0,     0,     0,     4,     0,     0,     0,     0,   116,   118,
1067      122,   120,   301,   349,   300,     0,     0,   425,     0,   400,
1068      354,    52,   353,     0,   417,    21,     0,   422,   418,   428,
1069      421,     0,     0,    27,    24,    39,     0,    38,    26,     0,
1070       96,    95,    65,    66,    67,    69,    70,    72,    73,    77,
1071       78,    75,    76,    80,    81,    83,    85,    87,    89,    91,
1072        0,   398,     0,    45,    47,    35,    32,     0,    34,     0,
1073      282,     0,   280,     0,     0,     0,   296,   345,     0,     0,
1074      339,   341,     0,   333,   336,   337,   310,   309,     0,     0,
1075        0,   308,     0,     0,     0,     0,   265,   220,     5,     0,
1076        0,     0,     0,   236,     0,   264,   233,     0,   404,     0,
1077      320,     0,     0,     6,     0,     0,     0,     0,   262,     0,
1078        0,   229,   230,     0,     0,     0,   142,   144,   146,   148,
1079      150,     0,     0,     0,     0,     0,    48,    50,   109,   291,
1080        0,     0,   285,     0,     0,   304,   303,     0,     0,   302,
1081       63,    10,   402,     0,     0,     0,   315,   414,   374,     0,
1082      415,     0,   420,   426,   424,   429,   423,   399,    25,     0,
1083       23,     0,   397,    33,    31,     0,     0,   275,     0,     0,
1084      198,     0,     0,   344,   343,   326,   312,   325,   300,   295,
1085      297,     0,    13,   334,   338,   311,     0,   298,     0,     0,
1086        0,     0,   133,   135,   139,   137,     0,     0,   408,     0,
1087       56,     0,     0,     0,     0,     0,     0,     0,   259,   315,
1088        0,     0,   266,   268,   403,   325,     0,   322,     0,   218,
1089      234,     0,   263,   329,     0,   332,   346,     0,     0,     0,
1090      321,   261,   260,   409,   412,   413,   411,   410,   219,     0,
1091      225,     0,     0,     0,     0,     0,     0,     0,    15,     0,
1092        0,     0,   284,   292,   286,   287,   305,   293,     0,   288,
1093        0,     0,   401,   416,   375,     0,     0,     0,     0,     0,
1094        0,     0,     0,     0,     0,     0,     0,   377,     5,     0,
1095      366,     0,   368,   357,     0,     0,     0,   358,   359,   360,
1096      361,   362,     0,   419,    41,    40,    93,   283,   281,     0,
1097      276,     0,   279,   328,   327,   303,     0,   313,   340,   342,
1098      165,   166,   169,   168,   167,     0,   170,   172,     0,   299,
1099       12,   273,   274,     0,     0,   134,   136,   140,   138,     0,
1100      227,     0,   228,   407,     0,   316,     0,   235,   405,   270,
1101        0,   327,     0,     0,   258,     0,   269,     0,   325,   323,
1102      237,   318,     0,     0,   330,   331,     0,   324,   217,   223,
1103      224,     0,     0,   221,   215,    17,     0,    14,    19,     0,
1104      294,   289,   290,     0,     0,     0,     0,     0,     0,     0,
1105        0,   390,   391,   392,     0,     0,     0,   378,   111,     0,
1106      151,   153,   367,     0,   370,   369,   376,   113,     0,     0,
1107      314,   176,     0,     0,     0,   173,     0,     0,   252,     0,
1108        0,     0,   229,   230,   406,   396,     0,   325,   267,   271,
1109      327,   317,   319,   347,   222,   226,    16,    18,     0,   365,
1110        0,     0,     0,     0,     0,     0,     0,   389,   393,     0,
1111      363,     0,   112,     0,   277,   278,     0,   175,   174,     0,
1112        0,     0,     0,   242,     0,     0,   257,     0,   395,     0,
1113      364,     0,     0,   386,     0,     0,   388,     0,     0,     0,
1114      152,     0,   350,   154,   171,     0,   250,     0,   251,     0,
1115        0,     0,     0,     0,     0,   247,   272,   379,   381,   382,
1116        0,   387,     0,     0,   114,   355,     0,     0,     0,     0,
1117      240,     0,   241,     0,   255,     0,   256,     0,     0,     0,
1118        0,   384,     0,     0,   351,   248,   249,     0,     0,     0,
1119        0,     0,   245,     0,   246,   380,   383,   385,   352,   356,
1120      238,   239,   253,   254,     0,     0,   243,   244
1121 };
1122
1123 /* YYDEFGOTO[NTERM-NUM].  */
1124 static const yytype_int16 yydefgoto[] =
1125 {
1126       -1,    23,    24,    25,   230,    26,    50,   246,    27,    92,
1127       52,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1128       38,    39,    40,    41,   100,   128,   499,    94,   614,   102,
1129      310,   411,   199,   609,   610,    83,   311,   172,   536,   537,
1130      538,   173,    84,    43,    44,    86,   203,    87,    88,    89,
1131      312,   313,   314,   315,   316,   431,   432,    90,    91,   281,
1132      282,   222,   178,   350,   179,   422,   317,   318,   396,   319,
1133      320,   294,   321,   351,   290,   291,   448,   108,   693,   234,
1134      716,   502,   503,   504,   505,   506,   369,   507,   508,   509,
1135      510,   511,    45,   322,    46,   235,   324,   325,   326,   327,
1136      328,   236,   237,   238,   239,   240,   241,   242,    47
1137 };
1138
1139 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1140    STATE-NUM.  */
1141 #define YYPACT_NINF -630
1142 static const yytype_int16 yypact[] =
1143 {
1144     5528,  -630,  -630,  -630,  -630,  5601,  5655,  5655,  -630,  7079,
1145     5528,  -630,  7079,  5528,  5681,  5056,    64,  -630,  -630,  -630,
1146     -630,  -630,  -630,   -64,  -630,  -630,   534,  -630,   609,  5528,
1147     -630,   344,    10,   386,   198,   395,    15,    41,    66,    90,
1148       -4,  -630,  -630,    83,  -630,  -630,  -630,   269,  5180,  -630,
1149      542,  -630,  -630,  4658,  -630,  -630,  -630,  -630,  -630,  -630,
1150     -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,
1151     -630,  -630,  -630,  -630,  -630,  -630,  -630,    17,  -630,  -630,
1152     -630,   126,  6236,  -630,  -630,  -630,  -630,  -630,  -630,   133,
1153     -630,  -630,  -630,  -630,  7225,  6329,  7225,  5180,  -630,  -630,
1154     -630,   113,  6656,  -630,    83,  -630,  -630,  -630,   158,   162,
1155     1964,   277,  -630,  -630,  4083,   277,  5528,  -630,  -630,  -630,
1156     -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  4211,  -630,
1157     5528,  5528,  5528,  5528,  5528,  5528,  5528,  5528,  5528,  5528,
1158     5528,  5528,  5528,  5528,  5528,  5528,  5528,  5528,  5528,  2088,
1159     -630,   175,   181,   277,  -630,  -630,  4156,   277,  5528,   277,
1160      148,   165,   280,  -630,  -630,  -630,  -630,  6422,  5528,   218,
1161     -630,   104,   203,  -630,  -630,  -630,  -630,  -630,   216,   225,
1162      232,  2572,   215,    56,   227,  -630,  -630,  -630,  -630,  -630,
1163     -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,   235,  6515,
1164     -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  5528,   257,
1165     6608,   268,   285,  -630,  5528,  6143,  5267,   191,  -630,  -630,
1166     -630,  -630,   337,  -630,   419,  5528,    64,  -630,  2212,  -630,
1167     -630,    27,  -630,  5964,  -630,  -630,   272,  -630,  -630,   -55,
1168     -630,  2336,   289,  -630,  -630,  -630,   275,  -630,  -630,   349,
1169     -630,  -630,  -630,  -630,  -630,   344,   344,    10,    10,   386,
1170      386,   386,   386,   198,   198,   395,    15,    41,    66,    90,
1171      -42,  -630,   296,  -630,  -630,  -630,  -630,   339,  -630,   358,
1172      305,   -51,  -630,   277,   277,   365,  -630,  5871,   400,   403,
1173      332,  -630,   343,  -630,   218,  -630,   216,   232,   399,  6749,
1174     5528,   216,  7152,  5964,  5234,  7079,  -630,  -630,   -64,   347,
1175     4709,    65,  2684,  -630,   -32,  -630,  -630,   443,  -630,  6057,
1176     -630,   185,   393,   411,   272,   272,   272,   390,  -630,  2796,
1177     2908,   422,   429,  4351,   280,  5528,  -630,  -630,  -630,  -630,
1178     -630,   455,   460,  5528,  5528,   464,  -630,  -630,  -630,  -630,
1179      468,   472,  -630,   471,   -44,   337,   419,  6835,  5321,   337,
1180     -630,  -630,  -630,   453,  4211,   310,  -630,  -630,   456,  3925,
1181     -630,  4211,  -630,  -630,  -630,   -55,  -630,  -630,  -630,  4211,
1182     -630,  5528,  -630,  -630,  -630,  5528,   277,  -630,   306,   311,
1183     -630,  5778,    85,  -630,  -630,   443,  -630,  -630,   398,  -630,
1184     -630,  7006,  -630,  -630,  -630,   216,   495,  -630,   480,   483,
1185       38,  4599,  -630,  -630,  -630,  -630,   615,  5964,  -630,  4932,
1186      721,    65,   488,   185,  6921,  4211,   409,  5528,  -630,   469,
1187       65,   219,  -630,   210,  -630,   470,   185,  -630,    34,  -630,
1188     -630,   700,  -630,  -630,  5394,  -630,  -630,   490,   355,    34,
1189     -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  3020,
1190     -630,  3132,  3244,  4351,  3356,   494,   498,  5528,  -630,   500,
1191      504,  5528,  -630,  -630,  -630,  -630,   337,  -630,   499,  -630,
1192      508,    86,  -630,  -630,  -630,  5528,   479,   525,   527,   529,
1193     4010,   532,   277,   511,   513,  4492,   277,  -630,   -24,   234,
1194     -630,  4819,  -630,  -630,  1592,  1716,   515,  -630,  -630,  -630,
1195     -630,  -630,   519,  -630,  -630,  -630,  -630,  -630,  -630,  4351,
1196     -630,  4351,  -630,   443,  -630,   398,    34,  -630,  -630,  -630,
1197     -630,  -630,  -630,  -630,  -630,   546,   548,  -630,   671,  -630,
1198     -630,  -630,  -630,   -31,   526,  -630,  -630,  -630,  -630,    20,
1199     -630,    38,  -630,  -630,   185,  -630,   549,  -630,  -630,  -630,
1200     2460,   530,   185,   146,  -630,  5528,  -630,    34,   531,  -630,
1201     -630,  -630,   550,   112,  -630,  -630,   277,  -630,  -630,  -630,
1202     -630,  3468,  3580,  -630,  -630,  -630,   551,  -630,  -630,   552,
1203     -630,  -630,  -630,   538,  4010,  5528,  5528,  5448,   621,  4404,
1204      537,  -630,  -630,  -630,   249,   545,  4010,  -630,  -630,   258,
1205     -630,   547,  -630,  1840,  -630,  -630,  -630,  -630,  3692,  3804,
1206     -630,  -630,  5528,   566,   512,  -630,   272,   272,  -630,     8,
1207      170,   560,  -630,  -630,  -630,  -630,   561,   563,  -630,   554,
1208      565,  -630,  -630,  -630,  -630,  -630,  -630,  -630,  4010,  -630,
1209      361,   371,  4010,   374,   571,  4010,  4438,  -630,  -630,  5528,
1210     -630,   310,  -630,  4239,  -630,  -630,   384,  -630,  -630,   -18,
1211      -38,   272,   272,  -630,   272,   272,  -630,   254,  -630,  5528,
1212     -630,  4010,  4010,  -630,  4010,  5528,  -630,  4010,  5474,   568,
1213     -630,  4239,  -630,  -630,  -630,   272,  -630,   272,  -630,   -16,
1214      -36,   129,   -27,   272,   272,  -630,  -630,   642,  -630,  -630,
1215      394,  -630,  4010,   415,  -630,  -630,   212,   572,   574,   272,
1216     -630,   272,  -630,   272,  -630,   272,  -630,   138,   -23,  4010,
1217      573,  -630,  4010,  1423,  -630,  -630,  -630,   575,   577,   578,
1218      580,   272,  -630,   272,  -630,  -630,  -630,  -630,  -630,  -630,
1219     -630,  -630,  -630,  -630,   581,   583,  -630,  -630
1220 };
1221
1222 /* YYPGOTO[NTERM-NUM].  */
1223 static const yytype_int16 yypgoto[] =
1224 {
1225     -630,   457,  -630,   105,   -98,   -28,  -630,   564,   246,     0,
1226      707,  -630,    36,   404,   412,   423,   425,   579,   586,   582,
1227      585,   576,  -630,    14,     1,  -630,   -13,    59,  -357,  -630,
1228       13,  -630,   628,  -630,    74,   141,   745,  -630,  -630,  -517,
1229     -630,   303,  1019,   892,   -45,   661,  -135,    -1,   -77,  -228,
1230     -273,   298,  -630,  -630,  -283,  -630,   174,   176,    77,   292,
1231      362,  -206,  -110,   -94,   238,  -284,   954,  -223,  -272,  -630,
1232     1027,  -630,    35,  -124,  -630,   346,  -630,     2,  -629,  -336,
1233     -630,  -321,  -630,  -630,   251,  -630,  -630,   601,  -544,  -630,
1234     -630,  -630,    -7,  -364,   290,  -630,  -630,  -630,  -630,  -630,
1235     -630,  -630,   509,   388,   516,   521,  -630,  -145,  -630
1236 };
1237
1238 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1239    positive, shift that token.  If negative, reduce the rule which
1240    number is the opposite.  If zero, do what YYDEFACT says.
1241    If YYTABLE_NINF, syntax error.  */
1242 #define YYTABLE_NINF -428
1243 static const yytype_int16 yytable[] =
1244 {
1245       28,    42,   101,   394,   272,   512,    54,    55,   223,   109,
1246      367,   355,   500,   147,   106,    28,   245,   205,   359,   205,
1247        2,   625,    82,     2,    93,    95,   433,    93,   483,   440,
1248      250,   697,   161,   721,   111,   112,   113,     2,   626,   627,
1249      101,     2,   725,   289,   184,     8,   743,   106,   151,   202,
1250      152,   202,   695,    28,   719,   656,   459,   461,   245,     2,
1251      464,   296,   715,   371,   338,   129,     8,   386,     2,     4,
1252      301,   110,    96,   475,   416,   338,   214,   671,   672,   372,
1253      418,   176,   231,   363,     8,   387,   441,   434,     2,   557,
1254      381,   149,   107,   204,   176,   204,   106,   211,   698,   212,
1255      722,   220,   442,   249,   749,   628,   146,   668,   606,   726,
1256       49,   110,   688,   744,    28,   247,    28,   180,   696,    49,
1257      720,   231,   205,   233,   232,   107,   527,   148,    28,   251,
1258      180,   133,   134,   205,   143,   270,     2,   224,   332,   114,
1259      512,   512,   115,   116,   673,   279,   365,   612,    28,     2,
1260      476,   527,   159,   309,   202,   630,    28,   247,    28,   177,
1261      364,     8,   233,   232,   527,   202,   252,   253,   254,   598,
1262      144,   207,   177,   207,   107,   408,   440,   365,   440,   221,
1263      287,   440,    93,   416,   615,   169,   355,   405,     2,   581,
1264      582,   330,   359,   393,   553,   447,   145,   391,   339,   723,
1265      231,   216,   180,   592,   295,   169,   297,   163,   741,   339,
1266      137,   138,   164,   231,    28,   348,   167,   611,   149,   361,
1267      163,   149,    93,   170,   169,   164,   213,   292,   287,   642,
1268       93,   214,   176,   478,   180,   200,   170,   200,   162,   674,
1269      675,   233,   232,   165,   166,   180,   618,   149,   619,   512,
1270      224,    51,   356,   620,   233,   232,   165,   166,   365,   163,
1271       51,   360,    71,    72,   164,   724,   169,   342,   181,   150,
1272      206,   225,   206,   649,   742,   353,   340,   226,   427,   433,
1273        2,   514,   620,   283,   309,   660,   176,   340,   273,   164,
1274      620,   101,   615,    79,   274,   165,   166,   365,   440,   440,
1275      284,   309,   309,   215,    28,   309,   676,   216,     8,   176,
1276      177,   169,   287,     2,    93,   298,   417,   549,   424,   476,
1277      165,   166,   398,   703,   704,   139,   140,   680,   299,   404,
1278      733,   683,   287,   209,   686,   440,   440,   563,   169,   423,
1279      336,   300,   565,   231,   167,   436,   438,   334,   734,    93,
1280      329,   336,   214,   564,   111,   112,   113,    93,    93,   409,
1281      707,   708,   333,   709,   177,   542,   711,   214,   607,    28,
1282      287,   552,    93,   343,   170,   206,   661,   611,   232,    28,
1283      515,   346,   501,   658,   163,   232,   206,   177,   378,   164,
1284      705,   731,   662,   379,   466,   516,   135,   136,   347,    93,
1285      423,     2,   469,   470,   287,   288,   101,   368,   745,   141,
1286      142,   747,     2,   309,   287,   636,   176,   480,   106,    28,
1287      165,   166,   365,   176,   386,   377,   398,   525,   170,   386,
1288      169,   309,   382,   309,   309,   309,   309,   341,   385,   232,
1289      519,    93,   520,   412,   517,   521,   224,   522,   345,   357,
1290      401,   170,   383,   358,   423,   295,   554,   379,    93,   114,
1291      402,   423,   115,   116,   130,   562,   380,   214,   575,   131,
1292      132,   323,   163,   576,   681,   384,   214,   164,   390,   214,
1293      425,    93,   604,   163,   682,    93,   559,   684,   164,   214,
1294       28,   309,   214,   309,   177,    28,   107,   694,   530,    93,
1295      176,   177,   214,   572,    28,    28,   633,   730,   165,   166,
1296      391,   406,   214,   399,   216,   530,   400,   501,   501,   165,
1297      166,   365,   558,   531,   456,   368,   586,   451,   732,   169,
1298      589,   215,   231,   214,   160,   216,   423,   255,   256,   532,
1299      531,   111,   112,   113,   593,   452,   182,   257,   258,   153,
1300      154,   155,   545,   309,   309,   443,   532,   462,   170,   444,
1301      259,   260,   261,   262,   463,   170,   263,   264,   243,   533,
1302      534,   467,   248,   233,   232,   388,   389,   468,   177,    93,
1303      471,   472,   650,   651,   653,   473,   533,   534,   474,   482,
1304      309,   309,   484,   539,    28,    28,    28,    28,   423,    28,
1305      540,   555,   323,   574,   560,  -320,    28,   584,   535,   666,
1306      275,   594,   590,    28,   278,   585,   280,   587,     2,   323,
1307      323,   588,    28,   323,   639,   591,   501,   117,   118,   119,
1308      120,   121,   122,   123,   124,   125,   126,   595,   308,   596,
1309      331,   597,   170,     8,   599,   601,   114,   602,    28,   115,
1310      116,   616,    28,   617,   156,    28,    28,   157,   158,   621,
1311      622,   629,   634,    28,   692,  -322,  -321,   641,   646,   647,
1312      648,   657,   710,    93,   530,   713,   105,   654,   659,   667,
1313      663,    28,    28,   685,    28,    28,   679,    28,    28,   163,
1314      366,    28,   692,    93,   164,   677,   423,   678,  -323,   531,
1315     -324,     1,   714,     2,     3,     4,   729,   746,   735,   105,
1316      736,   750,    28,   751,   752,   532,   753,   756,   689,   757,
1317      277,    98,   265,   269,   210,   165,   166,   267,     8,    28,
1318      266,   268,    28,    28,   692,   690,   566,   638,   706,   570,
1319      280,   280,   127,   175,   366,   533,   534,   529,   518,   323,
1320      374,   323,   323,   323,   323,   613,   175,   375,   105,   513,
1321      366,   308,   376,   219,     0,    71,    72,   429,   366,   308,
1322        0,     9,    10,     0,     0,     0,   446,     0,   366,     0,
1323        0,     0,     0,     0,   623,     0,   308,   308,     0,   624,
1324      308,     0,     0,     0,     0,  -335,    79,     0,     0,     0,
1325     -335,     0,    12,    13,     0,     0,     0,     0,     0,   323,
1326        0,   323,    53,     0,    16,     0,     0,     0,     0,     0,
1327        0,     0,   366,     0,     0,     0,   498,   171,     0,     0,
1328        0,  -335,  -335,     0,   183,     0,     0,   370,     0,     0,
1329      171,   169,     0,   280,     0,     0,     0,   217,   366,   366,
1330        0,     0,     0,     0,     0,   366,     0,     0,     0,     0,
1331        0,     0,     0,     0,     0,     0,     0,   541,   544,     0,
1332        0,   323,   323,   550,   366,     0,   308,     0,   366,     0,
1333      366,     0,     0,   366,     0,     0,     0,   366,     0,     0,
1334        0,     0,     0,   366,   175,   366,     0,     0,     0,     0,
1335        0,    85,     0,     0,    85,     0,   366,   104,   323,   323,
1336        0,     0,   171,     0,     0,     0,   308,     0,   308,   308,
1337      308,   308,     0,     0,     0,   453,   454,   455,   457,     0,
1338        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1339      104,     0,     0,     0,   171,     0,     0,   498,   175,   600,
1340        0,     0,     0,   605,     0,   171,     0,     0,   429,     0,
1341      217,   498,   498,   415,     0,     0,     0,     0,     0,     0,
1342        0,   175,     0,     0,    85,     0,   308,     0,   308,     0,
1343        0,     0,   366,   366,     0,     0,     0,    85,     0,   104,
1344        0,     0,     0,     0,    85,     0,     0,     0,     0,     0,
1345        0,     0,   104,     0,     0,     0,   631,     0,   632,     0,
1346        0,   366,     0,     0,     0,     0,     0,     0,     0,   366,
1347      366,     0,     0,     0,   366,     0,     0,     0,     0,     0,
1348        0,     0,   392,   643,   103,     0,     0,     0,   308,   308,
1349        0,   104,     0,     0,     0,     0,     0,     0,     0,   421,
1350        0,   498,     0,     0,   285,   430,     0,     0,     0,    85,
1351        0,     0,     0,   498,     0,     0,   449,   103,     0,     0,
1352      498,     0,   548,   104,     0,   308,   308,     0,   175,     0,
1353      105,     0,     0,     0,     0,   175,     0,     0,     0,     0,
1354        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1355        0,   174,     0,     0,     0,   498,     0,    85,   354,   498,
1356      421,     0,   498,   201,   174,   201,   103,     0,   366,     0,
1357      104,   218,     0,     0,     0,    85,     0,     0,     0,     0,
1358        0,     0,     0,   104,     0,     0,   392,     0,   498,   498,
1359        0,   498,     0,   526,   498,     0,     0,     0,     0,     0,
1360        0,     0,     0,     0,     0,     0,   217,     0,     0,     0,
1361        0,   551,   175,     0,   421,     0,     0,     0,   526,   498,
1362        0,   421,     0,     0,     0,     0,     0,     0,     0,    85,
1363        0,   567,     0,     0,     0,     0,   498,     0,   293,   498,
1364        0,    85,     0,     0,   414,    85,     0,    85,     0,     0,
1365        0,     0,    85,     0,   104,     0,     0,     0,     0,     0,
1366        0,    85,     0,     0,     0,     0,     0,     0,   337,     0,
1367        0,   104,   104,     0,     0,   104,   465,   669,   670,   337,
1368        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1369        0,   395,     0,     0,     0,     0,   421,     0,     0,    85,
1370      481,     0,   174,     0,     0,     0,     0,     0,   395,     0,
1371        0,   104,     0,     0,   395,     0,     0,     0,     0,     0,
1372      526,     0,   699,   700,     0,   701,   702,     0,     0,     0,
1373        0,     0,     0,    85,     0,     0,     0,     0,     0,     0,
1374        0,     0,     0,    85,     0,     0,   717,     0,   718,   526,
1375        0,     0,     0,   547,   727,   728,   174,   526,   421,    85,
1376        0,   104,     0,   403,   397,     0,    85,     0,     0,   395,
1377      737,   413,   738,     0,   739,     0,   740,     0,     0,   174,
1378        0,   397,     0,     0,     0,     0,   573,   435,   437,     0,
1379        0,     0,   754,     0,   755,   395,   523,     0,   450,     0,
1380        0,   104,   395,   104,   104,   104,   104,     0,     0,     0,
1381        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1382        0,     0,     0,   395,     0,   523,     0,   395,     0,     0,
1383      395,     0,     0,     0,   523,     0,     0,     0,     0,     0,
1384      395,     0,   397,    85,     0,     0,   104,   104,     0,     0,
1385        0,     0,     0,     0,     0,     0,   421,     0,     0,     0,
1386        0,   104,     0,   104,     0,     0,     0,     0,   397,   524,
1387        0,     0,     0,     0,     1,   397,     2,     3,     4,     5,
1388      546,     6,     7,     0,     0,     0,   174,     0,   103,   293,
1389        0,     0,     0,   174,     0,     0,   397,     0,   524,     0,
1390      397,     8,   104,   397,     0,   395,     0,   561,     0,     0,
1391        0,     0,     0,   568,     0,   569,     0,     0,     0,     0,
1392        0,     0,     0,   104,   104,     0,   577,     0,     0,   395,
1393      523,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1394        0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
1395        0,     0,     0,     0,     0,   104,     0,     0,   395,     0,
1396      104,   104,     0,     0,     0,     0,   395,   395,     0,     0,
1397      174,   523,     0,     0,     0,    12,    13,     0,   397,     0,
1398        0,     0,    14,     0,     0,    15,     0,    16,     0,     0,
1399        0,     0,    17,    18,    19,    20,    21,    22,     0,     0,
1400        0,     0,   397,   524,     0,     0,     0,     0,   691,   748,
1401        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1402        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1403        0,   397,     0,     0,     0,     0,     0,     0,     0,   637,
1404      397,     0,     0,     1,   640,     2,     3,     4,     5,     0,
1405        6,     7,     0,     0,     0,     0,     0,     0,     0,     0,
1406        0,     0,     0,     0,     0,   395,     0,     0,     0,     0,
1407        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1408       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1409       75,    76,    77,     0,   485,   486,   487,   488,   489,   490,
1410      491,   492,   493,   494,   495,     0,     0,     0,    78,     0,
1411        0,     0,     0,     9,    10,    11,     0,    79,     0,   496,
1412        0,     0,     0,     0,     0,     0,     0,    80,     0,     0,
1413        0,     0,     0,     0,     0,     0,     0,     0,   397,     0,
1414        0,     0,    81,     0,    12,    13,     0,     0,     0,     0,
1415        0,    14,     0,     0,    15,     0,    16,     0,     0,     0,
1416        0,    17,    18,    19,    20,    21,    22,     1,     0,     2,
1417        3,     4,     5,     0,     6,     7,   497,   368,  -372,     0,
1418        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1419        0,     0,     0,     0,     8,    56,    57,    58,    59,    60,
1420       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1421       71,    72,    73,    74,    75,    76,    77,     0,   485,   486,
1422      487,   488,   489,   490,   491,   492,   493,   494,   495,     0,
1423        0,     0,    78,     0,     0,     0,     0,     9,    10,    11,
1424        0,    79,     0,   496,     0,     0,     0,     0,     0,     0,
1425        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1426        0,     0,     0,     0,     0,     0,    81,     0,    12,    13,
1427        0,     0,     0,     0,     0,    14,     0,     0,    15,     0,
1428       16,     0,     0,     0,     0,    17,    18,    19,    20,    21,
1429       22,     1,     0,     2,     3,     4,     5,     0,     6,     7,
1430      497,   368,  -371,     0,     0,     0,     0,     0,     0,     0,
1431        0,     0,     0,     0,     0,     0,     0,     0,     8,    56,
1432       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1433       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1434       77,     0,   485,   486,   487,   488,   489,   490,   491,   492,
1435      493,   494,   495,     0,     0,     0,    78,     0,     0,     0,
1436        0,     9,    10,    11,     0,    79,     0,   496,     0,     0,
1437        0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1438        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439       81,     0,    12,    13,     0,     0,     0,     0,     0,    14,
1440        0,     0,    15,     0,    16,     0,     0,     0,     0,    17,
1441       18,    19,    20,    21,    22,     1,     0,     2,     3,     4,
1442        5,     0,     6,     7,   497,   368,  -373,     0,     0,     0,
1443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444        0,     0,     8,    56,    57,    58,    59,    60,    61,    62,
1445       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1446       73,    74,    75,    76,    77,     0,     0,     0,     0,     0,
1447        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1448       78,     0,     0,     0,     0,     9,    10,    11,     0,    79,
1449        0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
1450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1451        0,     0,     0,     0,    81,     0,    12,    13,     0,     0,
1452        0,     0,     0,    14,     0,     0,    15,     0,    16,     0,
1453        0,     0,     0,    17,    18,    19,    20,    21,    22,     1,
1454        0,     2,     3,     4,     5,     0,     6,     7,   227,   228,
1455      229,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456        0,     0,     0,     0,     0,     0,     8,    56,    57,    58,
1457       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1458       69,    70,    71,    72,    73,    74,    75,    76,    77,     0,
1459        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1460        0,     0,     0,     0,    78,     0,     0,     0,     0,     9,
1461       10,    11,     0,    79,     0,     0,     0,     0,     0,     0,
1462        0,     0,     0,    80,     0,     0,     0,     0,     0,     0,
1463        0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
1464       12,    13,     0,     0,     0,     0,     0,    14,     0,     0,
1465       15,     0,    16,     0,     0,     0,     0,    17,    18,    19,
1466       20,    21,    22,     1,     0,     2,     3,     4,     5,     0,
1467        6,     7,   227,   228,   271,     0,     0,     0,     0,     0,
1468        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1469        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1470       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1471       75,    76,    77,     0,     0,     0,     0,     0,     0,     0,
1472        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1473        0,     0,     0,     9,    10,    11,     0,    79,     0,     0,
1474        0,     0,     0,     0,     0,     0,     0,    80,     0,     0,
1475        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1476        0,     0,    81,     0,    12,    13,     0,     0,     0,     0,
1477        0,    14,     0,     0,    15,     0,    16,     0,     0,     0,
1478        0,    17,    18,    19,    20,    21,    22,     1,     0,     2,
1479        3,     4,     5,     0,     6,     7,   227,   228,   362,     0,
1480        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481        0,     0,     0,     0,     8,    56,    57,    58,    59,    60,
1482       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1483       71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
1484        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485        0,     0,    78,     0,     0,     0,     0,     9,    10,    11,
1486        0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
1487        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1488        0,     0,     0,     0,     0,     0,    81,     0,    12,    13,
1489        0,     0,     0,     0,     0,    14,     0,     0,    15,     0,
1490       16,     0,     0,     0,     0,    17,    18,    19,    20,    21,
1491       22,     1,     0,     2,     3,     4,     5,     0,     6,     7,
1492      373,   228,  -427,     0,     0,     0,     0,     0,     0,     0,
1493        0,     0,     0,     0,     0,     0,     0,     0,     8,    56,
1494       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1495       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1496       77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497        0,     0,     0,     0,     0,     0,    78,     0,     0,     0,
1498        0,     9,    10,    11,     0,    79,     0,     0,     0,     0,
1499        0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501       81,     0,    12,    13,     0,     0,     0,     0,     0,    14,
1502        0,     0,    15,     1,    16,     2,     3,     4,     0,    17,
1503       18,    19,    20,    21,    22,     0,     0,     0,     0,     0,
1504        0,     0,     0,     0,   227,   228,   635,     0,     0,     0,
1505        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1506       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1507       75,    76,    77,     0,     0,     0,     0,     0,     0,     0,
1508        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1509      302,     0,     0,     9,    10,     0,   163,    79,     0,     0,
1510      303,   164,     0,     0,     0,     0,     0,    80,     0,     0,
1511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1512        0,     0,    81,     0,    12,    13,     0,     0,     0,     0,
1513        0,     0,   165,   166,   304,     1,    16,     2,     3,     4,
1514        0,     0,   169,     0,     0,   305,     0,     0,     0,     0,
1515        0,     0,     0,     0,     0,     0,   306,     0,   307,     0,
1516        0,     0,     8,    56,    57,    58,    59,    60,    61,    62,
1517       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1518       73,    74,    75,    76,    77,     0,     0,     0,     0,     0,
1519        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1520       78,     0,   302,     0,     0,     9,    10,     0,   163,    79,
1521        0,     0,   303,   164,     0,     0,     0,     0,     0,    80,
1522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523        0,     0,     0,     0,    81,     0,    12,    13,     0,     0,
1524        0,     0,     0,     0,   165,   166,   304,     1,    16,     2,
1525        3,     4,     0,     0,   169,     0,     0,   305,     0,     0,
1526        0,     0,     0,     0,     0,     0,     0,     0,   306,     0,
1527      439,     0,     0,     0,     8,    56,    57,    58,    59,    60,
1528       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1529       71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
1530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1531        0,     0,    78,     0,   302,     0,     0,     9,    10,     0,
1532      163,    79,     0,     0,   303,   164,     0,     0,     0,     0,
1533        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1534        0,     0,     0,     0,     0,     0,    81,     0,    12,    13,
1535        0,     0,     0,     0,     0,     0,   165,   166,   304,     1,
1536       16,     2,     3,     4,     0,     0,   169,     0,     0,   305,
1537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1538      306,     0,   458,     0,     0,     0,     8,    56,    57,    58,
1539       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1540       69,    70,    71,    72,    73,    74,    75,    76,    77,     0,
1541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1542        0,     0,     0,     0,    78,     0,   302,     0,     0,     9,
1543       10,     0,   163,    79,     0,     0,   303,   164,     0,     0,
1544        0,     0,     0,    80,     0,     0,     0,     0,     0,     0,
1545        0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
1546       12,    13,     0,     0,     0,     0,     0,     0,   165,   166,
1547      304,     1,    16,     2,     3,     4,     0,     0,   169,     0,
1548        0,   305,     0,     0,     0,     0,     0,     0,     0,     0,
1549        0,     0,   306,     0,   460,     0,     0,     0,     8,    56,
1550       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1551       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1552       77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1553        0,     0,     0,     0,     0,     0,    78,     0,   302,     0,
1554        0,     9,    10,     0,   163,    79,     0,     0,   303,   164,
1555        0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1556        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1557       81,     0,    12,    13,     0,     0,     0,     0,     0,     0,
1558      165,   166,   304,     1,    16,     2,     3,     4,     0,     0,
1559      169,     0,     0,   305,     0,     0,     0,     0,     0,     0,
1560        0,     0,     0,     0,   306,     0,   578,     0,     0,     0,
1561        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1562       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1563       75,    76,    77,     0,     0,     0,     0,     0,     0,     0,
1564        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1565      302,     0,     0,     9,    10,     0,   163,    79,     0,     0,
1566      303,   164,     0,     0,     0,     0,     0,    80,     0,     0,
1567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1568        0,     0,    81,     0,    12,    13,     0,     0,     0,     0,
1569        0,     0,   165,   166,   304,     1,    16,     2,     3,     4,
1570        0,     0,   169,     0,     0,   305,     0,     0,     0,     0,
1571        0,     0,     0,     0,     0,     0,   306,     0,   579,     0,
1572        0,     0,     8,    56,    57,    58,    59,    60,    61,    62,
1573       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1574       73,    74,    75,    76,    77,     0,     0,     0,     0,     0,
1575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1576       78,     0,   302,     0,     0,     9,    10,     0,   163,    79,
1577        0,     0,   303,   164,     0,     0,     0,     0,     0,    80,
1578        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1579        0,     0,     0,     0,    81,     0,    12,    13,     0,     0,
1580        0,     0,     0,     0,   165,   166,   304,     1,    16,     2,
1581        3,     4,     0,     0,   169,     0,     0,   305,     0,     0,
1582        0,     0,     0,     0,     0,     0,     0,     0,   306,     0,
1583      580,     0,     0,     0,     8,    56,    57,    58,    59,    60,
1584       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1585       71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
1586        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1587        0,     0,    78,     0,   302,     0,     0,     9,    10,     0,
1588      163,    79,     0,     0,   303,   164,     0,     0,     0,     0,
1589        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1590        0,     0,     0,     0,     0,     0,    81,     0,    12,    13,
1591        0,     0,     0,     0,     0,     0,   165,   166,   304,     1,
1592       16,     2,     3,     4,     0,     0,   169,     0,     0,   305,
1593        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1594      306,     0,   583,     0,     0,     0,     8,    56,    57,    58,
1595       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1596       69,    70,    71,    72,    73,    74,    75,    76,    77,     0,
1597        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1598        0,     0,     0,     0,    78,     0,   302,     0,     0,     9,
1599       10,     0,   163,    79,     0,     0,   303,   164,     0,     0,
1600        0,     0,     0,    80,     0,     0,     0,     0,     0,     0,
1601        0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
1602       12,    13,     0,     0,     0,     0,     0,     0,   165,   166,
1603      304,     1,    16,     2,     3,     4,     0,     0,   169,     0,
1604        0,   305,     0,     0,     0,     0,     0,     0,     0,     0,
1605        0,     0,   306,     0,   644,     0,     0,     0,     8,    56,
1606       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1607       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1608       77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1609        0,     0,     0,     0,     0,     0,    78,     0,   302,     0,
1610        0,     9,    10,     0,   163,    79,     0,     0,   303,   164,
1611        0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
1612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1613       81,     0,    12,    13,     0,     0,     0,     0,     0,     0,
1614      165,   166,   304,     1,    16,     2,     3,     4,     0,     0,
1615      169,     0,     0,   305,     0,     0,     0,     0,     0,     0,
1616        0,     0,     0,     0,   306,     0,   645,     0,     0,     0,
1617        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1618       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1619       75,    76,    77,     0,     0,     0,     0,     0,     0,     0,
1620        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1621      302,     0,     0,     9,    10,     0,   163,    79,     0,     0,
1622      303,   164,     0,     0,     0,     0,     0,    80,     0,     0,
1623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1624        0,     0,    81,     0,    12,    13,     0,     0,     0,     0,
1625        0,     0,   165,   166,   304,     1,    16,     2,     3,     4,
1626        0,     0,   169,     0,     0,   305,     0,     0,     0,     0,
1627        0,     0,     0,     0,     0,     0,   306,     0,   664,     0,
1628        0,     0,     8,    56,    57,    58,    59,    60,    61,    62,
1629       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1630       73,    74,    75,    76,    77,     0,     0,     0,     0,     0,
1631        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1632       78,     0,   302,     0,     0,     9,    10,     0,   163,    79,
1633        0,     0,   303,   164,     0,     0,     0,     0,     0,    80,
1634        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635        0,     0,     0,     0,    81,     0,    12,    13,     0,     0,
1636        0,     0,     0,     0,   165,   166,   304,     0,    16,     0,
1637        0,     0,     0,     0,   169,     0,     1,   305,     2,     3,
1638        4,     5,     0,     6,     7,     0,     0,     0,   306,     0,
1639      665,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640        0,     0,     0,     8,    56,    57,    58,    59,    60,    61,
1641       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1642       72,    73,    74,    75,    76,    77,     0,   485,   486,   487,
1643      488,   489,   490,   491,   492,   493,   494,   495,     0,     0,
1644        0,    78,     0,     0,     0,     0,     9,    10,    11,     0,
1645       79,     0,   496,     0,     0,     0,     0,     0,     0,     0,
1646       80,     1,     0,     2,     3,     4,     5,     0,     6,     7,
1647        0,     0,     0,     0,     0,    81,     0,    12,    13,     0,
1648        0,     0,     0,     0,    14,     0,     0,    15,     8,    16,
1649        0,     0,     0,     0,    17,    18,    19,    20,    21,    22,
1650        0,     0,     0,     0,     0,     0,     0,     0,     0,   497,
1651      368,     0,   485,   486,   487,   488,   489,   490,   491,   492,
1652      493,   494,   495,     0,     0,     0,     0,     0,     0,     0,
1653        0,     9,    10,    11,     1,     0,     2,     3,     4,     5,
1654        0,     6,     7,     0,     0,     0,     0,     0,     0,     0,
1655        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1656        0,     8,    12,    13,     0,     0,     0,     0,     0,    14,
1657        0,     0,    15,     0,    16,     0,     0,     0,     0,    17,
1658       18,    19,    20,    21,    22,     0,     0,     0,     0,     0,
1659        0,     0,     0,     0,   497,   368,     0,     0,     0,     0,
1660        0,     0,     0,     0,     9,    10,    11,     1,     0,     2,
1661        3,     4,     5,     0,     6,     7,     0,     0,     0,     0,
1662        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663        0,     0,     0,     0,     8,    12,    13,     0,     0,     0,
1664        0,     0,    14,     0,     0,    15,   244,    16,     0,     0,
1665        0,     0,    17,    18,    19,    20,    21,    22,     0,     0,
1666        0,     0,     1,     0,     2,     3,     4,     5,   228,     6,
1667        7,     0,     0,     0,     0,     0,     0,     9,    10,    11,
1668        0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
1669        1,     0,     2,     3,     4,     5,     0,     6,     7,     0,
1670        0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
1671        0,     0,     0,     0,     0,    14,     0,     8,    15,   276,
1672       16,     0,     0,     0,     0,    17,    18,    19,    20,    21,
1673       22,     0,     9,    10,    11,     0,     0,     0,     0,     0,
1674        0,   228,     0,     0,     0,     0,     0,     0,     0,     0,
1675        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1676        9,    10,    11,    12,    13,     0,     0,     0,     0,     0,
1677       14,     0,     0,    15,     0,    16,     0,     0,     0,     0,
1678       17,    18,    19,    20,    21,    22,     0,     0,     0,     0,
1679        0,    12,    13,     0,     0,     0,   228,     0,    14,     0,
1680        0,    15,     1,    16,     2,     3,     4,     0,    17,    18,
1681       19,    20,    21,    22,     0,     0,     0,     0,     0,     0,
1682        0,     0,     0,     0,   691,     0,     0,     0,     0,     8,
1683       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1684       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1685       76,    77,     0,     0,     0,     1,     0,     2,     3,     4,
1686        5,     0,     6,     7,     0,     0,     0,    78,     0,   302,
1687        0,     0,     9,    10,     0,   163,    79,     0,     0,   303,
1688      164,     0,     8,     0,     0,     0,    80,     0,     0,     1,
1689        0,     2,     3,     4,     5,     0,     6,     7,     0,     0,
1690        0,    81,     0,    12,    13,     0,     0,     0,     0,     0,
1691        0,   165,   166,   304,     0,    16,     8,     0,     0,     0,
1692        0,   169,     0,     0,   305,     9,    10,    11,     0,     0,
1693        0,     0,     0,     0,     0,   306,     0,     0,     0,     0,
1694        0,     0,     0,     1,     0,     2,     3,     4,     5,     0,
1695        6,     7,     0,     0,     0,     0,    12,    13,     0,     9,
1696       10,    11,     0,    14,     0,     0,    15,   655,    16,     0,
1697        8,     0,     0,    17,    18,    19,    20,    21,    22,     0,
1698        0,     0,     0,     0,     0,     0,     0,     0,   497,     0,
1699       12,    13,     0,     0,     0,     0,     0,    14,     0,     0,
1700       15,   687,    16,     0,     0,     0,     0,    17,    18,    19,
1701       20,    21,    22,     9,    10,    11,     0,     0,     0,     0,
1702        0,     0,   497,     0,     0,     0,     0,     0,     0,     0,
1703        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1704        0,     0,     0,     0,    12,    13,     0,     0,     0,     0,
1705        0,    14,     2,     0,    15,     0,    16,     0,     0,     0,
1706        0,    17,    18,    19,    20,    21,    22,     0,     0,     0,
1707        0,     0,     0,     0,     0,     0,   603,     8,    56,    57,
1708       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1709       68,    69,    70,    71,    72,    73,    74,    75,    76,   410,
1710        0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
1711        0,     2,     3,     4,     5,    78,     6,     7,     0,     0,
1712        0,     0,     0,   163,    79,     0,     0,     0,   164,     0,
1713        0,     0,     0,     0,    80,     0,     8,     0,     0,     0,
1714        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
1715        0,     0,     0,     0,     0,     0,     0,     0,     0,   165,
1716      166,   215,     2,     0,     0,   216,     0,     0,     0,   169,
1717        0,     0,     0,     0,     0,     0,     0,     0,     0,     9,
1718       10,    11,     0,     0,   543,     0,     0,     8,    56,    57,
1719       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1720       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1721       12,    13,     0,     0,     0,     0,     0,    14,     0,     0,
1722       15,    99,    16,     0,     0,    78,     0,    17,    18,    19,
1723       20,    21,    22,   163,    79,     0,     0,     0,   164,     0,
1724        0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
1725        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
1726        0,     0,     0,     0,     0,     0,     0,     0,     0,   165,
1727      166,   426,     2,     0,     0,     0,     0,     0,     0,   169,
1728        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1729        0,   427,     0,   428,     0,     0,     0,     8,    56,    57,
1730       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1731       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1732        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1733        0,     0,     0,     0,     0,    78,     0,     0,     0,     0,
1734        0,     0,     0,   163,    79,     0,     0,     0,   164,     0,
1735        0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
1736        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
1737        0,     0,     0,     0,     0,     0,     0,     0,     0,   165,
1738      166,   365,     0,     1,     0,     2,     3,     4,     5,   169,
1739        6,     7,     0,     0,     0,     0,     0,     0,     0,     0,
1740        0,     0,     0,   608,     0,     0,     0,     0,     0,     0,
1741        8,     0,     0,     0,     0,     0,    61,    62,    63,    64,
1742       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1743       75,    76,    77,     0,     0,     0,     0,     0,     0,     0,
1744        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1745        0,     0,     0,     9,    10,    11,   163,    79,     0,     0,
1746        0,   164,     0,     0,     0,     0,     0,    80,     0,     0,
1747        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1748        0,     0,    81,     0,    12,    13,     0,     0,     0,     0,
1749        0,    14,   165,   166,   419,    99,    16,     0,     0,     0,
1750        0,    17,   420,    19,    20,    21,    22,     1,     0,     2,
1751        3,     4,     5,     0,     6,     7,     0,     0,     0,     0,
1752        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753        0,     0,     0,     0,     8,     0,     0,     0,     0,     0,
1754       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1755       71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
1756        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757        0,     0,    78,     0,     0,     0,     0,     9,    10,    11,
1758        0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
1759        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1760        0,     0,     0,     0,     0,     0,    81,     0,    12,    13,
1761        0,     0,     0,     0,     0,    14,     0,     0,    15,    99,
1762       16,     0,     0,     0,     0,    17,    18,    19,    20,    21,
1763       22,     1,     0,     2,     3,     4,     5,     0,     6,     7,
1764        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765        0,     0,     0,     0,     0,     0,     0,     0,     8,     0,
1766        0,     0,     0,     0,    61,    62,    63,    64,    65,    66,
1767       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1768       77,     0,     0,     0,     0,     1,     0,     2,     3,     4,
1769        5,     0,     6,     7,     0,     0,    78,     0,     0,     0,
1770        0,     9,    10,    11,     0,    79,     0,     0,     0,     0,
1771        0,     0,     8,     0,     0,    80,     0,     0,     1,     0,
1772        2,     3,     4,     5,     0,     6,     7,     0,     0,     0,
1773       81,     0,    12,    13,     0,     0,     0,     0,     0,    14,
1774        0,     0,    53,    99,    16,     8,     0,     0,     0,    17,
1775       18,    19,    20,    21,    22,     9,    10,    11,   163,     0,
1776        0,     0,     0,   164,     0,     0,     0,     0,     0,     0,
1777        0,     0,     1,     0,     2,     3,     4,     5,     0,     6,
1778        7,     0,     0,     0,     0,     0,    12,    13,     9,    10,
1779       11,     0,     0,    14,   165,   166,   419,    99,    16,     8,
1780        0,     0,     0,    17,   420,    19,    20,    21,    22,     0,
1781        0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
1782       13,     0,     0,     0,     0,     0,    14,     0,     0,    15,
1783        0,    16,     0,     0,   352,     0,    17,    18,    19,    20,
1784       21,    22,     9,    10,    11,     1,     0,     2,     3,     4,
1785        5,     0,     6,     7,     0,     0,     0,     0,     0,     0,
1786        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1787        0,     0,     8,    12,    13,     0,     0,     0,     0,     0,
1788       14,     0,     0,    15,     0,    16,     0,     0,   479,     0,
1789       17,    18,    19,    20,    21,    22,     0,     0,     0,     1,
1790        0,     2,     3,     4,     5,     0,     6,     7,     0,     0,
1791        0,     0,     0,     0,     0,     9,    10,    11,     0,     0,
1792        0,     0,     0,     0,     0,     1,     8,     2,     3,     4,
1793        5,     0,     6,     7,     0,     0,     0,     0,     0,     0,
1794        0,     0,     0,     0,     0,     0,    12,    13,     0,     0,
1795        0,     0,     8,    14,     0,     0,    15,     0,    16,     0,
1796        0,   571,     0,    17,    18,    19,    20,    21,    22,     9,
1797       10,    11,     0,     0,     0,     0,     0,     0,     0,     1,
1798        0,     2,     3,     4,     5,     0,     6,     7,     0,     0,
1799        0,     0,     0,     0,     0,     9,    10,    11,     0,     0,
1800       12,    13,     0,     0,     0,     0,     8,    14,     0,     0,
1801       15,   652,    16,     0,     0,     0,     0,    17,    18,    19,
1802       20,    21,    22,     0,     0,     0,    12,    13,     0,     0,
1803        0,     0,     0,    14,     0,     0,    15,   712,    16,     0,
1804        0,     0,     0,    17,    18,    19,    20,    21,    22,     9,
1805       10,    11,     1,     0,     2,     3,     4,     5,     0,     6,
1806        7,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1807        0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
1808       12,    13,     0,     0,     0,     0,     0,    14,     0,     0,
1809       15,     0,    16,     0,     0,     0,     0,    17,    18,    19,
1810       20,    21,    22,     0,     0,     0,     1,     0,     2,     3,
1811        4,     5,     0,     6,     7,     0,     0,     0,     0,     0,
1812        0,     0,     9,    10,    11,     0,     0,     0,     0,     0,
1813        0,     0,     1,     8,     2,     3,     4,     5,     0,     6,
1814        7,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815        0,     0,     0,    12,    13,     0,     0,     0,     0,     8,
1816       14,     0,     0,    48,     0,    16,     0,     0,     0,     0,
1817       17,    18,    19,    20,    21,    22,     9,    10,    11,     0,
1818        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1819        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1820        0,     0,     9,    10,    11,     0,     0,    12,    13,     0,
1821        0,     0,     0,     0,    14,     0,     0,    53,     0,    16,
1822        0,     0,     0,     0,    17,    18,    19,    20,    21,    22,
1823        0,     2,     0,    12,    13,     0,     0,     0,     0,     0,
1824       14,     0,     0,    97,     0,    16,     0,     0,     0,     0,
1825       17,    18,    19,    20,    21,    22,     8,    56,    57,    58,
1826       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1827       69,    70,    71,    72,    73,    74,    75,    76,    77,     0,
1828        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829        0,     0,     0,     0,    78,     0,     0,     0,     0,     0,
1830        0,     0,   163,    79,     0,     0,     0,   164,     0,     0,
1831        0,     0,     0,    80,     0,     0,     0,     0,     0,     0,
1832        0,     0,     0,     0,     2,     0,     0,     0,    81,     0,
1833        0,     0,     0,     0,     0,     0,     0,     0,   165,   166,
1834      391,   349,     0,     0,   216,     0,     0,     0,   169,     8,
1835       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1836       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1837       76,    77,     0,     0,     0,     0,     0,     0,     0,     0,
1838        0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
1839        0,     0,     0,     0,     0,   163,    79,     0,     0,     0,
1840      164,     0,     0,     0,     0,     0,    80,     0,     0,     0,
1841        0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
1842        0,    81,     0,     0,     0,     0,     0,     0,     0,     0,
1843        0,   165,   166,   391,     0,     0,     0,   216,     0,     0,
1844        0,   169,     8,    56,    57,    58,    59,    60,    61,    62,
1845       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1846       73,    74,    75,    76,    77,     0,     0,     0,     0,     0,
1847        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1848       78,     0,     0,     0,     0,     0,     0,     0,   163,    79,
1849        0,     0,     0,   164,     0,     0,     0,     0,     0,    80,
1850        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851        2,     0,     0,     0,    81,     0,     0,     0,     0,     0,
1852        0,     0,     0,     0,   165,   166,   365,     0,     0,     0,
1853        0,     0,     0,     0,   169,     8,    56,    57,    58,    59,
1854       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1855       70,    71,    72,    73,    74,    75,    76,    77,     0,     0,
1856        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1857        0,     0,     0,    78,     0,     0,     0,     0,     0,     0,
1858        0,     0,    79,     0,     0,     0,     0,     0,     0,     0,
1859        0,     0,    80,     0,     0,     0,     0,     0,     0,     0,
1860        0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
1861        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1862      445,     8,    56,    57,    58,    59,    60,    61,    62,    63,
1863       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1864       74,    75,    76,    77,     0,     0,     0,     0,     0,     0,
1865        0,     0,     0,     0,     0,     0,     0,     0,     0,    78,
1866        0,     0,     0,     0,     0,     0,     0,   163,    79,     0,
1867        0,     0,   164,     0,     0,     0,     0,     0,    80,     0,
1868        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1869        0,     0,     0,    81,     0,     0,     0,     0,     0,     0,
1870        0,     0,     0,   165,   166,   215,   349,     0,     0,   216,
1871        0,     0,     0,   169,     8,    56,    57,    58,    59,    60,
1872       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1873       71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
1874        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1875        0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
1876      163,    79,     0,     0,     0,   164,     0,     0,     0,     0,
1877        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1878        0,     0,     0,     0,     0,     0,    81,     0,     0,     0,
1879        0,     0,     0,     0,     0,     0,   165,   166,   167,     0,
1880        0,     0,   168,     0,     0,     0,   169,     8,    56,    57,
1881       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1882       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1883        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1884        0,     0,     0,     0,     0,    78,     0,     0,     0,     0,
1885        0,     0,     0,   163,    79,     0,     0,     0,   164,     0,
1886        0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
1887        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
1888        0,     0,     0,     0,     0,     0,     0,     0,     0,   165,
1889      166,   167,     0,     0,     0,   208,     0,     0,     0,   169,
1890        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1891       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1892       75,    76,    77,     0,     0,     0,     0,     0,     0,     0,
1893        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1894        0,     0,     0,     0,     0,     0,   163,    79,     0,     0,
1895        0,   164,     0,     0,     0,     0,     0,    80,     0,     0,
1896        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897        0,     0,    81,     0,     0,     0,     0,     0,     0,     0,
1898        0,     0,   165,   166,   167,   286,     0,     0,     0,     0,
1899        0,     0,   169,     8,    56,    57,    58,    59,    60,   185,
1900      186,   187,   188,   189,   190,   191,   192,   193,   194,    71,
1901       72,   195,   196,    75,    76,    77,     0,     0,     0,     0,
1902        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1903        0,   197,     0,     0,     0,     0,     0,     0,     0,   163,
1904       79,     0,     0,     0,   164,     0,     0,     0,     0,     0,
1905        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1906        0,     0,     0,     0,     0,   198,     0,     0,     0,     0,
1907        0,     0,     0,     0,     0,   165,   166,   167,     0,     0,
1908        0,   335,     0,     0,     0,   169,     8,    56,    57,    58,
1909       59,    60,   185,   186,   187,   188,   189,   190,   191,   192,
1910      193,   194,    71,    72,   195,   196,    75,    76,    77,     0,
1911        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1912        0,     0,     0,     0,   197,     0,     0,     0,     0,     0,
1913        0,     0,   163,    79,     8,     0,     0,   164,     0,     0,
1914       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1915       71,    72,    73,    74,    75,    76,    77,     0,   198,     0,
1916        0,     0,     0,     0,     0,     0,     0,     0,   165,   166,
1917      167,     0,    78,     0,   344,     0,     0,     0,   169,     0,
1918      163,    79,     0,     0,     0,   164,     0,     0,     0,     0,
1919        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1920        0,     0,     0,     0,     0,     0,    81,     0,     0,     0,
1921        0,     0,     0,     0,     0,     0,   165,   166,   215,     0,
1922        0,     0,   216,     0,     0,     0,   169,     8,    56,    57,
1923       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1924       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1925        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1926        0,     0,     0,     0,     0,    78,     0,     0,     0,     0,
1927        0,     0,     0,     0,    79,     0,     0,     0,     0,     0,
1928        0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
1929        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
1930        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1931        0,     0,   407,     8,    56,    57,    58,    59,    60,    61,
1932       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1933       72,    73,    74,    75,    76,    77,     0,     0,     0,     0,
1934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1935        0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
1936       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1937       80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1938        0,     0,     0,     0,     0,    81,     0,     0,     0,     0,
1939        0,     0,     0,     0,     0,     0,     0,     0,   477,     8,
1940       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1941       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1942       76,    77,     0,     0,     0,     0,     0,     0,     0,     0,
1943        0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
1944        0,     0,     0,     0,     0,     0,    79,     0,     0,     0,
1945        0,     0,     0,     0,     0,     0,    80,     0,     0,     0,
1946        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1947        0,    81,     0,     0,     0,     0,     0,     0,     0,     0,
1948        0,     0,     0,   556,     8,    56,    57,    58,    59,    60,
1949       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1950       71,    72,    73,    74,    75,    76,    77,   528,     0,     0,
1951        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1952        0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
1953        0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
1954        0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
1955        0,     0,     0,     0,     0,     0,    81,     8,    56,    57,
1956       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1957       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1958        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1959        0,     0,     0,     0,     0,    78,     0,     0,     0,     0,
1960        0,     0,     0,     0,    79,     0,     0,     0,     0,     0,
1961        0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
1962        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
1963        8,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1964       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1965       75,    76,   410,     0,     0,     0,     0,     0,     0,     0,
1966        0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
1967        0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
1968        0,     0,     0,     0,     0,     0,     0,    80,     0,     0,
1969        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1970        0,     0,    81,     8,    56,    57,    58,    59,    60,   185,
1971      186,   187,   188,   189,   190,   191,   192,   193,   194,    71,
1972       72,   195,   196,    75,    76,    77,     0,     0,     0,     0,
1973        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974        0,   197,     0,     0,     0,     0,     0,     0,     0,     0,
1975       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1976        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1977        0,     0,     0,     0,     0,   198
1978 };
1979
1980 static const yytype_int16 yycheck[] =
1981 {
1982        0,     0,    15,   287,   149,   369,     6,     7,   102,    16,
1983      233,   217,   369,    17,    15,    15,   114,    94,   224,    96,
1984        3,   538,     9,     3,    10,    12,   310,    13,   364,   312,
1985      128,    69,    77,    69,     7,     8,     9,     3,    69,    70,
1986       53,     3,    69,   167,    89,    28,    69,    48,    48,    94,
1987       48,    96,    70,    53,    70,   599,   329,   330,   156,     3,
1988      333,   171,   691,   118,   199,    29,    28,   118,     3,     5,
1989      180,   135,    13,   117,   302,   210,   118,    69,    70,   134,
1990      303,    82,   110,   228,    28,   136,   118,   310,     3,   425,
1991      132,   135,    15,    94,    95,    96,    97,    97,   136,    97,
1992      136,   102,   134,   116,   733,   136,    16,   624,   132,   136,
1993        5,   135,   656,   136,   114,   114,   116,    82,   136,    14,
1994      136,   149,   199,   110,   110,    48,   398,   131,   128,   128,
1995       95,   121,   122,   210,   119,   148,     3,   102,   183,   112,
1996      504,   505,   115,   116,   136,   158,   112,   504,   148,     3,
1997      356,   423,   135,   181,   199,   135,   156,   156,   158,    82,
1998      133,    28,   149,   149,   436,   210,   130,   131,   132,   490,
1999      129,    94,    95,    96,    97,   299,   459,   112,   461,   102,
2000      167,   464,   168,   411,   505,   120,   392,   297,     3,   462,
2001      463,   135,   398,   287,   417,   319,   130,   112,   199,    70,
2002      228,   116,   167,   117,   169,   120,   171,    74,    70,   210,
2003       12,    13,    79,   241,   214,   214,   112,   501,   135,   226,
2004       74,   135,   208,    82,   120,    79,   113,   168,   215,   117,
2005      216,   118,   233,   357,   199,    94,    95,    96,   112,    69,
2006       70,   228,   228,   110,   111,   210,   519,   135,   521,   613,
2007      215,     5,   217,   525,   241,   241,   110,   111,   112,    74,
2008       14,   225,    44,    45,    79,   136,   120,   208,   135,     0,
2009       94,   113,    96,   594,   136,   216,   199,   115,   132,   563,
2010        3,   379,   554,   135,   312,   606,   287,   210,   113,    79,
2011      562,   304,   613,    75,   113,   110,   111,   112,   581,   582,
2012      135,   329,   330,   112,   304,   333,   136,   116,    28,   310,
2013      233,   120,   299,     3,   300,   112,   303,   411,   305,   525,
2014      110,   111,   287,    69,    70,   127,   128,   648,   112,   294,
2015      118,   652,   319,    95,   655,   618,   619,   118,   120,   304,
2016      199,   116,   132,   371,   112,   310,   311,   112,   136,   335,
2017      135,   210,   118,   134,     7,     8,     9,   343,   344,   300,
2018      681,   682,   135,   684,   287,   410,   687,   118,   134,   369,
2019      357,   416,   358,   116,   233,   199,   118,   661,   364,   379,
2020      379,   113,   369,   134,    74,   371,   210,   310,   113,    79,
2021      136,   712,   134,   118,   335,   381,    10,    11,   113,   385,
2022      365,     3,   343,   344,   391,   167,   419,   135,   729,    14,
2023       15,   732,     3,   441,   401,   560,   417,   358,   419,   419,
2024      110,   111,   112,   424,   118,   136,   391,   392,   287,   118,
2025      120,   459,   136,   461,   462,   463,   464,   199,   133,   425,
2026      134,   427,   136,   302,   385,   134,   411,   136,   210,   112,
2027      118,   310,   113,   116,   419,   420,   421,   118,   444,   112,
2028      117,   426,   115,   116,   120,   430,   117,   118,   113,   125,
2029      126,   181,    74,   118,   113,   117,   118,    79,   113,   118,
2030      133,   467,   495,    74,   113,   471,   427,   113,    79,   118,
2031      490,   519,   118,   521,   417,   495,   419,   113,     3,   485,
2032      501,   424,   118,   444,   504,   505,   551,   113,   110,   111,
2033      112,   112,   118,   113,   116,     3,   113,   504,   505,   110,
2034      111,   112,   113,    28,   134,   135,   467,   134,   113,   120,
2035      471,   112,   560,   118,    77,   116,   501,   133,   134,    44,
2036       28,     7,     8,     9,   485,   134,    89,   135,   136,     7,
2037        8,     9,   411,   581,   582,   112,    44,   135,   417,   116,
2038      137,   138,   139,   140,   135,   424,   141,   142,   111,    74,
2039       75,   116,   115,   560,   560,   283,   284,   117,   501,   565,
2040      116,   113,   595,   596,   597,   113,    74,    75,   117,   136,
2041      618,   619,   136,   113,   594,   595,   596,   597,   563,   599,
2042      117,   113,   312,   113,   135,   135,   606,   113,   113,   622,
2043      153,   132,   113,   613,   157,   117,   159,   117,     3,   329,
2044      330,   117,   622,   333,   565,   117,   613,    18,    19,    20,
2045       21,    22,    23,    24,    25,    26,    27,   112,   181,   112,
2046      183,   112,   501,    28,   112,   134,   112,   134,   648,   115,
2047      116,   136,   652,   134,   112,   655,   656,   115,   116,   113,
2048      112,   135,   113,   663,   663,   135,   135,   117,   117,   117,
2049      132,   134,   685,   659,     3,   688,    15,    56,   133,   113,
2050      133,   681,   682,   112,   684,   685,   132,   687,   688,    74,
2051      233,   691,   691,   679,    79,   135,   661,   136,   135,    28,
2052      135,     1,   134,     3,     4,     5,    64,   134,   136,    48,
2053      136,   136,   712,   136,   136,    44,   136,   136,   659,   136,
2054      156,    14,   143,   147,    96,   110,   111,   145,    28,   729,
2055      144,   146,   732,   733,   733,   661,   433,   563,   679,   441,
2056      283,   284,   133,    82,   287,    74,    75,   401,   386,   459,
2057      241,   461,   462,   463,   464,   504,    95,   241,    97,   371,
2058      303,   304,   241,   102,    -1,    44,    45,   310,   311,   312,
2059       -1,    71,    72,    -1,    -1,    -1,   319,    -1,   321,    -1,
2060       -1,    -1,    -1,    -1,   113,    -1,   329,   330,    -1,   118,
2061      333,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2062       79,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   519,
2063       -1,   521,   112,    -1,   114,    -1,    -1,    -1,    -1,    -1,
2064       -1,    -1,   365,    -1,    -1,    -1,   369,    82,    -1,    -1,
2065       -1,   110,   111,    -1,    89,    -1,    -1,   236,    -1,    -1,
2066       95,   120,    -1,   386,    -1,    -1,    -1,   102,   391,   392,
2067       -1,    -1,    -1,    -1,    -1,   398,    -1,    -1,    -1,    -1,
2068       -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,   411,    -1,
2069       -1,   581,   582,   416,   417,    -1,   419,    -1,   421,    -1,
2070      423,    -1,    -1,   426,    -1,    -1,    -1,   430,    -1,    -1,
2071       -1,    -1,    -1,   436,   233,   438,    -1,    -1,    -1,    -1,
2072       -1,     9,    -1,    -1,    12,    -1,   449,    15,   618,   619,
2073       -1,    -1,   167,    -1,    -1,    -1,   459,    -1,   461,   462,
2074      463,   464,    -1,    -1,    -1,   324,   325,   326,   327,    -1,
2075       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2076       48,    -1,    -1,    -1,   199,    -1,    -1,   490,   287,   492,
2077       -1,    -1,    -1,   496,    -1,   210,    -1,    -1,   501,    -1,
2078      215,   504,   505,   302,    -1,    -1,    -1,    -1,    -1,    -1,
2079       -1,   310,    -1,    -1,    82,    -1,   519,    -1,   521,    -1,
2080       -1,    -1,   525,   526,    -1,    -1,    -1,    95,    -1,    97,
2081       -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,    -1,    -1,
2082       -1,    -1,   110,    -1,    -1,    -1,   549,    -1,   551,    -1,
2083       -1,   554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   562,
2084      563,    -1,    -1,    -1,   567,    -1,    -1,    -1,    -1,    -1,
2085       -1,    -1,   287,   576,    15,    -1,    -1,    -1,   581,   582,
2086       -1,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   304,
2087       -1,   594,    -1,    -1,   162,   310,    -1,    -1,    -1,   167,
2088       -1,    -1,    -1,   606,    -1,    -1,   321,    48,    -1,    -1,
2089      613,    -1,   411,   181,    -1,   618,   619,    -1,   417,    -1,
2090      419,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,
2091       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2092       -1,    82,    -1,    -1,    -1,   648,    -1,   215,   216,   652,
2093      365,    -1,   655,    94,    95,    96,    97,    -1,   661,    -1,
2094      228,   102,    -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,
2095       -1,    -1,    -1,   241,    -1,    -1,   391,    -1,   681,   682,
2096       -1,   684,    -1,   398,   687,    -1,    -1,    -1,    -1,    -1,
2097       -1,    -1,    -1,    -1,    -1,    -1,   411,    -1,    -1,    -1,
2098       -1,   416,   501,    -1,   419,    -1,    -1,    -1,   423,   712,
2099       -1,   426,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
2100       -1,   436,    -1,    -1,    -1,    -1,   729,    -1,   169,   732,
2101       -1,   299,    -1,    -1,   302,   303,    -1,   305,    -1,    -1,
2102       -1,    -1,   310,    -1,   312,    -1,    -1,    -1,    -1,    -1,
2103       -1,   319,    -1,    -1,    -1,    -1,    -1,    -1,   199,    -1,
2104       -1,   329,   330,    -1,    -1,   333,   334,   626,   627,   210,
2105       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2106       -1,   287,    -1,    -1,    -1,    -1,   501,    -1,    -1,   357,
2107      358,    -1,   233,    -1,    -1,    -1,    -1,    -1,   304,    -1,
2108       -1,   369,    -1,    -1,   310,    -1,    -1,    -1,    -1,    -1,
2109      525,    -1,   671,   672,    -1,   674,   675,    -1,    -1,    -1,
2110       -1,    -1,    -1,   391,    -1,    -1,    -1,    -1,    -1,    -1,
2111       -1,    -1,    -1,   401,    -1,    -1,   695,    -1,   697,   554,
2112       -1,    -1,    -1,   411,   703,   704,   287,   562,   563,   417,
2113       -1,   419,    -1,   294,   287,    -1,   424,    -1,    -1,   365,
2114      719,   302,   721,    -1,   723,    -1,   725,    -1,    -1,   310,
2115       -1,   304,    -1,    -1,    -1,    -1,   444,   310,   311,    -1,
2116       -1,    -1,   741,    -1,   743,   391,   392,    -1,   321,    -1,
2117       -1,   459,   398,   461,   462,   463,   464,    -1,    -1,    -1,
2118       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2119       -1,    -1,    -1,   419,    -1,   421,    -1,   423,    -1,    -1,
2120      426,    -1,    -1,    -1,   430,    -1,    -1,    -1,    -1,    -1,
2121      436,    -1,   365,   501,    -1,    -1,   504,   505,    -1,    -1,
2122       -1,    -1,    -1,    -1,    -1,    -1,   661,    -1,    -1,    -1,
2123       -1,   519,    -1,   521,    -1,    -1,    -1,    -1,   391,   392,
2124       -1,    -1,    -1,    -1,     1,   398,     3,     4,     5,     6,
2125      411,     8,     9,    -1,    -1,    -1,   417,    -1,   419,   420,
2126       -1,    -1,    -1,   424,    -1,    -1,   419,    -1,   421,    -1,
2127      423,    28,   560,   426,    -1,   501,    -1,   430,    -1,    -1,
2128       -1,    -1,    -1,   436,    -1,   438,    -1,    -1,    -1,    -1,
2129       -1,    -1,    -1,   581,   582,    -1,   449,    -1,    -1,   525,
2130      526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2131       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
2132       -1,    -1,    -1,    -1,    -1,   613,    -1,    -1,   554,    -1,
2133      618,   619,    -1,    -1,    -1,    -1,   562,   563,    -1,    -1,
2134      501,   567,    -1,    -1,    -1,   102,   103,    -1,   501,    -1,
2135       -1,    -1,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,
2136       -1,    -1,   119,   120,   121,   122,   123,   124,    -1,    -1,
2137       -1,    -1,   525,   526,    -1,    -1,    -1,    -1,   135,   136,
2138       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2139       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2140       -1,   554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   562,
2141      563,    -1,    -1,     1,   567,     3,     4,     5,     6,    -1,
2142        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2143       -1,    -1,    -1,    -1,    -1,   661,    -1,    -1,    -1,    -1,
2144       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2145       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2146       48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
2147       58,    59,    60,    61,    62,    -1,    -1,    -1,    66,    -1,
2148       -1,    -1,    -1,    71,    72,    73,    -1,    75,    -1,    77,
2149       -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2150       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,    -1,
2151       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2152       -1,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,
2153       -1,   119,   120,   121,   122,   123,   124,     1,    -1,     3,
2154        4,     5,     6,    -1,     8,     9,   134,   135,   136,    -1,
2155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2156       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2157       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2158       44,    45,    46,    47,    48,    49,    50,    -1,    52,    53,
2159       54,    55,    56,    57,    58,    59,    60,    61,    62,    -1,
2160       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2161       -1,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
2162       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2163       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2164       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
2165      114,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
2166      124,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2167      134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2168       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2169       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2170       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2171       50,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2172       60,    61,    62,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2173       -1,    71,    72,    73,    -1,    75,    -1,    77,    -1,    -1,
2174       -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,
2175       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2176      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2177       -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,   119,
2178      120,   121,   122,   123,   124,     1,    -1,     3,     4,     5,
2179        6,    -1,     8,     9,   134,   135,   136,    -1,    -1,    -1,
2180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2181       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2182       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2183       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2184       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2185       66,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    75,
2186       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
2187       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2188       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2189       -1,    -1,    -1,   109,    -1,    -1,   112,    -1,   114,    -1,
2190       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,     1,
2191       -1,     3,     4,     5,     6,    -1,     8,     9,   134,   135,
2192      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2193       -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
2194       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2195       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2196       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2197       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
2198       72,    73,    -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,
2199       -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,
2200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2201      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2202      112,    -1,   114,    -1,    -1,    -1,    -1,   119,   120,   121,
2203      122,   123,   124,     1,    -1,     3,     4,     5,     6,    -1,
2204        8,     9,   134,   135,   136,    -1,    -1,    -1,    -1,    -1,
2205       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2206       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2207       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2208       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2209       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2210       -1,    -1,    -1,    71,    72,    73,    -1,    75,    -1,    -1,
2211       -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2212       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2213       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2214       -1,   109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,
2215       -1,   119,   120,   121,   122,   123,   124,     1,    -1,     3,
2216        4,     5,     6,    -1,     8,     9,   134,   135,   136,    -1,
2217       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2218       -1,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2219       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2220       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2222       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2223       -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2224       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2225       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2226       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,
2227      114,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
2228      124,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2229      134,   135,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
2231       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2232       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2233       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2234       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
2235       -1,    71,    72,    73,    -1,    75,    -1,    -1,    -1,    -1,
2236       -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,
2237       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2238      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2239       -1,    -1,   112,     1,   114,     3,     4,     5,    -1,   119,
2240      120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,
2241       -1,    -1,    -1,    -1,   134,   135,   136,    -1,    -1,    -1,
2242       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2243       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2244       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2245       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2246       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2247       78,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2248       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2249       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2250       -1,    -1,   110,   111,   112,     1,   114,     3,     4,     5,
2251       -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
2252       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2253       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2254       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2255       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2256       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2257       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2258       -1,    -1,    78,    79,    -1,    -1,    -1,    -1,    -1,    85,
2259       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2260       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2261       -1,    -1,    -1,    -1,   110,   111,   112,     1,   114,     3,
2262        4,     5,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
2263       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2264      136,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2265       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2266       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2267       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2268       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2269       74,    75,    -1,    -1,    78,    79,    -1,    -1,    -1,    -1,
2270       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2271       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2272       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,     1,
2273      114,     3,     4,     5,    -1,    -1,   120,    -1,    -1,   123,
2274       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2275      134,    -1,   136,    -1,    -1,    -1,    28,    29,    30,    31,
2276       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2277       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2278       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2279       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2280       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2281       -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,
2282       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2283      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2284      112,     1,   114,     3,     4,     5,    -1,    -1,   120,    -1,
2285       -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2286       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    28,    29,
2287       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2288       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2289       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2290       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2291       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2292       -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,
2293       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2294      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2295      110,   111,   112,     1,   114,     3,     4,     5,    -1,    -1,
2296      120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,
2297       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2298       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2299       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2300       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2301       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2302       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2303       78,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2304       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2305       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2306       -1,    -1,   110,   111,   112,     1,   114,     3,     4,     5,
2307       -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
2308       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2309       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2310       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2311       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2312       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2313       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2314       -1,    -1,    78,    79,    -1,    -1,    -1,    -1,    -1,    85,
2315       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2316       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2317       -1,    -1,    -1,    -1,   110,   111,   112,     1,   114,     3,
2318        4,     5,    -1,    -1,   120,    -1,    -1,   123,    -1,    -1,
2319       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2320      136,    -1,    -1,    -1,    28,    29,    30,    31,    32,    33,
2321       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2322       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2323       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2324       -1,    -1,    66,    -1,    68,    -1,    -1,    71,    72,    -1,
2325       74,    75,    -1,    -1,    78,    79,    -1,    -1,    -1,    -1,
2326       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2327       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2328       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,     1,
2329      114,     3,     4,     5,    -1,    -1,   120,    -1,    -1,   123,
2330       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2331      134,    -1,   136,    -1,    -1,    -1,    28,    29,    30,    31,
2332       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2333       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2334       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2335       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    71,
2336       72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
2337       -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,
2338       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
2339      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2340      112,     1,   114,     3,     4,     5,    -1,    -1,   120,    -1,
2341       -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2342       -1,    -1,   134,    -1,   136,    -1,    -1,    -1,    28,    29,
2343       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2344       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2345       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2346       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
2347       -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,    79,
2348       -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,
2349       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2350      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2351      110,   111,   112,     1,   114,     3,     4,     5,    -1,    -1,
2352      120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,    -1,
2353       -1,    -1,    -1,    -1,   134,    -1,   136,    -1,    -1,    -1,
2354       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2355       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2356       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2357       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2358       68,    -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,
2359       78,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2361       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2362       -1,    -1,   110,   111,   112,     1,   114,     3,     4,     5,
2363       -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
2364       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,   136,    -1,
2365       -1,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
2366       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2367       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2369       66,    -1,    68,    -1,    -1,    71,    72,    -1,    74,    75,
2370       -1,    -1,    78,    79,    -1,    -1,    -1,    -1,    -1,    85,
2371       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2372       -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,    -1,
2373       -1,    -1,    -1,    -1,   110,   111,   112,    -1,   114,    -1,
2374       -1,    -1,    -1,    -1,   120,    -1,     1,   123,     3,     4,
2375        5,     6,    -1,     8,     9,    -1,    -1,    -1,   134,    -1,
2376      136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2377       -1,    -1,    -1,    28,    29,    30,    31,    32,    33,    34,
2378       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2379       45,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
2380       55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
2381       -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
2382       75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2383       85,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2384       -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,    -1,
2385       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    28,   114,
2386       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
2387       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
2388      135,    -1,    52,    53,    54,    55,    56,    57,    58,    59,
2389       60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2390       -1,    71,    72,    73,     1,    -1,     3,     4,     5,     6,
2391       -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2393       -1,    28,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2394       -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,   119,
2395      120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,
2396       -1,    -1,    -1,    -1,   134,   135,    -1,    -1,    -1,    -1,
2397       -1,    -1,    -1,    -1,    71,    72,    73,     1,    -1,     3,
2398        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2399       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2400       -1,    -1,    -1,    -1,    28,   102,   103,    -1,    -1,    -1,
2401       -1,    -1,   109,    -1,    -1,   112,   113,   114,    -1,    -1,
2402       -1,    -1,   119,   120,   121,   122,   123,   124,    -1,    -1,
2403       -1,    -1,     1,    -1,     3,     4,     5,     6,   135,     8,
2404        9,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    73,
2405       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2406        1,    -1,     3,     4,     5,     6,    -1,     8,     9,    -1,
2407       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,
2408       -1,    -1,    -1,    -1,    -1,   109,    -1,    28,   112,   113,
2409      114,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
2410      124,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2411       -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2412       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2413       71,    72,    73,   102,   103,    -1,    -1,    -1,    -1,    -1,
2414      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
2415      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
2416       -1,   102,   103,    -1,    -1,    -1,   135,    -1,   109,    -1,
2417       -1,   112,     1,   114,     3,     4,     5,    -1,   119,   120,
2418      121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
2419       -1,    -1,    -1,    -1,   135,    -1,    -1,    -1,    -1,    28,
2420       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2421       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2422       49,    50,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2423        6,    -1,     8,     9,    -1,    -1,    -1,    66,    -1,    68,
2424       -1,    -1,    71,    72,    -1,    74,    75,    -1,    -1,    78,
2425       79,    -1,    28,    -1,    -1,    -1,    85,    -1,    -1,     1,
2426       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2427       -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2428       -1,   110,   111,   112,    -1,   114,    28,    -1,    -1,    -1,
2429       -1,   120,    -1,    -1,   123,    71,    72,    73,    -1,    -1,
2430       -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    -1,
2431       -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,
2432        8,     9,    -1,    -1,    -1,    -1,   102,   103,    -1,    71,
2433       72,    73,    -1,   109,    -1,    -1,   112,   113,   114,    -1,
2434       28,    -1,    -1,   119,   120,   121,   122,   123,   124,    -1,
2435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
2436      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2437      112,   113,   114,    -1,    -1,    -1,    -1,   119,   120,   121,
2438      122,   123,   124,    71,    72,    73,    -1,    -1,    -1,    -1,
2439       -1,    -1,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2441       -1,    -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,
2442       -1,   109,     3,    -1,   112,    -1,   114,    -1,    -1,    -1,
2443       -1,   119,   120,   121,   122,   123,   124,    -1,    -1,    -1,
2444       -1,    -1,    -1,    -1,    -1,    -1,   134,    28,    29,    30,
2445       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2446       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2447       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
2448       -1,     3,     4,     5,     6,    66,     8,     9,    -1,    -1,
2449       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
2450       -1,    -1,    -1,    -1,    85,    -1,    28,    -1,    -1,    -1,
2451       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2452       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2453      111,   112,     3,    -1,    -1,   116,    -1,    -1,    -1,   120,
2454       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
2455       72,    73,    -1,    -1,   135,    -1,    -1,    28,    29,    30,
2456       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2457       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2458      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2459      112,   113,   114,    -1,    -1,    66,    -1,   119,   120,   121,
2460      122,   123,   124,    74,    75,    -1,    -1,    -1,    79,    -1,
2461       -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,
2462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2464      111,   112,     3,    -1,    -1,    -1,    -1,    -1,    -1,   120,
2465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2466       -1,   132,    -1,   134,    -1,    -1,    -1,    28,    29,    30,
2467       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2468       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2469       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2470       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2471       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
2472       -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,
2473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2475      111,   112,    -1,     1,    -1,     3,     4,     5,     6,   120,
2476        8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2477       -1,    -1,    -1,   134,    -1,    -1,    -1,    -1,    -1,    -1,
2478       28,    -1,    -1,    -1,    -1,    -1,    34,    35,    36,    37,
2479       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2480       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2482       -1,    -1,    -1,    71,    72,    73,    74,    75,    -1,    -1,
2483       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2484       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2485       -1,    -1,   100,    -1,   102,   103,    -1,    -1,    -1,    -1,
2486       -1,   109,   110,   111,   112,   113,   114,    -1,    -1,    -1,
2487       -1,   119,   120,   121,   122,   123,   124,     1,    -1,     3,
2488        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
2489       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2490       -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
2491       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2492       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2494       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
2495       -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2496       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2497       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,
2498       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,   113,
2499      114,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
2500      124,     1,    -1,     3,     4,     5,     6,    -1,     8,     9,
2501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2502       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
2503       -1,    -1,    -1,    -1,    34,    35,    36,    37,    38,    39,
2504       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2505       50,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2506        6,    -1,     8,     9,    -1,    -1,    66,    -1,    -1,    -1,
2507       -1,    71,    72,    73,    -1,    75,    -1,    -1,    -1,    -1,
2508       -1,    -1,    28,    -1,    -1,    85,    -1,    -1,     1,    -1,
2509        3,     4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,
2510      100,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,   109,
2511       -1,    -1,   112,   113,   114,    28,    -1,    -1,    -1,   119,
2512      120,   121,   122,   123,   124,    71,    72,    73,    74,    -1,
2513       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
2514       -1,    -1,     1,    -1,     3,     4,     5,     6,    -1,     8,
2515        9,    -1,    -1,    -1,    -1,    -1,   102,   103,    71,    72,
2516       73,    -1,    -1,   109,   110,   111,   112,   113,   114,    28,
2517       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    -1,
2518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
2519      103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,   112,
2520       -1,   114,    -1,    -1,   117,    -1,   119,   120,   121,   122,
2521      123,   124,    71,    72,    73,     1,    -1,     3,     4,     5,
2522        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2524       -1,    -1,    28,   102,   103,    -1,    -1,    -1,    -1,    -1,
2525      109,    -1,    -1,   112,    -1,   114,    -1,    -1,   117,    -1,
2526      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,     1,
2527       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2528       -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
2529       -1,    -1,    -1,    -1,    -1,     1,    28,     3,     4,     5,
2530        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,
2531       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,    -1,
2532       -1,    -1,    28,   109,    -1,    -1,   112,    -1,   114,    -1,
2533       -1,   117,    -1,   119,   120,   121,   122,   123,   124,    71,
2534       72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
2535       -1,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
2536       -1,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
2537      102,   103,    -1,    -1,    -1,    -1,    28,   109,    -1,    -1,
2538      112,   113,   114,    -1,    -1,    -1,    -1,   119,   120,   121,
2539      122,   123,   124,    -1,    -1,    -1,   102,   103,    -1,    -1,
2540       -1,    -1,    -1,   109,    -1,    -1,   112,   113,   114,    -1,
2541       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    71,
2542       72,    73,     1,    -1,     3,     4,     5,     6,    -1,     8,
2543        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2544       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2545      102,   103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2546      112,    -1,   114,    -1,    -1,    -1,    -1,   119,   120,   121,
2547      122,   123,   124,    -1,    -1,    -1,     1,    -1,     3,     4,
2548        5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,    -1,
2549       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
2550       -1,    -1,     1,    28,     3,     4,     5,     6,    -1,     8,
2551        9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2552       -1,    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    28,
2553      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
2554      119,   120,   121,   122,   123,   124,    71,    72,    73,    -1,
2555       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2556       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2557       -1,    -1,    71,    72,    73,    -1,    -1,   102,   103,    -1,
2558       -1,    -1,    -1,    -1,   109,    -1,    -1,   112,    -1,   114,
2559       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
2560       -1,     3,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,
2561      109,    -1,    -1,   112,    -1,   114,    -1,    -1,    -1,    -1,
2562      119,   120,   121,   122,   123,   124,    28,    29,    30,    31,
2563       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2564       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2565       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2566       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2567       -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,    -1,
2568       -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,
2569       -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,   100,    -1,
2570       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2571      112,   113,    -1,    -1,   116,    -1,    -1,    -1,   120,    28,
2572       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2573       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2574       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2576       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
2577       79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,
2578       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
2579       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2580       -1,   110,   111,   112,    -1,    -1,    -1,   116,    -1,    -1,
2581       -1,   120,    28,    29,    30,    31,    32,    33,    34,    35,
2582       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2583       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
2584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2585       66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
2586       -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,
2587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2588        3,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,
2589       -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,    -1,
2590       -1,    -1,    -1,    -1,   120,    28,    29,    30,    31,    32,
2591       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2592       43,    44,    45,    46,    47,    48,    49,    50,    -1,    -1,
2593       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2594       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
2595       -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2596       -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2597       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
2598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2599      113,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2600       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2601       47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2602       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
2603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
2604       -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,
2605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2606       -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,
2607       -1,    -1,    -1,   110,   111,   112,   113,    -1,    -1,   116,
2608       -1,    -1,    -1,   120,    28,    29,    30,    31,    32,    33,
2609       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2610       44,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
2611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2612       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2613       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
2614       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
2616       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2617       -1,    -1,   116,    -1,    -1,    -1,   120,    28,    29,    30,
2618       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2619       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2620       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2621       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2622       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    79,    -1,
2623       -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,
2624       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2625       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
2626      111,   112,    -1,    -1,    -1,   116,    -1,    -1,    -1,   120,
2627       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2628       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2629       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2630       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2631       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
2632       -1,    79,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2633       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2634       -1,    -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2635       -1,    -1,   110,   111,   112,   113,    -1,    -1,    -1,    -1,
2636       -1,    -1,   120,    28,    29,    30,    31,    32,    33,    34,
2637       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2638       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2639       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2640       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
2641       75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
2642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2643       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
2644       -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,    -1,
2645       -1,   116,    -1,    -1,    -1,   120,    28,    29,    30,    31,
2646       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2647       42,    43,    44,    45,    46,    47,    48,    49,    50,    -1,
2648       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2649       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
2650       -1,    -1,    74,    75,    28,    -1,    -1,    79,    -1,    -1,
2651       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2652       44,    45,    46,    47,    48,    49,    50,    -1,   100,    -1,
2653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
2654      112,    -1,    66,    -1,   116,    -1,    -1,    -1,   120,    -1,
2655       74,    75,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
2656       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2657       -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,
2658       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,    -1,
2659       -1,    -1,   116,    -1,    -1,    -1,   120,    28,    29,    30,
2660       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2661       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2662       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2663       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2664       -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,
2665       -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,
2666       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2667       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2668       -1,    -1,   113,    28,    29,    30,    31,    32,    33,    34,
2669       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2670       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2671       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2672       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2673       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2674       85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2675       -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,    -1,    -1,
2676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    28,
2677       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2678       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2679       49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2680       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,
2681       -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
2682       -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,
2683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2684       -1,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2685       -1,    -1,    -1,   112,    28,    29,    30,    31,    32,    33,
2686       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2687       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
2688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2689       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2690       -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2691       -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2692       -1,    -1,    -1,    -1,    -1,    -1,   100,    28,    29,    30,
2693       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2694       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2695       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2696       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
2697       -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,
2698       -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1,    -1,
2699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
2700       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2701       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2702       48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
2704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,
2705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2706       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2707       -1,    -1,   100,    28,    29,    30,    31,    32,    33,    34,
2708       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2709       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
2710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2711       -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2712       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2713       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2714       -1,    -1,    -1,    -1,    -1,   100
2715 };
2716
2717 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2718    symbol of state STATE-NUM.  */
2719 static const yytype_uint8 yystos[] =
2720 {
2721        0,     1,     3,     4,     5,     6,     8,     9,    28,    71,
2722       72,    73,   102,   103,   109,   112,   114,   119,   120,   121,
2723      122,   123,   124,   138,   139,   140,   142,   145,   146,   148,
2724      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2725      159,   160,   161,   180,   181,   229,   231,   245,   112,   140,
2726      143,   145,   147,   112,   146,   146,    29,    30,    31,    32,
2727       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2728       43,    44,    45,    46,    47,    48,    49,    50,    66,    75,
2729       85,   100,   167,   172,   179,   180,   182,   184,   185,   186,
2730      194,   195,   146,   160,   164,   167,   164,   112,   147,   113,
2731      161,   163,   166,   179,   180,   182,   184,   195,   214,   229,
2732      135,     7,     8,     9,   112,   115,   116,    18,    19,    20,
2733       21,    22,    23,    24,    25,    26,    27,   133,   162,   149,
2734      120,   125,   126,   121,   122,    10,    11,    12,    13,   127,
2735      128,    14,    15,   119,   129,   130,    16,    17,   131,   135,
2736        0,   146,   214,     7,     8,     9,   112,   115,   116,   135,
2737      138,   181,   112,    74,    79,   110,   111,   112,   116,   120,
2738      172,   173,   174,   178,   179,   182,   184,   195,   199,   201,
2739      209,   135,   138,   173,   181,    34,    35,    36,    37,    38,
2740       39,    40,    41,    42,    43,    46,    47,    66,   100,   169,
2741      172,   179,   181,   183,   184,   185,   194,   195,   116,   201,
2742      169,   146,   214,   113,   118,   112,   116,   173,   179,   182,
2743      184,   195,   198,   200,   209,   113,   115,   134,   135,   136,
2744      141,   142,   160,   167,   216,   232,   238,   239,   240,   241,
2745      242,   243,   244,   138,   113,   141,   144,   161,   138,   163,
2746      141,   161,   149,   149,   149,   150,   150,   151,   151,   152,
2747      152,   152,   152,   153,   153,   154,   155,   156,   157,   158,
2748      163,   136,   244,   113,   113,   138,   113,   144,   138,   163,
2749      138,   196,   197,   135,   135,   180,   113,   167,   201,   210,
2750      211,   212,   164,   179,   208,   209,   199,   209,   112,   112,
2751      116,   199,    68,    78,   112,   123,   134,   136,   138,   142,
2752      167,   173,   187,   188,   189,   190,   191,   203,   204,   206,
2753      207,   209,   230,   231,   233,   234,   235,   236,   237,   135,
2754      135,   138,   181,   135,   112,   116,   172,   179,   183,   184,
2755      195,   201,   164,   116,   116,   201,   113,   113,   161,   113,
2756      200,   210,   117,   164,   180,   198,   209,   112,   116,   198,
2757      149,   229,   136,   244,   133,   112,   138,   204,   135,   223,
2758      224,   118,   134,   134,   239,   241,   242,   136,   113,   118,
2759      117,   132,   136,   113,   117,   133,   118,   136,   196,   196,
2760      113,   112,   173,   200,   202,   203,   205,   207,   209,   113,
2761      113,   118,   117,   179,   209,   199,   112,   113,   210,   164,
2762       50,   168,   172,   179,   180,   182,   186,   167,   204,   112,
2763      120,   173,   202,   209,   167,   133,   112,   132,   134,   138,
2764      173,   192,   193,   202,   204,   207,   209,   207,   209,   136,
2765      191,   118,   134,   112,   116,   113,   138,   210,   213,   173,
2766      207,   134,   134,   224,   224,   224,   134,   224,   136,   187,
2767      136,   187,   135,   135,   187,   180,   164,   116,   117,   164,
2768      164,   116,   113,   113,   117,   117,   198,   113,   210,   117,
2769      164,   180,   136,   216,   136,    52,    53,    54,    55,    56,
2770       57,    58,    59,    60,    61,    62,    77,   134,   138,   163,
2771      165,   167,   218,   219,   220,   221,   222,   224,   225,   226,
2772      227,   228,   230,   240,   141,   161,   160,   164,   197,   134,
2773      136,   134,   136,   203,   207,   209,   173,   205,    51,   212,
2774        3,    28,    44,    74,    75,   113,   175,   176,   177,   113,
2775      117,   138,   181,   135,   138,   172,   179,   180,   182,   200,
2776      138,   173,   181,   204,   209,   113,   112,   216,   113,   164,
2777      135,   207,   209,   118,   134,   132,   178,   173,   207,   207,
2778      188,   117,   164,   180,   113,   113,   118,   207,   136,   136,
2779      136,   187,   187,   136,   113,   117,   164,   117,   117,   164,
2780      113,   117,   117,   164,   132,   112,   112,   112,   218,   112,
2781      138,   134,   134,   134,   163,   138,   132,   134,   134,   170,
2782      171,   202,   165,   221,   165,   218,   136,   134,   187,   187,
2783      205,   113,   112,   113,   118,   176,    69,    70,   136,   135,
2784      135,   138,   138,   181,   113,   136,   244,   207,   193,   164,
2785      207,   117,   117,   138,   136,   136,   117,   117,   132,   218,
2786      163,   163,   113,   163,    56,   113,   225,   134,   134,   133,
2787      218,   118,   134,   133,   136,   136,   163,   113,   176,   224,
2788      224,    69,    70,   136,    69,    70,   136,   135,   136,   132,
2789      218,   113,   113,   218,   113,   112,   218,   113,   225,   164,
2790      171,   135,   161,   215,   113,    70,   136,    69,   136,   224,
2791      224,   224,   224,    69,    70,   136,   164,   218,   218,   218,
2792      163,   218,   113,   163,   134,   215,   217,   224,   224,    70,
2793      136,    69,   136,    70,   136,    69,   136,   224,   224,    64,
2794      113,   218,   113,   118,   136,   136,   136,   224,   224,   224,
2795      224,    70,   136,    69,   136,   218,   134,   218,   136,   215,
2796      136,   136,   136,   136,   224,   224,   136,   136
2797 };
2798
2799 #define yyerrok         (yyerrstatus = 0)
2800 #define yyclearin       (yychar = YYEMPTY)
2801 #define YYEMPTY         (-2)
2802 #define YYEOF           0
2803
2804 #define YYACCEPT        goto yyacceptlab
2805 #define YYABORT         goto yyabortlab
2806 #define YYERROR         goto yyerrorlab
2807
2808
2809 /* Like YYERROR except do call yyerror.  This remains here temporarily
2810    to ease the transition to the new meaning of YYERROR, for GCC.
2811    Once GCC version 2 has supplanted version 1, this can go.  However,
2812    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2813    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2814    discussed.  */
2815
2816 #define YYFAIL          goto yyerrlab
2817 #if defined YYFAIL
2818   /* This is here to suppress warnings from the GCC cpp's
2819      -Wunused-macros.  Normally we don't worry about that warning, but
2820      some users do, and we want to make it easy for users to remove
2821      YYFAIL uses, which will produce warnings from Bison 2.5.  */
2822 #endif
2823
2824 #define YYRECOVERING()  (!!yyerrstatus)
2825
2826 #define YYBACKUP(Token, Value)                                  \
2827 do                                                              \
2828   if (yychar == YYEMPTY && yylen == 1)                          \
2829     {                                                           \
2830       yychar = (Token);                                         \
2831       yylval = (Value);                                         \
2832       yytoken = YYTRANSLATE (yychar);                           \
2833       YYPOPSTACK (1);                                           \
2834       goto yybackup;                                            \
2835     }                                                           \
2836   else                                                          \
2837     {                                                           \
2838       yyerror (YY_("syntax error: cannot back up")); \
2839       YYERROR;                                                  \
2840     }                                                           \
2841 while (YYID (0))
2842
2843
2844 #define YYTERROR        1
2845 #define YYERRCODE       256
2846
2847
2848 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2849    If N is 0, then set CURRENT to the empty location which ends
2850    the previous symbol: RHS[0] (always defined).  */
2851
2852 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2853 #ifndef YYLLOC_DEFAULT
2854 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2855     do                                                                  \
2856       if (YYID (N))                                                    \
2857         {                                                               \
2858           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2859           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2860           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2861           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2862         }                                                               \
2863       else                                                              \
2864         {                                                               \
2865           (Current).first_line   = (Current).last_line   =              \
2866             YYRHSLOC (Rhs, 0).last_line;                                \
2867           (Current).first_column = (Current).last_column =              \
2868             YYRHSLOC (Rhs, 0).last_column;                              \
2869         }                                                               \
2870     while (YYID (0))
2871 #endif
2872
2873
2874 /* YY_LOCATION_PRINT -- Print the location on the stream.
2875    This macro was not mandated originally: define only if we know
2876    we won't break user code: when these are the locations we know.  */
2877
2878 #ifndef YY_LOCATION_PRINT
2879 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2880 #  define YY_LOCATION_PRINT(File, Loc)                  \
2881      fprintf (File, "%d.%d-%d.%d",                      \
2882               (Loc).first_line, (Loc).first_column,     \
2883               (Loc).last_line,  (Loc).last_column)
2884 # else
2885 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2886 # endif
2887 #endif
2888
2889
2890 /* YYLEX -- calling `yylex' with the right arguments.  */
2891
2892 #ifdef YYLEX_PARAM
2893 # define YYLEX yylex (YYLEX_PARAM)
2894 #else
2895 # define YYLEX yylex ()
2896 #endif
2897
2898 /* Enable debugging if requested.  */
2899 #if YYDEBUG
2900
2901 # ifndef YYFPRINTF
2902 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2903 #  define YYFPRINTF fprintf
2904 # endif
2905
2906 # define YYDPRINTF(Args)                        \
2907 do {                                            \
2908   if (yydebug)                                  \
2909     YYFPRINTF Args;                             \
2910 } while (YYID (0))
2911
2912 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2913 do {                                                                      \
2914   if (yydebug)                                                            \
2915     {                                                                     \
2916       YYFPRINTF (stderr, "%s ", Title);                                   \
2917       yy_symbol_print (stderr,                                            \
2918                   Type, Value, Location); \
2919       YYFPRINTF (stderr, "\n");                                           \
2920     }                                                                     \
2921 } while (YYID (0))
2922
2923
2924 /*--------------------------------.
2925 | Print this symbol on YYOUTPUT.  |
2926 `--------------------------------*/
2927
2928 /*ARGSUSED*/
2929 #if (defined __STDC__ || defined __C99__FUNC__ \
2930      || defined __cplusplus || defined _MSC_VER)
2931 static void
2932 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2933 #else
2934 static void
2935 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
2936     FILE *yyoutput;
2937     int yytype;
2938     YYSTYPE const * const yyvaluep;
2939     YYLTYPE const * const yylocationp;
2940 #endif
2941 {
2942   if (!yyvaluep)
2943     return;
2944   YYUSE (yylocationp);
2945 # ifdef YYPRINT
2946   if (yytype < YYNTOKENS)
2947     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2948 # else
2949   YYUSE (yyoutput);
2950 # endif
2951   switch (yytype)
2952     {
2953       default:
2954         break;
2955     }
2956 }
2957
2958
2959 /*--------------------------------.
2960 | Print this symbol on YYOUTPUT.  |
2961 `--------------------------------*/
2962
2963 #if (defined __STDC__ || defined __C99__FUNC__ \
2964      || defined __cplusplus || defined _MSC_VER)
2965 static void
2966 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2967 #else
2968 static void
2969 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
2970     FILE *yyoutput;
2971     int yytype;
2972     YYSTYPE const * const yyvaluep;
2973     YYLTYPE const * const yylocationp;
2974 #endif
2975 {
2976   if (yytype < YYNTOKENS)
2977     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2978   else
2979     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2980
2981   YY_LOCATION_PRINT (yyoutput, *yylocationp);
2982   YYFPRINTF (yyoutput, ": ");
2983   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
2984   YYFPRINTF (yyoutput, ")");
2985 }
2986
2987 /*------------------------------------------------------------------.
2988 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2989 | TOP (included).                                                   |
2990 `------------------------------------------------------------------*/
2991
2992 #if (defined __STDC__ || defined __C99__FUNC__ \
2993      || defined __cplusplus || defined _MSC_VER)
2994 static void
2995 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2996 #else
2997 static void
2998 yy_stack_print (yybottom, yytop)
2999     yytype_int16 *yybottom;
3000     yytype_int16 *yytop;
3001 #endif
3002 {
3003   YYFPRINTF (stderr, "Stack now");
3004   for (; yybottom <= yytop; yybottom++)
3005     {
3006       int yybot = *yybottom;
3007       YYFPRINTF (stderr, " %d", yybot);
3008     }
3009   YYFPRINTF (stderr, "\n");
3010 }
3011
3012 # define YY_STACK_PRINT(Bottom, Top)                            \
3013 do {                                                            \
3014   if (yydebug)                                                  \
3015     yy_stack_print ((Bottom), (Top));                           \
3016 } while (YYID (0))
3017
3018
3019 /*------------------------------------------------.
3020 | Report that the YYRULE is going to be reduced.  |
3021 `------------------------------------------------*/
3022
3023 #if (defined __STDC__ || defined __C99__FUNC__ \
3024      || defined __cplusplus || defined _MSC_VER)
3025 static void
3026 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
3027 #else
3028 static void
3029 yy_reduce_print (yyvsp, yylsp, yyrule)
3030     YYSTYPE *yyvsp;
3031     YYLTYPE *yylsp;
3032     int yyrule;
3033 #endif
3034 {
3035   int yynrhs = yyr2[yyrule];
3036   int yyi;
3037   unsigned long int yylno = yyrline[yyrule];
3038   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3039              yyrule - 1, yylno);
3040   /* The symbols being reduced.  */
3041   for (yyi = 0; yyi < yynrhs; yyi++)
3042     {
3043       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
3044       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3045                        &(yyvsp[(yyi + 1) - (yynrhs)])
3046                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
3047       YYFPRINTF (stderr, "\n");
3048     }
3049 }
3050
3051 # define YY_REDUCE_PRINT(Rule)          \
3052 do {                                    \
3053   if (yydebug)                          \
3054     yy_reduce_print (yyvsp, yylsp, Rule); \
3055 } while (YYID (0))
3056
3057 /* Nonzero means print parse trace.  It is left uninitialized so that
3058    multiple parsers can coexist.  */
3059 int yydebug;
3060 #else /* !YYDEBUG */
3061 # define YYDPRINTF(Args)
3062 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3063 # define YY_STACK_PRINT(Bottom, Top)
3064 # define YY_REDUCE_PRINT(Rule)
3065 #endif /* !YYDEBUG */
3066
3067
3068 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3069 #ifndef YYINITDEPTH
3070 # define YYINITDEPTH 200
3071 #endif
3072
3073 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3074    if the built-in stack extension method is used).
3075
3076    Do not make this value too large; the results are undefined if
3077    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3078    evaluated with infinite-precision integer arithmetic.  */
3079
3080 #ifndef YYMAXDEPTH
3081 # define YYMAXDEPTH 10000
3082 #endif
3083
3084 \f
3085
3086 #if YYERROR_VERBOSE
3087
3088 # ifndef yystrlen
3089 #  if defined __GLIBC__ && defined _STRING_H
3090 #   define yystrlen strlen
3091 #  else
3092 /* Return the length of YYSTR.  */
3093 #if (defined __STDC__ || defined __C99__FUNC__ \
3094      || defined __cplusplus || defined _MSC_VER)
3095 static YYSIZE_T
3096 yystrlen (const char *yystr)
3097 #else
3098 static YYSIZE_T
3099 yystrlen (yystr)
3100     const char *yystr;
3101 #endif
3102 {
3103   YYSIZE_T yylen;
3104   for (yylen = 0; yystr[yylen]; yylen++)
3105     continue;
3106   return yylen;
3107 }
3108 #  endif
3109 # endif
3110
3111 # ifndef yystpcpy
3112 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3113 #   define yystpcpy stpcpy
3114 #  else
3115 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3116    YYDEST.  */
3117 #if (defined __STDC__ || defined __C99__FUNC__ \
3118      || defined __cplusplus || defined _MSC_VER)
3119 static char *
3120 yystpcpy (char *yydest, const char *yysrc)
3121 #else
3122 static char *
3123 yystpcpy (yydest, yysrc)
3124     char *yydest;
3125     const char *yysrc;
3126 #endif
3127 {
3128   char *yyd = yydest;
3129   const char *yys = yysrc;
3130
3131   while ((*yyd++ = *yys++) != '\0')
3132     continue;
3133
3134   return yyd - 1;
3135 }
3136 #  endif
3137 # endif
3138
3139 # ifndef yytnamerr
3140 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3141    quotes and backslashes, so that it's suitable for yyerror.  The
3142    heuristic is that double-quoting is unnecessary unless the string
3143    contains an apostrophe, a comma, or backslash (other than
3144    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3145    null, do not copy; instead, return the length of what the result
3146    would have been.  */
3147 static YYSIZE_T
3148 yytnamerr (char *yyres, const char *yystr)
3149 {
3150   if (*yystr == '"')
3151     {
3152       YYSIZE_T yyn = 0;
3153       char const *yyp = yystr;
3154
3155       for (;;)
3156         switch (*++yyp)
3157           {
3158           case '\'':
3159           case ',':
3160             goto do_not_strip_quotes;
3161
3162           case '\\':
3163             if (*++yyp != '\\')
3164               goto do_not_strip_quotes;
3165             /* Fall through.  */
3166           default:
3167             if (yyres)
3168               yyres[yyn] = *yyp;
3169             yyn++;
3170             break;
3171
3172           case '"':
3173             if (yyres)
3174               yyres[yyn] = '\0';
3175             return yyn;
3176           }
3177     do_not_strip_quotes: ;
3178     }
3179
3180   if (! yyres)
3181     return yystrlen (yystr);
3182
3183   return yystpcpy (yyres, yystr) - yyres;
3184 }
3185 # endif
3186
3187 /* Copy into YYRESULT an error message about the unexpected token
3188    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3189    including the terminating null byte.  If YYRESULT is null, do not
3190    copy anything; just return the number of bytes that would be
3191    copied.  As a special case, return 0 if an ordinary "syntax error"
3192    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3193    size calculation.  */
3194 static YYSIZE_T
3195 yysyntax_error (char *yyresult, int yystate, int yychar)
3196 {
3197   int yyn = yypact[yystate];
3198
3199   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3200     return 0;
3201   else
3202     {
3203       int yytype = YYTRANSLATE (yychar);
3204       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3205       YYSIZE_T yysize = yysize0;
3206       YYSIZE_T yysize1;
3207       int yysize_overflow = 0;
3208       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3209       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3210       int yyx;
3211
3212 # if 0
3213       /* This is so xgettext sees the translatable formats that are
3214          constructed on the fly.  */
3215       YY_("syntax error, unexpected %s");
3216       YY_("syntax error, unexpected %s, expecting %s");
3217       YY_("syntax error, unexpected %s, expecting %s or %s");
3218       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3219       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3220 # endif
3221       char *yyfmt;
3222       char const *yyf;
3223       static char const yyunexpected[] = "syntax error, unexpected %s";
3224       static char const yyexpecting[] = ", expecting %s";
3225       static char const yyor[] = " or %s";
3226       char yyformat[sizeof yyunexpected
3227                     + sizeof yyexpecting - 1
3228                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3229                        * (sizeof yyor - 1))];
3230       char const *yyprefix = yyexpecting;
3231
3232       /* Start YYX at -YYN if negative to avoid negative indexes in
3233          YYCHECK.  */
3234       int yyxbegin = yyn < 0 ? -yyn : 0;
3235
3236       /* Stay within bounds of both yycheck and yytname.  */
3237       int yychecklim = YYLAST - yyn + 1;
3238       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3239       int yycount = 1;
3240
3241       yyarg[0] = yytname[yytype];
3242       yyfmt = yystpcpy (yyformat, yyunexpected);
3243
3244       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3245         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3246           {
3247             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3248               {
3249                 yycount = 1;
3250                 yysize = yysize0;
3251                 yyformat[sizeof yyunexpected - 1] = '\0';
3252                 break;
3253               }
3254             yyarg[yycount++] = yytname[yyx];
3255             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3256             yysize_overflow |= (yysize1 < yysize);
3257             yysize = yysize1;
3258             yyfmt = yystpcpy (yyfmt, yyprefix);
3259             yyprefix = yyor;
3260           }
3261
3262       yyf = YY_(yyformat);
3263       yysize1 = yysize + yystrlen (yyf);
3264       yysize_overflow |= (yysize1 < yysize);
3265       yysize = yysize1;
3266
3267       if (yysize_overflow)
3268         return YYSIZE_MAXIMUM;
3269
3270       if (yyresult)
3271         {
3272           /* Avoid sprintf, as that infringes on the user's name space.
3273              Don't have undefined behavior even if the translation
3274              produced a string with the wrong number of "%s"s.  */
3275           char *yyp = yyresult;
3276           int yyi = 0;
3277           while ((*yyp = *yyf) != '\0')
3278             {
3279               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3280                 {
3281                   yyp += yytnamerr (yyp, yyarg[yyi++]);
3282                   yyf += 2;
3283                 }
3284               else
3285                 {
3286                   yyp++;
3287                   yyf++;
3288                 }
3289             }
3290         }
3291       return yysize;
3292     }
3293 }
3294 #endif /* YYERROR_VERBOSE */
3295 \f
3296
3297 /*-----------------------------------------------.
3298 | Release the memory associated to this symbol.  |
3299 `-----------------------------------------------*/
3300
3301 /*ARGSUSED*/
3302 #if (defined __STDC__ || defined __C99__FUNC__ \
3303      || defined __cplusplus || defined _MSC_VER)
3304 static void
3305 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
3306 #else
3307 static void
3308 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
3309     const char *yymsg;
3310     int yytype;
3311     YYSTYPE *yyvaluep;
3312     YYLTYPE *yylocationp;
3313 #endif
3314 {
3315   YYUSE (yyvaluep);
3316   YYUSE (yylocationp);
3317
3318   if (!yymsg)
3319     yymsg = "Deleting";
3320   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3321
3322   switch (yytype)
3323     {
3324       case 138: /* "identifier" */
3325
3326 /* Line 1009 of yacc.c  */
3327 #line 152 "expression.y"
3328         { FreeIdentifier((yyvaluep->id)); };
3329
3330 /* Line 1009 of yacc.c  */
3331 #line 3331 "expression.ec"
3332         break;
3333       case 139: /* "primary_expression" */
3334
3335 /* Line 1009 of yacc.c  */
3336 #line 154 "expression.y"
3337         { FreeExpression((yyvaluep->exp)); };
3338
3339 /* Line 1009 of yacc.c  */
3340 #line 3340 "expression.ec"
3341         break;
3342       case 142: /* "postfix_expression" */
3343
3344 /* Line 1009 of yacc.c  */
3345 #line 154 "expression.y"
3346         { FreeExpression((yyvaluep->exp)); };
3347
3348 /* Line 1009 of yacc.c  */
3349 #line 3349 "expression.ec"
3350         break;
3351       case 144: /* "argument_expression_list" */
3352
3353 /* Line 1009 of yacc.c  */
3354 #line 187 "expression.y"
3355         { FreeList((yyvaluep->list), FreeExpression); };
3356
3357 /* Line 1009 of yacc.c  */
3358 #line 3358 "expression.ec"
3359         break;
3360       case 146: /* "unary_expression" */
3361
3362 /* Line 1009 of yacc.c  */
3363 #line 154 "expression.y"
3364         { FreeExpression((yyvaluep->exp)); };
3365
3366 /* Line 1009 of yacc.c  */
3367 #line 3367 "expression.ec"
3368         break;
3369       case 149: /* "cast_expression" */
3370
3371 /* Line 1009 of yacc.c  */
3372 #line 154 "expression.y"
3373         { FreeExpression((yyvaluep->exp)); };
3374
3375 /* Line 1009 of yacc.c  */
3376 #line 3376 "expression.ec"
3377         break;
3378       case 150: /* "multiplicative_expression" */
3379
3380 /* Line 1009 of yacc.c  */
3381 #line 154 "expression.y"
3382         { FreeExpression((yyvaluep->exp)); };
3383
3384 /* Line 1009 of yacc.c  */
3385 #line 3385 "expression.ec"
3386         break;
3387       case 151: /* "additive_expression" */
3388
3389 /* Line 1009 of yacc.c  */
3390 #line 154 "expression.y"
3391         { FreeExpression((yyvaluep->exp)); };
3392
3393 /* Line 1009 of yacc.c  */
3394 #line 3394 "expression.ec"
3395         break;
3396       case 152: /* "shift_expression" */
3397
3398 /* Line 1009 of yacc.c  */
3399 #line 154 "expression.y"
3400         { FreeExpression((yyvaluep->exp)); };
3401
3402 /* Line 1009 of yacc.c  */
3403 #line 3403 "expression.ec"
3404         break;
3405       case 153: /* "relational_expression" */
3406
3407 /* Line 1009 of yacc.c  */
3408 #line 154 "expression.y"
3409         { FreeExpression((yyvaluep->exp)); };
3410
3411 /* Line 1009 of yacc.c  */
3412 #line 3412 "expression.ec"
3413         break;
3414       case 154: /* "equality_expression" */
3415
3416 /* Line 1009 of yacc.c  */
3417 #line 154 "expression.y"
3418         { FreeExpression((yyvaluep->exp)); };
3419
3420 /* Line 1009 of yacc.c  */
3421 #line 3421 "expression.ec"
3422         break;
3423       case 155: /* "and_expression" */
3424
3425 /* Line 1009 of yacc.c  */
3426 #line 154 "expression.y"
3427         { FreeExpression((yyvaluep->exp)); };
3428
3429 /* Line 1009 of yacc.c  */
3430 #line 3430 "expression.ec"
3431         break;
3432       case 156: /* "exclusive_or_expression" */
3433
3434 /* Line 1009 of yacc.c  */
3435 #line 154 "expression.y"
3436         { FreeExpression((yyvaluep->exp)); };
3437
3438 /* Line 1009 of yacc.c  */
3439 #line 3439 "expression.ec"
3440         break;
3441       case 157: /* "inclusive_or_expression" */
3442
3443 /* Line 1009 of yacc.c  */
3444 #line 154 "expression.y"
3445         { FreeExpression((yyvaluep->exp)); };
3446
3447 /* Line 1009 of yacc.c  */
3448 #line 3448 "expression.ec"
3449         break;
3450       case 158: /* "logical_and_expression" */
3451
3452 /* Line 1009 of yacc.c  */
3453 #line 154 "expression.y"
3454         { FreeExpression((yyvaluep->exp)); };
3455
3456 /* Line 1009 of yacc.c  */
3457 #line 3457 "expression.ec"
3458         break;
3459       case 159: /* "logical_or_expression" */
3460
3461 /* Line 1009 of yacc.c  */
3462 #line 154 "expression.y"
3463         { FreeExpression((yyvaluep->exp)); };
3464
3465 /* Line 1009 of yacc.c  */
3466 #line 3466 "expression.ec"
3467         break;
3468       case 160: /* "conditional_expression" */
3469
3470 /* Line 1009 of yacc.c  */
3471 #line 154 "expression.y"
3472         { FreeExpression((yyvaluep->exp)); };
3473
3474 /* Line 1009 of yacc.c  */
3475 #line 3475 "expression.ec"
3476         break;
3477       case 161: /* "assignment_expression" */
3478
3479 /* Line 1009 of yacc.c  */
3480 #line 154 "expression.y"
3481         { FreeExpression((yyvaluep->exp)); };
3482
3483 /* Line 1009 of yacc.c  */
3484 #line 3484 "expression.ec"
3485         break;
3486       case 163: /* "expression" */
3487
3488 /* Line 1009 of yacc.c  */
3489 #line 187 "expression.y"
3490         { FreeList((yyvaluep->list), FreeExpression); };
3491
3492 /* Line 1009 of yacc.c  */
3493 #line 3493 "expression.ec"
3494         break;
3495       case 164: /* "constant_expression" */
3496
3497 /* Line 1009 of yacc.c  */
3498 #line 154 "expression.y"
3499         { FreeExpression((yyvaluep->exp)); };
3500
3501 /* Line 1009 of yacc.c  */
3502 #line 3502 "expression.ec"
3503         break;
3504       case 165: /* "declaration" */
3505
3506 /* Line 1009 of yacc.c  */
3507 #line 173 "expression.y"
3508         { FreeDeclaration((yyvaluep->declaration)); };
3509
3510 /* Line 1009 of yacc.c  */
3511 #line 3511 "expression.ec"
3512         break;
3513       case 166: /* "specifier_qualifier_list" */
3514
3515 /* Line 1009 of yacc.c  */
3516 #line 189 "expression.y"
3517         { FreeList((yyvaluep->list), FreeSpecifier); };
3518
3519 /* Line 1009 of yacc.c  */
3520 #line 3520 "expression.ec"
3521         break;
3522       case 167: /* "declaration_specifiers" */
3523
3524 /* Line 1009 of yacc.c  */
3525 #line 189 "expression.y"
3526         { FreeList((yyvaluep->list), FreeSpecifier); };
3527
3528 /* Line 1009 of yacc.c  */
3529 #line 3529 "expression.ec"
3530         break;
3531       case 170: /* "init_declarator_list" */
3532
3533 /* Line 1009 of yacc.c  */
3534 #line 193 "expression.y"
3535         { FreeList((yyvaluep->list), FreeInitDeclarator); };
3536
3537 /* Line 1009 of yacc.c  */
3538 #line 3538 "expression.ec"
3539         break;
3540       case 171: /* "init_declarator" */
3541
3542 /* Line 1009 of yacc.c  */
3543 #line 168 "expression.y"
3544         { FreeInitDeclarator((yyvaluep->initDeclarator)); };
3545
3546 /* Line 1009 of yacc.c  */
3547 #line 3547 "expression.ec"
3548         break;
3549       case 172: /* "storage_class_specifier" */
3550
3551 /* Line 1009 of yacc.c  */
3552 #line 160 "expression.y"
3553         { FreeSpecifier((yyvaluep->specifier)); };
3554
3555 /* Line 1009 of yacc.c  */
3556 #line 3556 "expression.ec"
3557         break;
3558       case 173: /* "ext_decl" */
3559
3560 /* Line 1009 of yacc.c  */
3561 #line 201 "expression.y"
3562         { FreeExtDecl((yyvaluep->extDecl)); };
3563
3564 /* Line 1009 of yacc.c  */
3565 #line 3565 "expression.ec"
3566         break;
3567       case 175: /* "attribute_word" */
3568
3569 /* Line 1009 of yacc.c  */
3570 #line 184 "expression.y"
3571         { delete (yyvaluep->string); };
3572
3573 /* Line 1009 of yacc.c  */
3574 #line 3574 "expression.ec"
3575         break;
3576       case 176: /* "attribute" */
3577
3578 /* Line 1009 of yacc.c  */
3579 #line 202 "expression.y"
3580         { FreeAttribute((yyvaluep->attribute)); };
3581
3582 /* Line 1009 of yacc.c  */
3583 #line 3583 "expression.ec"
3584         break;
3585       case 177: /* "attribs_list" */
3586
3587 /* Line 1009 of yacc.c  */
3588 #line 203 "expression.y"
3589         { FreeList((yyvaluep->list), FreeAttribute); };
3590
3591 /* Line 1009 of yacc.c  */
3592 #line 3592 "expression.ec"
3593         break;
3594       case 178: /* "attrib" */
3595
3596 /* Line 1009 of yacc.c  */
3597 #line 200 "expression.y"
3598         { FreeAttrib((yyvaluep->attrib)); };
3599
3600 /* Line 1009 of yacc.c  */
3601 #line 3601 "expression.ec"
3602         break;
3603       case 179: /* "type_qualifier" */
3604
3605 /* Line 1009 of yacc.c  */
3606 #line 160 "expression.y"
3607         { FreeSpecifier((yyvaluep->specifier)); };
3608
3609 /* Line 1009 of yacc.c  */
3610 #line 3610 "expression.ec"
3611         break;
3612       case 180: /* "type" */
3613
3614 /* Line 1009 of yacc.c  */
3615 #line 160 "expression.y"
3616         { FreeSpecifier((yyvaluep->specifier)); };
3617
3618 /* Line 1009 of yacc.c  */
3619 #line 3619 "expression.ec"
3620         break;
3621       case 181: /* "strict_type" */
3622
3623 /* Line 1009 of yacc.c  */
3624 #line 160 "expression.y"
3625         { FreeSpecifier((yyvaluep->specifier)); };
3626
3627 /* Line 1009 of yacc.c  */
3628 #line 3628 "expression.ec"
3629         break;
3630       case 182: /* "type_specifier" */
3631
3632 /* Line 1009 of yacc.c  */
3633 #line 160 "expression.y"
3634         { FreeSpecifier((yyvaluep->specifier)); };
3635
3636 /* Line 1009 of yacc.c  */
3637 #line 3637 "expression.ec"
3638         break;
3639       case 183: /* "strict_type_specifier" */
3640
3641 /* Line 1009 of yacc.c  */
3642 #line 160 "expression.y"
3643         { FreeSpecifier((yyvaluep->specifier)); };
3644
3645 /* Line 1009 of yacc.c  */
3646 #line 3646 "expression.ec"
3647         break;
3648       case 184: /* "struct_or_union_specifier_compound" */
3649
3650 /* Line 1009 of yacc.c  */
3651 #line 160 "expression.y"
3652         { FreeSpecifier((yyvaluep->specifier)); };
3653
3654 /* Line 1009 of yacc.c  */
3655 #line 3655 "expression.ec"
3656         break;
3657       case 185: /* "struct_or_union_specifier_nocompound" */
3658
3659 /* Line 1009 of yacc.c  */
3660 #line 160 "expression.y"
3661         { FreeSpecifier((yyvaluep->specifier)); };
3662
3663 /* Line 1009 of yacc.c  */
3664 #line 3664 "expression.ec"
3665         break;
3666       case 187: /* "struct_declaration_list" */
3667
3668 /* Line 1009 of yacc.c  */
3669 #line 196 "expression.y"
3670         { FreeList((yyvaluep->list), FreeClassDef); };
3671
3672 /* Line 1009 of yacc.c  */
3673 #line 3673 "expression.ec"
3674         break;
3675       case 188: /* "default_property" */
3676
3677 /* Line 1009 of yacc.c  */
3678 #line 177 "expression.y"
3679         { FreeMemberInit((yyvaluep->memberInit)); };
3680
3681 /* Line 1009 of yacc.c  */
3682 #line 3682 "expression.ec"
3683         break;
3684       case 189: /* "default_property_list" */
3685
3686 /* Line 1009 of yacc.c  */
3687 #line 197 "expression.y"
3688         { FreeList((yyvaluep->list), FreeMemberInit); };
3689
3690 /* Line 1009 of yacc.c  */
3691 #line 3691 "expression.ec"
3692         break;
3693       case 190: /* "property" */
3694
3695 /* Line 1009 of yacc.c  */
3696 #line 185 "expression.y"
3697         { FreeProperty((yyvaluep->prop)); };
3698
3699 /* Line 1009 of yacc.c  */
3700 #line 3700 "expression.ec"
3701         break;
3702       case 191: /* "struct_declaration" */
3703
3704 /* Line 1009 of yacc.c  */
3705 #line 183 "expression.y"
3706         { FreeClassDef((yyvaluep->classDef)); };
3707
3708 /* Line 1009 of yacc.c  */
3709 #line 3709 "expression.ec"
3710         break;
3711       case 192: /* "struct_declarator_list" */
3712
3713 /* Line 1009 of yacc.c  */
3714 #line 190 "expression.y"
3715         { FreeList((yyvaluep->list), FreeDeclarator); };
3716
3717 /* Line 1009 of yacc.c  */
3718 #line 3718 "expression.ec"
3719         break;
3720       case 193: /* "struct_declarator" */
3721
3722 /* Line 1009 of yacc.c  */
3723 #line 163 "expression.y"
3724         { FreeDeclarator((yyvaluep->declarator)); };
3725
3726 /* Line 1009 of yacc.c  */
3727 #line 3727 "expression.ec"
3728         break;
3729       case 194: /* "enum_specifier_nocompound" */
3730
3731 /* Line 1009 of yacc.c  */
3732 #line 160 "expression.y"
3733         { FreeSpecifier((yyvaluep->specifier)); };
3734
3735 /* Line 1009 of yacc.c  */
3736 #line 3736 "expression.ec"
3737         break;
3738       case 195: /* "enum_specifier_compound" */
3739
3740 /* Line 1009 of yacc.c  */
3741 #line 160 "expression.y"
3742         { FreeSpecifier((yyvaluep->specifier)); };
3743
3744 /* Line 1009 of yacc.c  */
3745 #line 3745 "expression.ec"
3746         break;
3747       case 196: /* "enumerator_list" */
3748
3749 /* Line 1009 of yacc.c  */
3750 #line 188 "expression.y"
3751         { FreeList((yyvaluep->list), FreeEnumerator); };
3752
3753 /* Line 1009 of yacc.c  */
3754 #line 3754 "expression.ec"
3755         break;
3756       case 197: /* "enumerator" */
3757
3758 /* Line 1009 of yacc.c  */
3759 #line 162 "expression.y"
3760         { FreeEnumerator((yyvaluep->enumerator)); };
3761
3762 /* Line 1009 of yacc.c  */
3763 #line 3763 "expression.ec"
3764         break;
3765       case 198: /* "direct_abstract_declarator" */
3766
3767 /* Line 1009 of yacc.c  */
3768 #line 163 "expression.y"
3769         { FreeDeclarator((yyvaluep->declarator)); };
3770
3771 /* Line 1009 of yacc.c  */
3772 #line 3772 "expression.ec"
3773         break;
3774       case 199: /* "direct_abstract_declarator_noarray" */
3775
3776 /* Line 1009 of yacc.c  */
3777 #line 163 "expression.y"
3778         { FreeDeclarator((yyvaluep->declarator)); };
3779
3780 /* Line 1009 of yacc.c  */
3781 #line 3781 "expression.ec"
3782         break;
3783       case 200: /* "abstract_declarator" */
3784
3785 /* Line 1009 of yacc.c  */
3786 #line 163 "expression.y"
3787         { FreeDeclarator((yyvaluep->declarator)); };
3788
3789 /* Line 1009 of yacc.c  */
3790 #line 3790 "expression.ec"
3791         break;
3792       case 201: /* "abstract_declarator_noarray" */
3793
3794 /* Line 1009 of yacc.c  */
3795 #line 163 "expression.y"
3796         { FreeDeclarator((yyvaluep->declarator)); };
3797
3798 /* Line 1009 of yacc.c  */
3799 #line 3799 "expression.ec"
3800         break;
3801       case 202: /* "declarator" */
3802
3803 /* Line 1009 of yacc.c  */
3804 #line 163 "expression.y"
3805         { FreeDeclarator((yyvaluep->declarator)); };
3806
3807 /* Line 1009 of yacc.c  */
3808 #line 3808 "expression.ec"
3809         break;
3810       case 203: /* "direct_declarator_nofunction" */
3811
3812 /* Line 1009 of yacc.c  */
3813 #line 163 "expression.y"
3814         { FreeDeclarator((yyvaluep->declarator)); };
3815
3816 /* Line 1009 of yacc.c  */
3817 #line 3817 "expression.ec"
3818         break;
3819       case 204: /* "declarator_function" */
3820
3821 /* Line 1009 of yacc.c  */
3822 #line 163 "expression.y"
3823         { FreeDeclarator((yyvaluep->declarator)); };
3824
3825 /* Line 1009 of yacc.c  */
3826 #line 3826 "expression.ec"
3827         break;
3828       case 205: /* "direct_declarator" */
3829
3830 /* Line 1009 of yacc.c  */
3831 #line 163 "expression.y"
3832         { FreeDeclarator((yyvaluep->declarator)); };
3833
3834 /* Line 1009 of yacc.c  */
3835 #line 3835 "expression.ec"
3836         break;
3837       case 206: /* "direct_declarator_function_start" */
3838
3839 /* Line 1009 of yacc.c  */
3840 #line 163 "expression.y"
3841         { FreeDeclarator((yyvaluep->declarator)); };
3842
3843 /* Line 1009 of yacc.c  */
3844 #line 3844 "expression.ec"
3845         break;
3846       case 207: /* "direct_declarator_function" */
3847
3848 /* Line 1009 of yacc.c  */
3849 #line 163 "expression.y"
3850         { FreeDeclarator((yyvaluep->declarator)); };
3851
3852 /* Line 1009 of yacc.c  */
3853 #line 3853 "expression.ec"
3854         break;
3855       case 208: /* "type_qualifier_list" */
3856
3857 /* Line 1009 of yacc.c  */
3858 #line 189 "expression.y"
3859         { FreeList((yyvaluep->list), FreeSpecifier); };
3860
3861 /* Line 1009 of yacc.c  */
3862 #line 3862 "expression.ec"
3863         break;
3864       case 209: /* "pointer" */
3865
3866 /* Line 1009 of yacc.c  */
3867 #line 153 "expression.y"
3868         { FreePointer((yyvaluep->pointer)); };
3869
3870 /* Line 1009 of yacc.c  */
3871 #line 3871 "expression.ec"
3872         break;
3873       case 210: /* "parameter_type_list" */
3874
3875 /* Line 1009 of yacc.c  */
3876 #line 194 "expression.y"
3877         { FreeList((yyvaluep->list), FreeTypeName); };
3878
3879 /* Line 1009 of yacc.c  */
3880 #line 3880 "expression.ec"
3881         break;
3882       case 211: /* "parameter_list" */
3883
3884 /* Line 1009 of yacc.c  */
3885 #line 194 "expression.y"
3886         { FreeList((yyvaluep->list), FreeTypeName); };
3887
3888 /* Line 1009 of yacc.c  */
3889 #line 3889 "expression.ec"
3890         break;
3891       case 212: /* "parameter_declaration" */
3892
3893 /* Line 1009 of yacc.c  */
3894 #line 169 "expression.y"
3895         { FreeTypeName((yyvaluep->typeName)); };
3896
3897 /* Line 1009 of yacc.c  */
3898 #line 3898 "expression.ec"
3899         break;
3900       case 213: /* "identifier_list" */
3901
3902 /* Line 1009 of yacc.c  */
3903 #line 194 "expression.y"
3904         { FreeList((yyvaluep->list), FreeTypeName); };
3905
3906 /* Line 1009 of yacc.c  */
3907 #line 3907 "expression.ec"
3908         break;
3909       case 214: /* "type_name" */
3910
3911 /* Line 1009 of yacc.c  */
3912 #line 169 "expression.y"
3913         { FreeTypeName((yyvaluep->typeName)); };
3914
3915 /* Line 1009 of yacc.c  */
3916 #line 3916 "expression.ec"
3917         break;
3918       case 215: /* "initializer" */
3919
3920 /* Line 1009 of yacc.c  */
3921 #line 167 "expression.y"
3922         { FreeInitializer((yyvaluep->initializer)); };
3923
3924 /* Line 1009 of yacc.c  */
3925 #line 3925 "expression.ec"
3926         break;
3927       case 216: /* "initializer_condition" */
3928
3929 /* Line 1009 of yacc.c  */
3930 #line 167 "expression.y"
3931         { FreeInitializer((yyvaluep->initializer)); };
3932
3933 /* Line 1009 of yacc.c  */
3934 #line 3934 "expression.ec"
3935         break;
3936       case 217: /* "initializer_list" */
3937
3938 /* Line 1009 of yacc.c  */
3939 #line 192 "expression.y"
3940         { FreeList((yyvaluep->list), FreeInitializer); };
3941
3942 /* Line 1009 of yacc.c  */
3943 #line 3943 "expression.ec"
3944         break;
3945       case 218: /* "statement" */
3946
3947 /* Line 1009 of yacc.c  */
3948 #line 170 "expression.y"
3949         { FreeStatement((yyvaluep->stmt)); };
3950
3951 /* Line 1009 of yacc.c  */
3952 #line 3952 "expression.ec"
3953         break;
3954       case 219: /* "labeled_statement" */
3955
3956 /* Line 1009 of yacc.c  */
3957 #line 170 "expression.y"
3958         { FreeStatement((yyvaluep->stmt)); };
3959
3960 /* Line 1009 of yacc.c  */
3961 #line 3961 "expression.ec"
3962         break;
3963       case 220: /* "declaration_list" */
3964
3965 /* Line 1009 of yacc.c  */
3966 #line 191 "expression.y"
3967         { FreeList((yyvaluep->list), FreeDeclaration); };
3968
3969 /* Line 1009 of yacc.c  */
3970 #line 3970 "expression.ec"
3971         break;
3972       case 221: /* "statement_list" */
3973
3974 /* Line 1009 of yacc.c  */
3975 #line 195 "expression.y"
3976         { FreeList((yyvaluep->list), FreeStatement); };
3977
3978 /* Line 1009 of yacc.c  */
3979 #line 3979 "expression.ec"
3980         break;
3981       case 222: /* "compound_inside" */
3982
3983 /* Line 1009 of yacc.c  */
3984 #line 170 "expression.y"
3985         { FreeStatement((yyvaluep->stmt)); };
3986
3987 /* Line 1009 of yacc.c  */
3988 #line 3988 "expression.ec"
3989         break;
3990       case 223: /* "compound_start" */
3991
3992 /* Line 1009 of yacc.c  */
3993 #line 199 "expression.y"
3994         { PopContext((yyvaluep->context)); FreeContext((yyvaluep->context)); delete (yyvaluep->context); };
3995
3996 /* Line 1009 of yacc.c  */
3997 #line 3997 "expression.ec"
3998         break;
3999       case 224: /* "compound_statement" */
4000
4001 /* Line 1009 of yacc.c  */
4002 #line 170 "expression.y"
4003         { FreeStatement((yyvaluep->stmt)); };
4004
4005 /* Line 1009 of yacc.c  */
4006 #line 4006 "expression.ec"
4007         break;
4008       case 225: /* "expression_statement" */
4009
4010 /* Line 1009 of yacc.c  */
4011 #line 170 "expression.y"
4012         { FreeStatement((yyvaluep->stmt)); };
4013
4014 /* Line 1009 of yacc.c  */
4015 #line 4015 "expression.ec"
4016         break;
4017       case 226: /* "selection_statement" */
4018
4019 /* Line 1009 of yacc.c  */
4020 #line 170 "expression.y"
4021         { FreeStatement((yyvaluep->stmt)); };
4022
4023 /* Line 1009 of yacc.c  */
4024 #line 4024 "expression.ec"
4025         break;
4026       case 227: /* "iteration_statement" */
4027
4028 /* Line 1009 of yacc.c  */
4029 #line 170 "expression.y"
4030         { FreeStatement((yyvaluep->stmt)); };
4031
4032 /* Line 1009 of yacc.c  */
4033 #line 4033 "expression.ec"
4034         break;
4035       case 228: /* "jump_statement" */
4036
4037 /* Line 1009 of yacc.c  */
4038 #line 170 "expression.y"
4039         { FreeStatement((yyvaluep->stmt)); };
4040
4041 /* Line 1009 of yacc.c  */
4042 #line 4042 "expression.ec"
4043         break;
4044       case 229: /* "string_literal" */
4045
4046 /* Line 1009 of yacc.c  */
4047 #line 184 "expression.y"
4048         { delete (yyvaluep->string); };
4049
4050 /* Line 1009 of yacc.c  */
4051 #line 4051 "expression.ec"
4052         break;
4053       case 230: /* "instantiation_named" */
4054
4055 /* Line 1009 of yacc.c  */
4056 #line 175 "expression.y"
4057         { FreeInstance((yyvaluep->instance)); };
4058
4059 /* Line 1009 of yacc.c  */
4060 #line 4060 "expression.ec"
4061         break;
4062       case 231: /* "instantiation_unnamed" */
4063
4064 /* Line 1009 of yacc.c  */
4065 #line 175 "expression.y"
4066         { FreeInstance((yyvaluep->instance)); };
4067
4068 /* Line 1009 of yacc.c  */
4069 #line 4069 "expression.ec"
4070         break;
4071       case 233: /* "class_function_definition_start" */
4072
4073 /* Line 1009 of yacc.c  */
4074 #line 179 "expression.y"
4075         { FreeClassFunction((yyvaluep->classFunction)); };
4076
4077 /* Line 1009 of yacc.c  */
4078 #line 4078 "expression.ec"
4079         break;
4080       case 234: /* "constructor_function_definition_start" */
4081
4082 /* Line 1009 of yacc.c  */
4083 #line 179 "expression.y"
4084         { FreeClassFunction((yyvaluep->classFunction)); };
4085
4086 /* Line 1009 of yacc.c  */
4087 #line 4087 "expression.ec"
4088         break;
4089       case 235: /* "destructor_function_definition_start" */
4090
4091 /* Line 1009 of yacc.c  */
4092 #line 179 "expression.y"
4093         { FreeClassFunction((yyvaluep->classFunction)); };
4094
4095 /* Line 1009 of yacc.c  */
4096 #line 4096 "expression.ec"
4097         break;
4098       case 236: /* "virtual_class_function_definition_start" */
4099
4100 /* Line 1009 of yacc.c  */
4101 #line 179 "expression.y"
4102         { FreeClassFunction((yyvaluep->classFunction)); };
4103
4104 /* Line 1009 of yacc.c  */
4105 #line 4105 "expression.ec"
4106         break;
4107       case 237: /* "class_function_definition" */
4108
4109 /* Line 1009 of yacc.c  */
4110 #line 179 "expression.y"
4111         { FreeClassFunction((yyvaluep->classFunction)); };
4112
4113 /* Line 1009 of yacc.c  */
4114 #line 4114 "expression.ec"
4115         break;
4116       case 238: /* "instance_class_function_definition_start" */
4117
4118 /* Line 1009 of yacc.c  */
4119 #line 179 "expression.y"
4120         { FreeClassFunction((yyvaluep->classFunction)); };
4121
4122 /* Line 1009 of yacc.c  */
4123 #line 4123 "expression.ec"
4124         break;
4125       case 239: /* "instance_class_function_definition" */
4126
4127 /* Line 1009 of yacc.c  */
4128 #line 179 "expression.y"
4129         { FreeClassFunction((yyvaluep->classFunction)); };
4130
4131 /* Line 1009 of yacc.c  */
4132 #line 4132 "expression.ec"
4133         break;
4134       case 240: /* "data_member_initialization" */
4135
4136 /* Line 1009 of yacc.c  */
4137 #line 177 "expression.y"
4138         { FreeMemberInit((yyvaluep->memberInit)); };
4139
4140 /* Line 1009 of yacc.c  */
4141 #line 4141 "expression.ec"
4142         break;
4143       case 241: /* "data_member_initialization_list" */
4144
4145 /* Line 1009 of yacc.c  */
4146 #line 197 "expression.y"
4147         { FreeList((yyvaluep->list), FreeMemberInit); };
4148
4149 /* Line 1009 of yacc.c  */
4150 #line 4150 "expression.ec"
4151         break;
4152       case 242: /* "data_member_initialization_list_coloned" */
4153
4154 /* Line 1009 of yacc.c  */
4155 #line 197 "expression.y"
4156         { FreeList((yyvaluep->list), FreeMemberInit); };
4157
4158 /* Line 1009 of yacc.c  */
4159 #line 4159 "expression.ec"
4160         break;
4161       case 243: /* "members_initialization_list_coloned" */
4162
4163 /* Line 1009 of yacc.c  */
4164 #line 198 "expression.y"
4165         { FreeList((yyvaluep->list), FreeMembersInit); };
4166
4167 /* Line 1009 of yacc.c  */
4168 #line 4168 "expression.ec"
4169         break;
4170       case 244: /* "members_initialization_list" */
4171
4172 /* Line 1009 of yacc.c  */
4173 #line 198 "expression.y"
4174         { FreeList((yyvaluep->list), FreeMembersInit); };
4175
4176 /* Line 1009 of yacc.c  */
4177 #line 4177 "expression.ec"
4178         break;
4179
4180       default:
4181         break;
4182     }
4183 }
4184
4185 /* Prevent warnings from -Wmissing-prototypes.  */
4186 #ifdef YYPARSE_PARAM
4187 #if defined __STDC__ || defined __cplusplus
4188 int yyparse (void *YYPARSE_PARAM);
4189 #else
4190 int yyparse ();
4191 #endif
4192 #else /* ! YYPARSE_PARAM */
4193 #if defined __STDC__ || defined __cplusplus
4194 int yyparse (void);
4195 #else
4196 int yyparse ();
4197 #endif
4198 #endif /* ! YYPARSE_PARAM */
4199
4200
4201 /* The lookahead symbol.  */
4202 int yychar;
4203
4204 /* The semantic value of the lookahead symbol.  */
4205 YYSTYPE yylval;
4206
4207 /* Location data for the lookahead symbol.  */
4208 YYLTYPE yylloc;
4209
4210 /* Number of syntax errors so far.  */
4211 int yynerrs;
4212
4213
4214
4215 /*-------------------------.
4216 | yyparse or yypush_parse.  |
4217 `-------------------------*/
4218
4219 #ifdef YYPARSE_PARAM
4220 #if (defined __STDC__ || defined __C99__FUNC__ \
4221      || defined __cplusplus || defined _MSC_VER)
4222 int
4223 yyparse (void *YYPARSE_PARAM)
4224 #else
4225 int
4226 yyparse (YYPARSE_PARAM)
4227     void *YYPARSE_PARAM;
4228 #endif
4229 #else /* ! YYPARSE_PARAM */
4230 #if (defined __STDC__ || defined __C99__FUNC__ \
4231      || defined __cplusplus || defined _MSC_VER)
4232 int
4233 yyparse (void)
4234 #else
4235 int
4236 yyparse ()
4237
4238 #endif
4239 #endif
4240 {
4241
4242
4243     int yystate;
4244     /* Number of tokens to shift before error messages enabled.  */
4245     int yyerrstatus;
4246
4247     /* The stacks and their tools:
4248        `yyss': related to states.
4249        `yyvs': related to semantic values.
4250        `yyls': related to locations.
4251
4252        Refer to the stacks thru separate pointers, to allow yyoverflow
4253        to reallocate them elsewhere.  */
4254
4255     /* The state stack.  */
4256     yytype_int16 yyssa[YYINITDEPTH];
4257     yytype_int16 *yyss;
4258     yytype_int16 *yyssp;
4259
4260     /* The semantic value stack.  */
4261     YYSTYPE yyvsa[YYINITDEPTH];
4262     YYSTYPE *yyvs;
4263     YYSTYPE *yyvsp;
4264
4265     /* The location stack.  */
4266     YYLTYPE yylsa[YYINITDEPTH];
4267     YYLTYPE *yyls;
4268     YYLTYPE *yylsp;
4269
4270     /* The locations where the error started and ended.  */
4271     YYLTYPE yyerror_range[2];
4272
4273     YYSIZE_T yystacksize;
4274
4275   int yyn;
4276   int yyresult;
4277   /* Lookahead token as an internal (translated) token number.  */
4278   int yytoken;
4279   /* The variables used to return semantic value and location from the
4280      action routines.  */
4281   YYSTYPE yyval;
4282   YYLTYPE yyloc;
4283
4284 #if YYERROR_VERBOSE
4285   /* Buffer for error messages, and its allocated size.  */
4286   char yymsgbuf[128];
4287   char *yymsg = yymsgbuf;
4288   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4289 #endif
4290
4291 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
4292
4293   /* The number of symbols on the RHS of the reduced rule.
4294      Keep to zero when no symbol should be popped.  */
4295   int yylen = 0;
4296
4297   yytoken = 0;
4298   yyss = yyssa;
4299   yyvs = yyvsa;
4300   yyls = yylsa;
4301   yystacksize = YYINITDEPTH;
4302
4303   YYDPRINTF ((stderr, "Starting parse\n"));
4304
4305   yystate = 0;
4306   yyerrstatus = 0;
4307   yynerrs = 0;
4308   yychar = YYEMPTY; /* Cause a token to be read.  */
4309
4310   /* Initialize stack pointers.
4311      Waste one element of value and location stack
4312      so that they stay on the same level as the state stack.
4313      The wasted elements are never initialized.  */
4314   yyssp = yyss;
4315   yyvsp = yyvs;
4316   yylsp = yyls;
4317
4318 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
4319   /* Initialize the default location before parsing starts.  */
4320   yylloc.first_line   = yylloc.last_line   = 1;
4321   yylloc.first_column = yylloc.last_column = 1;
4322 #endif
4323
4324   goto yysetstate;
4325
4326 /*------------------------------------------------------------.
4327 | yynewstate -- Push a new state, which is found in yystate.  |
4328 `------------------------------------------------------------*/
4329  yynewstate:
4330   /* In all cases, when you get here, the value and location stacks
4331      have just been pushed.  So pushing a state here evens the stacks.  */
4332   yyssp++;
4333
4334  yysetstate:
4335   *yyssp = yystate;
4336
4337   if (yyss + yystacksize - 1 <= yyssp)
4338     {
4339       /* Get the current used size of the three stacks, in elements.  */
4340       YYSIZE_T yysize = yyssp - yyss + 1;
4341
4342 #ifdef yyoverflow
4343       {
4344         /* Give user a chance to reallocate the stack.  Use copies of
4345            these so that the &'s don't force the real ones into
4346            memory.  */
4347         YYSTYPE *yyvs1 = yyvs;
4348         yytype_int16 *yyss1 = yyss;
4349         YYLTYPE *yyls1 = yyls;
4350
4351         /* Each stack pointer address is followed by the size of the
4352            data in use in that stack, in bytes.  This used to be a
4353            conditional around just the two extra args, but that might
4354            be undefined if yyoverflow is a macro.  */
4355         yyoverflow (YY_("memory exhausted"),
4356                     &yyss1, yysize * sizeof (*yyssp),
4357                     &yyvs1, yysize * sizeof (*yyvsp),
4358                     &yyls1, yysize * sizeof (*yylsp),
4359                     &yystacksize);
4360
4361         yyls = yyls1;
4362         yyss = yyss1;
4363         yyvs = yyvs1;
4364       }
4365 #else /* no yyoverflow */
4366 # ifndef YYSTACK_RELOCATE
4367       goto yyexhaustedlab;
4368 # else
4369       /* Extend the stack our own way.  */
4370       if (YYMAXDEPTH <= yystacksize)
4371         goto yyexhaustedlab;
4372       yystacksize *= 2;
4373       if (YYMAXDEPTH < yystacksize)
4374         yystacksize = YYMAXDEPTH;
4375
4376       {
4377         yytype_int16 *yyss1 = yyss;
4378         union yyalloc *yyptr =
4379           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4380         if (! yyptr)
4381           goto yyexhaustedlab;
4382         YYSTACK_RELOCATE (yyss_alloc, yyss);
4383         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4384         YYSTACK_RELOCATE (yyls_alloc, yyls);
4385 #  undef YYSTACK_RELOCATE
4386         if (yyss1 != yyssa)
4387           YYSTACK_FREE (yyss1);
4388       }
4389 # endif
4390 #endif /* no yyoverflow */
4391
4392       yyssp = yyss + yysize - 1;
4393       yyvsp = yyvs + yysize - 1;
4394       yylsp = yyls + yysize - 1;
4395
4396       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4397                   (unsigned long int) yystacksize));
4398
4399       if (yyss + yystacksize - 1 <= yyssp)
4400         YYABORT;
4401     }
4402
4403   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4404
4405   if (yystate == YYFINAL)
4406     YYACCEPT;
4407
4408   goto yybackup;
4409
4410 /*-----------.
4411 | yybackup.  |
4412 `-----------*/
4413 yybackup:
4414
4415   /* Do appropriate processing given the current state.  Read a
4416      lookahead token if we need one and don't already have one.  */
4417
4418   /* First try to decide what to do without reference to lookahead token.  */
4419   yyn = yypact[yystate];
4420   if (yyn == YYPACT_NINF)
4421     goto yydefault;
4422
4423   /* Not known => get a lookahead token if don't already have one.  */
4424
4425   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
4426   if (yychar == YYEMPTY)
4427     {
4428       YYDPRINTF ((stderr, "Reading a token: "));
4429       yychar = YYLEX;
4430     }
4431
4432   if (yychar <= YYEOF)
4433     {
4434       yychar = yytoken = YYEOF;
4435       YYDPRINTF ((stderr, "Now at end of input.\n"));
4436     }
4437   else
4438     {
4439       yytoken = YYTRANSLATE (yychar);
4440       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4441     }
4442
4443   /* If the proper action on seeing token YYTOKEN is to reduce or to
4444      detect an error, take that action.  */
4445   yyn += yytoken;
4446   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4447     goto yydefault;
4448   yyn = yytable[yyn];
4449   if (yyn <= 0)
4450     {
4451       if (yyn == 0 || yyn == YYTABLE_NINF)
4452         goto yyerrlab;
4453       yyn = -yyn;
4454       goto yyreduce;
4455     }
4456
4457   /* Count tokens shifted since error; after three, turn off error
4458      status.  */
4459   if (yyerrstatus)
4460     yyerrstatus--;
4461
4462   /* Shift the lookahead token.  */
4463   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4464
4465   /* Discard the shifted token.  */
4466   yychar = YYEMPTY;
4467
4468   yystate = yyn;
4469   *++yyvsp = yylval;
4470   *++yylsp = yylloc;
4471   goto yynewstate;
4472
4473
4474 /*-----------------------------------------------------------.
4475 | yydefault -- do the default action for the current state.  |
4476 `-----------------------------------------------------------*/
4477 yydefault:
4478   yyn = yydefact[yystate];
4479   if (yyn == 0)
4480     goto yyerrlab;
4481   goto yyreduce;
4482
4483
4484 /*-----------------------------.
4485 | yyreduce -- Do a reduction.  |
4486 `-----------------------------*/
4487 yyreduce:
4488   /* yyn is the number of a rule to reduce with.  */
4489   yylen = yyr2[yyn];
4490
4491   /* If YYLEN is nonzero, implement the default value of the action:
4492      `$$ = $1'.
4493
4494      Otherwise, the following line sets YYVAL to garbage.
4495      This behavior is undocumented and Bison
4496      users should not rely upon it.  Assigning to YYVAL
4497      unconditionally makes the parser a bit smaller, and it avoids a
4498      GCC warning that YYVAL may be used uninitialized.  */
4499   yyval = yyvsp[1-yylen];
4500
4501   /* Default location.  */
4502   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
4503   YY_REDUCE_PRINT (yyn);
4504   switch (yyn)
4505     {
4506         case 2:
4507
4508 /* Line 1464 of yacc.c  */
4509 #line 211 "expression.y"
4510     { (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
4511     break;
4512
4513   case 4:
4514
4515 /* Line 1464 of yacc.c  */
4516 #line 217 "expression.y"
4517     { (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
4518     break;
4519
4520   case 5:
4521
4522 /* Line 1464 of yacc.c  */
4523 #line 222 "expression.y"
4524     { (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
4525     break;
4526
4527   case 6:
4528
4529 /* Line 1464 of yacc.c  */
4530 #line 224 "expression.y"
4531     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
4532     break;
4533
4534   case 7:
4535
4536 /* Line 1464 of yacc.c  */
4537 #line 226 "expression.y"
4538     { (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
4539     break;
4540
4541   case 8:
4542
4543 /* Line 1464 of yacc.c  */
4544 #line 228 "expression.y"
4545     { (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
4546     break;
4547
4548   case 9:
4549
4550 /* Line 1464 of yacc.c  */
4551 #line 229 "expression.y"
4552     { (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
4553     break;
4554
4555   case 10:
4556
4557 /* Line 1464 of yacc.c  */
4558 #line 230 "expression.y"
4559     { (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); ;}
4560     break;
4561
4562   case 11:
4563
4564 /* Line 1464 of yacc.c  */
4565 #line 232 "expression.y"
4566     { 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(); ;}
4567     break;
4568
4569   case 12:
4570
4571 /* Line 1464 of yacc.c  */
4572 #line 234 "expression.y"
4573     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
4574     break;
4575
4576   case 13:
4577
4578 /* Line 1464 of yacc.c  */
4579 #line 235 "expression.y"
4580     { (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
4581     break;
4582
4583   case 14:
4584
4585 /* Line 1464 of yacc.c  */
4586 #line 236 "expression.y"
4587     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
4588     break;
4589
4590   case 15:
4591
4592 /* Line 1464 of yacc.c  */
4593 #line 237 "expression.y"
4594     { (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
4595     break;
4596
4597   case 16:
4598
4599 /* Line 1464 of yacc.c  */
4600 #line 238 "expression.y"
4601     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
4602     break;
4603
4604   case 17:
4605
4606 /* Line 1464 of yacc.c  */
4607 #line 239 "expression.y"
4608     { (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
4609     break;
4610
4611   case 18:
4612
4613 /* Line 1464 of yacc.c  */
4614 #line 240 "expression.y"
4615     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
4616     break;
4617
4618   case 19:
4619
4620 /* Line 1464 of yacc.c  */
4621 #line 241 "expression.y"
4622     { (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
4623     break;
4624
4625   case 20:
4626
4627 /* Line 1464 of yacc.c  */
4628 #line 242 "expression.y"
4629     { (yyval.exp) = MkExpDummy(); ;}
4630     break;
4631
4632   case 21:
4633
4634 /* Line 1464 of yacc.c  */
4635 #line 246 "expression.y"
4636     { (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
4637     break;
4638
4639   case 23:
4640
4641 /* Line 1464 of yacc.c  */
4642 #line 251 "expression.y"
4643     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
4644     break;
4645
4646   case 24:
4647
4648 /* Line 1464 of yacc.c  */
4649 #line 252 "expression.y"
4650     { (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); ;}
4651     break;
4652
4653   case 25:
4654
4655 /* Line 1464 of yacc.c  */
4656 #line 253 "expression.y"
4657     { (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); ;}
4658     break;
4659
4660   case 26:
4661
4662 /* Line 1464 of yacc.c  */
4663 #line 254 "expression.y"
4664     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
4665     break;
4666
4667   case 27:
4668
4669 /* Line 1464 of yacc.c  */
4670 #line 255 "expression.y"
4671     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
4672     break;
4673
4674   case 28:
4675
4676 /* Line 1464 of yacc.c  */
4677 #line 256 "expression.y"
4678     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
4679     break;
4680
4681   case 29:
4682
4683 /* Line 1464 of yacc.c  */
4684 #line 257 "expression.y"
4685     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
4686     break;
4687
4688   case 31:
4689
4690 /* Line 1464 of yacc.c  */
4691 #line 263 "expression.y"
4692     { (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
4693     break;
4694
4695   case 32:
4696
4697 /* Line 1464 of yacc.c  */
4698 #line 264 "expression.y"
4699     { (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); ;}
4700     break;
4701
4702   case 33:
4703
4704 /* Line 1464 of yacc.c  */
4705 #line 265 "expression.y"
4706     { (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); ;}
4707     break;
4708
4709   case 34:
4710
4711 /* Line 1464 of yacc.c  */
4712 #line 266 "expression.y"
4713     { (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
4714     break;
4715
4716   case 35:
4717
4718 /* Line 1464 of yacc.c  */
4719 #line 267 "expression.y"
4720     { (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
4721     break;
4722
4723   case 36:
4724
4725 /* Line 1464 of yacc.c  */
4726 #line 268 "expression.y"
4727     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
4728     break;
4729
4730   case 37:
4731
4732 /* Line 1464 of yacc.c  */
4733 #line 269 "expression.y"
4734     { (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
4735     break;
4736
4737   case 38:
4738
4739 /* Line 1464 of yacc.c  */
4740 #line 273 "expression.y"
4741     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
4742     break;
4743
4744   case 39:
4745
4746 /* Line 1464 of yacc.c  */
4747 #line 274 "expression.y"
4748     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
4749     break;
4750
4751   case 40:
4752
4753 /* Line 1464 of yacc.c  */
4754 #line 275 "expression.y"
4755     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
4756     break;
4757
4758   case 41:
4759
4760 /* Line 1464 of yacc.c  */
4761 #line 276 "expression.y"
4762     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp));  ;}
4763     break;
4764
4765   case 42:
4766
4767 /* Line 1464 of yacc.c  */
4768 #line 280 "expression.y"
4769     { (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
4770     break;
4771
4772   case 43:
4773
4774 /* Line 1464 of yacc.c  */
4775 #line 281 "expression.y"
4776     { (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
4777     break;
4778
4779   case 44:
4780
4781 /* Line 1464 of yacc.c  */
4782 #line 282 "expression.y"
4783     { (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
4784     break;
4785
4786   case 45:
4787
4788 /* Line 1464 of yacc.c  */
4789 #line 283 "expression.y"
4790     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
4791     break;
4792
4793   case 46:
4794
4795 /* Line 1464 of yacc.c  */
4796 #line 284 "expression.y"
4797     { (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
4798     break;
4799
4800   case 47:
4801
4802 /* Line 1464 of yacc.c  */
4803 #line 285 "expression.y"
4804     { (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
4805     break;
4806
4807   case 48:
4808
4809 /* Line 1464 of yacc.c  */
4810 #line 286 "expression.y"
4811     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(3) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
4812     break;
4813
4814   case 49:
4815
4816 /* Line 1464 of yacc.c  */
4817 #line 287 "expression.y"
4818     { (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
4819     break;
4820
4821   case 50:
4822
4823 /* Line 1464 of yacc.c  */
4824 #line 288 "expression.y"
4825     { (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
4826     break;
4827
4828   case 55:
4829
4830 /* Line 1464 of yacc.c  */
4831 #line 302 "expression.y"
4832     { (yyval.i) = '&'; ;}
4833     break;
4834
4835   case 56:
4836
4837 /* Line 1464 of yacc.c  */
4838 #line 303 "expression.y"
4839     { (yyval.i) = '*'; ;}
4840     break;
4841
4842   case 57:
4843
4844 /* Line 1464 of yacc.c  */
4845 #line 304 "expression.y"
4846     { (yyval.i) = '+'; ;}
4847     break;
4848
4849   case 58:
4850
4851 /* Line 1464 of yacc.c  */
4852 #line 305 "expression.y"
4853     { (yyval.i) = '-'; ;}
4854     break;
4855
4856   case 59:
4857
4858 /* Line 1464 of yacc.c  */
4859 #line 306 "expression.y"
4860     { (yyval.i) = '~'; ;}
4861     break;
4862
4863   case 60:
4864
4865 /* Line 1464 of yacc.c  */
4866 #line 307 "expression.y"
4867     { (yyval.i) = '!'; ;}
4868     break;
4869
4870   case 61:
4871
4872 /* Line 1464 of yacc.c  */
4873 #line 308 "expression.y"
4874     { (yyval.i) = DELETE; ;}
4875     break;
4876
4877   case 63:
4878
4879 /* Line 1464 of yacc.c  */
4880 #line 313 "expression.y"
4881     { (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
4882     break;
4883
4884   case 65:
4885
4886 /* Line 1464 of yacc.c  */
4887 #line 318 "expression.y"
4888     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4889     break;
4890
4891   case 66:
4892
4893 /* Line 1464 of yacc.c  */
4894 #line 319 "expression.y"
4895     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4896     break;
4897
4898   case 67:
4899
4900 /* Line 1464 of yacc.c  */
4901 #line 320 "expression.y"
4902     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4903     break;
4904
4905   case 69:
4906
4907 /* Line 1464 of yacc.c  */
4908 #line 325 "expression.y"
4909     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4910     break;
4911
4912   case 70:
4913
4914 /* Line 1464 of yacc.c  */
4915 #line 326 "expression.y"
4916     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4917     break;
4918
4919   case 72:
4920
4921 /* Line 1464 of yacc.c  */
4922 #line 331 "expression.y"
4923     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4924     break;
4925
4926   case 73:
4927
4928 /* Line 1464 of yacc.c  */
4929 #line 332 "expression.y"
4930     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4931     break;
4932
4933   case 75:
4934
4935 /* Line 1464 of yacc.c  */
4936 #line 337 "expression.y"
4937     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '<', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4938     break;
4939
4940   case 76:
4941
4942 /* Line 1464 of yacc.c  */
4943 #line 338 "expression.y"
4944     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4945     break;
4946
4947   case 77:
4948
4949 /* Line 1464 of yacc.c  */
4950 #line 339 "expression.y"
4951     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4952     break;
4953
4954   case 78:
4955
4956 /* Line 1464 of yacc.c  */
4957 #line 340 "expression.y"
4958     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4959     break;
4960
4961   case 80:
4962
4963 /* Line 1464 of yacc.c  */
4964 #line 345 "expression.y"
4965     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4966     break;
4967
4968   case 81:
4969
4970 /* Line 1464 of yacc.c  */
4971 #line 346 "expression.y"
4972     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4973     break;
4974
4975   case 83:
4976
4977 /* Line 1464 of yacc.c  */
4978 #line 351 "expression.y"
4979     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4980     break;
4981
4982   case 85:
4983
4984 /* Line 1464 of yacc.c  */
4985 #line 356 "expression.y"
4986     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4987     break;
4988
4989   case 87:
4990
4991 /* Line 1464 of yacc.c  */
4992 #line 361 "expression.y"
4993     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
4994     break;
4995
4996   case 89:
4997
4998 /* Line 1464 of yacc.c  */
4999 #line 366 "expression.y"
5000     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5001     break;
5002
5003   case 91:
5004
5005 /* Line 1464 of yacc.c  */
5006 #line 371 "expression.y"
5007     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5008     break;
5009
5010   case 93:
5011
5012 /* Line 1464 of yacc.c  */
5013 #line 376 "expression.y"
5014     { (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
5015     break;
5016
5017   case 95:
5018
5019 /* Line 1464 of yacc.c  */
5020 #line 381 "expression.y"
5021     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5022     break;
5023
5024   case 96:
5025
5026 /* Line 1464 of yacc.c  */
5027 #line 383 "expression.y"
5028     { (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
5029     break;
5030
5031   case 97:
5032
5033 /* Line 1464 of yacc.c  */
5034 #line 388 "expression.y"
5035     { (yyval.i) = '='; ;}
5036     break;
5037
5038   case 98:
5039
5040 /* Line 1464 of yacc.c  */
5041 #line 389 "expression.y"
5042     { (yyval.i) = MUL_ASSIGN; ;}
5043     break;
5044
5045   case 99:
5046
5047 /* Line 1464 of yacc.c  */
5048 #line 390 "expression.y"
5049     { (yyval.i) = DIV_ASSIGN; ;}
5050     break;
5051
5052   case 100:
5053
5054 /* Line 1464 of yacc.c  */
5055 #line 391 "expression.y"
5056     { (yyval.i) = MOD_ASSIGN; ;}
5057     break;
5058
5059   case 101:
5060
5061 /* Line 1464 of yacc.c  */
5062 #line 392 "expression.y"
5063     { (yyval.i) = ADD_ASSIGN; ;}
5064     break;
5065
5066   case 102:
5067
5068 /* Line 1464 of yacc.c  */
5069 #line 393 "expression.y"
5070     { (yyval.i) = SUB_ASSIGN; ;}
5071     break;
5072
5073   case 103:
5074
5075 /* Line 1464 of yacc.c  */
5076 #line 394 "expression.y"
5077     { (yyval.i) = LEFT_ASSIGN; ;}
5078     break;
5079
5080   case 104:
5081
5082 /* Line 1464 of yacc.c  */
5083 #line 395 "expression.y"
5084     { (yyval.i) = RIGHT_ASSIGN; ;}
5085     break;
5086
5087   case 105:
5088
5089 /* Line 1464 of yacc.c  */
5090 #line 396 "expression.y"
5091     { (yyval.i) = AND_ASSIGN; ;}
5092     break;
5093
5094   case 106:
5095
5096 /* Line 1464 of yacc.c  */
5097 #line 397 "expression.y"
5098     { (yyval.i) = XOR_ASSIGN; ;}
5099     break;
5100
5101   case 107:
5102
5103 /* Line 1464 of yacc.c  */
5104 #line 398 "expression.y"
5105     { (yyval.i) = OR_ASSIGN; ;}
5106     break;
5107
5108   case 108:
5109
5110 /* Line 1464 of yacc.c  */
5111 #line 402 "expression.y"
5112     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
5113     break;
5114
5115   case 109:
5116
5117 /* Line 1464 of yacc.c  */
5118 #line 403 "expression.y"
5119     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
5120     break;
5121
5122   case 111:
5123
5124 /* Line 1464 of yacc.c  */
5125 #line 411 "expression.y"
5126     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
5127     break;
5128
5129   case 112:
5130
5131 /* Line 1464 of yacc.c  */
5132 #line 412 "expression.y"
5133     { (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
5134     break;
5135
5136   case 113:
5137
5138 /* Line 1464 of yacc.c  */
5139 #line 413 "expression.y"
5140     { (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
5141     break;
5142
5143   case 114:
5144
5145 /* Line 1464 of yacc.c  */
5146 #line 414 "expression.y"
5147     { (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
5148     break;
5149
5150   case 115:
5151
5152 /* Line 1464 of yacc.c  */
5153 #line 418 "expression.y"
5154     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5155     break;
5156
5157   case 116:
5158
5159 /* Line 1464 of yacc.c  */
5160 #line 419 "expression.y"
5161     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5162     break;
5163
5164   case 117:
5165
5166 /* Line 1464 of yacc.c  */
5167 #line 420 "expression.y"
5168     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5169     break;
5170
5171   case 118:
5172
5173 /* Line 1464 of yacc.c  */
5174 #line 421 "expression.y"
5175     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5176     break;
5177
5178   case 119:
5179
5180 /* Line 1464 of yacc.c  */
5181 #line 422 "expression.y"
5182     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5183     break;
5184
5185   case 120:
5186
5187 /* Line 1464 of yacc.c  */
5188 #line 423 "expression.y"
5189     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5190     break;
5191
5192   case 121:
5193
5194 /* Line 1464 of yacc.c  */
5195 #line 424 "expression.y"
5196     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5197     break;
5198
5199   case 122:
5200
5201 /* Line 1464 of yacc.c  */
5202 #line 425 "expression.y"
5203     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5204     break;
5205
5206   case 123:
5207
5208 /* Line 1464 of yacc.c  */
5209 #line 429 "expression.y"
5210     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5211     break;
5212
5213   case 124:
5214
5215 /* Line 1464 of yacc.c  */
5216 #line 430 "expression.y"
5217     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5218     break;
5219
5220   case 125:
5221
5222 /* Line 1464 of yacc.c  */
5223 #line 431 "expression.y"
5224     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5225     break;
5226
5227   case 126:
5228
5229 /* Line 1464 of yacc.c  */
5230 #line 432 "expression.y"
5231     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5232     break;
5233
5234   case 127:
5235
5236 /* Line 1464 of yacc.c  */
5237 #line 433 "expression.y"
5238     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5239     break;
5240
5241   case 128:
5242
5243 /* Line 1464 of yacc.c  */
5244 #line 434 "expression.y"
5245     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5246     break;
5247
5248   case 129:
5249
5250 /* Line 1464 of yacc.c  */
5251 #line 435 "expression.y"
5252     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5253     break;
5254
5255   case 130:
5256
5257 /* Line 1464 of yacc.c  */
5258 #line 436 "expression.y"
5259     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5260     break;
5261
5262   case 131:
5263
5264 /* Line 1464 of yacc.c  */
5265 #line 437 "expression.y"
5266     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5267     break;
5268
5269   case 132:
5270
5271 /* Line 1464 of yacc.c  */
5272 #line 438 "expression.y"
5273     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5274     break;
5275
5276   case 133:
5277
5278 /* Line 1464 of yacc.c  */
5279 #line 443 "expression.y"
5280     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5281     break;
5282
5283   case 134:
5284
5285 /* Line 1464 of yacc.c  */
5286 #line 444 "expression.y"
5287     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5288     break;
5289
5290   case 135:
5291
5292 /* Line 1464 of yacc.c  */
5293 #line 445 "expression.y"
5294     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5295     break;
5296
5297   case 136:
5298
5299 /* Line 1464 of yacc.c  */
5300 #line 446 "expression.y"
5301     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5302     break;
5303
5304   case 137:
5305
5306 /* Line 1464 of yacc.c  */
5307 #line 447 "expression.y"
5308     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5309     break;
5310
5311   case 138:
5312
5313 /* Line 1464 of yacc.c  */
5314 #line 448 "expression.y"
5315     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5316     break;
5317
5318   case 139:
5319
5320 /* Line 1464 of yacc.c  */
5321 #line 449 "expression.y"
5322     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5323     break;
5324
5325   case 140:
5326
5327 /* Line 1464 of yacc.c  */
5328 #line 450 "expression.y"
5329     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5330     break;
5331
5332   case 141:
5333
5334 /* Line 1464 of yacc.c  */
5335 #line 454 "expression.y"
5336     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5337     break;
5338
5339   case 142:
5340
5341 /* Line 1464 of yacc.c  */
5342 #line 455 "expression.y"
5343     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5344     break;
5345
5346   case 143:
5347
5348 /* Line 1464 of yacc.c  */
5349 #line 456 "expression.y"
5350     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5351     break;
5352
5353   case 144:
5354
5355 /* Line 1464 of yacc.c  */
5356 #line 457 "expression.y"
5357     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5358     break;
5359
5360   case 145:
5361
5362 /* Line 1464 of yacc.c  */
5363 #line 458 "expression.y"
5364     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5365     break;
5366
5367   case 146:
5368
5369 /* Line 1464 of yacc.c  */
5370 #line 459 "expression.y"
5371     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5372     break;
5373
5374   case 147:
5375
5376 /* Line 1464 of yacc.c  */
5377 #line 460 "expression.y"
5378     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5379     break;
5380
5381   case 148:
5382
5383 /* Line 1464 of yacc.c  */
5384 #line 461 "expression.y"
5385     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5386     break;
5387
5388   case 149:
5389
5390 /* Line 1464 of yacc.c  */
5391 #line 462 "expression.y"
5392     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
5393     break;
5394
5395   case 150:
5396
5397 /* Line 1464 of yacc.c  */
5398 #line 463 "expression.y"
5399     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
5400     break;
5401
5402   case 151:
5403
5404 /* Line 1464 of yacc.c  */
5405 #line 467 "expression.y"
5406     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
5407     break;
5408
5409   case 152:
5410
5411 /* Line 1464 of yacc.c  */
5412 #line 468 "expression.y"
5413     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
5414     break;
5415
5416   case 153:
5417
5418 /* Line 1464 of yacc.c  */
5419 #line 472 "expression.y"
5420     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
5421     break;
5422
5423   case 154:
5424
5425 /* Line 1464 of yacc.c  */
5426 #line 473 "expression.y"
5427     { (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
5428     break;
5429
5430   case 155:
5431
5432 /* Line 1464 of yacc.c  */
5433 #line 477 "expression.y"
5434     { (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
5435     break;
5436
5437   case 156:
5438
5439 /* Line 1464 of yacc.c  */
5440 #line 478 "expression.y"
5441     { (yyval.specifier) = MkSpecifier(EXTERN); ;}
5442     break;
5443
5444   case 157:
5445
5446 /* Line 1464 of yacc.c  */
5447 #line 479 "expression.y"
5448     { (yyval.specifier) = MkSpecifier(STATIC); ;}
5449     break;
5450
5451   case 158:
5452
5453 /* Line 1464 of yacc.c  */
5454 #line 480 "expression.y"
5455     { (yyval.specifier) = MkSpecifier(AUTO); ;}
5456     break;
5457
5458   case 159:
5459
5460 /* Line 1464 of yacc.c  */
5461 #line 481 "expression.y"
5462     { (yyval.specifier) = MkSpecifier(REGISTER); ;}
5463     break;
5464
5465   case 160:
5466
5467 /* Line 1464 of yacc.c  */
5468 #line 485 "expression.y"
5469     { (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
5470     break;
5471
5472   case 161:
5473
5474 /* Line 1464 of yacc.c  */
5475 #line 486 "expression.y"
5476     { (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
5477     break;
5478
5479   case 162:
5480
5481 /* Line 1464 of yacc.c  */
5482 #line 490 "expression.y"
5483     { (yyval.i) = ATTRIB; ;}
5484     break;
5485
5486   case 163:
5487
5488 /* Line 1464 of yacc.c  */
5489 #line 491 "expression.y"
5490     { (yyval.i) = ATTRIB_DEP; ;}
5491     break;
5492
5493   case 164:
5494
5495 /* Line 1464 of yacc.c  */
5496 #line 492 "expression.y"
5497     { (yyval.i) = __ATTRIB; ;}
5498     break;
5499
5500   case 165:
5501
5502 /* Line 1464 of yacc.c  */
5503 #line 497 "expression.y"
5504     { (yyval.string)  = CopyString(yytext); ;}
5505     break;
5506
5507   case 166:
5508
5509 /* Line 1464 of yacc.c  */
5510 #line 498 "expression.y"
5511     { (yyval.string)  = CopyString(yytext); ;}
5512     break;
5513
5514   case 167:
5515
5516 /* Line 1464 of yacc.c  */
5517 #line 499 "expression.y"
5518     { (yyval.string)  = CopyString(yytext); ;}
5519     break;
5520
5521   case 168:
5522
5523 /* Line 1464 of yacc.c  */
5524 #line 500 "expression.y"
5525     { (yyval.string)  = CopyString(yytext); ;}
5526     break;
5527
5528   case 169:
5529
5530 /* Line 1464 of yacc.c  */
5531 #line 501 "expression.y"
5532     { (yyval.string)  = CopyString(yytext); ;}
5533     break;
5534
5535   case 170:
5536
5537 /* Line 1464 of yacc.c  */
5538 #line 505 "expression.y"
5539     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
5540     break;
5541
5542   case 171:
5543
5544 /* Line 1464 of yacc.c  */
5545 #line 506 "expression.y"
5546     { (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
5547     break;
5548
5549   case 172:
5550
5551 /* Line 1464 of yacc.c  */
5552 #line 510 "expression.y"
5553     { (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
5554     break;
5555
5556   case 173:
5557
5558 /* Line 1464 of yacc.c  */
5559 #line 511 "expression.y"
5560     { ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
5561     break;
5562
5563   case 174:
5564
5565 /* Line 1464 of yacc.c  */
5566 #line 512 "expression.y"
5567     { ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
5568     break;
5569
5570   case 175:
5571
5572 /* Line 1464 of yacc.c  */
5573 #line 516 "expression.y"
5574     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
5575     break;
5576
5577   case 176:
5578
5579 /* Line 1464 of yacc.c  */
5580 #line 517 "expression.y"
5581     { (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
5582     break;
5583
5584   case 177:
5585
5586 /* Line 1464 of yacc.c  */
5587 #line 521 "expression.y"
5588     { (yyval.specifier) = MkSpecifier(CONST); ;}
5589     break;
5590
5591   case 178:
5592
5593 /* Line 1464 of yacc.c  */
5594 #line 522 "expression.y"
5595     { (yyval.specifier) = MkSpecifier(VOLATILE); ;}
5596     break;
5597
5598   case 179:
5599
5600 /* Line 1464 of yacc.c  */
5601 #line 523 "expression.y"
5602     { (yyval.specifier) = MkSpecifierExtended(MkExtDeclString(CopyString(yytext))); ;}
5603     break;
5604
5605   case 180:
5606
5607 /* Line 1464 of yacc.c  */
5608 #line 527 "expression.y"
5609     { (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
5610     break;
5611
5612   case 181:
5613
5614 /* Line 1464 of yacc.c  */
5615 #line 552 "expression.y"
5616     { (yyval.specifier) = MkSpecifierName(yytext); ;}
5617     break;
5618
5619   case 182:
5620
5621 /* Line 1464 of yacc.c  */
5622 #line 556 "expression.y"
5623     { (yyval.specifier) = MkSpecifier(VOID); ;}
5624     break;
5625
5626   case 183:
5627
5628 /* Line 1464 of yacc.c  */
5629 #line 557 "expression.y"
5630     { (yyval.specifier) = MkSpecifier(CHAR); ;}
5631     break;
5632
5633   case 184:
5634
5635 /* Line 1464 of yacc.c  */
5636 #line 558 "expression.y"
5637     { (yyval.specifier) = MkSpecifier(SHORT); ;}
5638     break;
5639
5640   case 185:
5641
5642 /* Line 1464 of yacc.c  */
5643 #line 559 "expression.y"
5644     { (yyval.specifier) = MkSpecifier(INT); ;}
5645     break;
5646
5647   case 186:
5648
5649 /* Line 1464 of yacc.c  */
5650 #line 560 "expression.y"
5651     { (yyval.specifier) = MkSpecifier(UINT); ;}
5652     break;
5653
5654   case 187:
5655
5656 /* Line 1464 of yacc.c  */
5657 #line 561 "expression.y"
5658     { (yyval.specifier) = MkSpecifier(INT64); ;}
5659     break;
5660
5661   case 188:
5662
5663 /* Line 1464 of yacc.c  */
5664 #line 562 "expression.y"
5665     { (yyval.specifier) = MkSpecifier(VALIST); ;}
5666     break;
5667
5668   case 189:
5669
5670 /* Line 1464 of yacc.c  */
5671 #line 563 "expression.y"
5672     { (yyval.specifier) = MkSpecifier(LONG); ;}
5673     break;
5674
5675   case 190:
5676
5677 /* Line 1464 of yacc.c  */
5678 #line 564 "expression.y"
5679     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
5680     break;
5681
5682   case 191:
5683
5684 /* Line 1464 of yacc.c  */
5685 #line 565 "expression.y"
5686     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
5687     break;
5688
5689   case 192:
5690
5691 /* Line 1464 of yacc.c  */
5692 #line 566 "expression.y"
5693     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
5694     break;
5695
5696   case 193:
5697
5698 /* Line 1464 of yacc.c  */
5699 #line 567 "expression.y"
5700     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
5701     break;
5702
5703   case 194:
5704
5705 /* Line 1464 of yacc.c  */
5706 #line 568 "expression.y"
5707     { (yyval.specifier) = MkSpecifier(EXTENSION); ;}
5708     break;
5709
5710   case 198:
5711
5712 /* Line 1464 of yacc.c  */
5713 #line 572 "expression.y"
5714     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
5715     break;
5716
5717   case 199:
5718
5719 /* Line 1464 of yacc.c  */
5720 #line 573 "expression.y"
5721     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
5722     break;
5723
5724   case 200:
5725
5726 /* Line 1464 of yacc.c  */
5727 #line 577 "expression.y"
5728     { (yyval.specifier) = MkSpecifier(VOID); ;}
5729     break;
5730
5731   case 201:
5732
5733 /* Line 1464 of yacc.c  */
5734 #line 578 "expression.y"
5735     { (yyval.specifier) = MkSpecifier(CHAR); ;}
5736     break;
5737
5738   case 202:
5739
5740 /* Line 1464 of yacc.c  */
5741 #line 579 "expression.y"
5742     { (yyval.specifier) = MkSpecifier(SHORT); ;}
5743     break;
5744
5745   case 203:
5746
5747 /* Line 1464 of yacc.c  */
5748 #line 580 "expression.y"
5749     { (yyval.specifier) = MkSpecifier(INT); ;}
5750     break;
5751
5752   case 204:
5753
5754 /* Line 1464 of yacc.c  */
5755 #line 581 "expression.y"
5756     { (yyval.specifier) = MkSpecifier(UINT); ;}
5757     break;
5758
5759   case 205:
5760
5761 /* Line 1464 of yacc.c  */
5762 #line 582 "expression.y"
5763     { (yyval.specifier) = MkSpecifier(INT64); ;}
5764     break;
5765
5766   case 206:
5767
5768 /* Line 1464 of yacc.c  */
5769 #line 583 "expression.y"
5770     { (yyval.specifier) = MkSpecifier(VALIST); ;}
5771     break;
5772
5773   case 207:
5774
5775 /* Line 1464 of yacc.c  */
5776 #line 584 "expression.y"
5777     { (yyval.specifier) = MkSpecifier(LONG); ;}
5778     break;
5779
5780   case 208:
5781
5782 /* Line 1464 of yacc.c  */
5783 #line 585 "expression.y"
5784     { (yyval.specifier) = MkSpecifier(FLOAT); ;}
5785     break;
5786
5787   case 209:
5788
5789 /* Line 1464 of yacc.c  */
5790 #line 586 "expression.y"
5791     { (yyval.specifier) = MkSpecifier(DOUBLE); ;}
5792     break;
5793
5794   case 210:
5795
5796 /* Line 1464 of yacc.c  */
5797 #line 587 "expression.y"
5798     { (yyval.specifier) = MkSpecifier(SIGNED); ;}
5799     break;
5800
5801   case 211:
5802
5803 /* Line 1464 of yacc.c  */
5804 #line 588 "expression.y"
5805     { (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
5806     break;
5807
5808   case 215:
5809
5810 /* Line 1464 of yacc.c  */
5811 #line 592 "expression.y"
5812     { (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
5813     break;
5814
5815   case 216:
5816
5817 /* Line 1464 of yacc.c  */
5818 #line 593 "expression.y"
5819     { (yyval.specifier) = MkSpecifier(THISCLASS); ;}
5820     break;
5821
5822   case 217:
5823
5824 /* Line 1464 of yacc.c  */
5825 #line 598 "expression.y"
5826     { (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); ;}
5827     break;
5828
5829   case 218:
5830
5831 /* Line 1464 of yacc.c  */
5832 #line 599 "expression.y"
5833     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(3) - (4)].list)); ;}
5834     break;
5835
5836   case 219:
5837
5838 /* Line 1464 of yacc.c  */
5839 #line 600 "expression.y"
5840     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), (yyvsp[(2) - (4)].id), null); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (4)].id).string); ;}
5841     break;
5842
5843   case 220:
5844
5845 /* Line 1464 of yacc.c  */
5846 #line 601 "expression.y"
5847     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); ;}
5848     break;
5849
5850   case 221:
5851
5852 /* Line 1464 of yacc.c  */
5853 #line 603 "expression.y"
5854     { (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)); ;}
5855     break;
5856
5857   case 222:
5858
5859 /* Line 1464 of yacc.c  */
5860 #line 605 "expression.y"
5861     { (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); ;}
5862     break;
5863
5864   case 223:
5865
5866 /* Line 1464 of yacc.c  */
5867 #line 606 "expression.y"
5868     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (5)].specifierType), null, (yyvsp[(4) - (5)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (5)].extDecl); ;}
5869     break;
5870
5871   case 224:
5872
5873 /* Line 1464 of yacc.c  */
5874 #line 607 "expression.y"
5875     { (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); ;}
5876     break;
5877
5878   case 225:
5879
5880 /* Line 1464 of yacc.c  */
5881 #line 608 "expression.y"
5882     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); ;}
5883     break;
5884
5885   case 226:
5886
5887 /* Line 1464 of yacc.c  */
5888 #line 610 "expression.y"
5889     { (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)); ;}
5890     break;
5891
5892   case 227:
5893
5894 /* Line 1464 of yacc.c  */
5895 #line 614 "expression.y"
5896     { (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
5897     break;
5898
5899   case 228:
5900
5901 /* Line 1464 of yacc.c  */
5902 #line 616 "expression.y"
5903     { (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)); ;}
5904     break;
5905
5906   case 229:
5907
5908 /* Line 1464 of yacc.c  */
5909 #line 619 "expression.y"
5910     { (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); ;}
5911     break;
5912
5913   case 230:
5914
5915 /* Line 1464 of yacc.c  */
5916 #line 621 "expression.y"
5917     { (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)); ;}
5918     break;
5919
5920   case 231:
5921
5922 /* Line 1464 of yacc.c  */
5923 #line 625 "expression.y"
5924     { (yyval.specifierType) = structSpecifier; ;}
5925     break;
5926
5927   case 232:
5928
5929 /* Line 1464 of yacc.c  */
5930 #line 626 "expression.y"
5931     { (yyval.specifierType) = unionSpecifier; ;}
5932     break;
5933
5934   case 233:
5935
5936 /* Line 1464 of yacc.c  */
5937 #line 630 "expression.y"
5938     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
5939     break;
5940
5941   case 234:
5942
5943 /* Line 1464 of yacc.c  */
5944 #line 631 "expression.y"
5945     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
5946     break;
5947
5948   case 235:
5949
5950 /* Line 1464 of yacc.c  */
5951 #line 635 "expression.y"
5952     { (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; ;}
5953     break;
5954
5955   case 236:
5956
5957 /* Line 1464 of yacc.c  */
5958 #line 639 "expression.y"
5959     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
5960     break;
5961
5962   case 237:
5963
5964 /* Line 1464 of yacc.c  */
5965 #line 640 "expression.y"
5966     { (yyval.list) = (yyvsp[(1) - (3)].list); ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); ;}
5967     break;
5968
5969   case 238:
5970
5971 /* Line 1464 of yacc.c  */
5972 #line 645 "expression.y"
5973     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
5974     break;
5975
5976   case 239:
5977
5978 /* Line 1464 of yacc.c  */
5979 #line 647 "expression.y"
5980     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), null, (yyvsp[(3) - (9)].id), (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
5981     break;
5982
5983   case 240:
5984
5985 /* Line 1464 of yacc.c  */
5986 #line 649 "expression.y"
5987     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
5988     break;
5989
5990   case 241:
5991
5992 /* Line 1464 of yacc.c  */
5993 #line 651 "expression.y"
5994     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), null, (yyvsp[(3) - (7)].id), null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
5995     break;
5996
5997   case 242:
5998
5999 /* Line 1464 of yacc.c  */
6000 #line 653 "expression.y"
6001     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), null, (yyvsp[(3) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
6002     break;
6003
6004   case 243:
6005
6006 /* Line 1464 of yacc.c  */
6007 #line 656 "expression.y"
6008     { (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); ;}
6009     break;
6010
6011   case 244:
6012
6013 /* Line 1464 of yacc.c  */
6014 #line 658 "expression.y"
6015     { (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); ;}
6016     break;
6017
6018   case 245:
6019
6020 /* Line 1464 of yacc.c  */
6021 #line 660 "expression.y"
6022     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), (yyvsp[(7) - (8)].stmt), null); (yyval.prop).loc = (yyloc); ;}
6023     break;
6024
6025   case 246:
6026
6027 /* Line 1464 of yacc.c  */
6028 #line 662 "expression.y"
6029     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), (yyvsp[(3) - (8)].declarator), (yyvsp[(4) - (8)].id), null, (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
6030     break;
6031
6032   case 247:
6033
6034 /* Line 1464 of yacc.c  */
6035 #line 664 "expression.y"
6036     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), (yyvsp[(3) - (6)].declarator), (yyvsp[(4) - (6)].id), null, null); (yyval.prop).loc = (yyloc); ;}
6037     break;
6038
6039   case 248:
6040
6041 /* Line 1464 of yacc.c  */
6042 #line 667 "expression.y"
6043     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(5) - (8)].stmt), (yyvsp[(7) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
6044     break;
6045
6046   case 249:
6047
6048 /* Line 1464 of yacc.c  */
6049 #line 669 "expression.y"
6050     { (yyval.prop) = MkProperty((yyvsp[(2) - (8)].list), null, null, (yyvsp[(7) - (8)].stmt), (yyvsp[(5) - (8)].stmt)); (yyval.prop).loc = (yyloc); ;}
6051     break;
6052
6053   case 250:
6054
6055 /* Line 1464 of yacc.c  */
6056 #line 671 "expression.y"
6057     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, (yyvsp[(5) - (6)].stmt), null); (yyval.prop).loc = (yyloc); ;}
6058     break;
6059
6060   case 251:
6061
6062 /* Line 1464 of yacc.c  */
6063 #line 673 "expression.y"
6064     { (yyval.prop) = MkProperty((yyvsp[(2) - (6)].list), null, null, null, (yyvsp[(5) - (6)].stmt)); (yyval.prop).loc = (yyloc); ;}
6065     break;
6066
6067   case 252:
6068
6069 /* Line 1464 of yacc.c  */
6070 #line 675 "expression.y"
6071     { (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
6072     break;
6073
6074   case 253:
6075
6076 /* Line 1464 of yacc.c  */
6077 #line 678 "expression.y"
6078     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(6) - (9)].stmt), (yyvsp[(8) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
6079     break;
6080
6081   case 254:
6082
6083 /* Line 1464 of yacc.c  */
6084 #line 680 "expression.y"
6085     { (yyval.prop) = MkProperty((yyvsp[(2) - (9)].list), (yyvsp[(3) - (9)].declarator), null, (yyvsp[(8) - (9)].stmt), (yyvsp[(6) - (9)].stmt)); (yyval.prop).loc = (yyloc); ;}
6086     break;
6087
6088   case 255:
6089
6090 /* Line 1464 of yacc.c  */
6091 #line 682 "expression.y"
6092     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, (yyvsp[(6) - (7)].stmt), null); (yyval.prop).loc = (yyloc); ;}
6093     break;
6094
6095   case 256:
6096
6097 /* Line 1464 of yacc.c  */
6098 #line 684 "expression.y"
6099     { (yyval.prop) = MkProperty((yyvsp[(2) - (7)].list), (yyvsp[(3) - (7)].declarator), null, null, (yyvsp[(6) - (7)].stmt)); (yyval.prop).loc = (yyloc); ;}
6100     break;
6101
6102   case 257:
6103
6104 /* Line 1464 of yacc.c  */
6105 #line 686 "expression.y"
6106     { (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
6107     break;
6108
6109   case 258:
6110
6111 /* Line 1464 of yacc.c  */
6112 #line 690 "expression.y"
6113     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
6114     break;
6115
6116   case 259:
6117
6118 /* Line 1464 of yacc.c  */
6119 #line 691 "expression.y"
6120     { (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
6121     break;
6122
6123   case 260:
6124
6125 /* Line 1464 of yacc.c  */
6126 #line 692 "expression.y"
6127     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
6128     break;
6129
6130   case 261:
6131
6132 /* Line 1464 of yacc.c  */
6133 #line 693 "expression.y"
6134     { (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); ;}
6135     break;
6136
6137   case 262:
6138
6139 /* Line 1464 of yacc.c  */
6140 #line 694 "expression.y"
6141     { (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); ;}
6142     break;
6143
6144   case 263:
6145
6146 /* Line 1464 of yacc.c  */
6147 #line 695 "expression.y"
6148     { (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); ;}
6149     break;
6150
6151   case 264:
6152
6153 /* Line 1464 of yacc.c  */
6154 #line 696 "expression.y"
6155     { (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); globalContext.nextID++; ;}
6156     break;
6157
6158   case 265:
6159
6160 /* Line 1464 of yacc.c  */
6161 #line 697 "expression.y"
6162     { (yyval.classDef) = null; ;}
6163     break;
6164
6165   case 266:
6166
6167 /* Line 1464 of yacc.c  */
6168 #line 702 "expression.y"
6169     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
6170     break;
6171
6172   case 267:
6173
6174 /* Line 1464 of yacc.c  */
6175 #line 704 "expression.y"
6176     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
6177     break;
6178
6179   case 268:
6180
6181 /* Line 1464 of yacc.c  */
6182 #line 709 "expression.y"
6183     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
6184     break;
6185
6186   case 269:
6187
6188 /* Line 1464 of yacc.c  */
6189 #line 711 "expression.y"
6190     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
6191     break;
6192
6193   case 270:
6194
6195 /* Line 1464 of yacc.c  */
6196 #line 713 "expression.y"
6197     { (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp));  (yyval.declarator).loc = (yyloc); ;}
6198     break;
6199
6200   case 271:
6201
6202 /* Line 1464 of yacc.c  */
6203 #line 715 "expression.y"
6204     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp));  (yyval.declarator).loc = (yyloc); ;}
6205     break;
6206
6207   case 272:
6208
6209 /* Line 1464 of yacc.c  */
6210 #line 717 "expression.y"
6211     { (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
6212     break;
6213
6214   case 273:
6215
6216 /* Line 1464 of yacc.c  */
6217 #line 721 "expression.y"
6218     { (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].id).string); ;}
6219     break;
6220
6221   case 274:
6222
6223 /* Line 1464 of yacc.c  */
6224 #line 722 "expression.y"
6225     { (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); if(declMode) DeclClass(0, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
6226     break;
6227
6228   case 275:
6229
6230 /* Line 1464 of yacc.c  */
6231 #line 727 "expression.y"
6232     { (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (4)].list)); ;}
6233     break;
6234
6235   case 276:
6236
6237 /* Line 1464 of yacc.c  */
6238 #line 728 "expression.y"
6239     { (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); if(declMode) DeclClass(globalContext.nextID++, (yyvsp[(2) - (5)].id).string); ;}
6240     break;
6241
6242   case 277:
6243
6244 /* Line 1464 of yacc.c  */
6245 #line 729 "expression.y"
6246     { (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); ;}
6247     break;
6248
6249   case 278:
6250
6251 /* Line 1464 of yacc.c  */
6252 #line 730 "expression.y"
6253     { (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)); ;}
6254     break;
6255
6256   case 279:
6257
6258 /* Line 1464 of yacc.c  */
6259 #line 731 "expression.y"
6260     { (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)); ;}
6261     break;
6262
6263   case 280:
6264
6265 /* Line 1464 of yacc.c  */
6266 #line 736 "expression.y"
6267     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
6268     break;
6269
6270   case 281:
6271
6272 /* Line 1464 of yacc.c  */
6273 #line 738 "expression.y"
6274     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
6275     break;
6276
6277   case 282:
6278
6279 /* Line 1464 of yacc.c  */
6280 #line 743 "expression.y"
6281     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
6282     break;
6283
6284   case 283:
6285
6286 /* Line 1464 of yacc.c  */
6287 #line 745 "expression.y"
6288     { (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
6289     break;
6290
6291   case 284:
6292
6293 /* Line 1464 of yacc.c  */
6294 #line 751 "expression.y"
6295     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
6296     break;
6297
6298   case 285:
6299
6300 /* Line 1464 of yacc.c  */
6301 #line 753 "expression.y"
6302     { (yyval.declarator) = MkDeclaratorArray(null, null); ;}
6303     break;
6304
6305   case 286:
6306
6307 /* Line 1464 of yacc.c  */
6308 #line 755 "expression.y"
6309     { (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
6310     break;
6311
6312   case 287:
6313
6314 /* Line 1464 of yacc.c  */
6315 #line 757 "expression.y"
6316     { (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
6317     break;
6318
6319   case 288:
6320
6321 /* Line 1464 of yacc.c  */
6322 #line 759 "expression.y"
6323     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
6324     break;
6325
6326   case 289:
6327
6328 /* Line 1464 of yacc.c  */
6329 #line 761 "expression.y"
6330     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
6331     break;
6332
6333   case 290:
6334
6335 /* Line 1464 of yacc.c  */
6336 #line 763 "expression.y"
6337     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
6338     break;
6339
6340   case 291:
6341
6342 /* Line 1464 of yacc.c  */
6343 #line 765 "expression.y"
6344     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
6345     break;
6346
6347   case 292:
6348
6349 /* Line 1464 of yacc.c  */
6350 #line 767 "expression.y"
6351     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
6352     break;
6353
6354   case 293:
6355
6356 /* Line 1464 of yacc.c  */
6357 #line 769 "expression.y"
6358     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
6359     break;
6360
6361   case 294:
6362
6363 /* Line 1464 of yacc.c  */
6364 #line 771 "expression.y"
6365     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
6366     break;
6367
6368   case 295:
6369
6370 /* Line 1464 of yacc.c  */
6371 #line 776 "expression.y"
6372     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
6373     break;
6374
6375   case 296:
6376
6377 /* Line 1464 of yacc.c  */
6378 #line 778 "expression.y"
6379     { (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
6380     break;
6381
6382   case 297:
6383
6384 /* Line 1464 of yacc.c  */
6385 #line 780 "expression.y"
6386     { (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
6387     break;
6388
6389   case 298:
6390
6391 /* Line 1464 of yacc.c  */
6392 #line 782 "expression.y"
6393     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
6394     break;
6395
6396   case 299:
6397
6398 /* Line 1464 of yacc.c  */
6399 #line 784 "expression.y"
6400     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
6401     break;
6402
6403   case 300:
6404
6405 /* Line 1464 of yacc.c  */
6406 #line 788 "expression.y"
6407     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
6408     break;
6409
6410   case 302:
6411
6412 /* Line 1464 of yacc.c  */
6413 #line 790 "expression.y"
6414     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
6415     break;
6416
6417   case 303:
6418
6419 /* Line 1464 of yacc.c  */
6420 #line 791 "expression.y"
6421     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
6422     break;
6423
6424   case 304:
6425
6426 /* Line 1464 of yacc.c  */
6427 #line 792 "expression.y"
6428     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
6429     break;
6430
6431   case 305:
6432
6433 /* Line 1464 of yacc.c  */
6434 #line 793 "expression.y"
6435     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
6436     break;
6437
6438   case 306:
6439
6440 /* Line 1464 of yacc.c  */
6441 #line 797 "expression.y"
6442     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
6443     break;
6444
6445   case 308:
6446
6447 /* Line 1464 of yacc.c  */
6448 #line 799 "expression.y"
6449     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
6450     break;
6451
6452   case 309:
6453
6454 /* Line 1464 of yacc.c  */
6455 #line 800 "expression.y"
6456     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
6457     break;
6458
6459   case 310:
6460
6461 /* Line 1464 of yacc.c  */
6462 #line 801 "expression.y"
6463     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
6464     break;
6465
6466   case 311:
6467
6468 /* Line 1464 of yacc.c  */
6469 #line 802 "expression.y"
6470     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
6471     break;
6472
6473   case 313:
6474
6475 /* Line 1464 of yacc.c  */
6476 #line 850 "expression.y"
6477     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
6478     break;
6479
6480   case 314:
6481
6482 /* Line 1464 of yacc.c  */
6483 #line 852 "expression.y"
6484     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
6485     break;
6486
6487   case 315:
6488
6489 /* Line 1464 of yacc.c  */
6490 #line 858 "expression.y"
6491     { (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
6492     break;
6493
6494   case 316:
6495
6496 /* Line 1464 of yacc.c  */
6497 #line 860 "expression.y"
6498     { (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
6499     break;
6500
6501   case 317:
6502
6503 /* Line 1464 of yacc.c  */
6504 #line 862 "expression.y"
6505     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
6506     break;
6507
6508   case 318:
6509
6510 /* Line 1464 of yacc.c  */
6511 #line 864 "expression.y"
6512     { (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
6513     break;
6514
6515   case 319:
6516
6517 /* Line 1464 of yacc.c  */
6518 #line 866 "expression.y"
6519     { (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
6520     break;
6521
6522   case 321:
6523
6524 /* Line 1464 of yacc.c  */
6525 #line 872 "expression.y"
6526     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
6527     break;
6528
6529   case 322:
6530
6531 /* Line 1464 of yacc.c  */
6532 #line 875 "expression.y"
6533     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
6534     break;
6535
6536   case 323:
6537
6538 /* Line 1464 of yacc.c  */
6539 #line 877 "expression.y"
6540     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
6541     break;
6542
6543   case 324:
6544
6545 /* Line 1464 of yacc.c  */
6546 #line 879 "expression.y"
6547     { (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
6548     break;
6549
6550   case 327:
6551
6552 /* Line 1464 of yacc.c  */
6553 #line 887 "expression.y"
6554     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
6555     break;
6556
6557   case 328:
6558
6559 /* Line 1464 of yacc.c  */
6560 #line 889 "expression.y"
6561     { (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), (yyvsp[(2) - (2)].declarator)); ;}
6562     break;
6563
6564   case 330:
6565
6566 /* Line 1464 of yacc.c  */
6567 #line 898 "expression.y"
6568     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
6569     break;
6570
6571   case 331:
6572
6573 /* Line 1464 of yacc.c  */
6574 #line 900 "expression.y"
6575     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
6576     break;
6577
6578   case 332:
6579
6580 /* Line 1464 of yacc.c  */
6581 #line 902 "expression.y"
6582     { (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
6583     break;
6584
6585   case 333:
6586
6587 /* Line 1464 of yacc.c  */
6588 #line 906 "expression.y"
6589     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
6590     break;
6591
6592   case 334:
6593
6594 /* Line 1464 of yacc.c  */
6595 #line 907 "expression.y"
6596     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier));  ;}
6597     break;
6598
6599   case 335:
6600
6601 /* Line 1464 of yacc.c  */
6602 #line 911 "expression.y"
6603     { (yyval.pointer) = MkPointer(null, null); ;}
6604     break;
6605
6606   case 336:
6607
6608 /* Line 1464 of yacc.c  */
6609 #line 912 "expression.y"
6610     { (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
6611     break;
6612
6613   case 337:
6614
6615 /* Line 1464 of yacc.c  */
6616 #line 913 "expression.y"
6617     { (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
6618     break;
6619
6620   case 338:
6621
6622 /* Line 1464 of yacc.c  */
6623 #line 914 "expression.y"
6624     { (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
6625     break;
6626
6627   case 340:
6628
6629 /* Line 1464 of yacc.c  */
6630 #line 919 "expression.y"
6631     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
6632     break;
6633
6634   case 341:
6635
6636 /* Line 1464 of yacc.c  */
6637 #line 923 "expression.y"
6638     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
6639     break;
6640
6641   case 342:
6642
6643 /* Line 1464 of yacc.c  */
6644 #line 924 "expression.y"
6645     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
6646     break;
6647
6648   case 343:
6649
6650 /* Line 1464 of yacc.c  */
6651 #line 928 "expression.y"
6652     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6653     break;
6654
6655   case 344:
6656
6657 /* Line 1464 of yacc.c  */
6658 #line 929 "expression.y"
6659     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6660     break;
6661
6662   case 345:
6663
6664 /* Line 1464 of yacc.c  */
6665 #line 930 "expression.y"
6666     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
6667     break;
6668
6669   case 346:
6670
6671 /* Line 1464 of yacc.c  */
6672 #line 934 "expression.y"
6673     { (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
6674     break;
6675
6676   case 347:
6677
6678 /* Line 1464 of yacc.c  */
6679 #line 935 "expression.y"
6680     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
6681     break;
6682
6683   case 348:
6684
6685 /* Line 1464 of yacc.c  */
6686 #line 939 "expression.y"
6687     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
6688     break;
6689
6690   case 349:
6691
6692 /* Line 1464 of yacc.c  */
6693 #line 940 "expression.y"
6694     { (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
6695     break;
6696
6697   case 350:
6698
6699 /* Line 1464 of yacc.c  */
6700 #line 950 "expression.y"
6701     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
6702     break;
6703
6704   case 351:
6705
6706 /* Line 1464 of yacc.c  */
6707 #line 952 "expression.y"
6708     { (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
6709     break;
6710
6711   case 352:
6712
6713 /* Line 1464 of yacc.c  */
6714 #line 954 "expression.y"
6715     { 
6716          (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); 
6717          (yyval.initializer).loc = (yyloc); 
6718
6719          {
6720             Expression exp = MkExpDummy();
6721             Initializer init = MkInitializerAssignment(exp);
6722             init.loc = (yylsp[(3) - (4)]);
6723             exp.loc = (yylsp[(3) - (4)]);
6724             ListAdd((yyvsp[(2) - (4)].list), init); 
6725          }
6726       ;}
6727     break;
6728
6729   case 353:
6730
6731 /* Line 1464 of yacc.c  */
6732 #line 969 "expression.y"
6733     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
6734     break;
6735
6736   case 354:
6737
6738 /* Line 1464 of yacc.c  */
6739 #line 971 "expression.y"
6740     { (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
6741     break;
6742
6743   case 355:
6744
6745 /* Line 1464 of yacc.c  */
6746 #line 992 "expression.y"
6747     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
6748     break;
6749
6750   case 356:
6751
6752 /* Line 1464 of yacc.c  */
6753 #line 994 "expression.y"
6754     { (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
6755     break;
6756
6757   case 363:
6758
6759 /* Line 1464 of yacc.c  */
6760 #line 1008 "expression.y"
6761     { (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6762     break;
6763
6764   case 364:
6765
6766 /* Line 1464 of yacc.c  */
6767 #line 1010 "expression.y"
6768     { (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; ;}
6769     break;
6770
6771   case 365:
6772
6773 /* Line 1464 of yacc.c  */
6774 #line 1012 "expression.y"
6775     { (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6776     break;
6777
6778   case 366:
6779
6780 /* Line 1464 of yacc.c  */
6781 #line 1016 "expression.y"
6782     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
6783     break;
6784
6785   case 367:
6786
6787 /* Line 1464 of yacc.c  */
6788 #line 1017 "expression.y"
6789     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
6790     break;
6791
6792   case 368:
6793
6794 /* Line 1464 of yacc.c  */
6795 #line 1021 "expression.y"
6796     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
6797     break;
6798
6799   case 369:
6800
6801 /* Line 1464 of yacc.c  */
6802 #line 1022 "expression.y"
6803     { (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
6804     break;
6805
6806   case 370:
6807
6808 /* Line 1464 of yacc.c  */
6809 #line 1025 "expression.y"
6810     { 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); ;}
6811     break;
6812
6813   case 371:
6814
6815 /* Line 1464 of yacc.c  */
6816 #line 1029 "expression.y"
6817     { (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
6818     break;
6819
6820   case 372:
6821
6822 /* Line 1464 of yacc.c  */
6823 #line 1030 "expression.y"
6824     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
6825     break;
6826
6827   case 373:
6828
6829 /* Line 1464 of yacc.c  */
6830 #line 1031 "expression.y"
6831     { (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
6832     break;
6833
6834   case 374:
6835
6836 /* Line 1464 of yacc.c  */
6837 #line 1035 "expression.y"
6838     { (yyval.context) = PushContext(); ;}
6839     break;
6840
6841   case 375:
6842
6843 /* Line 1464 of yacc.c  */
6844 #line 1040 "expression.y"
6845     { 
6846       (yyval.stmt) = MkCompoundStmt(null, null); 
6847       (yyval.stmt).compound.context = PushContext(); 
6848       PopContext((yyval.stmt).compound.context);
6849       (yyval.stmt).loc = (yyloc); 
6850    ;}
6851     break;
6852
6853   case 376:
6854
6855 /* Line 1464 of yacc.c  */
6856 #line 1048 "expression.y"
6857     { (yyval.stmt) = (yyvsp[(2) - (3)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (3)].context); PopContext((yyvsp[(1) - (3)].context)); (yyval.stmt).loc = (yyloc); ;}
6858     break;
6859
6860   case 377:
6861
6862 /* Line 1464 of yacc.c  */
6863 #line 1052 "expression.y"
6864     { (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
6865     break;
6866
6867   case 378:
6868
6869 /* Line 1464 of yacc.c  */
6870 #line 1053 "expression.y"
6871     { (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
6872     break;
6873
6874   case 379:
6875
6876 /* Line 1464 of yacc.c  */
6877 #line 1057 "expression.y"
6878     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
6879     break;
6880
6881   case 380:
6882
6883 /* Line 1464 of yacc.c  */
6884 #line 1058 "expression.y"
6885     { (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6886     break;
6887
6888   case 381:
6889
6890 /* Line 1464 of yacc.c  */
6891 #line 1059 "expression.y"
6892     { (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6893     break;
6894
6895   case 382:
6896
6897 /* Line 1464 of yacc.c  */
6898 #line 1063 "expression.y"
6899     { (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6900     break;
6901
6902   case 383:
6903
6904 /* Line 1464 of yacc.c  */
6905 #line 1064 "expression.y"
6906     { (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
6907     break;
6908
6909   case 384:
6910
6911 /* Line 1464 of yacc.c  */
6912 #line 1065 "expression.y"
6913     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6914     break;
6915
6916   case 385:
6917
6918 /* Line 1464 of yacc.c  */
6919 #line 1066 "expression.y"
6920     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6921     break;
6922
6923   case 386:
6924
6925 /* Line 1464 of yacc.c  */
6926 #line 1068 "expression.y"
6927     { (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6928     break;
6929
6930   case 387:
6931
6932 /* Line 1464 of yacc.c  */
6933 #line 1069 "expression.y"
6934     { (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6935     break;
6936
6937   case 388:
6938
6939 /* Line 1464 of yacc.c  */
6940 #line 1070 "expression.y"
6941     { (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
6942     break;
6943
6944   case 389:
6945
6946 /* Line 1464 of yacc.c  */
6947 #line 1074 "expression.y"
6948     { (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
6949     break;
6950
6951   case 390:
6952
6953 /* Line 1464 of yacc.c  */
6954 #line 1075 "expression.y"
6955     { (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
6956     break;
6957
6958   case 391:
6959
6960 /* Line 1464 of yacc.c  */
6961 #line 1076 "expression.y"
6962     { (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
6963     break;
6964
6965   case 392:
6966
6967 /* Line 1464 of yacc.c  */
6968 #line 1077 "expression.y"
6969     { Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
6970     break;
6971
6972   case 393:
6973
6974 /* Line 1464 of yacc.c  */
6975 #line 1078 "expression.y"
6976     { (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
6977     break;
6978
6979   case 394:
6980
6981 /* Line 1464 of yacc.c  */
6982 #line 1082 "expression.y"
6983     { (yyval.string) = CopyString(yytext); ;}
6984     break;
6985
6986   case 395:
6987
6988 /* Line 1464 of yacc.c  */
6989 #line 1087 "expression.y"
6990     { (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;;}
6991     break;
6992
6993   case 396:
6994
6995 /* Line 1464 of yacc.c  */
6996 #line 1089 "expression.y"
6997     { (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;;}
6998     break;
6999
7000   case 397:
7001
7002 /* Line 1464 of yacc.c  */
7003 #line 1094 "expression.y"
7004     { (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; ;}
7005     break;
7006
7007   case 398:
7008
7009 /* Line 1464 of yacc.c  */
7010 #line 1096 "expression.y"
7011     { (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;;}
7012     break;
7013
7014   case 399:
7015
7016 /* Line 1464 of yacc.c  */
7017 #line 1098 "expression.y"
7018     { 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)); ;}
7019     break;
7020
7021   case 400:
7022
7023 /* Line 1464 of yacc.c  */
7024 #line 1100 "expression.y"
7025     { 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)); ;}
7026     break;
7027
7028   case 401:
7029
7030 /* Line 1464 of yacc.c  */
7031 #line 1105 "expression.y"
7032     { (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; ;}
7033     break;
7034
7035   case 402:
7036
7037 /* Line 1464 of yacc.c  */
7038 #line 1107 "expression.y"
7039     { (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;;}
7040     break;
7041
7042   case 403:
7043
7044 /* Line 1464 of yacc.c  */
7045 #line 1112 "expression.y"
7046     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
7047     break;
7048
7049   case 404:
7050
7051 /* Line 1464 of yacc.c  */
7052 #line 1114 "expression.y"
7053     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
7054     break;
7055
7056   case 405:
7057
7058 /* Line 1464 of yacc.c  */
7059 #line 1119 "expression.y"
7060     { (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); ;}
7061     break;
7062
7063   case 406:
7064
7065 /* Line 1464 of yacc.c  */
7066 #line 1124 "expression.y"
7067     { (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); ;}
7068     break;
7069
7070   case 407:
7071
7072 /* Line 1464 of yacc.c  */
7073 #line 1129 "expression.y"
7074     { (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; ;}
7075     break;
7076
7077   case 408:
7078
7079 /* Line 1464 of yacc.c  */
7080 #line 1131 "expression.y"
7081     { (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
7082     break;
7083
7084   case 409:
7085
7086 /* Line 1464 of yacc.c  */
7087 #line 1136 "expression.y"
7088     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
7089     break;
7090
7091   case 410:
7092
7093 /* Line 1464 of yacc.c  */
7094 #line 1138 "expression.y"
7095     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
7096     break;
7097
7098   case 411:
7099
7100 /* Line 1464 of yacc.c  */
7101 #line 1140 "expression.y"
7102     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
7103     break;
7104
7105   case 412:
7106
7107 /* Line 1464 of yacc.c  */
7108 #line 1142 "expression.y"
7109     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
7110     break;
7111
7112   case 413:
7113
7114 /* Line 1464 of yacc.c  */
7115 #line 1144 "expression.y"
7116     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
7117     break;
7118
7119   case 414:
7120
7121 /* Line 1464 of yacc.c  */
7122 #line 1150 "expression.y"
7123     { (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).id = ++globalContext.nextID; ;}
7124     break;
7125
7126   case 415:
7127
7128 /* Line 1464 of yacc.c  */
7129 #line 1155 "expression.y"
7130     { ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
7131     break;
7132
7133   case 416:
7134
7135 /* Line 1464 of yacc.c  */
7136 #line 1159 "expression.y"
7137     { (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;;}
7138     break;
7139
7140   case 417:
7141
7142 /* Line 1464 of yacc.c  */
7143 #line 1160 "expression.y"
7144     { (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
7145     break;
7146
7147   case 418:
7148
7149 /* Line 1464 of yacc.c  */
7150 #line 1165 "expression.y"
7151     { (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
7152     break;
7153
7154   case 419:
7155
7156 /* Line 1464 of yacc.c  */
7157 #line 1167 "expression.y"
7158     { ((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); ;}
7159     break;
7160
7161   case 420:
7162
7163 /* Line 1464 of yacc.c  */
7164 #line 1172 "expression.y"
7165     { if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
7166     break;
7167
7168   case 421:
7169
7170 /* Line 1464 of yacc.c  */
7171 #line 1176 "expression.y"
7172     { MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
7173     break;
7174
7175   case 422:
7176
7177 /* Line 1464 of yacc.c  */
7178 #line 1177 "expression.y"
7179     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
7180     break;
7181
7182   case 423:
7183
7184 /* Line 1464 of yacc.c  */
7185 #line 1178 "expression.y"
7186     { MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
7187     break;
7188
7189   case 424:
7190
7191 /* Line 1464 of yacc.c  */
7192 #line 1179 "expression.y"
7193     { ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
7194     break;
7195
7196   case 425:
7197
7198 /* Line 1464 of yacc.c  */
7199 #line 1180 "expression.y"
7200     { MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]);  ;}
7201     break;
7202
7203   case 426:
7204
7205 /* Line 1464 of yacc.c  */
7206 #line 1181 "expression.y"
7207     { MembersInit members = MkMembersInitList(MkList()); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
7208     break;
7209
7210   case 428:
7211
7212 /* Line 1464 of yacc.c  */
7213 #line 1186 "expression.y"
7214     { (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
7215     break;
7216
7217   case 429:
7218
7219 /* Line 1464 of yacc.c  */
7220 #line 1187 "expression.y"
7221     { ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list)));   ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
7222     break;
7223
7224   case 430:
7225
7226 /* Line 1464 of yacc.c  */
7227 #line 1191 "expression.y"
7228     { parsedExpression = (yyvsp[(1) - (1)].exp); ;}
7229     break;
7230
7231
7232
7233 /* Line 1464 of yacc.c  */
7234 #line 7234 "expression.ec"
7235       default: break;
7236     }
7237   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7238
7239   YYPOPSTACK (yylen);
7240   yylen = 0;
7241   YY_STACK_PRINT (yyss, yyssp);
7242
7243   *++yyvsp = yyval;
7244   *++yylsp = yyloc;
7245
7246   /* Now `shift' the result of the reduction.  Determine what state
7247      that goes to, based on the state we popped back to and the rule
7248      number reduced by.  */
7249
7250   yyn = yyr1[yyn];
7251
7252   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7253   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7254     yystate = yytable[yystate];
7255   else
7256     yystate = yydefgoto[yyn - YYNTOKENS];
7257
7258   goto yynewstate;
7259
7260
7261 /*------------------------------------.
7262 | yyerrlab -- here on detecting error |
7263 `------------------------------------*/
7264 yyerrlab:
7265   /* If not already recovering from an error, report this error.  */
7266   if (!yyerrstatus)
7267     {
7268       ++yynerrs;
7269 #if ! YYERROR_VERBOSE
7270       yyerror (YY_("syntax error"));
7271 #else
7272       {
7273         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
7274         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
7275           {
7276             YYSIZE_T yyalloc = 2 * yysize;
7277             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
7278               yyalloc = YYSTACK_ALLOC_MAXIMUM;
7279             if (yymsg != yymsgbuf)
7280               YYSTACK_FREE (yymsg);
7281             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
7282             if (yymsg)
7283               yymsg_alloc = yyalloc;
7284             else
7285               {
7286                 yymsg = yymsgbuf;
7287                 yymsg_alloc = sizeof yymsgbuf;
7288               }
7289           }
7290
7291         if (0 < yysize && yysize <= yymsg_alloc)
7292           {
7293             (void) yysyntax_error (yymsg, yystate, yychar);
7294             yyerror (yymsg);
7295           }
7296         else
7297           {
7298             yyerror (YY_("syntax error"));
7299             if (yysize != 0)
7300               goto yyexhaustedlab;
7301           }
7302       }
7303 #endif
7304     }
7305
7306   yyerror_range[0] = yylloc;
7307
7308   if (yyerrstatus == 3)
7309     {
7310       /* If just tried and failed to reuse lookahead token after an
7311          error, discard it.  */
7312
7313       if (yychar <= YYEOF)
7314         {
7315           /* Return failure if at end of input.  */
7316           if (yychar == YYEOF)
7317             YYABORT;
7318         }
7319       else
7320         {
7321           yydestruct ("Error: discarding",
7322                       yytoken, &yylval, &yylloc);
7323           yychar = YYEMPTY;
7324         }
7325     }
7326
7327   /* Else will try to reuse lookahead token after shifting the error
7328      token.  */
7329   goto yyerrlab1;
7330
7331
7332 /*---------------------------------------------------.
7333 | yyerrorlab -- error raised explicitly by YYERROR.  |
7334 `---------------------------------------------------*/
7335 yyerrorlab:
7336
7337   /* Pacify compilers like GCC when the user code never invokes
7338      YYERROR and the label yyerrorlab therefore never appears in user
7339      code.  */
7340   if (/*CONSTCOND*/ 0)
7341      goto yyerrorlab;
7342
7343   yyerror_range[0] = yylsp[1-yylen];
7344   /* Do not reclaim the symbols of the rule which action triggered
7345      this YYERROR.  */
7346   YYPOPSTACK (yylen);
7347   yylen = 0;
7348   YY_STACK_PRINT (yyss, yyssp);
7349   yystate = *yyssp;
7350   goto yyerrlab1;
7351
7352
7353 /*-------------------------------------------------------------.
7354 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
7355 `-------------------------------------------------------------*/
7356 yyerrlab1:
7357   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
7358
7359   for (;;)
7360     {
7361       yyn = yypact[yystate];
7362       if (yyn != YYPACT_NINF)
7363         {
7364           yyn += YYTERROR;
7365           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7366             {
7367               yyn = yytable[yyn];
7368               if (0 < yyn)
7369                 break;
7370             }
7371         }
7372
7373       /* Pop the current state because it cannot handle the error token.  */
7374       if (yyssp == yyss)
7375         YYABORT;
7376
7377       yyerror_range[0] = *yylsp;
7378       yydestruct ("Error: popping",
7379                   yystos[yystate], yyvsp, yylsp);
7380       YYPOPSTACK (1);
7381       yystate = *yyssp;
7382       YY_STACK_PRINT (yyss, yyssp);
7383     }
7384
7385   *++yyvsp = yylval;
7386
7387   yyerror_range[1] = yylloc;
7388   /* Using YYLLOC is tempting, but would change the location of
7389      the lookahead.  YYLOC is available though.  */
7390   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
7391   *++yylsp = yyloc;
7392
7393   /* Shift the error token.  */
7394   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7395
7396   yystate = yyn;
7397   goto yynewstate;
7398
7399
7400 /*-------------------------------------.
7401 | yyacceptlab -- YYACCEPT comes here.  |
7402 `-------------------------------------*/
7403 yyacceptlab:
7404   yyresult = 0;
7405   goto yyreturn;
7406
7407 /*-----------------------------------.
7408 | yyabortlab -- YYABORT comes here.  |
7409 `-----------------------------------*/
7410 yyabortlab:
7411   yyresult = 1;
7412   goto yyreturn;
7413
7414 #if !defined(yyoverflow) || YYERROR_VERBOSE
7415 /*-------------------------------------------------.
7416 | yyexhaustedlab -- memory exhaustion comes here.  |
7417 `-------------------------------------------------*/
7418 yyexhaustedlab:
7419   yyerror (YY_("memory exhausted"));
7420   yyresult = 2;
7421   /* Fall through.  */
7422 #endif
7423
7424 yyreturn:
7425   if (yychar != YYEMPTY)
7426      yydestruct ("Cleanup: discarding lookahead",
7427                  yytoken, &yylval, &yylloc);
7428   /* Do not reclaim the symbols of the rule which action triggered
7429      this YYABORT or YYACCEPT.  */
7430   YYPOPSTACK (yylen);
7431   YY_STACK_PRINT (yyss, yyssp);
7432   while (yyssp != yyss)
7433     {
7434       yydestruct ("Cleanup: popping",
7435                   yystos[*yyssp], yyvsp, yylsp);
7436       YYPOPSTACK (1);
7437     }
7438 #ifndef yyoverflow
7439   if (yyss != yyssa)
7440     YYSTACK_FREE (yyss);
7441 #endif
7442 #if YYERROR_VERBOSE
7443   if (yymsg != yymsgbuf)
7444     YYSTACK_FREE (yymsg);
7445 #endif
7446   /* Make sure YYID is used.  */
7447   return YYID (yyresult);
7448 }
7449
7450
7451
7452 /* Line 1684 of yacc.c  */
7453 #line 1193 "expression.y"
7454
7455