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