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