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