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