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