1 /* A Bison parser, made by GNU Bison 2.3.  */
2 
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6    Free Software 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 2, or (at your option)
11    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, write to the Free Software
20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
21    Boston, MA 02110-1301, USA.  */
22 
23 /* As a special exception, you may create a larger work that contains
24    part or all of the Bison parser skeleton and distribute that work
25    under terms of your choice, so long as that work isn't itself a
26    parser generator using the skeleton or a modified version thereof
27    as a parser skeleton.  Alternatively, if you modify or redistribute
28    the parser skeleton itself, you may (at your option) remove this
29    special exception, which will cause the skeleton and the resulting
30    Bison output files to be licensed under the GNU General Public
31    License without this special exception.
32 
33    This special exception was added by the Free Software Foundation in
34    version 2.2 of Bison.  */
35 
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37    simplifying the original so-called "semantic" parser.  */
38 
39 /* All symbols defined below should begin with yy or YY, to avoid
40    infringing on user name space.  This should be done even for local
41    variables, as they might otherwise be expanded by user macros.
42    There are some unavoidable exceptions within include files to
43    define necessary library symbols; they are noted "INFRINGES ON
44    USER NAME SPACE" below.  */
45 
46 /* Identify Bison output.  */
47 #define YYBISON 1
48 
49 /* Bison version.  */
50 #define YYBISON_VERSION "2.3"
51 
52 /* Skeleton name.  */
53 #define YYSKELETON_NAME "yacc.c"
54 
55 /* Pure parsers.  */
56 #define YYPURE 1
57 
58 /* Using locations.  */
59 #define YYLSP_NEEDED 0
60 
61 /* Substitute the variable and function names.  */
62 #define yyparse xhpastparse
63 #define yylex   xhpastlex
64 #define yyerror xhpasterror
65 #define yylval  xhpastlval
66 #define yychar  xhpastchar
67 #define yydebug xhpastdebug
68 #define yynerrs xhpastnerrs
69 
70 
71 /* Tokens.  */
72 #ifndef YYTOKENTYPE
73 # define YYTOKENTYPE
74    /* Put the tokens into the symbol table, so that GDB and other debuggers
75       know about them.  */
76    enum yytokentype {
77      T_REQUIRE_ONCE = 258,
78      T_REQUIRE = 259,
79      T_EVAL = 260,
80      T_INCLUDE_ONCE = 261,
81      T_INCLUDE = 262,
82      T_LOGICAL_OR = 263,
83      T_LOGICAL_XOR = 264,
84      T_LOGICAL_AND = 265,
85      T_PRINT = 266,
86      T_SR_EQUAL = 267,
87      T_SL_EQUAL = 268,
88      T_XOR_EQUAL = 269,
89      T_OR_EQUAL = 270,
90      T_AND_EQUAL = 271,
91      T_MOD_EQUAL = 272,
92      T_CONCAT_EQUAL = 273,
93      T_DIV_EQUAL = 274,
94      T_MUL_EQUAL = 275,
95      T_MINUS_EQUAL = 276,
96      T_PLUS_EQUAL = 277,
97      T_COALESCE = 278,
98      T_BOOLEAN_OR = 279,
99      T_BOOLEAN_AND = 280,
100      T_SPACESHIP = 281,
101      T_IS_NOT_IDENTICAL = 282,
102      T_IS_IDENTICAL = 283,
103      T_IS_NOT_EQUAL = 284,
104      T_IS_EQUAL = 285,
105      T_IS_GREATER_OR_EQUAL = 286,
106      T_IS_SMALLER_OR_EQUAL = 287,
107      T_SR = 288,
108      T_SL = 289,
109      T_INSTANCEOF = 290,
110      T_UNSET_CAST = 291,
111      T_BOOL_CAST = 292,
112      T_OBJECT_CAST = 293,
113      T_ARRAY_CAST = 294,
114      T_BINARY_CAST = 295,
115      T_UNICODE_CAST = 296,
116      T_STRING_CAST = 297,
117      T_DOUBLE_CAST = 298,
118      T_INT_CAST = 299,
119      T_DEC = 300,
120      T_INC = 301,
121      T_CLONE = 302,
122      T_NEW = 303,
123      T_EXIT = 304,
124      T_IF = 305,
125      T_ELSEIF = 306,
126      T_ELSE = 307,
127      T_ENDIF = 308,
128      T_LNUMBER = 309,
129      T_DNUMBER = 310,
130      T_STRING = 311,
131      T_STRING_VARNAME = 312,
132      T_VARIABLE = 313,
133      T_NUM_STRING = 314,
134      T_INLINE_HTML = 315,
135      T_CHARACTER = 316,
136      T_BAD_CHARACTER = 317,
137      T_ENCAPSED_AND_WHITESPACE = 318,
138      T_CONSTANT_ENCAPSED_STRING = 319,
139      T_BACKTICKS_EXPR = 320,
140      T_ECHO = 321,
141      T_DO = 322,
142      T_WHILE = 323,
143      T_ENDWHILE = 324,
144      T_FOR = 325,
145      T_ENDFOR = 326,
146      T_FOREACH = 327,
147      T_ENDFOREACH = 328,
148      T_DECLARE = 329,
149      T_ENDDECLARE = 330,
150      T_AS = 331,
151      T_SWITCH = 332,
152      T_ENDSWITCH = 333,
153      T_CASE = 334,
154      T_DEFAULT = 335,
155      T_BREAK = 336,
156      T_CONTINUE = 337,
157      T_GOTO = 338,
158      T_FUNCTION = 339,
159      T_CONST = 340,
160      T_RETURN = 341,
161      T_TRY = 342,
162      T_CATCH = 343,
163      T_THROW = 344,
164      T_USE = 345,
165      T_GLOBAL = 346,
166      T_PUBLIC = 347,
167      T_PROTECTED = 348,
168      T_PRIVATE = 349,
169      T_FINAL = 350,
170      T_ABSTRACT = 351,
171      T_STATIC = 352,
172      T_VAR = 353,
173      T_UNSET = 354,
174      T_ISSET = 355,
175      T_EMPTY = 356,
176      T_HALT_COMPILER = 357,
177      T_CLASS = 358,
178      T_INTERFACE = 359,
179      T_EXTENDS = 360,
180      T_IMPLEMENTS = 361,
181      T_OBJECT_OPERATOR = 362,
182      T_DOUBLE_ARROW = 363,
183      T_LIST = 364,
184      T_ARRAY = 365,
185      T_CLASS_C = 366,
186      T_METHOD_C = 367,
187      T_FUNC_C = 368,
188      T_LINE = 369,
189      T_FILE = 370,
190      T_COMMENT = 371,
191      T_DOC_COMMENT = 372,
192      T_OPEN_TAG = 373,
193      T_OPEN_TAG_WITH_ECHO = 374,
194      T_OPEN_TAG_FAKE = 375,
195      T_CLOSE_TAG = 376,
196      T_WHITESPACE = 377,
197      T_START_HEREDOC = 378,
198      T_END_HEREDOC = 379,
199      T_HEREDOC = 380,
200      T_DOLLAR_OPEN_CURLY_BRACES = 381,
201      T_CURLY_OPEN = 382,
202      T_PAAMAYIM_NEKUDOTAYIM = 383,
203      T_BINARY_DOUBLE = 384,
204      T_BINARY_HEREDOC = 385,
205      T_NAMESPACE = 386,
206      T_NS_C = 387,
207      T_DIR = 388,
208      T_NS_SEPARATOR = 389,
209      T_INSTEADOF = 390,
210      T_CALLABLE = 391,
211      T_TRAIT = 392,
212      T_TRAIT_C = 393,
213      T_YIELD = 394,
214      T_FINALLY = 395,
215      T_ELLIPSIS = 396
216    };
217 #endif
218 /* Tokens.  */
219 #define T_REQUIRE_ONCE 258
220 #define T_REQUIRE 259
221 #define T_EVAL 260
222 #define T_INCLUDE_ONCE 261
223 #define T_INCLUDE 262
224 #define T_LOGICAL_OR 263
225 #define T_LOGICAL_XOR 264
226 #define T_LOGICAL_AND 265
227 #define T_PRINT 266
228 #define T_SR_EQUAL 267
229 #define T_SL_EQUAL 268
230 #define T_XOR_EQUAL 269
231 #define T_OR_EQUAL 270
232 #define T_AND_EQUAL 271
233 #define T_MOD_EQUAL 272
234 #define T_CONCAT_EQUAL 273
235 #define T_DIV_EQUAL 274
236 #define T_MUL_EQUAL 275
237 #define T_MINUS_EQUAL 276
238 #define T_PLUS_EQUAL 277
239 #define T_COALESCE 278
240 #define T_BOOLEAN_OR 279
241 #define T_BOOLEAN_AND 280
242 #define T_SPACESHIP 281
243 #define T_IS_NOT_IDENTICAL 282
244 #define T_IS_IDENTICAL 283
245 #define T_IS_NOT_EQUAL 284
246 #define T_IS_EQUAL 285
247 #define T_IS_GREATER_OR_EQUAL 286
248 #define T_IS_SMALLER_OR_EQUAL 287
249 #define T_SR 288
250 #define T_SL 289
251 #define T_INSTANCEOF 290
252 #define T_UNSET_CAST 291
253 #define T_BOOL_CAST 292
254 #define T_OBJECT_CAST 293
255 #define T_ARRAY_CAST 294
256 #define T_BINARY_CAST 295
257 #define T_UNICODE_CAST 296
258 #define T_STRING_CAST 297
259 #define T_DOUBLE_CAST 298
260 #define T_INT_CAST 299
261 #define T_DEC 300
262 #define T_INC 301
263 #define T_CLONE 302
264 #define T_NEW 303
265 #define T_EXIT 304
266 #define T_IF 305
267 #define T_ELSEIF 306
268 #define T_ELSE 307
269 #define T_ENDIF 308
270 #define T_LNUMBER 309
271 #define T_DNUMBER 310
272 #define T_STRING 311
273 #define T_STRING_VARNAME 312
274 #define T_VARIABLE 313
275 #define T_NUM_STRING 314
276 #define T_INLINE_HTML 315
277 #define T_CHARACTER 316
278 #define T_BAD_CHARACTER 317
279 #define T_ENCAPSED_AND_WHITESPACE 318
280 #define T_CONSTANT_ENCAPSED_STRING 319
281 #define T_BACKTICKS_EXPR 320
282 #define T_ECHO 321
283 #define T_DO 322
284 #define T_WHILE 323
285 #define T_ENDWHILE 324
286 #define T_FOR 325
287 #define T_ENDFOR 326
288 #define T_FOREACH 327
289 #define T_ENDFOREACH 328
290 #define T_DECLARE 329
291 #define T_ENDDECLARE 330
292 #define T_AS 331
293 #define T_SWITCH 332
294 #define T_ENDSWITCH 333
295 #define T_CASE 334
296 #define T_DEFAULT 335
297 #define T_BREAK 336
298 #define T_CONTINUE 337
299 #define T_GOTO 338
300 #define T_FUNCTION 339
301 #define T_CONST 340
302 #define T_RETURN 341
303 #define T_TRY 342
304 #define T_CATCH 343
305 #define T_THROW 344
306 #define T_USE 345
307 #define T_GLOBAL 346
308 #define T_PUBLIC 347
309 #define T_PROTECTED 348
310 #define T_PRIVATE 349
311 #define T_FINAL 350
312 #define T_ABSTRACT 351
313 #define T_STATIC 352
314 #define T_VAR 353
315 #define T_UNSET 354
316 #define T_ISSET 355
317 #define T_EMPTY 356
318 #define T_HALT_COMPILER 357
319 #define T_CLASS 358
320 #define T_INTERFACE 359
321 #define T_EXTENDS 360
322 #define T_IMPLEMENTS 361
323 #define T_OBJECT_OPERATOR 362
324 #define T_DOUBLE_ARROW 363
325 #define T_LIST 364
326 #define T_ARRAY 365
327 #define T_CLASS_C 366
328 #define T_METHOD_C 367
329 #define T_FUNC_C 368
330 #define T_LINE 369
331 #define T_FILE 370
332 #define T_COMMENT 371
333 #define T_DOC_COMMENT 372
334 #define T_OPEN_TAG 373
335 #define T_OPEN_TAG_WITH_ECHO 374
336 #define T_OPEN_TAG_FAKE 375
337 #define T_CLOSE_TAG 376
338 #define T_WHITESPACE 377
339 #define T_START_HEREDOC 378
340 #define T_END_HEREDOC 379
341 #define T_HEREDOC 380
342 #define T_DOLLAR_OPEN_CURLY_BRACES 381
343 #define T_CURLY_OPEN 382
344 #define T_PAAMAYIM_NEKUDOTAYIM 383
345 #define T_BINARY_DOUBLE 384
346 #define T_BINARY_HEREDOC 385
347 #define T_NAMESPACE 386
348 #define T_NS_C 387
349 #define T_DIR 388
350 #define T_NS_SEPARATOR 389
351 #define T_INSTEADOF 390
352 #define T_CALLABLE 391
353 #define T_TRAIT 392
354 #define T_TRAIT_C 393
355 #define T_YIELD 394
356 #define T_FINALLY 395
357 #define T_ELLIPSIS 396
358 
359 
360 
361 
362 /* Copy the first part of user declarations.  */
363 #line 1 "parser.y"
364 
365 /*
366  * If you modify this grammar, please update the version number in
367  * ./xhpast.cpp and libphutil/src/parser/xhpast/bin/xhpast_parse.php
368  */
369 
370 #include "ast.hpp"
371 #include "node_names.hpp"
372 // PHP's if/else rules use right reduction rather than left reduction which
373 // means while parsing nested if/else's the stack grows until it the last
374 // statement is read. This is annoying, particularly because of a quirk in
375 // bison.
376 // http://www.gnu.org/software/bison/manual/html_node/Memory-Management.html
377 // Apparently if you compile a bison parser with g++ it can no longer grow
378 // the stack. The work around is to just make your initial stack ridiculously
379 // large. Unfortunately that increases memory usage while parsing which is
380 // dumb. Anyway, putting a TODO here to fix PHP's if/else grammar.
381 #define YYINITDEPTH 500
382 #line 21 "parser.y"
383 
384 #undef yyextra
385 #define yyextra static_cast<yy_extra_type*>(xhpastget_extra(yyscanner))
386 #undef yylineno
387 #define yylineno yyextra->first_lineno
388 #define push_state(s) xhp_new_push_state(s, (struct yyguts_t*) yyscanner)
389 #define pop_state() xhp_new_pop_state((struct yyguts_t*) yyscanner)
390 #define set_state(s) xhp_set_state(s, (struct yyguts_t*) yyscanner)
391 
392 #define NNEW(t) \
393   (new xhpast::Node(t))
394 
395 #define NTYPE(n, type) \
396   ((n)->setType(type))
397 
398 #define NMORE(n, end) \
399   ((n)->expandRange(end))
400 
401 #define NSPAN(n, type, end) \
402   (NMORE(NTYPE((n), type), end))
403 
404 #define NEXPAND(l, n, r) \
405   ((n)->expandRange(l)->expandRange(r))
406 
407 using namespace std;
408 
yyerror(void * yyscanner,void * _,const char * error)409 static void yyerror(void* yyscanner, void* _, const char* error) {
410   if (yyextra->terminated) {
411     return;
412   }
413   yyextra->terminated = true;
414   yyextra->error = error;
415 }
416 
417 
418 
419 /* Enabling traces.  */
420 #ifndef YYDEBUG
421 # define YYDEBUG 0
422 #endif
423 
424 /* Enabling verbose error messages.  */
425 #ifdef YYERROR_VERBOSE
426 # undef YYERROR_VERBOSE
427 # define YYERROR_VERBOSE 1
428 #else
429 # define YYERROR_VERBOSE 1
430 #endif
431 
432 /* Enabling the token table.  */
433 #ifndef YYTOKEN_TABLE
434 # define YYTOKEN_TABLE 0
435 #endif
436 
437 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
438 typedef int YYSTYPE;
439 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
440 # define YYSTYPE_IS_DECLARED 1
441 # define YYSTYPE_IS_TRIVIAL 1
442 #endif
443 
444 
445 
446 /* Copy the second part of user declarations.  */
447 
448 
449 /* Line 216 of yacc.c.  */
450 #line 451 "parser.yacc.cpp"
451 
452 #ifdef short
453 # undef short
454 #endif
455 
456 #ifdef YYTYPE_UINT8
457 typedef YYTYPE_UINT8 yytype_uint8;
458 #else
459 typedef unsigned char yytype_uint8;
460 #endif
461 
462 #ifdef YYTYPE_INT8
463 typedef YYTYPE_INT8 yytype_int8;
464 #elif (defined __STDC__ || defined __C99__FUNC__ \
465      || defined __cplusplus || defined _MSC_VER)
466 typedef signed char yytype_int8;
467 #else
468 typedef short int yytype_int8;
469 #endif
470 
471 #ifdef YYTYPE_UINT16
472 typedef YYTYPE_UINT16 yytype_uint16;
473 #else
474 typedef unsigned short int yytype_uint16;
475 #endif
476 
477 #ifdef YYTYPE_INT16
478 typedef YYTYPE_INT16 yytype_int16;
479 #else
480 typedef short int yytype_int16;
481 #endif
482 
483 #ifndef YYSIZE_T
484 # ifdef __SIZE_TYPE__
485 #  define YYSIZE_T __SIZE_TYPE__
486 # elif defined size_t
487 #  define YYSIZE_T size_t
488 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
489      || defined __cplusplus || defined _MSC_VER)
490 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
491 #  define YYSIZE_T size_t
492 # else
493 #  define YYSIZE_T unsigned int
494 # endif
495 #endif
496 
497 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
498 
499 #ifndef YY_
500 # if defined YYENABLE_NLS && YYENABLE_NLS
501 #  if ENABLE_NLS
502 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
503 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
504 #  endif
505 # endif
506 # ifndef YY_
507 #  define YY_(msgid) msgid
508 # endif
509 #endif
510 
511 /* Suppress unused-variable warnings by "using" E.  */
512 #if ! defined lint || defined __GNUC__
513 # define YYUSE(e) ((void) (e))
514 #else
515 # define YYUSE(e) /* empty */
516 #endif
517 
518 /* Identity function, used to suppress warnings about constant conditions.  */
519 #ifndef lint
520 # define YYID(n) (n)
521 #else
522 #if (defined __STDC__ || defined __C99__FUNC__ \
523      || defined __cplusplus || defined _MSC_VER)
524 static int
YYID(int i)525 YYID (int i)
526 #else
527 static int
528 YYID (i)
529     int i;
530 #endif
531 {
532   return i;
533 }
534 #endif
535 
536 #if ! defined yyoverflow || YYERROR_VERBOSE
537 
538 /* The parser invokes alloca or malloc; define the necessary symbols.  */
539 
540 # ifdef YYSTACK_USE_ALLOCA
541 #  if YYSTACK_USE_ALLOCA
542 #   ifdef __GNUC__
543 #    define YYSTACK_ALLOC __builtin_alloca
544 #   elif defined __BUILTIN_VA_ARG_INCR
545 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
546 #   elif defined _AIX
547 #    define YYSTACK_ALLOC __alloca
548 #   elif defined _MSC_VER
549 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
550 #    define alloca _alloca
551 #   else
552 #    define YYSTACK_ALLOC alloca
553 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
554      || defined __cplusplus || defined _MSC_VER)
555 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
556 #     ifndef _STDLIB_H
557 #      define _STDLIB_H 1
558 #     endif
559 #    endif
560 #   endif
561 #  endif
562 # endif
563 
564 # ifdef YYSTACK_ALLOC
565    /* Pacify GCC's `empty if-body' warning.  */
566 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
567 #  ifndef YYSTACK_ALLOC_MAXIMUM
568     /* The OS might guarantee only one guard page at the bottom of the stack,
569        and a page size can be as small as 4096 bytes.  So we cannot safely
570        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
571        to allow for a few compiler-allocated temporary stack slots.  */
572 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
573 #  endif
574 # else
575 #  define YYSTACK_ALLOC YYMALLOC
576 #  define YYSTACK_FREE YYFREE
577 #  ifndef YYSTACK_ALLOC_MAXIMUM
578 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
579 #  endif
580 #  if (defined __cplusplus && ! defined _STDLIB_H \
581        && ! ((defined YYMALLOC || defined malloc) \
582 	     && (defined YYFREE || defined free)))
583 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
584 #   ifndef _STDLIB_H
585 #    define _STDLIB_H 1
586 #   endif
587 #  endif
588 #  ifndef YYMALLOC
589 #   define YYMALLOC malloc
590 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
591      || defined __cplusplus || defined _MSC_VER)
592 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
593 #   endif
594 #  endif
595 #  ifndef YYFREE
596 #   define YYFREE free
597 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
598      || defined __cplusplus || defined _MSC_VER)
599 void free (void *); /* INFRINGES ON USER NAME SPACE */
600 #   endif
601 #  endif
602 # endif
603 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
604 
605 
606 #if (! defined yyoverflow \
607      && (! defined __cplusplus \
608 	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
609 
610 /* A type that is properly aligned for any stack member.  */
611 union yyalloc
612 {
613   yytype_int16 yyss;
614   YYSTYPE yyvs;
615   };
616 
617 /* The size of the maximum gap between one aligned stack and the next.  */
618 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
619 
620 /* The size of an array large to enough to hold all stacks, each with
621    N elements.  */
622 # define YYSTACK_BYTES(N) \
623      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
624       + YYSTACK_GAP_MAXIMUM)
625 
626 /* Copy COUNT objects from FROM to TO.  The source and destination do
627    not overlap.  */
628 # ifndef YYCOPY
629 #  if defined __GNUC__ && 1 < __GNUC__
630 #   define YYCOPY(To, From, Count) \
631       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
632 #  else
633 #   define YYCOPY(To, From, Count)		\
634       do					\
635 	{					\
636 	  YYSIZE_T yyi;				\
637 	  for (yyi = 0; yyi < (Count); yyi++)	\
638 	    (To)[yyi] = (From)[yyi];		\
639 	}					\
640       while (YYID (0))
641 #  endif
642 # endif
643 
644 /* Relocate STACK from its old location to the new one.  The
645    local variables YYSIZE and YYSTACKSIZE give the old and new number of
646    elements in the stack, and YYPTR gives the new location of the
647    stack.  Advance YYPTR to a properly aligned location for the next
648    stack.  */
649 # define YYSTACK_RELOCATE(Stack)					\
650     do									\
651       {									\
652 	YYSIZE_T yynewbytes;						\
653 	YYCOPY (&yyptr->Stack, Stack, yysize);				\
654 	Stack = &yyptr->Stack;						\
655 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
656 	yyptr += yynewbytes / sizeof (*yyptr);				\
657       }									\
658     while (YYID (0))
659 
660 #endif
661 
662 /* YYFINAL -- State number of the termination state.  */
663 #define YYFINAL  3
664 /* YYLAST -- Last index in YYTABLE.  */
665 #define YYLAST   7580
666 
667 /* YYNTOKENS -- Number of terminals.  */
668 #define YYNTOKENS  168
669 /* YYNNTS -- Number of nonterminals.  */
670 #define YYNNTS  136
671 /* YYNRULES -- Number of rules.  */
672 #define YYNRULES  444
673 /* YYNRULES -- Number of states.  */
674 #define YYNSTATES  916
675 
676 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
677 #define YYUNDEFTOK  2
678 #define YYMAXUTOK   396
679 
680 #define YYTRANSLATE(YYX)						\
681   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
682 
683 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
684 static const yytype_uint8 yytranslate[] =
685 {
686        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
687        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
688        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
689        2,     2,     2,    50,     2,     2,   166,    49,    32,     2,
690      161,   162,    47,    44,     8,    45,    46,    48,     2,     2,
691        2,     2,     2,     2,     2,     2,     2,     2,    26,   163,
692       38,    13,    39,    25,    53,     2,     2,     2,     2,     2,
693        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
694        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
695        2,    65,     2,   167,    31,     2,     2,     2,     2,     2,
696        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
697        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
698        2,     2,     2,   164,    30,   165,    52,     2,     2,     2,
699        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
700        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
701        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
702        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
703        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
704        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
705        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
706        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
707        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
708        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
709        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
710        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
711        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
712        5,     6,     7,     9,    10,    11,    12,    14,    15,    16,
713       17,    18,    19,    20,    21,    22,    23,    24,    27,    28,
714       29,    33,    34,    35,    36,    37,    40,    41,    42,    43,
715       51,    54,    55,    56,    57,    58,    59,    60,    61,    62,
716       63,    64,    66,    67,    68,    69,    70,    71,    72,    73,
717       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
718       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
719       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
720      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
721      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
722      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
723      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
724      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
725      154,   155,   156,   157,   158,   159,   160
726 };
727 
728 #if YYDEBUG
729 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
730    YYRHS.  */
731 static const yytype_uint16 yyprhs[] =
732 {
733        0,     0,     3,     5,     8,     9,    11,    15,    17,    19,
734       21,    26,    30,    36,    41,    45,    48,    52,    54,    56,
735       60,    63,    68,    74,    79,    82,    83,    85,    87,    89,
736       94,    96,    99,   101,   103,   105,   109,   117,   128,   134,
737      142,   152,   158,   161,   165,   168,   172,   175,   179,   183,
738      187,   191,   195,   197,   200,   203,   209,   218,   227,   233,
739      235,   242,   248,   252,   256,   259,   261,   270,   271,   273,
740      278,   280,   284,   286,   288,   290,   291,   293,   304,   312,
741      319,   321,   324,   327,   329,   330,   333,   335,   336,   339,
742      340,   343,   345,   349,   350,   353,   355,   358,   360,   365,
743      367,   372,   374,   379,   383,   389,   393,   398,   403,   409,
744      410,   416,   421,   423,   425,   427,   432,   433,   440,   441,
745      449,   450,   453,   454,   458,   460,   461,   464,   468,   474,
746      479,   484,   490,   498,   505,   508,   510,   511,   513,   516,
747      518,   520,   522,   523,   526,   528,   529,   531,   535,   537,
748      540,   543,   547,   549,   551,   554,   559,   563,   569,   571,
749      575,   578,   579,   583,   586,   588,   589,   600,   604,   606,
750      610,   612,   616,   617,   619,   621,   624,   627,   630,   634,
751      636,   640,   642,   644,   648,   653,   657,   658,   660,   662,
752      666,   668,   670,   671,   673,   675,   678,   680,   682,   684,
753      686,   688,   690,   692,   696,   702,   704,   708,   714,   719,
754      723,   725,   726,   728,   732,   734,   741,   745,   750,   757,
755      760,   764,   768,   772,   776,   780,   784,   788,   792,   796,
756      800,   804,   807,   810,   813,   816,   820,   824,   828,   832,
757      836,   840,   844,   848,   852,   856,   860,   864,   868,   872,
758      876,   880,   883,   886,   889,   892,   896,   900,   904,   908,
759      912,   916,   920,   924,   928,   932,   934,   936,   942,   947,
760      951,   953,   956,   959,   962,   965,   968,   971,   974,   977,
761      980,   982,   984,   986,   988,   991,   993,  1004,  1016,  1019,
762     1022,  1027,  1032,  1034,  1035,  1040,  1044,  1049,  1051,  1054,
763     1059,  1066,  1072,  1079,  1086,  1093,  1100,  1105,  1107,  1109,
764     1113,  1116,  1118,  1122,  1125,  1127,  1129,  1134,  1136,  1139,
765     1140,  1143,  1144,  1147,  1151,  1152,  1156,  1158,  1160,  1162,
766     1164,  1166,  1168,  1170,  1172,  1174,  1176,  1178,  1180,  1182,
767     1184,  1188,  1191,  1194,  1197,  1202,  1206,  1208,  1212,  1214,
768     1216,  1218,  1222,  1225,  1227,  1228,  1231,  1232,  1234,  1240,
769     1244,  1248,  1250,  1252,  1254,  1256,  1258,  1260,  1266,  1268,
770     1271,  1272,  1276,  1281,  1286,  1290,  1292,  1294,  1295,  1297,
771     1300,  1304,  1308,  1310,  1315,  1320,  1322,  1324,  1326,  1328,
772     1332,  1335,  1337,  1342,  1347,  1349,  1351,  1356,  1357,  1359,
773     1361,  1363,  1368,  1373,  1375,  1377,  1381,  1383,  1386,  1390,
774     1392,  1394,  1399,  1400,  1401,  1404,  1410,  1414,  1418,  1420,
775     1427,  1432,  1437,  1440,  1445,  1450,  1453,  1456,  1461,  1464,
776     1467,  1469,  1473,  1477,  1481,  1486,  1491,  1496,  1501,  1506,
777     1511,  1515,  1519,  1528,  1532
778 };
779 
780 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
781 static const yytype_int16 yyrhs[] =
782 {
783      169,     0,    -1,   170,    -1,   170,   172,    -1,    -1,    75,
784       -1,   171,   153,    75,    -1,   178,    -1,   186,    -1,   187,
785       -1,   121,   161,   162,   163,    -1,   150,   171,   163,    -1,
786      150,   171,   164,   170,   165,    -1,   150,   164,   170,   165,
787       -1,   109,   173,   163,    -1,   175,   163,    -1,   173,     8,
788      174,    -1,   174,    -1,   171,    -1,   171,    95,    75,    -1,
789      153,   171,    -1,   153,   171,    95,    75,    -1,   175,     8,
790       75,    13,   264,    -1,   104,    75,    13,   264,    -1,   176,
791      177,    -1,    -1,   178,    -1,   186,    -1,   187,    -1,   121,
792      161,   162,   163,    -1,   179,    -1,    75,    26,    -1,   137,
793       -1,   138,    -1,   140,    -1,   164,   176,   165,    -1,    69,
794      161,   270,   162,   178,   207,   209,    -1,    69,   161,   270,
795      162,    26,   176,   208,   210,    72,   163,    -1,    87,   161,
796      270,   162,   206,    -1,    86,   178,    87,   161,   270,   162,
797      163,    -1,    89,   161,   247,   163,   247,   163,   247,   162,
798      199,    -1,    96,   161,   270,   162,   203,    -1,   100,   163,
799       -1,   100,   270,   163,    -1,   101,   163,    -1,   101,   270,
800      163,    -1,   105,   163,    -1,   105,   249,   163,    -1,   105,
801      274,   163,    -1,   110,   220,   163,    -1,   116,   222,   163,
802       -1,    85,   246,   163,    -1,    79,    -1,   270,   163,    -1,
803      250,   163,    -1,   118,   161,   184,   162,   163,    -1,    91,
804      161,   274,    95,   198,   197,   162,   200,    -1,    91,   161,
805      249,    95,   274,   197,   162,   200,    -1,    93,   161,   202,
806      162,   201,    -1,   163,    -1,   106,   164,   176,   165,   180,
807      182,    -1,   106,   164,   176,   165,   183,    -1,   108,   270,
808      163,    -1,   102,    75,   163,    -1,   180,   181,    -1,   181,
809       -1,   107,   161,   256,    77,   162,   164,   176,   165,    -1,
810       -1,   183,    -1,   159,   164,   176,   165,    -1,   185,    -1,
811      184,     8,   185,    -1,   274,    -1,   189,    -1,   190,    -1,
812       -1,    32,    -1,   251,   188,    75,   161,   211,   162,   216,
813      164,   176,   165,    -1,   191,    75,   192,   195,   164,   223,
814      165,    -1,   193,    75,   194,   164,   223,   165,    -1,   122,
815       -1,   115,   122,    -1,   114,   122,    -1,   156,    -1,    -1,
816      124,   256,    -1,   123,    -1,    -1,   124,   196,    -1,    -1,
817      125,   196,    -1,   256,    -1,   196,     8,   256,    -1,    -1,
818      127,   198,    -1,   274,    -1,    32,   274,    -1,   178,    -1,
819       26,   176,    90,   163,    -1,   178,    -1,    26,   176,    92,
820      163,    -1,   178,    -1,    26,   176,    94,   163,    -1,    75,
821       13,   264,    -1,   202,     8,    75,    13,   264,    -1,   164,
822      204,   165,    -1,   164,   163,   204,   165,    -1,    26,   204,
823       97,   163,    -1,    26,   163,   204,    97,   163,    -1,    -1,
824      204,    98,   270,   205,   176,    -1,   204,    99,   205,   176,
825       -1,    26,    -1,   163,    -1,   178,    -1,    26,   176,    88,
826      163,    -1,    -1,   207,    70,   161,   270,   162,   178,    -1,
827       -1,   208,    70,   161,   270,   162,    26,   176,    -1,    -1,
828       71,   178,    -1,    -1,    71,    26,   176,    -1,   212,    -1,
829       -1,   214,   213,    -1,   214,    32,   213,    -1,   214,    32,
830      213,    13,   264,    -1,   214,   213,    13,   264,    -1,   212,
831        8,   214,   213,    -1,   212,     8,   214,    32,   213,    -1,
832      212,     8,   214,    32,   213,    13,   264,    -1,   212,     8,
833      214,   213,    13,   264,    -1,   160,    77,    -1,    77,    -1,
834       -1,   215,    -1,    25,   215,    -1,   256,    -1,   129,    -1,
835      155,    -1,    -1,    26,   214,    -1,   218,    -1,    -1,   219,
836       -1,   218,     8,   219,    -1,   270,    -1,   160,   270,    -1,
837       32,   272,    -1,   220,     8,   221,    -1,   221,    -1,    77,
838       -1,   166,   271,    -1,   166,   164,   270,   165,    -1,   222,
839        8,    77,    -1,   222,     8,    77,    13,   264,    -1,    77,
840       -1,    77,    13,   264,    -1,   223,   224,    -1,    -1,   239,
841      244,   163,    -1,   245,   163,    -1,   226,    -1,    -1,   240,
842      251,   225,   188,    75,   161,   211,   162,   216,   238,    -1,
843      109,   227,   228,    -1,   256,    -1,   227,     8,   256,    -1,
844      163,    -1,   164,   229,   165,    -1,    -1,   230,    -1,   231,
845       -1,   230,   231,    -1,   232,   163,    -1,   236,   163,    -1,
846      235,   154,   233,    -1,   256,    -1,   233,     8,   256,    -1,
847       75,    -1,   235,    -1,   256,   147,    75,    -1,   234,    95,
848      237,    75,    -1,   234,    95,   242,    -1,    -1,   242,    -1,
849      163,    -1,   164,   176,   165,    -1,   241,    -1,   117,    -1,
850       -1,   241,    -1,   242,    -1,   241,   242,    -1,   243,    -1,
851      111,    -1,   112,    -1,   113,    -1,   116,    -1,   115,    -1,
852      114,    -1,   244,     8,    77,    -1,   244,     8,    77,    13,
853      264,    -1,    77,    -1,    77,    13,   264,    -1,   245,     8,
854       75,    13,   264,    -1,   104,    75,    13,   264,    -1,   246,
855        8,   270,    -1,   270,    -1,    -1,   248,    -1,   248,     8,
856      270,    -1,   270,    -1,   128,   161,   293,   162,    13,   270,
857       -1,   274,    13,   270,    -1,   274,    13,    32,   274,    -1,
858      274,    13,    32,    67,   257,   262,    -1,    66,   270,    -1,
859      274,    24,   270,    -1,   274,    23,   270,    -1,   274,    22,
860      270,    -1,   274,    21,   270,    -1,   274,    20,   270,    -1,
861      274,    19,   270,    -1,   274,    18,   270,    -1,   274,    17,
862      270,    -1,   274,    16,   270,    -1,   274,    15,   270,    -1,
863      274,    14,   270,    -1,   273,    64,    -1,    64,   273,    -1,
864      273,    63,    -1,    63,   273,    -1,   270,    28,   270,    -1,
865      270,    29,   270,    -1,   270,     9,   270,    -1,   270,    11,
866      270,    -1,   270,    10,   270,    -1,   270,    30,   270,    -1,
867      270,    32,   270,    -1,   270,    31,   270,    -1,   270,    46,
868      270,    -1,   270,    44,   270,    -1,   270,    45,   270,    -1,
869      270,    47,   270,    -1,   270,    48,   270,    -1,   270,    49,
870      270,    -1,   270,    43,   270,    -1,   270,    42,   270,    -1,
871       44,   270,    -1,    45,   270,    -1,    50,   270,    -1,    52,
872      270,    -1,   270,    35,   270,    -1,   270,    34,   270,    -1,
873      270,    37,   270,    -1,   270,    36,   270,    -1,   270,    38,
874      270,    -1,   270,    41,   270,    -1,   270,    39,   270,    -1,
875      270,    40,   270,    -1,   270,    33,   270,    -1,   270,    51,
876      257,    -1,   299,    -1,   302,    -1,   270,    25,   270,    26,
877      270,    -1,   270,    25,    26,   270,    -1,   270,    27,   270,
878       -1,   297,    -1,    62,   270,    -1,    61,   270,    -1,    60,
879      270,    -1,    57,   270,    -1,    56,   270,    -1,    55,   270,
880       -1,    54,   270,    -1,    68,   261,    -1,    53,   270,    -1,
881       84,    -1,   266,    -1,   300,    -1,   301,    -1,    12,   270,
882       -1,   158,    -1,   251,   188,   161,   211,   162,   252,   216,
883      164,   176,   165,    -1,   116,   251,   188,   161,   211,   162,
884      252,   216,   164,   176,   165,    -1,   158,   249,    -1,   158,
885      274,    -1,   158,   270,   127,   249,    -1,   158,   270,   127,
886      274,    -1,   103,    -1,    -1,   109,   161,   253,   162,    -1,
887      253,     8,    77,    -1,   253,     8,    32,    77,    -1,    77,
888       -1,    32,    77,    -1,   171,   161,   217,   162,    -1,   150,
889      153,   171,   161,   217,   162,    -1,   153,   171,   161,   217,
890      162,    -1,   255,   147,    75,   161,   217,   162,    -1,   282,
891      147,    75,   161,   217,   162,    -1,   282,   147,   280,   161,
892      217,   162,    -1,   255,   147,   280,   161,   217,   162,    -1,
893      280,   161,   217,   162,    -1,   116,    -1,   171,    -1,   150,
894      153,   171,    -1,   153,   171,    -1,   171,    -1,   150,   153,
895      171,    -1,   153,   171,    -1,   255,    -1,   258,    -1,   285,
896      126,   289,   259,    -1,   285,    -1,   259,   260,    -1,    -1,
897      126,   289,    -1,    -1,   161,   162,    -1,   161,   270,   162,
898       -1,    -1,   161,   217,   162,    -1,    73,    -1,    74,    -1,
899       83,    -1,   133,    -1,   134,    -1,   152,    -1,   130,    -1,
900      131,    -1,   157,    -1,   132,    -1,   151,    -1,   144,    -1,
901      263,    -1,   171,    -1,   150,   153,   171,    -1,   153,   171,
902       -1,    44,   264,    -1,    45,   264,    -1,   129,   161,   267,
903      162,    -1,    65,   267,   167,    -1,   265,    -1,   255,   147,
904       75,    -1,    76,    -1,   303,    -1,   171,    -1,   150,   153,
905      171,    -1,   153,   171,    -1,   263,    -1,    -1,   269,   268,
906       -1,    -1,     8,    -1,   269,     8,   264,   127,   264,    -1,
907      269,     8,   264,    -1,   264,   127,   264,    -1,   264,    -1,
908      271,    -1,   249,    -1,   274,    -1,   274,    -1,   274,    -1,
909      284,   126,   289,   279,   275,    -1,   284,    -1,   275,   276,
910       -1,    -1,   126,   289,   279,    -1,   277,    65,   288,   167,
911       -1,   278,    65,   288,   167,    -1,   161,   217,   162,    -1,
912      278,    -1,   277,    -1,    -1,   286,    -1,   292,   286,    -1,
913      255,   147,   280,    -1,   282,   147,   280,    -1,   286,    -1,
914      283,    65,   288,   167,    -1,   254,    65,   288,   167,    -1,
915      285,    -1,   283,    -1,   254,    -1,   286,    -1,   161,   302,
916      162,    -1,   292,   286,    -1,   281,    -1,   286,    65,   288,
917      167,    -1,   286,   164,   270,   165,    -1,   287,    -1,    77,
918       -1,   166,   164,   270,   165,    -1,    -1,   270,    -1,   290,
919       -1,   280,    -1,   290,    65,   288,   167,    -1,   290,   164,
920      270,   165,    -1,   291,    -1,    75,    -1,   164,   270,   165,
921       -1,   166,    -1,   292,   166,    -1,   293,     8,   294,    -1,
922      294,    -1,   274,    -1,   128,   161,   293,   162,    -1,    -1,
923       -1,   296,   268,    -1,   296,     8,   270,   127,   270,    -1,
924      296,     8,   270,    -1,   270,   127,   270,    -1,   270,    -1,
925      296,     8,   270,   127,    32,   272,    -1,   296,     8,    32,
926      272,    -1,   270,   127,    32,   272,    -1,    32,   272,    -1,
927      119,   161,   298,   162,    -1,   120,   161,   274,   162,    -1,
928        7,   270,    -1,     6,   270,    -1,     5,   161,   270,   162,
929       -1,     4,   270,    -1,     3,   270,    -1,   274,    -1,   298,
930        8,   274,    -1,   161,   270,   162,    -1,   161,   250,   162,
931       -1,   301,    65,   288,   167,    -1,   300,    65,   288,   167,
932       -1,    83,    65,   288,   167,    -1,   303,    65,   288,   167,
933       -1,    75,    65,   288,   167,    -1,   129,   161,   295,   162,
934       -1,    65,   295,   167,    -1,    67,   257,   262,    -1,    67,
935      122,   262,   192,   195,   164,   223,   165,    -1,   255,   147,
936       75,    -1,   282,   147,    75,    -1
937 };
938 
939 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
940 static const yytype_uint16 yyrline[] =
941 {
942        0,   207,   207,   213,   216,   222,   225,   231,   232,   233,
943      234,   239,   246,   252,   260,   265,   272,   275,   282,   287,
944      293,   299,   309,   316,   326,   329,   335,   336,   337,   338,
945      346,   347,   353,   356,   359,   365,   368,   398,   417,   424,
946      432,   445,   452,   459,   466,   473,   480,   487,   494,   501,
947      506,   511,   516,   520,   524,   528,   534,   552,   569,   575,
948      579,   588,   597,   605,   616,   620,   626,   638,   641,   645,
949      654,   658,   665,   669,   673,   677,   680,   686,   702,   714,
950      729,   733,   740,   747,   754,   757,   763,   767,   770,   778,
951      781,   789,   792,   798,   801,   807,   808,   816,   817,   825,
952      826,   834,   835,   843,   849,   860,   863,   873,   878,   890,
953      893,   901,   911,   912,   916,   917,   925,   928,   938,   941,
954      951,   954,   962,   965,   973,   974,   980,   988,   997,  1006,
955     1014,  1022,  1031,  1041,  1053,  1057,  1063,  1066,  1067,  1074,
956     1077,  1080,  1086,  1089,  1096,  1097,  1103,  1106,  1112,  1113,
957     1117,  1124,  1128,  1135,  1138,  1142,  1149,  1157,  1165,  1173,
958     1184,  1187,  1193,  1201,  1205,  1208,  1208,  1226,  1234,  1237,
959     1243,  1246,  1252,  1255,  1261,  1265,  1272,  1275,  1281,  1289,
960     1293,  1300,  1304,  1310,  1318,  1324,  1333,  1336,  1344,  1347,
961     1353,  1354,  1361,  1364,  1371,  1375,  1381,  1387,  1388,  1389,
962     1390,  1391,  1392,  1396,  1403,  1410,  1417,  1427,  1436,  1448,
963     1451,  1458,  1461,  1466,  1469,  1476,  1484,  1490,  1500,  1514,
964     1519,  1525,  1531,  1537,  1543,  1549,  1555,  1561,  1567,  1573,
965     1579,  1585,  1590,  1595,  1600,  1605,  1611,  1617,  1623,  1629,
966     1635,  1641,  1647,  1653,  1679,  1685,  1691,  1697,  1703,  1709,
967     1715,  1721,  1726,  1731,  1736,  1741,  1747,  1753,  1759,  1765,
968     1771,  1777,  1783,  1789,  1795,  1801,  1802,  1803,  1811,  1819,
969     1825,  1826,  1831,  1836,  1841,  1846,  1851,  1856,  1861,  1866,
970     1871,  1875,  1876,  1877,  1878,  1883,  1889,  1904,  1928,  1934,
971     1940,  1946,  1955,  1959,  1962,  1970,  1973,  1978,  1982,  1991,
972     1996,  2003,  2009,  2018,  2027,  2036,  2045,  2053,  2056,  2059,
973     2063,  2070,  2073,  2077,  2084,  2085,  2089,  2104,  2108,  2111,
974     2117,  2123,  2126,  2130,  2138,  2141,  2147,  2150,  2153,  2156,
975     2159,  2162,  2165,  2168,  2171,  2174,  2177,  2180,  2186,  2187,
976     2188,  2192,  2196,  2201,  2206,  2211,  2216,  2220,  2228,  2229,
977     2230,  2231,  2234,  2237,  2241,  2244,  2250,  2253,  2257,  2268,
978     2275,  2282,  2292,  2293,  2297,  2301,  2305,  2309,  2335,  2339,
979     2342,  2348,  2358,  2364,  2373,  2379,  2380,  2381,  2387,  2388,
980     2403,  2408,  2416,  2420,  2426,  2435,  2436,  2437,  2441,  2442,
981     2445,  2457,  2461,  2467,  2473,  2477,  2480,  2488,  2491,  2497,
982     2498,  2502,  2508,  2514,  2518,  2522,  2528,  2531,  2546,  2549,
983     2556,  2557,  2561,  2567,  2570,  2576,  2583,  2590,  2597,  2604,
984     2611,  2618,  2625,  2635,  2645,  2655,  2658,  2661,  2671,  2674,
985     2680,  2684,  2690,  2695,  2701,  2707,  2713,  2719,  2725,  2734,
986     2739,  2747,  2753,  2771,  2776
987 };
988 #endif
989 
990 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
991 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
992    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
993 static const char *const yytname[] =
994 {
995   "$end", "error", "$undefined", "T_REQUIRE_ONCE", "T_REQUIRE", "T_EVAL",
996   "T_INCLUDE_ONCE", "T_INCLUDE", "','", "T_LOGICAL_OR", "T_LOGICAL_XOR",
997   "T_LOGICAL_AND", "T_PRINT", "'='", "T_SR_EQUAL", "T_SL_EQUAL",
998   "T_XOR_EQUAL", "T_OR_EQUAL", "T_AND_EQUAL", "T_MOD_EQUAL",
999   "T_CONCAT_EQUAL", "T_DIV_EQUAL", "T_MUL_EQUAL", "T_MINUS_EQUAL",
1000   "T_PLUS_EQUAL", "'?'", "':'", "T_COALESCE", "T_BOOLEAN_OR",
1001   "T_BOOLEAN_AND", "'|'", "'^'", "'&'", "T_SPACESHIP",
1002   "T_IS_NOT_IDENTICAL", "T_IS_IDENTICAL", "T_IS_NOT_EQUAL", "T_IS_EQUAL",
1003   "'<'", "'>'", "T_IS_GREATER_OR_EQUAL", "T_IS_SMALLER_OR_EQUAL", "T_SR",
1004   "T_SL", "'+'", "'-'", "'.'", "'*'", "'/'", "'%'", "'!'", "T_INSTANCEOF",
1005   "'~'", "'@'", "T_UNSET_CAST", "T_BOOL_CAST", "T_OBJECT_CAST",
1006   "T_ARRAY_CAST", "T_BINARY_CAST", "T_UNICODE_CAST", "T_STRING_CAST",
1007   "T_DOUBLE_CAST", "T_INT_CAST", "T_DEC", "T_INC", "'['", "T_CLONE",
1008   "T_NEW", "T_EXIT", "T_IF", "T_ELSEIF", "T_ELSE", "T_ENDIF", "T_LNUMBER",
1009   "T_DNUMBER", "T_STRING", "T_STRING_VARNAME", "T_VARIABLE",
1010   "T_NUM_STRING", "T_INLINE_HTML", "T_CHARACTER", "T_BAD_CHARACTER",
1011   "T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING",
1012   "T_BACKTICKS_EXPR", "T_ECHO", "T_DO", "T_WHILE", "T_ENDWHILE", "T_FOR",
1013   "T_ENDFOR", "T_FOREACH", "T_ENDFOREACH", "T_DECLARE", "T_ENDDECLARE",
1014   "T_AS", "T_SWITCH", "T_ENDSWITCH", "T_CASE", "T_DEFAULT", "T_BREAK",
1015   "T_CONTINUE", "T_GOTO", "T_FUNCTION", "T_CONST", "T_RETURN", "T_TRY",
1016   "T_CATCH", "T_THROW", "T_USE", "T_GLOBAL", "T_PUBLIC", "T_PROTECTED",
1017   "T_PRIVATE", "T_FINAL", "T_ABSTRACT", "T_STATIC", "T_VAR", "T_UNSET",
1018   "T_ISSET", "T_EMPTY", "T_HALT_COMPILER", "T_CLASS", "T_INTERFACE",
1019   "T_EXTENDS", "T_IMPLEMENTS", "T_OBJECT_OPERATOR", "T_DOUBLE_ARROW",
1020   "T_LIST", "T_ARRAY", "T_CLASS_C", "T_METHOD_C", "T_FUNC_C", "T_LINE",
1021   "T_FILE", "T_COMMENT", "T_DOC_COMMENT", "T_OPEN_TAG",
1022   "T_OPEN_TAG_WITH_ECHO", "T_OPEN_TAG_FAKE", "T_CLOSE_TAG", "T_WHITESPACE",
1023   "T_START_HEREDOC", "T_END_HEREDOC", "T_HEREDOC",
1024   "T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM",
1025   "T_BINARY_DOUBLE", "T_BINARY_HEREDOC", "T_NAMESPACE", "T_NS_C", "T_DIR",
1026   "T_NS_SEPARATOR", "T_INSTEADOF", "T_CALLABLE", "T_TRAIT", "T_TRAIT_C",
1027   "T_YIELD", "T_FINALLY", "T_ELLIPSIS", "'('", "')'", "';'", "'{'", "'}'",
1028   "'$'", "']'", "$accept", "start", "top_statement_list", "namespace_name",
1029   "top_statement", "use_declarations", "use_declaration",
1030   "constant_declaration", "inner_statement_list", "inner_statement",
1031   "statement", "unticked_statement", "catch_list", "catch",
1032   "finally_statement", "non_empty_finally_statement", "unset_variables",
1033   "unset_variable", "function_declaration_statement",
1034   "class_declaration_statement", "is_reference",
1035   "unticked_function_declaration_statement",
1036   "unticked_class_declaration_statement", "class_entry_type",
1037   "extends_from", "interface_entry", "interface_extends_list",
1038   "implements_list", "interface_list", "foreach_optional_arg",
1039   "foreach_variable", "for_statement", "foreach_statement",
1040   "declare_statement", "declare_list", "switch_case_list", "case_list",
1041   "case_separator", "while_statement", "elseif_list", "new_elseif_list",
1042   "else_single", "new_else_single", "parameter_list",
1043   "non_empty_parameter_list", "parameter", "optional_type", "type",
1044   "return_type", "function_call_parameter_list",
1045   "non_empty_function_call_parameter_list", "argument", "global_var_list",
1046   "global_var", "static_var_list", "class_statement_list",
1047   "class_statement", "@1", "trait_use_statement", "trait_list",
1048   "trait_adaptations", "trait_adaptation_list",
1049   "non_empty_trait_adaptation_list", "trait_adaptation_statement",
1050   "trait_precedence", "trait_reference_list", "trait_method_reference",
1051   "trait_method_reference_fully_qualified", "trait_alias",
1052   "trait_modifiers", "method_body", "variable_modifiers",
1053   "method_modifiers", "non_empty_member_modifiers", "member_modifier",
1054   "basic_member_modifier", "class_variable_declaration",
1055   "class_constant_declaration", "echo_expr_list", "for_expr",
1056   "non_empty_for_expr", "expr_without_variable", "yield_expr", "function",
1057   "lexical_vars", "lexical_var_list", "function_call", "class_name",
1058   "fully_qualified_class_name", "class_name_reference",
1059   "dynamic_class_name_reference", "dynamic_class_name_variable_properties",
1060   "dynamic_class_name_variable_property", "exit_expr", "ctor_arguments",
1061   "common_scalar", "static_scalar", "static_class_constant", "scalar",
1062   "static_array_pair_list", "possible_comma",
1063   "non_empty_static_array_pair_list", "expr", "r_variable", "w_variable",
1064   "rw_variable", "variable", "variable_properties", "variable_property",
1065   "array_method_dereference", "method", "method_or_not",
1066   "variable_without_objects", "static_member", "variable_class_name",
1067   "array_function_dereference", "base_variable_with_function_calls",
1068   "base_variable", "reference_variable", "compound_variable", "dim_offset",
1069   "object_property", "object_dim_list", "variable_name",
1070   "simple_indirect_reference", "assignment_list",
1071   "assignment_list_element", "array_pair_list",
1072   "non_empty_array_pair_list", "internal_functions_in_yacc",
1073   "isset_variables", "parenthesis_expr", "combined_scalar_offset",
1074   "combined_scalar", "new_expr", "class_constant", 0
1075 };
1076 #endif
1077 
1078 # ifdef YYPRINT
1079 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1080    token YYLEX-NUM.  */
1081 static const yytype_uint16 yytoknum[] =
1082 {
1083        0,   256,   257,   258,   259,   260,   261,   262,    44,   263,
1084      264,   265,   266,    61,   267,   268,   269,   270,   271,   272,
1085      273,   274,   275,   276,   277,    63,    58,   278,   279,   280,
1086      124,    94,    38,   281,   282,   283,   284,   285,    60,    62,
1087      286,   287,   288,   289,    43,    45,    46,    42,    47,    37,
1088       33,   290,   126,    64,   291,   292,   293,   294,   295,   296,
1089      297,   298,   299,   300,   301,    91,   302,   303,   304,   305,
1090      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1091      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1092      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1093      336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
1094      346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
1095      356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1096      366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
1097      376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1098      386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
1099      396,    40,    41,    59,   123,   125,    36,    93
1100 };
1101 # endif
1102 
1103 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1104 static const yytype_uint16 yyr1[] =
1105 {
1106        0,   168,   169,   170,   170,   171,   171,   172,   172,   172,
1107      172,   172,   172,   172,   172,   172,   173,   173,   174,   174,
1108      174,   174,   175,   175,   176,   176,   177,   177,   177,   177,
1109      178,   178,   178,   178,   178,   179,   179,   179,   179,   179,
1110      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
1111      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
1112      179,   179,   179,   179,   180,   180,   181,   182,   182,   183,
1113      184,   184,   185,   186,   187,   188,   188,   189,   190,   190,
1114      191,   191,   191,   191,   192,   192,   193,   194,   194,   195,
1115      195,   196,   196,   197,   197,   198,   198,   199,   199,   200,
1116      200,   201,   201,   202,   202,   203,   203,   203,   203,   204,
1117      204,   204,   205,   205,   206,   206,   207,   207,   208,   208,
1118      209,   209,   210,   210,   211,   211,   212,   212,   212,   212,
1119      212,   212,   212,   212,   213,   213,   214,   214,   214,   215,
1120      215,   215,   216,   216,   217,   217,   218,   218,   219,   219,
1121      219,   220,   220,   221,   221,   221,   222,   222,   222,   222,
1122      223,   223,   224,   224,   224,   225,   224,   226,   227,   227,
1123      228,   228,   229,   229,   230,   230,   231,   231,   232,   233,
1124      233,   234,   234,   235,   236,   236,   237,   237,   238,   238,
1125      239,   239,   240,   240,   241,   241,   242,   243,   243,   243,
1126      243,   243,   243,   244,   244,   244,   244,   245,   245,   246,
1127      246,   247,   247,   248,   248,   249,   249,   249,   249,   249,
1128      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
1129      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
1130      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
1131      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
1132      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
1133      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
1134      249,   249,   249,   249,   249,   249,   249,   249,   250,   250,
1135      250,   250,   251,   252,   252,   253,   253,   253,   253,   254,
1136      254,   254,   254,   254,   254,   254,   254,   255,   255,   255,
1137      255,   256,   256,   256,   257,   257,   258,   258,   259,   259,
1138      260,   261,   261,   261,   262,   262,   263,   263,   263,   263,
1139      263,   263,   263,   263,   263,   263,   263,   263,   264,   264,
1140      264,   264,   264,   264,   264,   264,   264,   265,   266,   266,
1141      266,   266,   266,   266,   267,   267,   268,   268,   269,   269,
1142      269,   269,   270,   270,   271,   272,   273,   274,   274,   275,
1143      275,   276,   277,   277,   278,   279,   279,   279,   280,   280,
1144      281,   281,   282,   283,   283,   284,   284,   284,   285,   285,
1145      285,   285,   286,   286,   286,   287,   287,   288,   288,   289,
1146      289,   290,   290,   290,   291,   291,   292,   292,   293,   293,
1147      294,   294,   294,   295,   295,   296,   296,   296,   296,   296,
1148      296,   296,   296,   297,   297,   297,   297,   297,   297,   297,
1149      298,   298,   299,   299,   300,   300,   300,   300,   300,   301,
1150      301,   302,   302,   303,   303
1151 };
1152 
1153 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1154 static const yytype_uint8 yyr2[] =
1155 {
1156        0,     2,     1,     2,     0,     1,     3,     1,     1,     1,
1157        4,     3,     5,     4,     3,     2,     3,     1,     1,     3,
1158        2,     4,     5,     4,     2,     0,     1,     1,     1,     4,
1159        1,     2,     1,     1,     1,     3,     7,    10,     5,     7,
1160        9,     5,     2,     3,     2,     3,     2,     3,     3,     3,
1161        3,     3,     1,     2,     2,     5,     8,     8,     5,     1,
1162        6,     5,     3,     3,     2,     1,     8,     0,     1,     4,
1163        1,     3,     1,     1,     1,     0,     1,    10,     7,     6,
1164        1,     2,     2,     1,     0,     2,     1,     0,     2,     0,
1165        2,     1,     3,     0,     2,     1,     2,     1,     4,     1,
1166        4,     1,     4,     3,     5,     3,     4,     4,     5,     0,
1167        5,     4,     1,     1,     1,     4,     0,     6,     0,     7,
1168        0,     2,     0,     3,     1,     0,     2,     3,     5,     4,
1169        4,     5,     7,     6,     2,     1,     0,     1,     2,     1,
1170        1,     1,     0,     2,     1,     0,     1,     3,     1,     2,
1171        2,     3,     1,     1,     2,     4,     3,     5,     1,     3,
1172        2,     0,     3,     2,     1,     0,    10,     3,     1,     3,
1173        1,     3,     0,     1,     1,     2,     2,     2,     3,     1,
1174        3,     1,     1,     3,     4,     3,     0,     1,     1,     3,
1175        1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
1176        1,     1,     1,     3,     5,     1,     3,     5,     4,     3,
1177        1,     0,     1,     3,     1,     6,     3,     4,     6,     2,
1178        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1179        3,     2,     2,     2,     2,     3,     3,     3,     3,     3,
1180        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1181        3,     2,     2,     2,     2,     3,     3,     3,     3,     3,
1182        3,     3,     3,     3,     3,     1,     1,     5,     4,     3,
1183        1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1184        1,     1,     1,     1,     2,     1,    10,    11,     2,     2,
1185        4,     4,     1,     0,     4,     3,     4,     1,     2,     4,
1186        6,     5,     6,     6,     6,     6,     4,     1,     1,     3,
1187        2,     1,     3,     2,     1,     1,     4,     1,     2,     0,
1188        2,     0,     2,     3,     0,     3,     1,     1,     1,     1,
1189        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1190        3,     2,     2,     2,     4,     3,     1,     3,     1,     1,
1191        1,     3,     2,     1,     0,     2,     0,     1,     5,     3,
1192        3,     1,     1,     1,     1,     1,     1,     5,     1,     2,
1193        0,     3,     4,     4,     3,     1,     1,     0,     1,     2,
1194        3,     3,     1,     4,     4,     1,     1,     1,     1,     3,
1195        2,     1,     4,     4,     1,     1,     4,     0,     1,     1,
1196        1,     4,     4,     1,     1,     3,     1,     2,     3,     1,
1197        1,     4,     0,     0,     2,     5,     3,     3,     1,     6,
1198        4,     4,     2,     4,     4,     2,     2,     4,     2,     2,
1199        1,     3,     3,     3,     4,     4,     4,     4,     4,     4,
1200        3,     3,     8,     3,     3
1201 };
1202 
1203 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1204    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1205    means the default is an error.  */
1206 static const yytype_uint16 yydefact[] =
1207 {
1208        4,     0,     2,     1,     0,     0,     0,     0,     0,     0,
1209        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1210        0,     0,     0,     0,   413,     0,     0,   321,     0,   326,
1211      327,     5,   348,   395,    52,   328,   280,     0,     0,     0,
1212        0,     0,     0,     0,     0,     0,     0,   292,     0,     0,
1213        0,     0,     0,     0,     0,     0,   307,     0,     0,     0,
1214        0,    80,    86,     0,     0,   332,   333,   335,   329,   330,
1215       32,    33,    34,   337,     0,   336,   331,     0,    83,   334,
1216      285,     0,    59,    25,   406,   350,     3,     0,     7,    30,
1217        8,     9,    73,    74,     0,     0,   363,     0,    75,   387,
1218        0,   353,   281,     0,   362,     0,   364,     0,   391,     0,
1219      386,   368,   385,   388,   394,     0,   270,   265,   282,   283,
1220      266,   349,     5,   307,     0,   285,    75,   429,   428,     0,
1221      426,   425,   284,   251,   252,   253,   254,   279,   277,   276,
1222      275,   274,   273,   272,   271,     5,   307,     0,     0,     0,
1223      308,     0,   234,   366,     0,   232,     0,   418,     0,   356,
1224      219,   324,     0,     0,   308,   314,   324,   315,     0,   317,
1225      388,     0,     0,   278,     0,    31,   397,   397,     0,   210,
1226        0,     0,   211,     0,     0,     0,    42,     0,    44,     0,
1227        0,     0,    46,   363,     0,   364,    25,     0,     0,    18,
1228        0,    17,   153,     0,     0,   152,    82,    81,   158,     0,
1229       75,     0,     0,     0,     0,   412,   413,     0,     4,     0,
1230      352,   363,     0,   364,     0,     0,   266,     0,     0,     0,
1231      145,     0,    15,    84,    87,    54,    76,     0,   397,     0,
1232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1233        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1234        0,     0,     0,     0,     0,     0,     0,     0,    53,   233,
1235      231,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1236        0,     0,     0,   145,     0,   397,     0,   397,     0,   407,
1237      390,   397,   397,   397,     0,     0,     0,   310,     0,     0,
1238        0,   422,   365,     0,   440,   357,   414,   145,    84,     0,
1239      310,     0,   441,     0,     0,   390,   322,     0,     0,   398,
1240        0,     0,     0,    51,     0,     0,     0,   212,   214,   363,
1241      364,     0,     0,     0,    43,    45,    63,     0,    47,    48,
1242        0,    62,    20,     0,     0,    14,     0,   154,   364,     0,
1243       49,     0,     0,    50,     0,     0,    70,    72,   430,     0,
1244        0,     0,     0,   410,     0,   409,     0,   351,     0,    11,
1245        4,   145,     0,   433,   432,   389,     0,    35,    24,    26,
1246       27,    28,     0,     6,     0,     0,     0,   144,   146,   148,
1247        0,     0,    89,     0,     0,     0,   136,     0,   443,   380,
1248      378,     0,   237,   239,   238,     0,     0,   269,   235,   236,
1249      240,   242,   241,   263,   256,   255,   258,   257,   259,   261,
1250      262,   260,   250,   249,   244,   245,   243,   246,   247,   248,
1251      264,     0,   216,   230,   229,   228,   227,   226,   225,   224,
1252      223,   222,   221,   220,     0,   444,   381,     0,   404,     0,
1253      400,   377,   399,   403,     0,     0,     0,     0,     0,   427,
1254      309,     0,     0,     0,   417,     0,   416,     0,    89,   309,
1255      380,   381,   319,   323,     0,   438,   436,   209,     0,     0,
1256      211,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1257      354,   328,     0,     0,     0,   339,     0,   338,    23,   346,
1258        0,     0,    19,    16,     0,   151,   159,   156,   136,     0,
1259        0,     0,   423,   424,    10,   412,   412,     0,   439,   145,
1260       13,     0,     0,   363,   364,     0,   396,   150,   149,   299,
1261        0,     0,     0,     0,   311,    85,     0,     0,    88,    91,
1262      161,   136,     0,   140,   141,     0,   124,     0,   137,   139,
1263      384,   145,   145,   379,   268,     0,     0,   217,   306,   145,
1264      145,   383,     0,   145,   376,   375,   370,   397,     0,   392,
1265      393,   435,   434,   437,   421,   420,     0,   325,     0,   316,
1266       25,   116,     0,    25,   114,    38,     0,   213,    93,     0,
1267       93,    95,   103,     0,    25,   101,    58,   109,   109,    41,
1268      342,   343,   361,     0,   356,   354,     0,   341,     0,     0,
1269        0,    67,    65,    61,    21,   155,     0,     0,    71,    55,
1270      431,     0,   408,     0,     0,    12,   301,     0,   147,    22,
1271        0,   313,    90,   161,     0,   192,     0,   138,   293,   136,
1272        0,   135,     0,   126,     0,     0,   267,   324,     0,     0,
1273      405,     0,   397,   397,   367,     0,     0,     0,   415,   161,
1274        0,   318,   118,   120,     0,     0,   211,     0,     0,    96,
1275        0,     0,     0,   109,     0,   109,     0,     0,   345,   357,
1276      355,     0,   340,   347,     0,    25,    64,    60,    68,   157,
1277      293,   411,   215,   300,    29,   312,   192,    92,     0,     0,
1278      197,   198,   199,   202,   201,   200,   191,    79,   160,   164,
1279        0,     0,   190,   194,   196,     0,   142,     0,   142,     0,
1280      127,   134,     0,   302,   305,   218,   303,   304,   374,     0,
1281        0,     0,   369,   401,   402,   419,   192,   320,   122,     0,
1282        0,    36,    39,     0,     0,    94,     0,     0,   104,     0,
1283        0,     0,     0,     0,     0,   105,   360,   359,   344,     0,
1284        0,   142,    78,     0,     0,   168,   205,     0,   165,   195,
1285        0,   163,   136,     0,     0,     0,     0,   130,     0,   129,
1286      372,   373,   377,   442,     0,     0,     0,     0,   121,   115,
1287        0,    25,    99,    57,    56,   102,     0,   107,     0,   112,
1288      113,    25,   106,     0,     0,    69,     0,     0,     0,   170,
1289      172,   167,     0,     0,   162,    75,     0,   143,    25,     0,
1290      297,     0,    25,   131,     0,   128,   371,     0,    25,     0,
1291        0,    25,    97,    40,     0,   108,    25,   111,   358,     0,
1292       25,   208,   169,     5,     0,   173,   174,     0,     0,   182,
1293        0,     0,   206,   203,     0,     0,     0,   298,     0,   294,
1294        0,     0,   133,     0,   123,    37,     0,     0,     0,   110,
1295       25,     0,   171,   175,   176,   186,     0,   177,     0,     0,
1296        0,   207,    77,     0,   295,   286,   132,     0,   117,     0,
1297      100,     0,   287,     0,   185,   178,   179,   183,   204,   136,
1298      296,    25,    98,    66,   184,     0,     0,   119,   180,   142,
1299        0,   188,    25,   166,     0,   189
1300 };
1301 
1302 /* YYDEFGOTO[NTERM-NUM].  */
1303 static const yytype_int16 yydefgoto[] =
1304 {
1305       -1,     1,     2,    85,    86,   200,   201,    87,   227,   378,
1306      379,    89,   611,   612,   687,   613,   355,   356,   380,   381,
1307      237,    92,    93,    94,   392,    95,   394,   537,   538,   668,
1308      590,   833,   793,   596,   332,   599,   674,   801,   585,   663,
1309      738,   741,   786,   545,   546,   643,   547,   548,   773,   386,
1310      387,   388,   204,   205,   209,   635,   708,   815,   709,   764,
1311      811,   844,   845,   846,   847,   895,   848,   849,   850,   893,
1312      913,   710,   711,   712,   713,   714,   767,   715,   178,   326,
1313      327,    96,    97,   126,   718,   821,    99,   100,   549,   166,
1314      167,   579,   661,   173,   308,   101,   602,   499,   102,   603,
1315      306,   604,   103,   104,   301,   105,   106,   654,   732,   564,
1316      565,   566,   107,   108,   109,   110,   111,   112,   113,   114,
1317      320,   451,   452,   453,   115,   364,   365,   158,   159,   116,
1318      359,   117,   118,   119,   120,   121
1319 };
1320 
1321 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1322    STATE-NUM.  */
1323 #define YYPACT_NINF -705
1324 static const yytype_int16 yypact[] =
1325 {
1326     -705,   103,  1748,  -705,  6051,  6051,  -101,  6051,  6051,  6051,
1327     6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,
1328     6051,  6051,   521,   521,  4721,  6051,   467,   -67,   -55,  -705,
1329     -705,    57,  -705,  -705,  -705,    72,  -705,  6051,  4446,   -21,
1330       -4,    84,   109,   123,  4854,  4987,   146,  -705,   215,  5120,
1331      129,  6051,    81,   -19,   180,   197,    20,   171,   189,   191,
1332      194,  -705,  -705,   196,   201,  -705,  -705,  -705,  -705,  -705,
1333     -705,  -705,  -705,  -705,   -14,  -705,  -705,   240,  -705,  -705,
1334     6051,  6184,  -705,  -705,   166,   -42,  -705,    16,  -705,  -705,
1335     -705,  -705,  -705,  -705,   262,   293,  -705,    31,   345,   314,
1336      235,  -705,  -705,  6556,  -705,   193,  1380,   231,  -705,   254,
1337      344,   288,  -705,    67,  -705,     7,  -705,  -705,   352,   354,
1338     -705,   355,   356,   321,   272,  -705,   345,  7357,  7357,  6051,
1339     7357,  7357,  1592,  -705,  -705,   379,  -705,  -705,  -705,  -705,
1340     -705,  -705,  -705,  -705,  -705,  -705,  -705,   279,   240,   366,
1341      -57,   289,  -705,  -705,   290,  -705,   521,  7152,   268,   430,
1342     -705,   280,   291,   240,   298,   296,   280,  -705,   306,   330,
1343      -40,     7,  5253,  -705,  6051,  -705,  6051,  6051,    21,  7357,
1344      353,  6051,  6051,  6051,   388,  6051,  -705,  6607,  -705,  6650,
1345      302,   453,  -705,   307,  7357,   543,  -705,  6693,   240,    -7,
1346       23,  -705,  -705,   281,    26,  -705,  -705,  -705,   458,    27,
1347      345,   521,   521,   521,   310,   668,  4721,   240,  -705,   115,
1348       94,   162,  7195,    53,   315,  6744,   318,  1890,  6051,   401,
1349     4588,   406,  -705,   358,   361,  -705,  -705,   -31,  6051,    38,
1350     6051,  6051,  6051,  5386,  6051,  6051,  6051,  6051,  6051,  6051,
1351     6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,
1352     6051,  6051,  6051,  6051,  6051,  6051,  6051,   573,  -705,  -705,
1353     -705,  5519,  6051,  6051,  6051,  6051,  6051,  6051,  6051,  6051,
1354     6051,  6051,  6051,  4588,   147,  6051,   167,  6051,  6051,   166,
1355      -12,  6051,  6051,  6051,   325,  6787,   240,   -52,   318,   174,
1356      183,  -705,  -705,  5652,  -705,  5785,  -705,  4588,   358,   240,
1357      298,    10,  -705,    10,   167,   -35,  -705,  6830,  6880,  7357,
1358      324,   332,  6051,  -705,   327,  6923,   339,   484,  7357,   410,
1359     1287,   496,    25,  6966,  -705,  -705,  -705,  1026,  -705,  -705,
1360     2032,  -705,     0,   436,    81,  -705,  6051,  -705,  -705,   -19,
1361     -705,  1026,   438,  -705,   359,    33,  -705,  -705,  -705,    37,
1362      360,   365,   368,  -705,    41,  -705,   369,   119,  1442,  -705,
1363     -705,  4588,  6051,  -705,  -705,  -705,   373,  -705,  -705,  -705,
1364     -705,  -705,  1222,  -705,   521,  6051,   375,   509,  -705,  7357,
1365      517,    70,   413,    70,   387,   393,   192,   408,   415,   416,
1366      -35,     7,  7399,  7438,  1592,  6051,  7299,  7463,  7486,  7508,
1367     7529,  4641,  1740,  1882,  1882,  1882,  1882,  1882,   928,   928,
1368      928,   928,   501,   501,   316,   316,   316,   379,   379,   379,
1369     -705,   173,  1592,  1592,  1592,  1592,  1592,  1592,  1592,  1592,
1370     1592,  1592,  1592,  1592,   417,   420,   423,   418,  -705,  6051,
1371     -705,   425,   -33,  -705,   421,  6329,   426,   427,   428,  -705,
1372       77,   415,   420,   521,  7357,   521,  7256,   435,   413,   298,
1373     -705,  -705,  -705,  -705,  3736,  -705,  -705,  7357,  6051,  3878,
1374     6051,  6051,   521,   237,  1026,   525,  4020,    13,  1026,  1026,
1375     1026,  -705,   431,   449,   240,    66,   456,  -705,  -705,  -705,
1376       -8,   530,  -705,  -705,  6372,  -705,  -705,   595,   192,   521,
1377      446,   521,  -705,  -705,  -705,   668,   668,   597,  -705,  4588,
1378     -705,  1606,   450,   232,   148,   459,  -705,  -705,  7357,  -705,
1379     4588,  1026,   465,   240,   298,  -705,    70,   447,   615,  -705,
1380     -705,   192,   273,  -705,  -705,   460,   617,    48,  -705,  -705,
1381     -705,  4588,  4588,   -35,  7463,  6051,   573,  -705,  -705,  4588,
1382     4588,  -705,  6415,  4588,   561,   562,  -705,  6051,  6051,  -705,
1383     -705,  -705,  -705,  -705,  -705,  -705,  5918,  -705,   468,   508,
1384     -705,  -705,  7016,  -705,  -705,  -705,   475,  7357,   512,   521,
1385      512,  -705,  -705,   630,  -705,  -705,  -705,   482,   483,  -705,
1386     -705,  -705,   524,   488,   649,  1026,   240,   130,   583,   498,
1387      497,    -8,  -705,  -705,  -705,  -705,  1026,   503,  -705,  -705,
1388     -705,    44,  -705,  6051,   504,  -705,  -705,   505,  -705,  -705,
1389      240,   298,   615,  -705,    70,   815,   510,  -705,   558,   260,
1390       14,  -705,   596,   662,   514,   515,  7463,   280,   516,   518,
1391     -705,   523,  6051,  6051,   553,   519,  6468,   521,  7357,  -705,
1392      167,  -705,  3594,   329,   529,  2174,  6051,   237,   526,  -705,
1393      531,  1026,  2316,  -705,   198,  -705,   163,  1026,  -705,  1026,
1394     -705,   532,   135,  -705,    70,  -705,  -705,  -705,  -705,  -705,
1395      558,  -705,  1592,  -705,  -705,   298,   947,  -705,   621,    70,
1396     -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1397      620,   321,   346,  -705,  -705,    28,   672,   538,   672,    50,
1398      687,  -705,  1026,  -705,  -705,  -705,  -705,  -705,  -705,   535,
1399      537,   167,  -705,  -705,  -705,  -705,  1015,  -705,   334,   544,
1400     4446,  -705,  -705,   545,   548,  -705,  4162,  4162,  -705,   550,
1401      287,   554,  6051,    55,   176,  -705,  -705,   589,  -705,   642,
1402     2458,   672,  -705,   708,    18,  -705,   709,    30,  -705,  -705,
1403      652,  -705,   260,   560,    82,   564,    14,   716,  1026,  -705,
1404     -705,  -705,   425,  -705,   569,   705,   663,  6051,  -705,  -705,
1405     4304,  -705,  -705,  -705,  -705,  -705,   574,  -705,  6513,  -705,
1406     -705,  -705,  -705,  1026,   576,  -705,   572,  1026,    70,  -705,
1407      154,  -705,  1026,   664,  -705,   345,   727,  -705,  -705,   665,
1408     -705,    47,  -705,   734,  1026,  -705,  -705,  6051,  -705,   585,
1409     7059,  -705,  -705,  -705,  2600,  -705,  -705,  3594,  -705,   588,
1410     -705,  -705,  -705,   654,   590,   154,  -705,   591,   658,   602,
1411      598,   613,  -705,   749,   690,  1026,  2742,  -705,   169,  -705,
1412     2884,  1026,  -705,  7102,  3594,  -705,  4446,  3026,   601,  3594,
1413     -705,  3168,  -705,  -705,  -705,   457,    70,  -705,   693,  1026,
1414      624,  -705,  -705,   712,  -705,  -705,  -705,   772,  -705,   637,
1415     -705,  3310,  -705,   726,   728,   796,  -705,  -705,  -705,   192,
1416     -705,  -705,  -705,  -705,  -705,    70,   643,  3594,  -705,   672,
1417       69,  -705,  -705,  -705,  3452,  -705
1418 };
1419 
1420 /* YYPGOTO[NTERM-NUM].  */
1421 static const yytype_int16 yypgoto[] =
1422 {
1423     -705,  -705,  -195,   -15,  -705,  -705,   464,  -705,  -187,  -705,
1424        4,  -705,  -705,   199,  -705,   203,  -705,   303,     2,    15,
1425     -125,  -705,  -705,  -705,   507,  -705,  -705,   348,   283,   227,
1426      153,  -705,    75,  -705,  -705,  -705,  -555,    35,  -705,  -705,
1427     -705,  -705,  -705,  -493,  -705,  -584,  -612,   282,  -704,  -243,
1428     -705,   295,  -705,   474,  -705,  -525,  -705,  -705,  -705,  -705,
1429     -705,  -705,  -705,   -17,  -705,  -705,  -705,  -705,  -705,  -705,
1430     -705,  -705,  -705,  -705,  -690,  -705,  -705,  -705,  -705,  -459,
1431     -705,   -29,   745,    -2,   149,  -705,  -705,    24,  -381,  -251,
1432     -705,  -705,  -705,  -705,  -163,  -225,   614,  -705,  -705,   233,
1433      243,  -705,   762,   634,  -365,   389,   710,  -705,  -705,  -705,
1434     -705,    59,  -221,  -705,   689,  -705,  -705,   -24,   -13,  -705,
1435     -149,  -309,  -705,  -705,    60,   335,   328,   633,  -705,  -705,
1436     -705,  -705,  -705,  -705,    29,  -705
1437 };
1438 
1439 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1440    positive, shift that token.  If negative, reduce the rule which
1441    number is the opposite.  If zero, do what YYDEFACT says.
1442    If YYTABLE_NINF, syntax error.  */
1443 #define YYTABLE_NINF -383
1444 static const yytype_int16 yytable[] =
1445 {
1446       98,   294,   169,   312,    90,   472,    88,   150,   150,   340,
1447      535,   164,   539,   170,   775,   617,   430,    91,   399,   527,
1448      193,   586,   769,   368,   231,   287,   808,   719,   321,   322,
1449      287,   344,   567,   485,   349,   352,   770,   199,   813,   597,
1450      444,   509,   180,   676,   395,   511,   151,   151,   636,   516,
1451      165,   221,   516,   287,   210,   858,   720,   806,   202,   219,
1452      129,   145,   220,   446,   467,   450,   271,   272,   273,   274,
1453      275,   276,   277,   278,   279,   280,   281,   282,   399,   446,
1454      640,   799,   776,   175,    33,   354,   171,    33,   343,   397,
1455      470,   641,   471,   450,   172,   501,   229,   208,   574,   609,
1456      575,   229,   290,     3,   230,  -308,   174,  -382,   696,   371,
1457      226,   229,   497,   398,   819,    33,  -366,  -366,   750,   230,
1458      754,   210,   176,    47,   288,   641,   497,   641,   522,   288,
1459      396,   568,   287,   297,   736,   777,   447,   177,   454,   217,
1460      181,   150,   456,   457,   458,   145,   229,   203,   310,  -379,
1461      218,   610,   288,   229,   329,   539,   145,   182,   315,   820,
1462      817,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1463      280,   281,   282,   289,   642,   521,    84,   598,   298,   232,
1464      151,   809,   810,   342,   323,   894,   345,   486,   150,   350,
1465      353,   771,   823,   814,   235,   510,   150,   150,   150,   512,
1466      150,   883,   367,   517,    84,   910,   691,   744,   642,   859,
1467      642,  -366,  -366,  -308,  -382,  -289,  -289,   542,   800,   229,
1468      532,   190,   445,   533,    33,    98,   400,   151,  -378,   843,
1469      229,   288,   911,   912,   198,   151,   151,   151,   519,   151,
1470      556,  -310,   448,   169,    33,   183,   884,   229,   145,   461,
1471       33,    33,   164,   697,   170,   371,   269,   270,   462,   497,
1472       33,   752,   753,   497,   497,   497,  -309,   145,   229,   589,
1473      184,   400,   229,   400,   752,   753,   624,  -310,   369,   370,
1474      519,   460,  -309,   229,   185,   542,   400,   400,   229,   146,
1475      191,   165,   735,   196,   469,   751,   752,   753,   400,   401,
1476      400,   400,   206,   759,   532,   647,   497,   533,   644,   645,
1477     -291,  -291,   145,    84,    33,   145,   648,   649,   765,   207,
1478      651,   543,   495,   147,  -288,  -288,   148,   171,   755,   199,
1479      228,   449,   211,    84,   149,   145,   495,   233,    98,    84,
1480       84,   802,   532,   523,   401,   533,   401,   544,   145,    84,
1481      212,   737,   213,   146,  -125,   214,   145,   215,    33,   401,
1482      401,   496,   216,   264,   265,   266,    98,   267,   234,   150,
1483       90,   401,    88,   401,   401,   496,   534,   236,   534,   238,
1484      497,   534,   239,    91,   796,   752,   753,   147,   553,   543,
1485      148,   497,   283,   662,  -290,  -290,   665,   146,   149,   739,
1486      740,   284,   543,    84,   784,   785,   906,   672,   151,   285,
1487      532,   152,   155,   533,   286,   544,   150,   291,   655,   292,
1488      293,   176,   782,   532,    47,   217,   533,   842,   544,   851,
1489      267,   147,   296,    26,   148,   304,   299,   300,   305,   450,
1490      324,   307,   149,   311,   309,   346,   497,    84,   150,  -193,
1491      150,   229,   497,   313,   497,   151,   314,   700,   701,   702,
1492      703,   704,   705,   331,   851,   336,   337,   150,   150,   495,
1493      338,   351,   361,   495,   495,   495,   383,   373,   581,   607,
1494      375,   390,   391,   584,   725,   393,   396,   151,   478,   151,
1495      595,   475,   481,   534,   150,   896,   150,   497,   760,   476,
1496      150,   150,   480,   729,   730,   482,   151,   151,   496,   484,
1497      450,   502,   496,   496,   496,   507,   495,   530,   631,    98,
1498      508,   534,   513,    90,   908,    88,   534,   534,   514,   515,
1499      531,   518,   169,   151,   525,   151,    91,   529,   536,   151,
1500      151,   164,   145,   170,    33,   261,   262,   263,   264,   265,
1501      266,   540,   267,   497,   541,   496,   271,   272,   273,   274,
1502      275,   276,   277,   278,   279,   280,   281,   282,   700,   701,
1503      702,   703,   704,   705,   150,   550,   551,   552,   497,   558,
1504      165,   559,   497,   146,   560,   561,   563,   497,   569,   161,
1505      495,   682,   605,   571,   572,   573,   145,   577,    33,   497,
1506      593,   495,   606,   608,   834,   614,  -366,  -366,   616,   619,
1507      623,   633,   626,   151,   837,   695,   171,   162,   630,   534,
1508      163,   627,   638,   634,   534,   639,   652,   653,   149,   496,
1509      497,   856,   659,    84,   660,   860,   497,   146,   666,   667,
1510      496,   864,   150,   671,   867,   673,   675,   400,   145,   869,
1511       33,   677,   150,   871,   497,   678,   495,   679,   683,   684,
1512       98,   685,   495,    98,   495,   690,   693,   717,   694,   534,
1513       98,   147,   716,   721,   148,   722,   723,   724,   726,   731,
1514      727,   151,   149,   891,   534,   728,   733,    84,   746,   146,
1515      854,   151,   742,   747,   758,   496,   763,   766,   772,   774,
1516      778,   496,   780,   496,   781,   787,   339,   495,   789,   768,
1517      790,   154,   154,   795,   907,   168,   803,   797,   400,   804,
1518      401,   807,   812,   162,   818,   914,   163,   816,   822,   824,
1519      827,   828,   153,   153,   149,   829,   840,   835,   839,    84,
1520      855,   853,   857,   145,   788,    33,   496,   861,   865,  -181,
1521      792,   792,   870,   875,   874,   872,   876,   534,    98,   195,
1522      878,   877,   879,   495,   890,   880,   127,   128,   897,   130,
1523      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1524      141,   142,   143,   144,   146,   899,   157,   160,   495,   900,
1525      223,   401,   495,   534,   832,   534,   362,   495,   901,   179,
1526      902,   904,   496,  -187,   905,   909,   187,   189,   503,   495,
1527      686,   194,   618,   197,   688,   468,   578,   670,   147,   632,
1528      745,   148,   794,   505,   637,   628,   224,   496,   873,   149,
1529      534,   496,    98,   836,    84,    98,   496,   347,   681,   761,
1530      495,   826,   222,   225,   622,   154,   495,   680,   496,   366,
1531      621,     0,     0,     0,    98,     0,     0,     0,    98,     0,
1532        0,   534,    98,     0,   495,    98,   302,    98,     0,    98,
1533      888,     0,     0,     0,     0,     0,     0,     0,     0,   496,
1534        0,     0,     0,     0,   534,   496,     0,     0,     0,    98,
1535      534,   295,   154,   330,     0,     0,     0,     0,     0,     0,
1536      154,   154,   154,   496,   154,    98,     0,     0,     0,     0,
1537        0,     0,    98,   348,     0,     0,     0,     0,     0,   698,
1538        0,   357,   358,   360,   699,   363,   700,   701,   702,   703,
1539      704,   705,   706,     0,   317,     0,   318,     0,   319,   319,
1540        0,     0,     0,   325,   328,   194,     0,   333,     0,     0,
1541        0,   498,     0,     0,     0,     0,   168,     0,     0,     0,
1542        0,     0,     0,     0,     0,   506,  -383,  -383,  -383,  -383,
1543      259,   260,   261,   262,   263,   264,   265,   266,   157,   267,
1544      707,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1545      382,     0,   389,     0,     0,     0,     0,     0,     0,     0,
1546      319,     0,   402,   403,   404,   406,   407,   408,   409,   410,
1547      411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
1548      421,   422,   423,   424,   425,   426,   427,   428,   429,     0,
1549        0,     0,     0,   432,   433,   434,   435,   436,   437,   438,
1550      439,   440,   441,   442,   443,   389,     0,   319,     0,   319,
1551      455,   698,     0,   319,   319,   319,   699,     0,   700,   701,
1552      702,   703,   704,   705,   706,   464,     0,   466,     0,   389,
1553      488,   489,     0,   154,     0,     0,     0,     0,     0,     0,
1554        0,     0,   524,     0,   477,     0,     0,     0,     0,     0,
1555        0,   490,     0,     0,   302,     0,     0,     0,   592,    29,
1556       30,   145,   600,   601,     0,     0,     0,     0,   504,   491,
1557        0,     0,   762,     0,     0,     0,     0,     0,     0,   698,
1558      154,     0,     0,     0,   699,     0,   700,   701,   702,   703,
1559      704,   705,   706,   389,   194,     0,     0,     0,     0,     0,
1560        0,   557,   146,     0,     0,   629,     0,   528,     0,     0,
1561        0,     0,   154,     0,   154,   492,    65,    66,    67,    68,
1562       69,     0,     0,     0,     0,     0,     0,   554,     0,     0,
1563       73,   154,   154,   302,     0,   302,   493,    75,    76,   494,
1564      783,     0,     0,    79,     0,     0,     0,     0,     0,     0,
1565        0,     0,   588,   591,     0,     0,     0,     0,   154,     0,
1566      154,     0,     0,     0,   154,   154,     0,     0,     0,     0,
1567        0,   562,     0,     0,     0,     0,     0,     0,     0,   357,
1568        0,   620,     0,     0,     0,   363,   363,     0,     0,     0,
1569      689,   240,   241,   242,     0,     0,     0,     0,     0,     0,
1570      582,     0,   328,   587,     0,   168,     0,   243,     0,   244,
1571      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1572      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1573      265,   266,     0,   267,     0,     0,     0,     0,   154,     0,
1574        0,   389,     0,     0,     0,   748,     0,     0,     0,     0,
1575        0,   756,   389,   757,     0,     0,     0,     0,     0,   669,
1576      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1577      281,   282,     0,   389,   389,     0,     0,   646,     0,     0,
1578        0,   389,   389,     0,     0,   389,     0,     0,     0,   319,
1579      656,     0,     0,     0,     0,     0,   779,     0,   658,     0,
1580        0,     0,     0,     0,     0,     0,   154,     0,     0,     0,
1581     -366,  -366,     0,     0,     0,     0,   154,     0,     0,     0,
1582        0,     0,     0,     0,     0,     0,     0,   302,     0,     0,
1583        0,     0,     0,     0,     0,     0,     0,   591,     0,     0,
1584        0,     0,   483,     0,     0,   692,     0,   526,     0,     0,
1585        0,     0,   825,   271,   272,   273,   274,   275,   276,   277,
1586      278,   279,   280,   281,   282,     0,     0,     0,     0,     0,
1587        0,     0,     0,     0,   319,   319,     0,   838,     0,     0,
1588        0,   841,     0,     0,     0,     0,   852,     0,   328,     0,
1589        0,     0,     0,     0,     0,     0,     0,     0,   862,     0,
1590        0,     0,     0,  -366,  -366,     4,     5,     6,     7,     8,
1591        0,     0,     0,     0,     9,     0,     0,     0,     0,     0,
1592        0,     0,     0,     0,     0,     0,     0,     0,     0,   881,
1593        0,     0,     0,     0,     0,   886,     0,     0,     0,     0,
1594        0,     0,     0,     0,     0,     0,    10,    11,     0,     0,
1595        0,     0,    12,   898,    13,    14,    15,    16,    17,    18,
1596        0,     0,    19,    20,    21,    22,    23,    24,    25,    26,
1597       27,    28,     0,     0,   798,    29,    30,    31,    32,    33,
1598        0,    34,     0,     0,     0,    35,    36,    37,    38,    39,
1599        0,    40,     0,    41,     0,    42,     0,     0,    43,     0,
1600        0,     0,    44,    45,    46,    47,    48,    49,    50,   830,
1601       51,    52,    53,     0,     0,     0,    54,    55,    56,     0,
1602       57,    58,    59,    60,    61,    62,     0,     0,     0,     0,
1603       63,    64,    65,    66,    67,    68,    69,     0,     0,    70,
1604       71,     0,    72,     0,     0,     0,    73,     0,     0,   863,
1605        0,     0,    74,    75,    76,    77,     0,     0,    78,    79,
1606       80,     0,     0,    81,     0,    82,    83,   520,    84,     4,
1607        5,     6,     7,     8,     0,     0,     0,   243,     9,   244,
1608      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1609      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1610      265,   266,     0,   267,     0,     0,     0,     0,     0,     0,
1611       10,    11,     0,     0,     0,     0,    12,     0,    13,    14,
1612       15,    16,    17,    18,     0,     0,    19,    20,    21,    22,
1613       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1614       30,    31,    32,    33,     0,    34,     0,     0,     0,    35,
1615       36,    37,    38,    39,     0,    40,     0,    41,     0,    42,
1616        0,     0,    43,     0,     0,     0,    44,    45,    46,    47,
1617       48,    49,    50,     0,    51,    52,    53,     0,     0,     0,
1618       54,    55,    56,     0,    57,    58,    59,    60,    61,    62,
1619        0,     0,     0,     0,    63,    64,    65,    66,    67,    68,
1620       69,     0,     0,    70,    71,     0,    72,     0,     0,     0,
1621       73,     4,     5,     6,     7,     8,    74,    75,    76,    77,
1622        9,     0,    78,    79,    80,     0,     0,    81,     0,    82,
1623       83,   625,    84,   250,   251,   252,   253,   254,   255,   256,
1624      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1625        0,   267,    10,    11,     0,     0,     0,     0,    12,     0,
1626       13,    14,    15,    16,    17,    18,     0,     0,    19,    20,
1627       21,    22,    23,    24,    25,    26,    27,    28,     0,     0,
1628        0,    29,    30,    31,    32,    33,     0,    34,     0,     0,
1629        0,    35,    36,    37,    38,    39,     0,    40,     0,    41,
1630        0,    42,     0,     0,    43,     0,     0,     0,    44,    45,
1631       46,    47,    48,    49,    50,     0,    51,    52,    53,     0,
1632        0,     0,    54,    55,    56,     0,    57,    58,    59,    60,
1633       61,    62,     0,     0,     0,     0,    63,    64,    65,    66,
1634       67,    68,    69,     0,     0,    70,    71,     0,    72,     0,
1635        0,     0,    73,     4,     5,     6,     7,     8,    74,    75,
1636       76,    77,     9,     0,    78,    79,    80,     0,     0,    81,
1637        0,    82,    83,     0,    84,  -383,  -383,  -383,  -383,  -383,
1638      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1639      265,   266,     0,   267,    10,    11,     0,     0,     0,     0,
1640       12,     0,    13,    14,    15,    16,    17,    18,     0,     0,
1641       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1642        0,     0,     0,    29,    30,    31,    32,    33,     0,    34,
1643        0,     0,     0,    35,    36,    37,    38,    39,     0,    40,
1644        0,    41,     0,    42,     0,     0,    43,     0,     0,     0,
1645       44,    45,    46,    47,     0,    49,    50,     0,    51,     0,
1646       53,     0,     0,     0,    54,    55,    56,     0,    57,    58,
1647       59,   376,    61,    62,     0,     0,     0,     0,    63,    64,
1648       65,    66,    67,    68,    69,     0,     0,    70,    71,     0,
1649       72,     0,     0,     0,    73,     4,     5,     6,     7,     8,
1650      124,    75,    76,    77,     9,     0,    78,    79,    80,     0,
1651        0,    81,     0,    82,    83,   377,    84,     0,     0,     0,
1652        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1653        0,     0,     0,     0,     0,     0,    10,    11,     0,     0,
1654        0,     0,    12,     0,    13,    14,    15,    16,    17,    18,
1655        0,     0,    19,    20,    21,    22,    23,    24,    25,    26,
1656       27,    28,     0,     0,     0,    29,    30,    31,    32,    33,
1657        0,    34,     0,     0,     0,    35,    36,    37,    38,    39,
1658        0,    40,     0,    41,     0,    42,     0,     0,    43,     0,
1659        0,     0,    44,    45,    46,    47,     0,    49,    50,     0,
1660       51,     0,    53,     0,     0,     0,    54,    55,    56,     0,
1661       57,    58,    59,   376,    61,    62,     0,     0,     0,     0,
1662       63,    64,    65,    66,    67,    68,    69,     0,     0,    70,
1663       71,     0,    72,     0,     0,     0,    73,     4,     5,     6,
1664        7,     8,   124,    75,    76,    77,     9,     0,    78,    79,
1665       80,     0,     0,    81,     0,    82,    83,   500,    84,     0,
1666        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1667        0,     0,     0,     0,     0,     0,     0,     0,    10,    11,
1668        0,     0,     0,     0,    12,     0,    13,    14,    15,    16,
1669       17,    18,     0,     0,    19,    20,    21,    22,    23,    24,
1670       25,    26,    27,    28,     0,     0,     0,    29,    30,    31,
1671       32,    33,     0,    34,     0,     0,     0,    35,    36,    37,
1672       38,    39,   743,    40,     0,    41,     0,    42,     0,     0,
1673       43,     0,     0,     0,    44,    45,    46,    47,     0,    49,
1674       50,     0,    51,     0,    53,     0,     0,     0,    54,    55,
1675       56,     0,    57,    58,    59,   376,    61,    62,     0,     0,
1676        0,     0,    63,    64,    65,    66,    67,    68,    69,     0,
1677        0,    70,    71,     0,    72,     0,     0,     0,    73,     4,
1678        5,     6,     7,     8,   124,    75,    76,    77,     9,     0,
1679       78,    79,    80,     0,     0,    81,     0,    82,    83,     0,
1680       84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1681        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682       10,    11,     0,     0,     0,     0,    12,     0,    13,    14,
1683       15,    16,    17,    18,     0,     0,    19,    20,    21,    22,
1684       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1685       30,    31,    32,    33,     0,    34,     0,     0,     0,    35,
1686       36,    37,    38,    39,     0,    40,     0,    41,     0,    42,
1687      749,     0,    43,     0,     0,     0,    44,    45,    46,    47,
1688        0,    49,    50,     0,    51,     0,    53,     0,     0,     0,
1689       54,    55,    56,     0,    57,    58,    59,   376,    61,    62,
1690        0,     0,     0,     0,    63,    64,    65,    66,    67,    68,
1691       69,     0,     0,    70,    71,     0,    72,     0,     0,     0,
1692       73,     4,     5,     6,     7,     8,   124,    75,    76,    77,
1693        9,     0,    78,    79,    80,     0,     0,    81,     0,    82,
1694       83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
1695        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1696        0,     0,    10,    11,     0,     0,     0,     0,    12,     0,
1697       13,    14,    15,    16,    17,    18,     0,     0,    19,    20,
1698       21,    22,    23,    24,    25,    26,    27,    28,     0,     0,
1699        0,    29,    30,    31,    32,    33,     0,    34,     0,     0,
1700        0,    35,    36,    37,    38,    39,     0,    40,     0,    41,
1701        0,    42,     0,     0,    43,     0,     0,     0,    44,    45,
1702       46,    47,     0,    49,    50,     0,    51,     0,    53,     0,
1703        0,     0,    54,    55,    56,     0,    57,    58,    59,   376,
1704       61,    62,     0,     0,     0,     0,    63,    64,    65,    66,
1705       67,    68,    69,     0,     0,    70,    71,     0,    72,     0,
1706        0,     0,    73,     4,     5,     6,     7,     8,   124,    75,
1707       76,    77,     9,     0,    78,    79,    80,     0,     0,    81,
1708        0,    82,    83,   805,    84,     0,     0,     0,     0,     0,
1709        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1710        0,     0,     0,     0,    10,    11,     0,     0,     0,     0,
1711       12,     0,    13,    14,    15,    16,    17,    18,     0,     0,
1712       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1713        0,     0,     0,    29,    30,    31,    32,    33,     0,    34,
1714        0,     0,     0,    35,    36,    37,    38,    39,     0,    40,
1715        0,    41,   868,    42,     0,     0,    43,     0,     0,     0,
1716       44,    45,    46,    47,     0,    49,    50,     0,    51,     0,
1717       53,     0,     0,     0,    54,    55,    56,     0,    57,    58,
1718       59,   376,    61,    62,     0,     0,     0,     0,    63,    64,
1719       65,    66,    67,    68,    69,     0,     0,    70,    71,     0,
1720       72,     0,     0,     0,    73,     4,     5,     6,     7,     8,
1721      124,    75,    76,    77,     9,     0,    78,    79,    80,     0,
1722        0,    81,     0,    82,    83,     0,    84,     0,     0,     0,
1723        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724        0,     0,     0,     0,     0,     0,    10,    11,     0,     0,
1725        0,     0,    12,     0,    13,    14,    15,    16,    17,    18,
1726        0,     0,    19,    20,    21,    22,    23,    24,    25,    26,
1727       27,    28,     0,     0,     0,    29,    30,    31,    32,    33,
1728        0,    34,     0,     0,     0,    35,    36,    37,    38,    39,
1729        0,    40,     0,    41,     0,    42,     0,     0,    43,     0,
1730        0,     0,    44,    45,    46,    47,     0,    49,    50,     0,
1731       51,     0,    53,     0,     0,     0,    54,    55,    56,     0,
1732       57,    58,    59,   376,    61,    62,     0,     0,     0,     0,
1733       63,    64,    65,    66,    67,    68,    69,     0,     0,    70,
1734       71,     0,    72,     0,     0,     0,    73,     4,     5,     6,
1735        7,     8,   124,    75,    76,    77,     9,     0,    78,    79,
1736       80,     0,     0,    81,     0,    82,    83,   882,    84,     0,
1737        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1738        0,     0,     0,     0,     0,     0,     0,     0,    10,    11,
1739        0,     0,     0,     0,    12,     0,    13,    14,    15,    16,
1740       17,    18,     0,     0,    19,    20,    21,    22,    23,    24,
1741       25,    26,    27,    28,     0,     0,     0,    29,    30,    31,
1742       32,    33,     0,    34,     0,     0,     0,    35,    36,    37,
1743       38,    39,     0,    40,     0,    41,     0,    42,     0,     0,
1744       43,     0,     0,     0,    44,    45,    46,    47,     0,    49,
1745       50,     0,    51,     0,    53,     0,     0,     0,    54,    55,
1746       56,     0,    57,    58,    59,   376,    61,    62,     0,     0,
1747        0,     0,    63,    64,    65,    66,    67,    68,    69,     0,
1748        0,    70,    71,     0,    72,     0,     0,     0,    73,     4,
1749        5,     6,     7,     8,   124,    75,    76,    77,     9,     0,
1750       78,    79,    80,     0,     0,    81,     0,    82,    83,   885,
1751       84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753       10,    11,     0,     0,     0,     0,    12,     0,    13,    14,
1754       15,    16,    17,    18,     0,     0,    19,    20,    21,    22,
1755       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1756       30,    31,    32,    33,     0,    34,     0,     0,     0,    35,
1757       36,    37,    38,    39,     0,    40,   889,    41,     0,    42,
1758        0,     0,    43,     0,     0,     0,    44,    45,    46,    47,
1759        0,    49,    50,     0,    51,     0,    53,     0,     0,     0,
1760       54,    55,    56,     0,    57,    58,    59,   376,    61,    62,
1761        0,     0,     0,     0,    63,    64,    65,    66,    67,    68,
1762       69,     0,     0,    70,    71,     0,    72,     0,     0,     0,
1763       73,     4,     5,     6,     7,     8,   124,    75,    76,    77,
1764        9,     0,    78,    79,    80,     0,     0,    81,     0,    82,
1765       83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
1766        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1767        0,     0,    10,    11,     0,     0,     0,     0,    12,     0,
1768       13,    14,    15,    16,    17,    18,     0,     0,    19,    20,
1769       21,    22,    23,    24,    25,    26,    27,    28,     0,     0,
1770        0,    29,    30,    31,    32,    33,     0,    34,     0,     0,
1771        0,    35,    36,    37,    38,    39,     0,    40,     0,    41,
1772        0,    42,     0,     0,    43,     0,     0,     0,    44,    45,
1773       46,    47,     0,    49,    50,     0,    51,     0,    53,     0,
1774        0,     0,    54,    55,    56,     0,    57,    58,    59,   376,
1775       61,    62,     0,     0,     0,     0,    63,    64,    65,    66,
1776       67,    68,    69,     0,     0,    70,    71,     0,    72,     0,
1777        0,     0,    73,     4,     5,     6,     7,     8,   124,    75,
1778       76,    77,     9,     0,    78,    79,    80,     0,     0,    81,
1779        0,    82,    83,   892,    84,     0,     0,     0,     0,     0,
1780        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781        0,     0,     0,     0,    10,    11,     0,     0,     0,     0,
1782       12,     0,    13,    14,    15,    16,    17,    18,     0,     0,
1783       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1784        0,     0,     0,    29,    30,    31,    32,    33,     0,    34,
1785        0,     0,     0,    35,    36,    37,    38,    39,     0,    40,
1786        0,    41,     0,    42,     0,     0,    43,     0,     0,     0,
1787       44,    45,    46,    47,     0,    49,    50,     0,    51,     0,
1788       53,     0,     0,     0,    54,    55,    56,     0,    57,    58,
1789       59,   376,    61,    62,     0,     0,     0,     0,    63,    64,
1790       65,    66,    67,    68,    69,     0,     0,    70,    71,     0,
1791       72,     0,     0,     0,    73,     4,     5,     6,     7,     8,
1792      124,    75,    76,    77,     9,     0,    78,    79,    80,     0,
1793        0,    81,     0,    82,    83,   903,    84,     0,     0,     0,
1794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1795        0,     0,     0,     0,     0,     0,    10,    11,     0,     0,
1796        0,     0,    12,     0,    13,    14,    15,    16,    17,    18,
1797        0,     0,    19,    20,    21,    22,    23,    24,    25,    26,
1798       27,    28,     0,     0,     0,    29,    30,    31,    32,    33,
1799        0,    34,     0,     0,     0,    35,    36,    37,    38,    39,
1800        0,    40,     0,    41,     0,    42,     0,     0,    43,     0,
1801        0,     0,    44,    45,    46,    47,     0,    49,    50,     0,
1802       51,     0,    53,     0,     0,     0,    54,    55,    56,     0,
1803       57,    58,    59,   376,    61,    62,     0,     0,     0,     0,
1804       63,    64,    65,    66,    67,    68,    69,     0,     0,    70,
1805       71,     0,    72,     0,     0,     0,    73,     4,     5,     6,
1806        7,     8,   124,    75,    76,    77,     9,     0,    78,    79,
1807       80,     0,     0,    81,     0,    82,    83,   915,    84,     0,
1808        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1809        0,     0,     0,     0,     0,     0,     0,     0,    10,    11,
1810        0,     0,     0,     0,    12,     0,    13,    14,    15,    16,
1811       17,    18,     0,     0,    19,    20,    21,    22,    23,    24,
1812       25,    26,    27,    28,     0,     0,     0,    29,    30,    31,
1813       32,    33,     0,    34,     0,     0,     0,    35,    36,    37,
1814       38,    39,     0,    40,     0,    41,     0,    42,     0,     0,
1815       43,     0,     0,     0,    44,    45,    46,    47,     0,    49,
1816       50,     0,    51,     0,    53,     0,     0,     0,    54,    55,
1817       56,     0,    57,    58,    59,   376,    61,    62,     0,     0,
1818        0,     0,    63,    64,    65,    66,    67,    68,    69,     0,
1819        0,    70,    71,     0,    72,     0,     0,     0,    73,     4,
1820        5,     6,     7,     8,   124,    75,    76,    77,     9,     0,
1821       78,    79,    80,     0,     0,    81,     0,    82,    83,     0,
1822       84,     0,   580,     0,     0,     0,     0,     0,     0,     0,
1823        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824       10,    11,     0,     0,     0,     0,    12,     0,    13,    14,
1825       15,    16,    17,    18,     0,     0,    19,    20,    21,    22,
1826       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1827       30,    31,    32,    33,     0,    34,     0,     0,     0,    35,
1828       36,    37,    38,    39,     0,    40,     0,    41,     0,    42,
1829        0,     0,    43,     0,     0,     0,    44,    45,    46,    47,
1830        0,    49,    50,     0,    51,     0,    53,     0,     0,     0,
1831        0,     0,    56,     0,    57,    58,    59,     0,     0,     0,
1832        0,     0,     0,     0,    63,    64,    65,    66,    67,    68,
1833       69,     0,     0,    70,    71,     0,    72,     0,     0,     0,
1834       73,     4,     5,     6,     7,     8,   124,    75,    76,    77,
1835        9,     0,     0,    79,    80,     0,     0,    81,     0,    82,
1836       83,     0,    84,     0,   583,     0,     0,     0,     0,     0,
1837        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1838        0,     0,    10,    11,     0,     0,     0,     0,    12,     0,
1839       13,    14,    15,    16,    17,    18,     0,     0,    19,    20,
1840       21,    22,    23,    24,    25,    26,    27,    28,     0,     0,
1841        0,    29,    30,    31,    32,    33,     0,    34,     0,     0,
1842        0,    35,    36,    37,    38,    39,     0,    40,     0,    41,
1843        0,    42,     0,     0,    43,     0,     0,     0,    44,    45,
1844       46,    47,     0,    49,    50,     0,    51,     0,    53,     0,
1845        0,     0,     0,     0,    56,     0,    57,    58,    59,     0,
1846        0,     0,     0,     0,     0,     0,    63,    64,    65,    66,
1847       67,    68,    69,     0,     0,    70,    71,     0,    72,     0,
1848        0,     0,    73,     4,     5,     6,     7,     8,   124,    75,
1849       76,    77,     9,     0,     0,    79,    80,     0,     0,    81,
1850        0,    82,    83,     0,    84,     0,   594,     0,     0,     0,
1851        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1852        0,     0,     0,     0,    10,    11,     0,     0,     0,     0,
1853       12,     0,    13,    14,    15,    16,    17,    18,     0,     0,
1854       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1855        0,     0,     0,    29,    30,    31,    32,    33,     0,    34,
1856        0,     0,     0,    35,    36,    37,    38,    39,     0,    40,
1857        0,    41,     0,    42,     0,     0,    43,     0,     0,     0,
1858       44,    45,    46,    47,     0,    49,    50,     0,    51,     0,
1859       53,     0,     0,     0,     0,     0,    56,     0,    57,    58,
1860       59,     0,     0,     0,     0,     0,     0,     0,    63,    64,
1861       65,    66,    67,    68,    69,     0,     0,    70,    71,     0,
1862       72,     0,     0,     0,    73,     4,     5,     6,     7,     8,
1863      124,    75,    76,    77,     9,     0,     0,    79,    80,     0,
1864        0,    81,     0,    82,    83,     0,    84,     0,   791,     0,
1865        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1866        0,     0,     0,     0,     0,     0,    10,    11,     0,     0,
1867        0,     0,    12,     0,    13,    14,    15,    16,    17,    18,
1868        0,     0,    19,    20,    21,    22,    23,    24,    25,    26,
1869       27,    28,     0,     0,     0,    29,    30,    31,    32,    33,
1870        0,    34,     0,     0,     0,    35,    36,    37,    38,    39,
1871        0,    40,     0,    41,     0,    42,     0,     0,    43,     0,
1872        0,     0,    44,    45,    46,    47,     0,    49,    50,     0,
1873       51,     0,    53,     0,     0,     0,     0,     0,    56,     0,
1874       57,    58,    59,     0,     0,     0,     0,     0,     0,     0,
1875       63,    64,    65,    66,    67,    68,    69,     0,     0,    70,
1876       71,     0,    72,     0,     0,     0,    73,     4,     5,     6,
1877        7,     8,   124,    75,    76,    77,     9,     0,     0,    79,
1878       80,     0,     0,    81,     0,    82,    83,     0,    84,     0,
1879      831,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1880        0,     0,     0,     0,     0,     0,     0,     0,    10,    11,
1881        0,     0,     0,     0,    12,     0,    13,    14,    15,    16,
1882       17,    18,     0,     0,    19,    20,    21,    22,    23,    24,
1883       25,    26,    27,    28,     0,     0,     0,    29,    30,    31,
1884       32,    33,     0,    34,     0,     0,     0,    35,    36,    37,
1885       38,    39,     0,    40,     0,    41,     0,    42,     0,     0,
1886       43,     0,     0,     0,    44,    45,    46,    47,     0,    49,
1887       50,     0,    51,     0,    53,     0,     0,     0,     0,     0,
1888       56,     0,    57,    58,    59,     0,     0,     0,     0,     0,
1889        0,     0,    63,    64,    65,    66,    67,    68,    69,     0,
1890        0,    70,    71,     0,    72,     0,     0,     0,    73,     4,
1891        5,     6,     7,     8,   124,    75,    76,    77,     9,     0,
1892        0,    79,    80,     0,     0,    81,     0,    82,    83,     0,
1893       84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1894        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1895       10,    11,     0,     0,     0,     0,    12,     0,    13,    14,
1896       15,    16,    17,    18,     0,     0,    19,    20,    21,    22,
1897       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1898       30,    31,    32,    33,     0,    34,     0,     0,     0,    35,
1899       36,    37,    38,    39,     0,    40,     0,    41,     0,    42,
1900        0,     0,    43,     0,     0,     0,    44,    45,    46,    47,
1901        0,    49,    50,     0,    51,     0,    53,     0,     0,     0,
1902        0,     0,    56,     0,    57,    58,    59,     0,     0,     0,
1903        0,     0,     0,     0,    63,    64,    65,    66,    67,    68,
1904       69,     0,     0,    70,    71,     0,    72,     0,     0,     0,
1905       73,     4,     5,     6,     7,     8,   124,    75,    76,    77,
1906        9,     0,     0,    79,    80,     0,     0,    81,     0,    82,
1907       83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
1908      384,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1909        0,     0,    10,    11,     0,     0,     0,     0,    12,     0,
1910       13,    14,    15,    16,    17,    18,     0,     0,    19,    20,
1911       21,    22,    23,    24,    25,    26,    27,     0,     0,     0,
1912        0,    29,    30,   122,    32,    33,     0,     0,     0,     0,
1913        0,    35,    36,   249,   250,   251,   252,   253,   254,   255,
1914      256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1915      266,    47,   267,     0,     0,     0,     0,     0,     0,     0,
1916        0,     0,     0,     0,   123,     0,     0,    58,    59,     0,
1917        0,     0,     0,     0,     0,     0,    63,    64,    65,    66,
1918       67,    68,    69,     0,     4,     5,     6,     7,     8,     0,
1919        0,     0,    73,     9,     0,     0,     0,     0,   124,    75,
1920       76,    77,     0,     0,     0,    79,   125,     0,   385,    81,
1921        0,     0,     0,   156,    84,     0,     0,     0,     0,     0,
1922        0,     0,     0,     0,     0,    10,    11,     0,     0,     0,
1923        0,    12,     0,    13,    14,    15,    16,    17,    18,     0,
1924        0,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1925        0,     0,     0,     0,    29,    30,   122,    32,    33,     0,
1926        0,     0,     0,     0,    35,    36,     0,     0,     0,     0,
1927        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1928        0,     0,     0,     0,    47,     0,     0,     0,     0,     0,
1929        0,     0,     0,     0,     0,     0,     0,   123,     0,     0,
1930       58,    59,     0,     0,     0,     0,     0,     0,     0,    63,
1931       64,    65,    66,    67,    68,    69,     0,     4,     5,     6,
1932        7,     8,     0,     0,     0,    73,     9,     0,     0,     0,
1933        0,   124,    75,    76,    77,     0,     0,     0,    79,   125,
1934        0,     0,    81,     0,     0,     0,     0,    84,     0,     0,
1935        0,     0,     0,     0,     0,     0,     0,     0,    10,    11,
1936        0,     0,     0,     0,    12,     0,    13,    14,    15,    16,
1937       17,    18,     0,     0,    19,    20,    21,    22,    23,    24,
1938       25,    26,    27,     0,     0,     0,     0,    29,    30,   122,
1939       32,    33,     0,     0,     0,     0,     0,    35,    36,     0,
1940        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1941        0,     0,     0,     0,     0,     0,     0,    47,     0,     0,
1942        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1943      123,     0,     0,    58,    59,     0,     0,     0,     0,     0,
1944        0,     0,    63,    64,    65,    66,    67,    68,    69,     0,
1945        4,     5,     6,     7,     8,     0,     0,     0,    73,     9,
1946        0,     0,     0,     0,   124,    75,    76,    77,     0,     0,
1947        0,    79,   125,     0,     0,    81,     0,   186,     0,     0,
1948       84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1949        0,    10,    11,     0,     0,     0,     0,    12,     0,    13,
1950       14,    15,    16,    17,    18,     0,     0,    19,    20,    21,
1951       22,    23,    24,    25,    26,    27,     0,     0,     0,     0,
1952       29,    30,   122,    32,    33,     0,     0,     0,     0,     0,
1953       35,    36,     0,     0,     0,     0,     0,     0,     0,     0,
1954        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1955       47,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1956        0,     0,     0,   123,     0,     0,    58,    59,     0,     0,
1957        0,     0,     0,     0,     0,    63,    64,    65,    66,    67,
1958       68,    69,     0,     4,     5,     6,     7,     8,     0,     0,
1959        0,    73,     9,     0,     0,     0,     0,   124,    75,    76,
1960       77,     0,     0,     0,    79,   125,     0,     0,    81,     0,
1961      188,     0,     0,    84,     0,     0,     0,     0,     0,     0,
1962        0,     0,     0,     0,    10,    11,     0,     0,     0,     0,
1963       12,     0,    13,    14,    15,    16,    17,    18,     0,     0,
1964       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
1965        0,     0,     0,    29,    30,   122,    32,    33,     0,     0,
1966        0,     0,     0,    35,    36,     0,     0,     0,     0,     0,
1967        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1968        0,     0,     0,    47,     0,     0,     0,     0,     0,     0,
1969        0,     0,     0,     0,     0,     0,   123,     0,     0,    58,
1970       59,     0,     0,     0,     0,     0,     0,     0,    63,    64,
1971       65,    66,    67,    68,    69,     0,     4,     5,     6,     7,
1972        8,     0,     0,     0,    73,     9,     0,     0,     0,     0,
1973      124,    75,    76,    77,     0,     0,     0,    79,   125,     0,
1974        0,    81,     0,   192,     0,     0,    84,     0,     0,     0,
1975        0,     0,     0,     0,     0,     0,     0,    10,    11,     0,
1976        0,     0,     0,    12,     0,    13,    14,    15,    16,    17,
1977       18,     0,     0,    19,    20,    21,    22,    23,    24,    25,
1978       26,    27,     0,     0,     0,     0,    29,    30,   122,    32,
1979       33,     0,     0,     0,     0,     0,    35,    36,     0,     0,
1980        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1981        0,     0,     0,     0,     0,     0,    47,     0,     0,     0,
1982        0,     0,     0,     0,     0,     0,     0,     0,     0,   123,
1983        0,     0,    58,    59,     0,     0,     0,     0,     0,     0,
1984        0,    63,    64,    65,    66,    67,    68,    69,     0,     4,
1985        5,     6,     7,     8,     0,     0,     0,    73,     9,     0,
1986        0,     0,     0,   124,    75,    76,    77,     0,     0,     0,
1987       79,   125,   405,     0,    81,   316,     0,     0,     0,    84,
1988        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1989       10,    11,     0,     0,     0,     0,    12,     0,    13,    14,
1990       15,    16,    17,    18,     0,     0,    19,    20,    21,    22,
1991       23,    24,    25,    26,    27,     0,     0,     0,     0,    29,
1992       30,   122,    32,    33,     0,     0,     0,     0,     0,    35,
1993       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1994        0,     0,     0,     0,     0,     0,     0,     0,     0,    47,
1995        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1996        0,     0,   123,     0,     0,    58,    59,     0,     0,     0,
1997        0,     0,     0,     0,    63,    64,    65,    66,    67,    68,
1998       69,     0,     4,     5,     6,     7,     8,     0,     0,     0,
1999       73,     9,     0,     0,     0,     0,   124,    75,    76,    77,
2000        0,     0,     0,    79,   125,     0,     0,    81,     0,     0,
2001        0,   431,    84,     0,     0,     0,     0,     0,     0,     0,
2002        0,     0,     0,    10,    11,     0,     0,     0,     0,    12,
2003        0,    13,    14,    15,    16,    17,    18,     0,     0,    19,
2004       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
2005        0,     0,    29,    30,   122,    32,    33,     0,     0,     0,
2006        0,     0,    35,    36,     0,     0,     0,     0,     0,     0,
2007        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2008        0,     0,    47,     0,     0,     0,     0,     0,     0,     0,
2009        0,     0,     0,     0,     0,   123,     0,     0,    58,    59,
2010        0,     0,     0,     0,     0,     0,     0,    63,    64,    65,
2011       66,    67,    68,    69,     0,     4,     5,     6,     7,     8,
2012        0,     0,     0,    73,     9,     0,     0,     0,     0,   124,
2013       75,    76,    77,     0,     0,     0,    79,   125,     0,     0,
2014       81,     0,     0,     0,   463,    84,     0,     0,     0,     0,
2015        0,     0,     0,     0,     0,     0,    10,    11,     0,     0,
2016        0,     0,    12,     0,    13,    14,    15,    16,    17,    18,
2017        0,     0,    19,    20,    21,    22,    23,    24,    25,    26,
2018       27,     0,     0,     0,     0,    29,    30,   122,    32,    33,
2019        0,     0,     0,     0,     0,    35,    36,     0,     0,     0,
2020        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2021        0,     0,     0,     0,     0,    47,     0,     0,     0,     0,
2022        0,     0,     0,     0,     0,     0,     0,     0,   123,     0,
2023        0,    58,    59,     0,     0,     0,     0,     0,     0,     0,
2024       63,    64,    65,    66,    67,    68,    69,     0,     4,     5,
2025        6,     7,     8,     0,     0,     0,    73,     9,     0,     0,
2026        0,     0,   124,    75,    76,    77,     0,     0,     0,    79,
2027      125,     0,     0,    81,     0,     0,     0,   465,    84,     0,
2028        0,     0,     0,     0,     0,     0,     0,     0,     0,    10,
2029       11,     0,     0,     0,     0,    12,     0,    13,    14,    15,
2030       16,    17,    18,     0,     0,    19,    20,    21,    22,    23,
2031       24,    25,    26,    27,     0,     0,     0,     0,    29,    30,
2032      122,    32,    33,     0,     0,     0,     0,     0,    35,    36,
2033        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2034        0,     0,     0,     0,     0,     0,     0,     0,    47,     0,
2035        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2036        0,   123,     0,     0,    58,    59,     0,     0,     0,     0,
2037        0,     0,     0,    63,    64,    65,    66,    67,    68,    69,
2038        0,     4,     5,     6,     7,     8,     0,     0,     0,    73,
2039        9,     0,     0,     0,     0,   124,    75,    76,    77,     0,
2040        0,     0,    79,   125,     0,     0,    81,     0,     0,     0,
2041      657,    84,     0,     0,     0,     0,     0,     0,     0,     0,
2042        0,     0,    10,    11,     0,     0,     0,     0,    12,     0,
2043       13,    14,    15,    16,    17,    18,     0,     0,    19,    20,
2044       21,    22,    23,    24,    25,    26,    27,     0,     0,     0,
2045        0,    29,    30,   122,    32,    33,     0,     0,     0,     0,
2046        0,    35,    36,     0,     0,     0,     0,     0,     0,     0,
2047        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2048        0,    47,     0,     0,     0,     0,     0,     0,     0,     0,
2049        0,     0,     0,     0,   123,     0,     0,    58,    59,     0,
2050        0,     0,     0,     0,     0,     0,    63,    64,    65,    66,
2051       67,    68,    69,     0,     4,     5,     6,     7,     8,     0,
2052        0,     0,    73,     9,     0,     0,     0,     0,   124,    75,
2053       76,    77,     0,     0,     0,    79,   125,     0,     0,    81,
2054        0,     0,     0,     0,    84,     0,     0,     0,     0,     0,
2055        0,     0,     0,     0,     0,    10,    11,     0,     0,     0,
2056        0,    12,     0,    13,    14,    15,    16,    17,    18,     0,
2057        0,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2058        0,     0,     0,     0,    29,    30,   122,    32,    33,     0,
2059        0,     0,     0,     0,    35,    36,     0,     0,     0,     0,
2060        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2061        0,     0,     0,     0,    47,     0,     0,     0,     0,     0,
2062        0,     0,     0,     0,     0,     0,     0,   123,     0,     0,
2063       58,    59,     0,     0,     0,     0,     0,     0,     0,    63,
2064       64,    65,    66,    67,    68,    69,     0,     4,     5,     6,
2065        7,     8,     0,     0,     0,    73,     9,     0,     0,     0,
2066        0,   124,    75,    76,    77,     0,     0,     0,    79,   125,
2067        0,     0,    81,     0,     0,     0,     0,    84,     0,     0,
2068        0,     0,     0,     0,     0,     0,     0,     0,    10,    11,
2069        0,     0,     0,     0,    12,     0,    13,    14,    15,    16,
2070       17,    18,     0,     0,    19,    20,    21,    22,    23,    24,
2071       25,    26,    27,     0,     0,     0,     0,    29,    30,   122,
2072       32,    33,     0,     0,     0,     0,     0,    35,    36,     0,
2073        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2074        0,     0,     0,     0,     0,     0,     0,    47,     0,     0,
2075        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2076      123,     0,     0,    58,    59,     0,     0,     0,     0,     0,
2077        0,     0,    63,    64,    65,    66,    67,    68,    69,     0,
2078        0,     0,     0,     0,     0,     0,     0,     0,    73,     0,
2079        0,     0,     0,     0,   124,    75,    76,    77,   240,   241,
2080      242,    79,    80,     0,     0,    81,     0,     0,     0,     0,
2081       84,     0,     0,     0,   243,     0,   244,   245,   246,   247,
2082      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2083      258,   259,   260,   261,   262,   263,   264,   265,   266,     0,
2084      267,   240,   241,   242,     0,     0,     0,     0,     0,     0,
2085        0,     0,     0,     0,     0,     0,     0,   243,     0,   244,
2086      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2087      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2088      265,   266,     0,   267,   240,   241,   242,     0,     0,     0,
2089        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2090      243,     0,   244,   245,   246,   247,   248,   249,   250,   251,
2091      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2092      262,   263,   264,   265,   266,     0,   267,     0,     0,     0,
2093        0,     0,     0,     0,     0,     0,     0,   240,   241,   242,
2094        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2095        0,     0,     0,   243,   570,   244,   245,   246,   247,   248,
2096      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2097      259,   260,   261,   262,   263,   264,   265,   266,     0,   267,
2098        0,     0,   240,   241,   242,     0,     0,     0,     0,     0,
2099        0,     0,     0,     0,     0,     0,     0,   615,   243,   799,
2100      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2101      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2102      264,   265,   266,     0,   267,   240,   241,   242,     0,     0,
2103        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2104      650,   243,     0,   244,   245,   246,   247,   248,   249,   250,
2105      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2106      261,   262,   263,   264,   265,   266,     0,   267,     0,     0,
2107        0,     0,     0,     0,     0,     0,   240,   241,   242,     0,
2108        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2109        0,     0,   243,   734,   244,   245,   246,   247,   248,   249,
2110      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2111      260,   261,   262,   263,   264,   265,   266,     0,   267,   240,
2112      241,   242,     0,     0,     0,     0,     0,     0,     0,     0,
2113        0,     0,     0,     0,     0,   243,   800,   244,   245,   246,
2114      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2115      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2116        0,   267,   240,   241,   242,     0,     0,     0,     0,     0,
2117        0,     0,     0,     0,     0,     0,     0,     0,   243,   268,
2118      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2119      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2120      264,   265,   266,     0,   267,     0,     0,     0,     0,     0,
2121        0,     0,     0,   240,   241,   242,     0,     0,     0,     0,
2122        0,     0,     0,     0,     0,     0,     0,     0,     0,   243,
2123      334,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2124      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2125      263,   264,   265,   266,     0,   267,   240,   241,   242,     0,
2126        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2127        0,     0,   243,   335,   244,   245,   246,   247,   248,   249,
2128      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2129      260,   261,   262,   263,   264,   265,   266,     0,   267,   240,
2130      241,   242,     0,     0,     0,     0,     0,     0,     0,     0,
2131        0,     0,     0,     0,     0,   243,   341,   244,   245,   246,
2132      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2133      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2134        0,   267,     0,     0,     0,     0,     0,     0,     0,   240,
2135      241,   242,     0,     0,     0,     0,     0,     0,     0,     0,
2136        0,     0,     0,     0,     0,   243,   374,   244,   245,   246,
2137      247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2138      257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2139        0,   267,   240,   241,   242,     0,     0,     0,     0,     0,
2140        0,     0,     0,     0,     0,     0,     0,     0,   243,   459,
2141      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2142      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2143      264,   265,   266,     0,   267,   240,   241,   242,     0,     0,
2144        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2145        0,   243,   473,   244,   245,   246,   247,   248,   249,   250,
2146      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2147      261,   262,   263,   264,   265,   266,     0,   267,     0,     0,
2148        0,     0,     0,     0,     0,   240,   241,   242,     0,     0,
2149        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2150        0,   243,   474,   244,   245,   246,   247,   248,   249,   250,
2151      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2152      261,   262,   263,   264,   265,   266,     0,   267,   240,   241,
2153      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154        0,     0,     0,     0,   243,   479,   244,   245,   246,   247,
2155      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2156      258,   259,   260,   261,   262,   263,   264,   265,   266,     0,
2157      267,   240,   241,   242,     0,     0,     0,     0,     0,     0,
2158        0,     0,     0,     0,     0,     0,     0,   243,   487,   244,
2159      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2160      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2161      265,   266,     0,   267,     0,     0,     0,     0,     0,     0,
2162        0,   240,   241,   242,     0,     0,     0,     0,     0,     0,
2163        0,     0,     0,     0,     0,     0,     0,   243,   664,   244,
2164      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2165      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2166      265,   266,     0,   267,   240,   241,   242,     0,     0,     0,
2167        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2168      243,   866,   244,   245,   246,   247,   248,   249,   250,   251,
2169      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2170      262,   263,   264,   265,   266,     0,   267,     0,     0,     0,
2171        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2172        0,     0,     0,     0,   887,   240,   241,   242,     0,     0,
2173        0,     0,     0,     0,     0,     0,     0,     0,     0,   303,
2174        0,   243,     0,   244,   245,   246,   247,   248,   249,   250,
2175      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2176      261,   262,   263,   264,   265,   266,     0,   267,   240,   241,
2177      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2178        0,     0,   372,     0,   243,   555,   244,   245,   246,   247,
2179      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2180      258,   259,   260,   261,   262,   263,   264,   265,   266,     0,
2181      267,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2182        0,     0,     0,     0,     0,     0,   240,   241,   242,     0,
2183        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2184        0,     0,   243,   576,   244,   245,   246,   247,   248,   249,
2185      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2186      260,   261,   262,   263,   264,   265,   266,     0,   267,   241,
2187      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2188        0,     0,     0,     0,   243,     0,   244,   245,   246,   247,
2189      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2190      258,   259,   260,   261,   262,   263,   264,   265,   266,   242,
2191      267,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2192        0,     0,     0,   243,     0,   244,   245,   246,   247,   248,
2193      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2194      259,   260,   261,   262,   263,   264,   265,   266,     0,   267,
2195      244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
2196      254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2197      264,   265,   266,     0,   267,   246,   247,   248,   249,   250,
2198      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2199      261,   262,   263,   264,   265,   266,     0,   267,   247,   248,
2200      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2201      259,   260,   261,   262,   263,   264,   265,   266,     0,   267,
2202      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2203      258,   259,   260,   261,   262,   263,   264,   265,   266,     0,
2204      267
2205 };
2206 
2207 static const yytype_int16 yycheck[] =
2208 {
2209        2,   126,    26,   166,     2,   314,     2,    22,    23,   196,
2210      391,    26,   393,    26,   718,   508,   267,     2,   239,   384,
2211       49,   480,   712,   218,     8,    65,     8,   639,   177,     8,
2212       65,     8,    65,     8,     8,     8,     8,    52,     8,    26,
2213      283,     8,    38,   598,    75,     8,    22,    23,   541,     8,
2214       26,    80,     8,    65,    56,     8,   640,   761,    77,    74,
2215      161,    75,    77,   284,   307,   286,    13,    14,    15,    16,
2216       17,    18,    19,    20,    21,    22,    23,    24,   299,   300,
2217       32,    26,    32,    26,    77,   210,    26,    77,    95,   238,
2218      311,    77,   313,   314,   161,    95,   153,    77,   463,   107,
2219      465,   153,   115,     0,   161,   147,   161,   147,   633,   161,
2220       81,   153,   337,    75,    32,    77,    63,    64,   673,   161,
2221      675,   123,    65,   103,   164,    77,   351,    77,   371,   164,
2222      161,   164,    65,   148,   659,   719,   285,    65,   287,   153,
2223      161,   156,   291,   292,   293,    75,   153,   166,   163,   161,
2224      164,   159,   164,   153,   183,   536,    75,   161,   171,    77,
2225      772,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2226       22,    23,    24,   166,   160,   370,   166,   164,   149,   163,
2227      156,   163,   164,   198,   163,   875,   163,   162,   203,   163,
2228      163,   163,   776,   163,   163,   162,   211,   212,   213,   162,
2229      215,    32,   217,   162,   166,   909,   162,   666,   160,   162,
2230      160,    63,    64,   147,   147,   162,   163,    25,   163,   153,
2231      150,    75,    75,   153,    77,   227,   239,   203,   161,    75,
2232      153,   164,   163,   164,   153,   211,   212,   213,   161,   215,
2233       67,   147,    75,   267,    77,   161,    77,   153,    75,    75,
2234       77,    77,   267,   634,   267,   161,    63,    64,    75,   484,
2235       77,    98,    99,   488,   489,   490,   147,    75,   153,    32,
2236      161,   284,   153,   286,    98,    99,   519,   147,   163,   164,
2237      161,   296,   147,   153,   161,    25,   299,   300,   153,   116,
2238       75,   267,   657,   164,   309,    97,    98,    99,   311,   239,
2239      313,   314,   122,   684,   150,   556,   531,   153,   551,   552,
2240      162,   163,    75,   166,    77,    75,   559,   560,   699,   122,
2241      563,   129,   337,   150,   162,   163,   153,   267,   165,   344,
2242      164,   164,   161,   166,   161,    75,   351,    75,   340,   166,
2243      166,   165,   150,   372,   284,   153,   286,   155,    75,   166,
2244      161,   660,   161,   116,   162,   161,    75,   161,    77,   299,
2245      300,   337,   161,    47,    48,    49,   368,    51,    75,   384,
2246      368,   311,   368,   313,   314,   351,   391,    32,   393,    65,
2247      605,   396,   147,   368,    97,    98,    99,   150,   401,   129,
2248      153,   616,   161,   580,   162,   163,   583,   116,   161,    70,
2249       71,   147,   129,   166,    70,    71,   899,   594,   384,    65,
2250      150,    22,    23,   153,   126,   155,   431,    65,   567,    65,
2251       65,    65,   731,   150,   103,   153,   153,   808,   155,   810,
2252       51,   150,   153,    67,   153,   167,   147,   147,     8,   660,
2253       87,   161,   161,   147,   153,   164,   671,   166,   463,   103,
2254      465,   153,   677,   147,   679,   431,   126,   111,   112,   113,
2255      114,   115,   116,    75,   845,   163,    13,   482,   483,   484,
2256      163,    13,   162,   488,   489,   490,    75,   162,   474,   494,
2257      162,    75,   124,   479,   647,   124,   161,   463,   161,   465,
2258      486,   167,     8,   508,   509,   876,   511,   722,   685,   167,
2259      515,   516,   163,   652,   653,    95,   482,   483,   484,    13,
2260      731,    75,   488,   489,   490,    77,   531,     8,   533,   521,
2261      161,   536,   162,   521,   905,   521,   541,   542,   163,   161,
2262       13,   162,   556,   509,   161,   511,   521,   162,   125,   515,
2263      516,   556,    75,   556,    77,    44,    45,    46,    47,    48,
2264       49,   164,    51,   778,   161,   531,    13,    14,    15,    16,
2265       17,    18,    19,    20,    21,    22,    23,    24,   111,   112,
2266      113,   114,   115,   116,   589,   167,   161,   161,   803,   162,
2267      556,   161,   807,   116,   161,   167,   161,   812,   167,   122,
2268      605,   606,   161,   167,   167,   167,    75,   162,    77,   824,
2269       75,   616,   153,   147,   791,    75,    63,    64,    13,   163,
2270       13,   164,   162,   589,   801,   630,   556,   150,   153,   634,
2271      153,   162,   162,     8,   639,     8,    65,    65,   161,   605,
2272      855,   818,   164,   166,   126,   822,   861,   116,   163,   127,
2273      616,   828,   657,    13,   831,   163,   163,   660,    75,   836,
2274       77,   127,   667,   840,   879,   167,   671,     8,    75,   161,
2275      662,   164,   677,   665,   679,   162,   162,   109,   163,   684,
2276      672,   150,   162,    77,   153,    13,   162,   162,   162,   126,
2277      162,   657,   161,   870,   699,   162,   167,   166,   162,   116,
2278      815,   667,   163,   162,   162,   671,    75,    77,    26,   161,
2279       13,   677,   167,   679,   167,   161,   163,   722,   163,   711,
2280      162,    22,    23,   163,   901,    26,   127,   163,   731,    77,
2281      660,    13,    13,   150,   164,   912,   153,    75,   164,    13,
2282      161,    26,    22,    23,   161,    72,   164,   163,   162,   166,
2283       13,    77,    77,    75,   740,    77,   722,    13,   163,    95,
2284      746,   747,   164,    95,   163,   165,   154,   772,   760,    49,
2285      147,   163,    13,   778,   163,    75,     4,     5,    75,     7,
2286        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2287       18,    19,    20,    21,   116,   161,    24,    25,   803,    77,
2288       80,   731,   807,   808,   790,   810,   128,   812,    26,    37,
2289      163,    75,   778,    75,     8,   162,    44,    45,   344,   824,
2290      611,    49,   509,    51,   611,   308,   468,   590,   150,   536,
2291      667,   153,   747,   349,   542,   530,    81,   803,   845,   161,
2292      845,   807,   834,   798,   166,   837,   812,   203,   605,   690,
2293      855,   782,    80,    81,   516,   156,   861,   604,   824,   216,
2294      515,    -1,    -1,    -1,   856,    -1,    -1,    -1,   860,    -1,
2295       -1,   876,   864,    -1,   879,   867,   156,   869,    -1,   871,
2296      866,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   855,
2297       -1,    -1,    -1,    -1,   899,   861,    -1,    -1,    -1,   891,
2298      905,   129,   203,   183,    -1,    -1,    -1,    -1,    -1,    -1,
2299      211,   212,   213,   879,   215,   907,    -1,    -1,    -1,    -1,
2300       -1,    -1,   914,   203,    -1,    -1,    -1,    -1,    -1,   104,
2301       -1,   211,   212,   213,   109,   215,   111,   112,   113,   114,
2302      115,   116,   117,    -1,   172,    -1,   174,    -1,   176,   177,
2303       -1,    -1,    -1,   181,   182,   183,    -1,   185,    -1,    -1,
2304       -1,   337,    -1,    -1,    -1,    -1,   267,    -1,    -1,    -1,
2305       -1,    -1,    -1,    -1,    -1,   351,    38,    39,    40,    41,
2306       42,    43,    44,    45,    46,    47,    48,    49,   216,    51,
2307      165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2308      228,    -1,   230,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2309      238,    -1,   240,   241,   242,   243,   244,   245,   246,   247,
2310      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2311      258,   259,   260,   261,   262,   263,   264,   265,   266,    -1,
2312       -1,    -1,    -1,   271,   272,   273,   274,   275,   276,   277,
2313      278,   279,   280,   281,   282,   283,    -1,   285,    -1,   287,
2314      288,   104,    -1,   291,   292,   293,   109,    -1,   111,   112,
2315      113,   114,   115,   116,   117,   303,    -1,   305,    -1,   307,
2316       44,    45,    -1,   384,    -1,    -1,    -1,    -1,    -1,    -1,
2317       -1,    -1,   372,    -1,   322,    -1,    -1,    -1,    -1,    -1,
2318       -1,    65,    -1,    -1,   384,    -1,    -1,    -1,   484,    73,
2319       74,    75,   488,   489,    -1,    -1,    -1,    -1,   346,    83,
2320       -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,    -1,   104,
2321      431,    -1,    -1,    -1,   109,    -1,   111,   112,   113,   114,
2322      115,   116,   117,   371,   372,    -1,    -1,    -1,    -1,    -1,
2323       -1,   431,   116,    -1,    -1,   531,    -1,   385,    -1,    -1,
2324       -1,    -1,   463,    -1,   465,   129,   130,   131,   132,   133,
2325      134,    -1,    -1,    -1,    -1,    -1,    -1,   405,    -1,    -1,
2326      144,   482,   483,   463,    -1,   465,   150,   151,   152,   153,
2327      165,    -1,    -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,
2328       -1,    -1,   482,   483,    -1,    -1,    -1,    -1,   509,    -1,
2329      511,    -1,    -1,    -1,   515,   516,    -1,    -1,    -1,    -1,
2330       -1,   449,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   509,
2331       -1,   511,    -1,    -1,    -1,   515,   516,    -1,    -1,    -1,
2332      616,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
2333      478,    -1,   480,   481,    -1,   556,    -1,    25,    -1,    27,
2334       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2335       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2336       48,    49,    -1,    51,    -1,    -1,    -1,    -1,   589,    -1,
2337       -1,   519,    -1,    -1,    -1,   671,    -1,    -1,    -1,    -1,
2338       -1,   677,   530,   679,    -1,    -1,    -1,    -1,    -1,   589,
2339       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2340       23,    24,    -1,   551,   552,    -1,    -1,   555,    -1,    -1,
2341       -1,   559,   560,    -1,    -1,   563,    -1,    -1,    -1,   567,
2342      568,    -1,    -1,    -1,    -1,    -1,   722,    -1,   576,    -1,
2343       -1,    -1,    -1,    -1,    -1,    -1,   657,    -1,    -1,    -1,
2344       63,    64,    -1,    -1,    -1,    -1,   667,    -1,    -1,    -1,
2345       -1,    -1,    -1,    -1,    -1,    -1,    -1,   657,    -1,    -1,
2346       -1,    -1,    -1,    -1,    -1,    -1,    -1,   667,    -1,    -1,
2347       -1,    -1,    95,    -1,    -1,   623,    -1,   165,    -1,    -1,
2348       -1,    -1,   778,    13,    14,    15,    16,    17,    18,    19,
2349       20,    21,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,
2350       -1,    -1,    -1,    -1,   652,   653,    -1,   803,    -1,    -1,
2351       -1,   807,    -1,    -1,    -1,    -1,   812,    -1,   666,    -1,
2352       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   824,    -1,
2353       -1,    -1,    -1,    63,    64,     3,     4,     5,     6,     7,
2354       -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,
2355       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   855,
2356       -1,    -1,    -1,    -1,    -1,   861,    -1,    -1,    -1,    -1,
2357       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2358       -1,    -1,    50,   879,    52,    53,    54,    55,    56,    57,
2359       -1,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
2360       68,    69,    -1,    -1,   752,    73,    74,    75,    76,    77,
2361       -1,    79,    -1,    -1,    -1,    83,    84,    85,    86,    87,
2362       -1,    89,    -1,    91,    -1,    93,    -1,    -1,    96,    -1,
2363       -1,    -1,   100,   101,   102,   103,   104,   105,   106,   787,
2364      108,   109,   110,    -1,    -1,    -1,   114,   115,   116,    -1,
2365      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
2366      128,   129,   130,   131,   132,   133,   134,    -1,    -1,   137,
2367      138,    -1,   140,    -1,    -1,    -1,   144,    -1,    -1,   827,
2368       -1,    -1,   150,   151,   152,   153,    -1,    -1,   156,   157,
2369      158,    -1,    -1,   161,    -1,   163,   164,   165,   166,     3,
2370        4,     5,     6,     7,    -1,    -1,    -1,    25,    12,    27,
2371       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2372       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2373       48,    49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
2374       44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
2375       54,    55,    56,    57,    -1,    -1,    60,    61,    62,    63,
2376       64,    65,    66,    67,    68,    69,    -1,    -1,    -1,    73,
2377       74,    75,    76,    77,    -1,    79,    -1,    -1,    -1,    83,
2378       84,    85,    86,    87,    -1,    89,    -1,    91,    -1,    93,
2379       -1,    -1,    96,    -1,    -1,    -1,   100,   101,   102,   103,
2380      104,   105,   106,    -1,   108,   109,   110,    -1,    -1,    -1,
2381      114,   115,   116,    -1,   118,   119,   120,   121,   122,   123,
2382       -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,   133,
2383      134,    -1,    -1,   137,   138,    -1,   140,    -1,    -1,    -1,
2384      144,     3,     4,     5,     6,     7,   150,   151,   152,   153,
2385       12,    -1,   156,   157,   158,    -1,    -1,   161,    -1,   163,
2386      164,   165,   166,    33,    34,    35,    36,    37,    38,    39,
2387       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2388       -1,    51,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,
2389       52,    53,    54,    55,    56,    57,    -1,    -1,    60,    61,
2390       62,    63,    64,    65,    66,    67,    68,    69,    -1,    -1,
2391       -1,    73,    74,    75,    76,    77,    -1,    79,    -1,    -1,
2392       -1,    83,    84,    85,    86,    87,    -1,    89,    -1,    91,
2393       -1,    93,    -1,    -1,    96,    -1,    -1,    -1,   100,   101,
2394      102,   103,   104,   105,   106,    -1,   108,   109,   110,    -1,
2395       -1,    -1,   114,   115,   116,    -1,   118,   119,   120,   121,
2396      122,   123,    -1,    -1,    -1,    -1,   128,   129,   130,   131,
2397      132,   133,   134,    -1,    -1,   137,   138,    -1,   140,    -1,
2398       -1,    -1,   144,     3,     4,     5,     6,     7,   150,   151,
2399      152,   153,    12,    -1,   156,   157,   158,    -1,    -1,   161,
2400       -1,   163,   164,    -1,   166,    33,    34,    35,    36,    37,
2401       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2402       48,    49,    -1,    51,    44,    45,    -1,    -1,    -1,    -1,
2403       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
2404       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2405       -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,    79,
2406       -1,    -1,    -1,    83,    84,    85,    86,    87,    -1,    89,
2407       -1,    91,    -1,    93,    -1,    -1,    96,    -1,    -1,    -1,
2408      100,   101,   102,   103,    -1,   105,   106,    -1,   108,    -1,
2409      110,    -1,    -1,    -1,   114,   115,   116,    -1,   118,   119,
2410      120,   121,   122,   123,    -1,    -1,    -1,    -1,   128,   129,
2411      130,   131,   132,   133,   134,    -1,    -1,   137,   138,    -1,
2412      140,    -1,    -1,    -1,   144,     3,     4,     5,     6,     7,
2413      150,   151,   152,   153,    12,    -1,   156,   157,   158,    -1,
2414       -1,   161,    -1,   163,   164,   165,   166,    -1,    -1,    -1,
2415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2416       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2417       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
2418       -1,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
2419       68,    69,    -1,    -1,    -1,    73,    74,    75,    76,    77,
2420       -1,    79,    -1,    -1,    -1,    83,    84,    85,    86,    87,
2421       -1,    89,    -1,    91,    -1,    93,    -1,    -1,    96,    -1,
2422       -1,    -1,   100,   101,   102,   103,    -1,   105,   106,    -1,
2423      108,    -1,   110,    -1,    -1,    -1,   114,   115,   116,    -1,
2424      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
2425      128,   129,   130,   131,   132,   133,   134,    -1,    -1,   137,
2426      138,    -1,   140,    -1,    -1,    -1,   144,     3,     4,     5,
2427        6,     7,   150,   151,   152,   153,    12,    -1,   156,   157,
2428      158,    -1,    -1,   161,    -1,   163,   164,   165,   166,    -1,
2429       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
2431       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
2432       56,    57,    -1,    -1,    60,    61,    62,    63,    64,    65,
2433       66,    67,    68,    69,    -1,    -1,    -1,    73,    74,    75,
2434       76,    77,    -1,    79,    -1,    -1,    -1,    83,    84,    85,
2435       86,    87,    88,    89,    -1,    91,    -1,    93,    -1,    -1,
2436       96,    -1,    -1,    -1,   100,   101,   102,   103,    -1,   105,
2437      106,    -1,   108,    -1,   110,    -1,    -1,    -1,   114,   115,
2438      116,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
2439       -1,    -1,   128,   129,   130,   131,   132,   133,   134,    -1,
2440       -1,   137,   138,    -1,   140,    -1,    -1,    -1,   144,     3,
2441        4,     5,     6,     7,   150,   151,   152,   153,    12,    -1,
2442      156,   157,   158,    -1,    -1,   161,    -1,   163,   164,    -1,
2443      166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2444       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2445       44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
2446       54,    55,    56,    57,    -1,    -1,    60,    61,    62,    63,
2447       64,    65,    66,    67,    68,    69,    -1,    -1,    -1,    73,
2448       74,    75,    76,    77,    -1,    79,    -1,    -1,    -1,    83,
2449       84,    85,    86,    87,    -1,    89,    -1,    91,    -1,    93,
2450       94,    -1,    96,    -1,    -1,    -1,   100,   101,   102,   103,
2451       -1,   105,   106,    -1,   108,    -1,   110,    -1,    -1,    -1,
2452      114,   115,   116,    -1,   118,   119,   120,   121,   122,   123,
2453       -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,   133,
2454      134,    -1,    -1,   137,   138,    -1,   140,    -1,    -1,    -1,
2455      144,     3,     4,     5,     6,     7,   150,   151,   152,   153,
2456       12,    -1,   156,   157,   158,    -1,    -1,   161,    -1,   163,
2457      164,    -1,   166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2458       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2459       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,
2460       52,    53,    54,    55,    56,    57,    -1,    -1,    60,    61,
2461       62,    63,    64,    65,    66,    67,    68,    69,    -1,    -1,
2462       -1,    73,    74,    75,    76,    77,    -1,    79,    -1,    -1,
2463       -1,    83,    84,    85,    86,    87,    -1,    89,    -1,    91,
2464       -1,    93,    -1,    -1,    96,    -1,    -1,    -1,   100,   101,
2465      102,   103,    -1,   105,   106,    -1,   108,    -1,   110,    -1,
2466       -1,    -1,   114,   115,   116,    -1,   118,   119,   120,   121,
2467      122,   123,    -1,    -1,    -1,    -1,   128,   129,   130,   131,
2468      132,   133,   134,    -1,    -1,   137,   138,    -1,   140,    -1,
2469       -1,    -1,   144,     3,     4,     5,     6,     7,   150,   151,
2470      152,   153,    12,    -1,   156,   157,   158,    -1,    -1,   161,
2471       -1,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
2472       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2473       -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,
2474       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
2475       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2476       -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,    79,
2477       -1,    -1,    -1,    83,    84,    85,    86,    87,    -1,    89,
2478       -1,    91,    92,    93,    -1,    -1,    96,    -1,    -1,    -1,
2479      100,   101,   102,   103,    -1,   105,   106,    -1,   108,    -1,
2480      110,    -1,    -1,    -1,   114,   115,   116,    -1,   118,   119,
2481      120,   121,   122,   123,    -1,    -1,    -1,    -1,   128,   129,
2482      130,   131,   132,   133,   134,    -1,    -1,   137,   138,    -1,
2483      140,    -1,    -1,    -1,   144,     3,     4,     5,     6,     7,
2484      150,   151,   152,   153,    12,    -1,   156,   157,   158,    -1,
2485       -1,   161,    -1,   163,   164,    -1,   166,    -1,    -1,    -1,
2486       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2487       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2488       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
2489       -1,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
2490       68,    69,    -1,    -1,    -1,    73,    74,    75,    76,    77,
2491       -1,    79,    -1,    -1,    -1,    83,    84,    85,    86,    87,
2492       -1,    89,    -1,    91,    -1,    93,    -1,    -1,    96,    -1,
2493       -1,    -1,   100,   101,   102,   103,    -1,   105,   106,    -1,
2494      108,    -1,   110,    -1,    -1,    -1,   114,   115,   116,    -1,
2495      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
2496      128,   129,   130,   131,   132,   133,   134,    -1,    -1,   137,
2497      138,    -1,   140,    -1,    -1,    -1,   144,     3,     4,     5,
2498        6,     7,   150,   151,   152,   153,    12,    -1,   156,   157,
2499      158,    -1,    -1,   161,    -1,   163,   164,   165,   166,    -1,
2500       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
2502       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
2503       56,    57,    -1,    -1,    60,    61,    62,    63,    64,    65,
2504       66,    67,    68,    69,    -1,    -1,    -1,    73,    74,    75,
2505       76,    77,    -1,    79,    -1,    -1,    -1,    83,    84,    85,
2506       86,    87,    -1,    89,    -1,    91,    -1,    93,    -1,    -1,
2507       96,    -1,    -1,    -1,   100,   101,   102,   103,    -1,   105,
2508      106,    -1,   108,    -1,   110,    -1,    -1,    -1,   114,   115,
2509      116,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
2510       -1,    -1,   128,   129,   130,   131,   132,   133,   134,    -1,
2511       -1,   137,   138,    -1,   140,    -1,    -1,    -1,   144,     3,
2512        4,     5,     6,     7,   150,   151,   152,   153,    12,    -1,
2513      156,   157,   158,    -1,    -1,   161,    -1,   163,   164,   165,
2514      166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2515       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2516       44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
2517       54,    55,    56,    57,    -1,    -1,    60,    61,    62,    63,
2518       64,    65,    66,    67,    68,    69,    -1,    -1,    -1,    73,
2519       74,    75,    76,    77,    -1,    79,    -1,    -1,    -1,    83,
2520       84,    85,    86,    87,    -1,    89,    90,    91,    -1,    93,
2521       -1,    -1,    96,    -1,    -1,    -1,   100,   101,   102,   103,
2522       -1,   105,   106,    -1,   108,    -1,   110,    -1,    -1,    -1,
2523      114,   115,   116,    -1,   118,   119,   120,   121,   122,   123,
2524       -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,   133,
2525      134,    -1,    -1,   137,   138,    -1,   140,    -1,    -1,    -1,
2526      144,     3,     4,     5,     6,     7,   150,   151,   152,   153,
2527       12,    -1,   156,   157,   158,    -1,    -1,   161,    -1,   163,
2528      164,    -1,   166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2529       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2530       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,
2531       52,    53,    54,    55,    56,    57,    -1,    -1,    60,    61,
2532       62,    63,    64,    65,    66,    67,    68,    69,    -1,    -1,
2533       -1,    73,    74,    75,    76,    77,    -1,    79,    -1,    -1,
2534       -1,    83,    84,    85,    86,    87,    -1,    89,    -1,    91,
2535       -1,    93,    -1,    -1,    96,    -1,    -1,    -1,   100,   101,
2536      102,   103,    -1,   105,   106,    -1,   108,    -1,   110,    -1,
2537       -1,    -1,   114,   115,   116,    -1,   118,   119,   120,   121,
2538      122,   123,    -1,    -1,    -1,    -1,   128,   129,   130,   131,
2539      132,   133,   134,    -1,    -1,   137,   138,    -1,   140,    -1,
2540       -1,    -1,   144,     3,     4,     5,     6,     7,   150,   151,
2541      152,   153,    12,    -1,   156,   157,   158,    -1,    -1,   161,
2542       -1,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
2543       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2544       -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,
2545       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
2546       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2547       -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,    79,
2548       -1,    -1,    -1,    83,    84,    85,    86,    87,    -1,    89,
2549       -1,    91,    -1,    93,    -1,    -1,    96,    -1,    -1,    -1,
2550      100,   101,   102,   103,    -1,   105,   106,    -1,   108,    -1,
2551      110,    -1,    -1,    -1,   114,   115,   116,    -1,   118,   119,
2552      120,   121,   122,   123,    -1,    -1,    -1,    -1,   128,   129,
2553      130,   131,   132,   133,   134,    -1,    -1,   137,   138,    -1,
2554      140,    -1,    -1,    -1,   144,     3,     4,     5,     6,     7,
2555      150,   151,   152,   153,    12,    -1,   156,   157,   158,    -1,
2556       -1,   161,    -1,   163,   164,   165,   166,    -1,    -1,    -1,
2557       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2558       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2559       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
2560       -1,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
2561       68,    69,    -1,    -1,    -1,    73,    74,    75,    76,    77,
2562       -1,    79,    -1,    -1,    -1,    83,    84,    85,    86,    87,
2563       -1,    89,    -1,    91,    -1,    93,    -1,    -1,    96,    -1,
2564       -1,    -1,   100,   101,   102,   103,    -1,   105,   106,    -1,
2565      108,    -1,   110,    -1,    -1,    -1,   114,   115,   116,    -1,
2566      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
2567      128,   129,   130,   131,   132,   133,   134,    -1,    -1,   137,
2568      138,    -1,   140,    -1,    -1,    -1,   144,     3,     4,     5,
2569        6,     7,   150,   151,   152,   153,    12,    -1,   156,   157,
2570      158,    -1,    -1,   161,    -1,   163,   164,   165,   166,    -1,
2571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
2573       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
2574       56,    57,    -1,    -1,    60,    61,    62,    63,    64,    65,
2575       66,    67,    68,    69,    -1,    -1,    -1,    73,    74,    75,
2576       76,    77,    -1,    79,    -1,    -1,    -1,    83,    84,    85,
2577       86,    87,    -1,    89,    -1,    91,    -1,    93,    -1,    -1,
2578       96,    -1,    -1,    -1,   100,   101,   102,   103,    -1,   105,
2579      106,    -1,   108,    -1,   110,    -1,    -1,    -1,   114,   115,
2580      116,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
2581       -1,    -1,   128,   129,   130,   131,   132,   133,   134,    -1,
2582       -1,   137,   138,    -1,   140,    -1,    -1,    -1,   144,     3,
2583        4,     5,     6,     7,   150,   151,   152,   153,    12,    -1,
2584      156,   157,   158,    -1,    -1,   161,    -1,   163,   164,    -1,
2585      166,    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2586       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2587       44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
2588       54,    55,    56,    57,    -1,    -1,    60,    61,    62,    63,
2589       64,    65,    66,    67,    68,    69,    -1,    -1,    -1,    73,
2590       74,    75,    76,    77,    -1,    79,    -1,    -1,    -1,    83,
2591       84,    85,    86,    87,    -1,    89,    -1,    91,    -1,    93,
2592       -1,    -1,    96,    -1,    -1,    -1,   100,   101,   102,   103,
2593       -1,   105,   106,    -1,   108,    -1,   110,    -1,    -1,    -1,
2594       -1,    -1,   116,    -1,   118,   119,   120,    -1,    -1,    -1,
2595       -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,   133,
2596      134,    -1,    -1,   137,   138,    -1,   140,    -1,    -1,    -1,
2597      144,     3,     4,     5,     6,     7,   150,   151,   152,   153,
2598       12,    -1,    -1,   157,   158,    -1,    -1,   161,    -1,   163,
2599      164,    -1,   166,    -1,    26,    -1,    -1,    -1,    -1,    -1,
2600       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2601       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,
2602       52,    53,    54,    55,    56,    57,    -1,    -1,    60,    61,
2603       62,    63,    64,    65,    66,    67,    68,    69,    -1,    -1,
2604       -1,    73,    74,    75,    76,    77,    -1,    79,    -1,    -1,
2605       -1,    83,    84,    85,    86,    87,    -1,    89,    -1,    91,
2606       -1,    93,    -1,    -1,    96,    -1,    -1,    -1,   100,   101,
2607      102,   103,    -1,   105,   106,    -1,   108,    -1,   110,    -1,
2608       -1,    -1,    -1,    -1,   116,    -1,   118,   119,   120,    -1,
2609       -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,   131,
2610      132,   133,   134,    -1,    -1,   137,   138,    -1,   140,    -1,
2611       -1,    -1,   144,     3,     4,     5,     6,     7,   150,   151,
2612      152,   153,    12,    -1,    -1,   157,   158,    -1,    -1,   161,
2613       -1,   163,   164,    -1,   166,    -1,    26,    -1,    -1,    -1,
2614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2615       -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,
2616       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
2617       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2618       -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,    79,
2619       -1,    -1,    -1,    83,    84,    85,    86,    87,    -1,    89,
2620       -1,    91,    -1,    93,    -1,    -1,    96,    -1,    -1,    -1,
2621      100,   101,   102,   103,    -1,   105,   106,    -1,   108,    -1,
2622      110,    -1,    -1,    -1,    -1,    -1,   116,    -1,   118,   119,
2623      120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,
2624      130,   131,   132,   133,   134,    -1,    -1,   137,   138,    -1,
2625      140,    -1,    -1,    -1,   144,     3,     4,     5,     6,     7,
2626      150,   151,   152,   153,    12,    -1,    -1,   157,   158,    -1,
2627       -1,   161,    -1,   163,   164,    -1,   166,    -1,    26,    -1,
2628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2629       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2630       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
2631       -1,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
2632       68,    69,    -1,    -1,    -1,    73,    74,    75,    76,    77,
2633       -1,    79,    -1,    -1,    -1,    83,    84,    85,    86,    87,
2634       -1,    89,    -1,    91,    -1,    93,    -1,    -1,    96,    -1,
2635       -1,    -1,   100,   101,   102,   103,    -1,   105,   106,    -1,
2636      108,    -1,   110,    -1,    -1,    -1,    -1,    -1,   116,    -1,
2637      118,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2638      128,   129,   130,   131,   132,   133,   134,    -1,    -1,   137,
2639      138,    -1,   140,    -1,    -1,    -1,   144,     3,     4,     5,
2640        6,     7,   150,   151,   152,   153,    12,    -1,    -1,   157,
2641      158,    -1,    -1,   161,    -1,   163,   164,    -1,   166,    -1,
2642       26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2643       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
2644       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
2645       56,    57,    -1,    -1,    60,    61,    62,    63,    64,    65,
2646       66,    67,    68,    69,    -1,    -1,    -1,    73,    74,    75,
2647       76,    77,    -1,    79,    -1,    -1,    -1,    83,    84,    85,
2648       86,    87,    -1,    89,    -1,    91,    -1,    93,    -1,    -1,
2649       96,    -1,    -1,    -1,   100,   101,   102,   103,    -1,   105,
2650      106,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
2651      116,    -1,   118,   119,   120,    -1,    -1,    -1,    -1,    -1,
2652       -1,    -1,   128,   129,   130,   131,   132,   133,   134,    -1,
2653       -1,   137,   138,    -1,   140,    -1,    -1,    -1,   144,     3,
2654        4,     5,     6,     7,   150,   151,   152,   153,    12,    -1,
2655       -1,   157,   158,    -1,    -1,   161,    -1,   163,   164,    -1,
2656      166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2657       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2658       44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
2659       54,    55,    56,    57,    -1,    -1,    60,    61,    62,    63,
2660       64,    65,    66,    67,    68,    69,    -1,    -1,    -1,    73,
2661       74,    75,    76,    77,    -1,    79,    -1,    -1,    -1,    83,
2662       84,    85,    86,    87,    -1,    89,    -1,    91,    -1,    93,
2663       -1,    -1,    96,    -1,    -1,    -1,   100,   101,   102,   103,
2664       -1,   105,   106,    -1,   108,    -1,   110,    -1,    -1,    -1,
2665       -1,    -1,   116,    -1,   118,   119,   120,    -1,    -1,    -1,
2666       -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,   133,
2667      134,    -1,    -1,   137,   138,    -1,   140,    -1,    -1,    -1,
2668      144,     3,     4,     5,     6,     7,   150,   151,   152,   153,
2669       12,    -1,    -1,   157,   158,    -1,    -1,   161,    -1,   163,
2670      164,    -1,   166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2671       32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2672       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,
2673       52,    53,    54,    55,    56,    57,    -1,    -1,    60,    61,
2674       62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
2675       -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,    -1,
2676       -1,    83,    84,    32,    33,    34,    35,    36,    37,    38,
2677       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2678       49,   103,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2679       -1,    -1,    -1,    -1,   116,    -1,    -1,   119,   120,    -1,
2680       -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,   131,
2681      132,   133,   134,    -1,     3,     4,     5,     6,     7,    -1,
2682       -1,    -1,   144,    12,    -1,    -1,    -1,    -1,   150,   151,
2683      152,   153,    -1,    -1,    -1,   157,   158,    -1,   160,   161,
2684       -1,    -1,    -1,    32,   166,    -1,    -1,    -1,    -1,    -1,
2685       -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,
2686       -1,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
2687       -1,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2688       -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,
2689       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
2690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2691       -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
2692       -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
2693      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,
2694      129,   130,   131,   132,   133,   134,    -1,     3,     4,     5,
2695        6,     7,    -1,    -1,    -1,   144,    12,    -1,    -1,    -1,
2696       -1,   150,   151,   152,   153,    -1,    -1,    -1,   157,   158,
2697       -1,    -1,   161,    -1,    -1,    -1,    -1,   166,    -1,    -1,
2698       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
2699       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
2700       56,    57,    -1,    -1,    60,    61,    62,    63,    64,    65,
2701       66,    67,    68,    -1,    -1,    -1,    -1,    73,    74,    75,
2702       76,    77,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
2703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2704       -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
2705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2706      116,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
2707       -1,    -1,   128,   129,   130,   131,   132,   133,   134,    -1,
2708        3,     4,     5,     6,     7,    -1,    -1,    -1,   144,    12,
2709       -1,    -1,    -1,    -1,   150,   151,   152,   153,    -1,    -1,
2710       -1,   157,   158,    -1,    -1,   161,    -1,   163,    -1,    -1,
2711      166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2712       -1,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,
2713       53,    54,    55,    56,    57,    -1,    -1,    60,    61,    62,
2714       63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
2715       73,    74,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,
2716       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2717       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2718      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2719       -1,    -1,    -1,   116,    -1,    -1,   119,   120,    -1,    -1,
2720       -1,    -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,
2721      133,   134,    -1,     3,     4,     5,     6,     7,    -1,    -1,
2722       -1,   144,    12,    -1,    -1,    -1,    -1,   150,   151,   152,
2723      153,    -1,    -1,    -1,   157,   158,    -1,    -1,   161,    -1,
2724      163,    -1,    -1,   166,    -1,    -1,    -1,    -1,    -1,    -1,
2725       -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,
2726       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
2727       60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
2728       -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,    -1,
2729       -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,
2730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2731       -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
2732       -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,   119,
2733      120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,
2734      130,   131,   132,   133,   134,    -1,     3,     4,     5,     6,
2735        7,    -1,    -1,    -1,   144,    12,    -1,    -1,    -1,    -1,
2736      150,   151,   152,   153,    -1,    -1,    -1,   157,   158,    -1,
2737       -1,   161,    -1,   163,    -1,    -1,   166,    -1,    -1,    -1,
2738       -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,
2739       -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,    56,
2740       57,    -1,    -1,    60,    61,    62,    63,    64,    65,    66,
2741       67,    68,    -1,    -1,    -1,    -1,    73,    74,    75,    76,
2742       77,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
2743       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2744       -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
2745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
2746       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
2747       -1,   128,   129,   130,   131,   132,   133,   134,    -1,     3,
2748        4,     5,     6,     7,    -1,    -1,    -1,   144,    12,    -1,
2749       -1,    -1,    -1,   150,   151,   152,   153,    -1,    -1,    -1,
2750      157,   158,    26,    -1,   161,   162,    -1,    -1,    -1,   166,
2751       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2752       44,    45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
2753       54,    55,    56,    57,    -1,    -1,    60,    61,    62,    63,
2754       64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    73,
2755       74,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,    83,
2756       84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2757       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
2758       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2759       -1,    -1,   116,    -1,    -1,   119,   120,    -1,    -1,    -1,
2760       -1,    -1,    -1,    -1,   128,   129,   130,   131,   132,   133,
2761      134,    -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,
2762      144,    12,    -1,    -1,    -1,    -1,   150,   151,   152,   153,
2763       -1,    -1,    -1,   157,   158,    -1,    -1,   161,    -1,    -1,
2764       -1,    32,   166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2765       -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    50,
2766       -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    60,
2767       61,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
2768       -1,    -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,
2769       -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
2770       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2771       -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2772       -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,   119,   120,
2773       -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,
2774      131,   132,   133,   134,    -1,     3,     4,     5,     6,     7,
2775       -1,    -1,    -1,   144,    12,    -1,    -1,    -1,    -1,   150,
2776      151,   152,   153,    -1,    -1,    -1,   157,   158,    -1,    -1,
2777      161,    -1,    -1,    -1,    32,   166,    -1,    -1,    -1,    -1,
2778       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
2779       -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
2780       -1,    -1,    60,    61,    62,    63,    64,    65,    66,    67,
2781       68,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
2782       -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
2783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2784       -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
2785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
2786       -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2787      128,   129,   130,   131,   132,   133,   134,    -1,     3,     4,
2788        5,     6,     7,    -1,    -1,    -1,   144,    12,    -1,    -1,
2789       -1,    -1,   150,   151,   152,   153,    -1,    -1,    -1,   157,
2790      158,    -1,    -1,   161,    -1,    -1,    -1,    32,   166,    -1,
2791       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
2792       45,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,
2793       55,    56,    57,    -1,    -1,    60,    61,    62,    63,    64,
2794       65,    66,    67,    68,    -1,    -1,    -1,    -1,    73,    74,
2795       75,    76,    77,    -1,    -1,    -1,    -1,    -1,    83,    84,
2796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2797       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
2798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2799       -1,   116,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,
2800       -1,    -1,    -1,   128,   129,   130,   131,   132,   133,   134,
2801       -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,   144,
2802       12,    -1,    -1,    -1,    -1,   150,   151,   152,   153,    -1,
2803       -1,    -1,   157,   158,    -1,    -1,   161,    -1,    -1,    -1,
2804       32,   166,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2805       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    50,    -1,
2806       52,    53,    54,    55,    56,    57,    -1,    -1,    60,    61,
2807       62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
2808       -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,    -1,
2809       -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2810       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2811       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2812       -1,    -1,    -1,    -1,   116,    -1,    -1,   119,   120,    -1,
2813       -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,   131,
2814      132,   133,   134,    -1,     3,     4,     5,     6,     7,    -1,
2815       -1,    -1,   144,    12,    -1,    -1,    -1,    -1,   150,   151,
2816      152,   153,    -1,    -1,    -1,   157,   158,    -1,    -1,   161,
2817       -1,    -1,    -1,    -1,   166,    -1,    -1,    -1,    -1,    -1,
2818       -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,
2819       -1,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
2820       -1,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2821       -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,    -1,
2822       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
2823       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2824       -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
2825       -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
2826      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,
2827      129,   130,   131,   132,   133,   134,    -1,     3,     4,     5,
2828        6,     7,    -1,    -1,    -1,   144,    12,    -1,    -1,    -1,
2829       -1,   150,   151,   152,   153,    -1,    -1,    -1,   157,   158,
2830       -1,    -1,   161,    -1,    -1,    -1,    -1,   166,    -1,    -1,
2831       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
2832       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
2833       56,    57,    -1,    -1,    60,    61,    62,    63,    64,    65,
2834       66,    67,    68,    -1,    -1,    -1,    -1,    73,    74,    75,
2835       76,    77,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
2836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2837       -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
2838       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2839      116,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
2840       -1,    -1,   128,   129,   130,   131,   132,   133,   134,    -1,
2841       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,
2842       -1,    -1,    -1,    -1,   150,   151,   152,   153,     9,    10,
2843       11,   157,   158,    -1,    -1,   161,    -1,    -1,    -1,    -1,
2844      166,    -1,    -1,    -1,    25,    -1,    27,    28,    29,    30,
2845       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2846       41,    42,    43,    44,    45,    46,    47,    48,    49,    -1,
2847       51,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
2848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    -1,    27,
2849       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2850       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2851       48,    49,    -1,    51,     9,    10,    11,    -1,    -1,    -1,
2852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2853       25,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
2854       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2855       45,    46,    47,    48,    49,    -1,    51,    -1,    -1,    -1,
2856       -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,    10,    11,
2857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2858       -1,    -1,    -1,    25,   165,    27,    28,    29,    30,    31,
2859       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2860       42,    43,    44,    45,    46,    47,    48,    49,    -1,    51,
2861       -1,    -1,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2862       -1,    -1,    -1,    -1,    -1,    -1,    -1,   165,    25,    26,
2863       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2864       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2865       47,    48,    49,    -1,    51,     9,    10,    11,    -1,    -1,
2866       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2867      165,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
2868       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2869       44,    45,    46,    47,    48,    49,    -1,    51,    -1,    -1,
2870       -1,    -1,    -1,    -1,    -1,    -1,     9,    10,    11,    -1,
2871       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2872       -1,    -1,    25,   165,    27,    28,    29,    30,    31,    32,
2873       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2874       43,    44,    45,    46,    47,    48,    49,    -1,    51,     9,
2875       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2876       -1,    -1,    -1,    -1,    -1,    25,   163,    27,    28,    29,
2877       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2878       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2879       -1,    51,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,   163,
2881       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2882       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2883       47,    48,    49,    -1,    51,    -1,    -1,    -1,    -1,    -1,
2884       -1,    -1,    -1,     9,    10,    11,    -1,    -1,    -1,    -1,
2885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,
2886      163,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2887       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2888       46,    47,    48,    49,    -1,    51,     9,    10,    11,    -1,
2889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2890       -1,    -1,    25,   163,    27,    28,    29,    30,    31,    32,
2891       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2892       43,    44,    45,    46,    47,    48,    49,    -1,    51,     9,
2893       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2894       -1,    -1,    -1,    -1,    -1,    25,   163,    27,    28,    29,
2895       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2896       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2897       -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,
2898       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2899       -1,    -1,    -1,    -1,    -1,    25,   162,    27,    28,    29,
2900       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2901       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2902       -1,    51,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
2903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,   162,
2904       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2905       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2906       47,    48,    49,    -1,    51,     9,    10,    11,    -1,    -1,
2907       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2908       -1,    25,   162,    27,    28,    29,    30,    31,    32,    33,
2909       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2910       44,    45,    46,    47,    48,    49,    -1,    51,    -1,    -1,
2911       -1,    -1,    -1,    -1,    -1,     9,    10,    11,    -1,    -1,
2912       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2913       -1,    25,   162,    27,    28,    29,    30,    31,    32,    33,
2914       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2915       44,    45,    46,    47,    48,    49,    -1,    51,     9,    10,
2916       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2917       -1,    -1,    -1,    -1,    25,   162,    27,    28,    29,    30,
2918       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2919       41,    42,    43,    44,    45,    46,    47,    48,    49,    -1,
2920       51,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
2921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,   162,    27,
2922       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2923       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2924       48,    49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
2925       -1,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
2926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,   162,    27,
2927       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2928       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2929       48,    49,    -1,    51,     9,    10,    11,    -1,    -1,    -1,
2930       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2931       25,   162,    27,    28,    29,    30,    31,    32,    33,    34,
2932       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2933       45,    46,    47,    48,    49,    -1,    51,    -1,    -1,    -1,
2934       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2935       -1,    -1,    -1,    -1,   162,     9,    10,    11,    -1,    -1,
2936       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   127,
2937       -1,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
2938       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2939       44,    45,    46,    47,    48,    49,    -1,    51,     9,    10,
2940       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2941       -1,    -1,   127,    -1,    25,    26,    27,    28,    29,    30,
2942       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2943       41,    42,    43,    44,    45,    46,    47,    48,    49,    -1,
2944       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2945       -1,    -1,    -1,    -1,    -1,    -1,     9,    10,    11,    -1,
2946       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2947       -1,    -1,    25,   127,    27,    28,    29,    30,    31,    32,
2948       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2949       43,    44,    45,    46,    47,    48,    49,    -1,    51,    10,
2950       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2951       -1,    -1,    -1,    -1,    25,    -1,    27,    28,    29,    30,
2952       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2953       41,    42,    43,    44,    45,    46,    47,    48,    49,    11,
2954       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2955       -1,    -1,    -1,    25,    -1,    27,    28,    29,    30,    31,
2956       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2957       42,    43,    44,    45,    46,    47,    48,    49,    -1,    51,
2958       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2959       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2960       47,    48,    49,    -1,    51,    29,    30,    31,    32,    33,
2961       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2962       44,    45,    46,    47,    48,    49,    -1,    51,    30,    31,
2963       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2964       42,    43,    44,    45,    46,    47,    48,    49,    -1,    51,
2965       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2966       41,    42,    43,    44,    45,    46,    47,    48,    49,    -1,
2967       51
2968 };
2969 
2970 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2971    symbol of state STATE-NUM.  */
2972 static const yytype_uint16 yystos[] =
2973 {
2974        0,   169,   170,     0,     3,     4,     5,     6,     7,    12,
2975       44,    45,    50,    52,    53,    54,    55,    56,    57,    60,
2976       61,    62,    63,    64,    65,    66,    67,    68,    69,    73,
2977       74,    75,    76,    77,    79,    83,    84,    85,    86,    87,
2978       89,    91,    93,    96,   100,   101,   102,   103,   104,   105,
2979      106,   108,   109,   110,   114,   115,   116,   118,   119,   120,
2980      121,   122,   123,   128,   129,   130,   131,   132,   133,   134,
2981      137,   138,   140,   144,   150,   151,   152,   153,   156,   157,
2982      158,   161,   163,   164,   166,   171,   172,   175,   178,   179,
2983      186,   187,   189,   190,   191,   193,   249,   250,   251,   254,
2984      255,   263,   266,   270,   271,   273,   274,   280,   281,   282,
2985      283,   284,   285,   286,   287,   292,   297,   299,   300,   301,
2986      302,   303,    75,   116,   150,   158,   251,   270,   270,   161,
2987      270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
2988      270,   270,   270,   270,   270,    75,   116,   150,   153,   161,
2989      171,   255,   273,   274,   282,   273,    32,   270,   295,   296,
2990      270,   122,   150,   153,   171,   255,   257,   258,   282,   285,
2991      286,   292,   161,   261,   161,    26,    65,    65,   246,   270,
2992      178,   161,   161,   161,   161,   161,   163,   270,   163,   270,
2993       75,    75,   163,   249,   270,   274,   164,   270,   153,   171,
2994      173,   174,    77,   166,   220,   221,   122,   122,    77,   222,
2995      251,   161,   161,   161,   161,   161,   161,   153,   164,   171,
2996      171,   249,   270,   274,   250,   270,   302,   176,   164,   153,
2997      161,     8,   163,    75,    75,   163,    32,   188,    65,   147,
2998        9,    10,    11,    25,    27,    28,    29,    30,    31,    32,
2999       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3000       43,    44,    45,    46,    47,    48,    49,    51,   163,    63,
3001       64,    13,    14,    15,    16,    17,    18,    19,    20,    21,
3002       22,    23,    24,   161,   147,    65,   126,    65,   164,   166,
3003      286,    65,    65,    65,   188,   270,   153,   171,   302,   147,
3004      147,   272,   274,   127,   167,     8,   268,   161,   262,   153,
3005      171,   147,   262,   147,   126,   286,   162,   270,   270,   270,
3006      288,   288,     8,   163,    87,   270,   247,   248,   270,   249,
3007      274,    75,   202,   270,   163,   163,   163,    13,   163,   163,
3008      176,   163,   171,    95,     8,   163,   164,   271,   274,     8,
3009      163,    13,     8,   163,   188,   184,   185,   274,   274,   298,
3010      274,   162,   128,   274,   293,   294,   295,   171,   170,   163,
3011      164,   161,   127,   162,   162,   162,   121,   165,   177,   178,
3012      186,   187,   270,    75,    32,   160,   217,   218,   219,   270,
3013       75,   124,   192,   124,   194,    75,   161,   288,    75,   280,
3014      286,   292,   270,   270,   270,    26,   270,   270,   270,   270,
3015      270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
3016      270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
3017      257,    32,   270,   270,   270,   270,   270,   270,   270,   270,
3018      270,   270,   270,   270,   217,    75,   280,   288,    75,   164,
3019      280,   289,   290,   291,   288,   270,   288,   288,   288,   162,
3020      171,    75,    75,    32,   270,    32,   270,   217,   192,   171,
3021      280,   280,   289,   162,   162,   167,   167,   270,   161,   162,
3022      163,     8,    95,    95,    13,     8,   162,   162,    44,    45,
3023       65,    83,   129,   150,   153,   171,   255,   263,   264,   265,
3024      165,    95,    75,   174,   270,   221,   264,    77,   161,     8,
3025      162,     8,   162,   162,   163,   161,     8,   162,   162,   161,
3026      165,   170,   217,   249,   274,   161,   165,   272,   270,   162,
3027        8,    13,   150,   153,   171,   256,   125,   195,   196,   256,
3028      164,   161,    25,   129,   155,   211,   212,   214,   215,   256,
3029      167,   161,   161,   286,   270,    26,    67,   274,   162,   161,
3030      161,   167,   270,   161,   277,   278,   279,    65,   164,   167,
3031      165,   167,   167,   167,   272,   272,   127,   162,   195,   259,
3032       26,   178,   270,    26,   178,   206,   247,   270,   274,    32,
3033      198,   274,   264,    75,    26,   178,   201,    26,   164,   203,
3034      264,   264,   264,   267,   269,   161,   153,   171,   147,   107,
3035      159,   180,   181,   183,    75,   165,    13,   211,   185,   163,
3036      274,   293,   294,    13,   217,   165,   162,   162,   219,   264,
3037      153,   171,   196,   164,     8,   223,   211,   215,   162,     8,
3038       32,    77,   160,   213,   217,   217,   270,   257,   217,   217,
3039      165,   217,    65,    65,   275,   288,   270,    32,   270,   164,
3040      126,   260,   176,   207,   162,   176,   163,   127,   197,   274,
3041      197,    13,   176,   163,   204,   163,   204,   127,   167,     8,
3042      268,   267,   171,    75,   161,   164,   181,   182,   183,   264,
3043      162,   162,   270,   162,   163,   171,   223,   256,   104,   109,
3044      111,   112,   113,   114,   115,   116,   117,   165,   224,   226,
3045      239,   240,   241,   242,   243,   245,   162,   109,   252,   214,
3046      213,    77,    13,   162,   162,   262,   162,   162,   162,   288,
3047      288,   126,   276,   167,   165,   272,   223,   289,   208,    70,
3048       71,   209,   163,    88,   247,   198,   162,   162,   264,    94,
3049      204,    97,    98,    99,   204,   165,   264,   264,   162,   256,
3050      176,   252,   165,    75,   227,   256,    77,   244,   251,   242,
3051        8,   163,    26,   216,   161,   216,    32,   213,    13,   264,
3052      167,   167,   289,   165,    70,    71,   210,   161,   178,   163,
3053      162,    26,   178,   200,   200,   163,    97,   163,   270,    26,
3054      163,   205,   165,   127,    77,   165,   216,    13,     8,   163,
3055      164,   228,    13,     8,   163,   225,    75,   214,   164,    32,
3056       77,   253,   164,   213,    13,   264,   279,   161,    26,    72,
3057      270,    26,   178,   199,   176,   163,   205,   176,   264,   162,
3058      164,   264,   256,    75,   229,   230,   231,   232,   234,   235,
3059      236,   256,   264,    77,   188,    13,   176,    77,     8,   162,
3060      176,    13,   264,   270,   176,   163,   162,   176,    92,   176,
3061      164,   176,   165,   231,   163,    95,   154,   163,   147,    13,
3062       75,   264,   165,    32,    77,   165,   264,   162,   178,    90,
3063      163,   176,   165,   237,   242,   233,   256,    75,   264,   161,
3064       77,    26,   163,   165,    75,     8,   211,   176,   256,   162,
3065      216,   163,   164,   238,   176,   165
3066 };
3067 
3068 #define yyerrok		(yyerrstatus = 0)
3069 #define yyclearin	(yychar = YYEMPTY)
3070 #define YYEMPTY		(-2)
3071 #define YYEOF		0
3072 
3073 #define YYACCEPT	goto yyacceptlab
3074 #define YYABORT		goto yyabortlab
3075 #define YYERROR		goto yyerrorlab
3076 
3077 
3078 /* Like YYERROR except do call yyerror.  This remains here temporarily
3079    to ease the transition to the new meaning of YYERROR, for GCC.
3080    Once GCC version 2 has supplanted version 1, this can go.  */
3081 
3082 #define YYFAIL		goto yyerrlab
3083 
3084 #define YYRECOVERING()  (!!yyerrstatus)
3085 
3086 #define YYBACKUP(Token, Value)					\
3087 do								\
3088   if (yychar == YYEMPTY && yylen == 1)				\
3089     {								\
3090       yychar = (Token);						\
3091       yylval = (Value);						\
3092       yytoken = YYTRANSLATE (yychar);				\
3093       YYPOPSTACK (1);						\
3094       goto yybackup;						\
3095     }								\
3096   else								\
3097     {								\
3098       yyerror (yyscanner, root, YY_("syntax error: cannot back up")); \
3099       YYERROR;							\
3100     }								\
3101 while (YYID (0))
3102 
3103 
3104 #define YYTERROR	1
3105 #define YYERRCODE	256
3106 
3107 
3108 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3109    If N is 0, then set CURRENT to the empty location which ends
3110    the previous symbol: RHS[0] (always defined).  */
3111 
3112 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3113 #ifndef YYLLOC_DEFAULT
3114 # define YYLLOC_DEFAULT(Current, Rhs, N)				\
3115     do									\
3116       if (YYID (N))                                                    \
3117 	{								\
3118 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
3119 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
3120 	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
3121 	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
3122 	}								\
3123       else								\
3124 	{								\
3125 	  (Current).first_line   = (Current).last_line   =		\
3126 	    YYRHSLOC (Rhs, 0).last_line;				\
3127 	  (Current).first_column = (Current).last_column =		\
3128 	    YYRHSLOC (Rhs, 0).last_column;				\
3129 	}								\
3130     while (YYID (0))
3131 #endif
3132 
3133 
3134 /* YY_LOCATION_PRINT -- Print the location on the stream.
3135    This macro was not mandated originally: define only if we know
3136    we won't break user code: when these are the locations we know.  */
3137 
3138 #ifndef YY_LOCATION_PRINT
3139 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3140 #  define YY_LOCATION_PRINT(File, Loc)			\
3141      fprintf (File, "%d.%d-%d.%d",			\
3142 	      (Loc).first_line, (Loc).first_column,	\
3143 	      (Loc).last_line,  (Loc).last_column)
3144 # else
3145 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3146 # endif
3147 #endif
3148 
3149 
3150 /* YYLEX -- calling `yylex' with the right arguments.  */
3151 
3152 #ifdef YYLEX_PARAM
3153 # define YYLEX yylex (&yylval, YYLEX_PARAM)
3154 #else
3155 # define YYLEX yylex (&yylval, yyscanner)
3156 #endif
3157 
3158 /* Enable debugging if requested.  */
3159 #if YYDEBUG
3160 
3161 # ifndef YYFPRINTF
3162 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3163 #  define YYFPRINTF fprintf
3164 # endif
3165 
3166 # define YYDPRINTF(Args)			\
3167 do {						\
3168   if (yydebug)					\
3169     YYFPRINTF Args;				\
3170 } while (YYID (0))
3171 
3172 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
3173 do {									  \
3174   if (yydebug)								  \
3175     {									  \
3176       YYFPRINTF (stderr, "%s ", Title);					  \
3177       yy_symbol_print (stderr,						  \
3178 		  Type, Value, yyscanner, root); \
3179       YYFPRINTF (stderr, "\n");						  \
3180     }									  \
3181 } while (YYID (0))
3182 
3183 
3184 /*--------------------------------.
3185 | Print this symbol on YYOUTPUT.  |
3186 `--------------------------------*/
3187 
3188 /*ARGSUSED*/
3189 #if (defined __STDC__ || defined __C99__FUNC__ \
3190      || defined __cplusplus || defined _MSC_VER)
3191 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,void * yyscanner,xhpast::Node ** root)3192 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void* yyscanner, xhpast::Node** root)
3193 #else
3194 static void
3195 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yyscanner, root)
3196     FILE *yyoutput;
3197     int yytype;
3198     YYSTYPE const * const yyvaluep;
3199     void* yyscanner;
3200     xhpast::Node** root;
3201 #endif
3202 {
3203   if (!yyvaluep)
3204     return;
3205   YYUSE (yyscanner);
3206   YYUSE (root);
3207 # ifdef YYPRINT
3208   if (yytype < YYNTOKENS)
3209     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3210 # else
3211   YYUSE (yyoutput);
3212 # endif
3213   switch (yytype)
3214     {
3215       default:
3216 	break;
3217     }
3218 }
3219 
3220 
3221 /*--------------------------------.
3222 | Print this symbol on YYOUTPUT.  |
3223 `--------------------------------*/
3224 
3225 #if (defined __STDC__ || defined __C99__FUNC__ \
3226      || defined __cplusplus || defined _MSC_VER)
3227 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,void * yyscanner,xhpast::Node ** root)3228 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void* yyscanner, xhpast::Node** root)
3229 #else
3230 static void
3231 yy_symbol_print (yyoutput, yytype, yyvaluep, yyscanner, root)
3232     FILE *yyoutput;
3233     int yytype;
3234     YYSTYPE const * const yyvaluep;
3235     void* yyscanner;
3236     xhpast::Node** root;
3237 #endif
3238 {
3239   if (yytype < YYNTOKENS)
3240     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3241   else
3242     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3243 
3244   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yyscanner, root);
3245   YYFPRINTF (yyoutput, ")");
3246 }
3247 
3248 /*------------------------------------------------------------------.
3249 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3250 | TOP (included).                                                   |
3251 `------------------------------------------------------------------*/
3252 
3253 #if (defined __STDC__ || defined __C99__FUNC__ \
3254      || defined __cplusplus || defined _MSC_VER)
3255 static void
yy_stack_print(yytype_int16 * bottom,yytype_int16 * top)3256 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
3257 #else
3258 static void
3259 yy_stack_print (bottom, top)
3260     yytype_int16 *bottom;
3261     yytype_int16 *top;
3262 #endif
3263 {
3264   YYFPRINTF (stderr, "Stack now");
3265   for (; bottom <= top; ++bottom)
3266     YYFPRINTF (stderr, " %d", *bottom);
3267   YYFPRINTF (stderr, "\n");
3268 }
3269 
3270 # define YY_STACK_PRINT(Bottom, Top)				\
3271 do {								\
3272   if (yydebug)							\
3273     yy_stack_print ((Bottom), (Top));				\
3274 } while (YYID (0))
3275 
3276 
3277 /*------------------------------------------------.
3278 | Report that the YYRULE is going to be reduced.  |
3279 `------------------------------------------------*/
3280 
3281 #if (defined __STDC__ || defined __C99__FUNC__ \
3282      || defined __cplusplus || defined _MSC_VER)
3283 static void
yy_reduce_print(YYSTYPE * yyvsp,int yyrule,void * yyscanner,xhpast::Node ** root)3284 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, void* yyscanner, xhpast::Node** root)
3285 #else
3286 static void
3287 yy_reduce_print (yyvsp, yyrule, yyscanner, root)
3288     YYSTYPE *yyvsp;
3289     int yyrule;
3290     void* yyscanner;
3291     xhpast::Node** root;
3292 #endif
3293 {
3294   int yynrhs = yyr2[yyrule];
3295   int yyi;
3296   unsigned long int yylno = yyrline[yyrule];
3297   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3298 	     yyrule - 1, yylno);
3299   /* The symbols being reduced.  */
3300   for (yyi = 0; yyi < yynrhs; yyi++)
3301     {
3302       fprintf (stderr, "   $%d = ", yyi + 1);
3303       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3304 		       &(yyvsp[(yyi + 1) - (yynrhs)])
3305 		       		       , yyscanner, root);
3306       fprintf (stderr, "\n");
3307     }
3308 }
3309 
3310 # define YY_REDUCE_PRINT(Rule)		\
3311 do {					\
3312   if (yydebug)				\
3313     yy_reduce_print (yyvsp, Rule, yyscanner, root); \
3314 } while (YYID (0))
3315 
3316 /* Nonzero means print parse trace.  It is left uninitialized so that
3317    multiple parsers can coexist.  */
3318 int yydebug;
3319 #else /* !YYDEBUG */
3320 # define YYDPRINTF(Args)
3321 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3322 # define YY_STACK_PRINT(Bottom, Top)
3323 # define YY_REDUCE_PRINT(Rule)
3324 #endif /* !YYDEBUG */
3325 
3326 
3327 /* YYINITDEPTH -- initial size of the parser's stacks.  */
3328 #ifndef	YYINITDEPTH
3329 # define YYINITDEPTH 200
3330 #endif
3331 
3332 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3333    if the built-in stack extension method is used).
3334 
3335    Do not make this value too large; the results are undefined if
3336    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3337    evaluated with infinite-precision integer arithmetic.  */
3338 
3339 #ifndef YYMAXDEPTH
3340 # define YYMAXDEPTH 10000
3341 #endif
3342 
3343 
3344 
3345 #if YYERROR_VERBOSE
3346 
3347 # ifndef yystrlen
3348 #  if defined __GLIBC__ && defined _STRING_H
3349 #   define yystrlen strlen
3350 #  else
3351 /* Return the length of YYSTR.  */
3352 #if (defined __STDC__ || defined __C99__FUNC__ \
3353      || defined __cplusplus || defined _MSC_VER)
3354 static YYSIZE_T
yystrlen(const char * yystr)3355 yystrlen (const char *yystr)
3356 #else
3357 static YYSIZE_T
3358 yystrlen (yystr)
3359     const char *yystr;
3360 #endif
3361 {
3362   YYSIZE_T yylen;
3363   for (yylen = 0; yystr[yylen]; yylen++)
3364     continue;
3365   return yylen;
3366 }
3367 #  endif
3368 # endif
3369 
3370 # ifndef yystpcpy
3371 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3372 #   define yystpcpy stpcpy
3373 #  else
3374 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3375    YYDEST.  */
3376 #if (defined __STDC__ || defined __C99__FUNC__ \
3377      || defined __cplusplus || defined _MSC_VER)
3378 static char *
yystpcpy(char * yydest,const char * yysrc)3379 yystpcpy (char *yydest, const char *yysrc)
3380 #else
3381 static char *
3382 yystpcpy (yydest, yysrc)
3383     char *yydest;
3384     const char *yysrc;
3385 #endif
3386 {
3387   char *yyd = yydest;
3388   const char *yys = yysrc;
3389 
3390   while ((*yyd++ = *yys++) != '\0')
3391     continue;
3392 
3393   return yyd - 1;
3394 }
3395 #  endif
3396 # endif
3397 
3398 # ifndef yytnamerr
3399 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3400    quotes and backslashes, so that it's suitable for yyerror.  The
3401    heuristic is that double-quoting is unnecessary unless the string
3402    contains an apostrophe, a comma, or backslash (other than
3403    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3404    null, do not copy; instead, return the length of what the result
3405    would have been.  */
3406 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3407 yytnamerr (char *yyres, const char *yystr)
3408 {
3409   if (*yystr == '"')
3410     {
3411       YYSIZE_T yyn = 0;
3412       char const *yyp = yystr;
3413 
3414       for (;;)
3415 	switch (*++yyp)
3416 	  {
3417 	  case '\'':
3418 	  case ',':
3419 	    goto do_not_strip_quotes;
3420 
3421 	  case '\\':
3422 	    if (*++yyp != '\\')
3423 	      goto do_not_strip_quotes;
3424 	    /* Fall through.  */
3425 	  default:
3426 	    if (yyres)
3427 	      yyres[yyn] = *yyp;
3428 	    yyn++;
3429 	    break;
3430 
3431 	  case '"':
3432 	    if (yyres)
3433 	      yyres[yyn] = '\0';
3434 	    return yyn;
3435 	  }
3436     do_not_strip_quotes: ;
3437     }
3438 
3439   if (! yyres)
3440     return yystrlen (yystr);
3441 
3442   return yystpcpy (yyres, yystr) - yyres;
3443 }
3444 # endif
3445 
3446 /* Copy into YYRESULT an error message about the unexpected token
3447    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3448    including the terminating null byte.  If YYRESULT is null, do not
3449    copy anything; just return the number of bytes that would be
3450    copied.  As a special case, return 0 if an ordinary "syntax error"
3451    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3452    size calculation.  */
3453 static YYSIZE_T
yysyntax_error(char * yyresult,int yystate,int yychar)3454 yysyntax_error (char *yyresult, int yystate, int yychar)
3455 {
3456   int yyn = yypact[yystate];
3457 
3458   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3459     return 0;
3460   else
3461     {
3462       int yytype = YYTRANSLATE (yychar);
3463       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3464       YYSIZE_T yysize = yysize0;
3465       YYSIZE_T yysize1;
3466       int yysize_overflow = 0;
3467       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3468       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3469       int yyx;
3470 
3471 # if 0
3472       /* This is so xgettext sees the translatable formats that are
3473 	 constructed on the fly.  */
3474       YY_("syntax error, unexpected %s");
3475       YY_("syntax error, unexpected %s, expecting %s");
3476       YY_("syntax error, unexpected %s, expecting %s or %s");
3477       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3478       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3479 # endif
3480       char *yyfmt;
3481       char const *yyf;
3482       static char const yyunexpected[] = "syntax error, unexpected %s";
3483       static char const yyexpecting[] = ", expecting %s";
3484       static char const yyor[] = " or %s";
3485       char yyformat[sizeof yyunexpected
3486 		    + sizeof yyexpecting - 1
3487 		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3488 		       * (sizeof yyor - 1))];
3489       char const *yyprefix = yyexpecting;
3490 
3491       /* Start YYX at -YYN if negative to avoid negative indexes in
3492 	 YYCHECK.  */
3493       int yyxbegin = yyn < 0 ? -yyn : 0;
3494 
3495       /* Stay within bounds of both yycheck and yytname.  */
3496       int yychecklim = YYLAST - yyn + 1;
3497       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3498       int yycount = 1;
3499 
3500       yyarg[0] = yytname[yytype];
3501       yyfmt = yystpcpy (yyformat, yyunexpected);
3502 
3503       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3504 	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3505 	  {
3506 	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3507 	      {
3508 		yycount = 1;
3509 		yysize = yysize0;
3510 		yyformat[sizeof yyunexpected - 1] = '\0';
3511 		break;
3512 	      }
3513 	    yyarg[yycount++] = yytname[yyx];
3514 	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3515 	    yysize_overflow |= (yysize1 < yysize);
3516 	    yysize = yysize1;
3517 	    yyfmt = yystpcpy (yyfmt, yyprefix);
3518 	    yyprefix = yyor;
3519 	  }
3520 
3521       yyf = YY_(yyformat);
3522       yysize1 = yysize + yystrlen (yyf);
3523       yysize_overflow |= (yysize1 < yysize);
3524       yysize = yysize1;
3525 
3526       if (yysize_overflow)
3527 	return YYSIZE_MAXIMUM;
3528 
3529       if (yyresult)
3530 	{
3531 	  /* Avoid sprintf, as that infringes on the user's name space.
3532 	     Don't have undefined behavior even if the translation
3533 	     produced a string with the wrong number of "%s"s.  */
3534 	  char *yyp = yyresult;
3535 	  int yyi = 0;
3536 	  while ((*yyp = *yyf) != '\0')
3537 	    {
3538 	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3539 		{
3540 		  yyp += yytnamerr (yyp, yyarg[yyi++]);
3541 		  yyf += 2;
3542 		}
3543 	      else
3544 		{
3545 		  yyp++;
3546 		  yyf++;
3547 		}
3548 	    }
3549 	}
3550       return yysize;
3551     }
3552 }
3553 #endif /* YYERROR_VERBOSE */
3554 
3555 
3556 /*-----------------------------------------------.
3557 | Release the memory associated to this symbol.  |
3558 `-----------------------------------------------*/
3559 
3560 /*ARGSUSED*/
3561 #if (defined __STDC__ || defined __C99__FUNC__ \
3562      || defined __cplusplus || defined _MSC_VER)
3563 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,void * yyscanner,xhpast::Node ** root)3564 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* yyscanner, xhpast::Node** root)
3565 #else
3566 static void
3567 yydestruct (yymsg, yytype, yyvaluep, yyscanner, root)
3568     const char *yymsg;
3569     int yytype;
3570     YYSTYPE *yyvaluep;
3571     void* yyscanner;
3572     xhpast::Node** root;
3573 #endif
3574 {
3575   YYUSE (yyvaluep);
3576   YYUSE (yyscanner);
3577   YYUSE (root);
3578 
3579   if (!yymsg)
3580     yymsg = "Deleting";
3581   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3582 
3583   switch (yytype)
3584     {
3585 
3586       default:
3587 	break;
3588     }
3589 }
3590 
3591 
3592 /* Prevent warnings from -Wmissing-prototypes.  */
3593 
3594 #ifdef YYPARSE_PARAM
3595 #if defined __STDC__ || defined __cplusplus
3596 int yyparse (void *YYPARSE_PARAM);
3597 #else
3598 int yyparse ();
3599 #endif
3600 #else /* ! YYPARSE_PARAM */
3601 #if defined __STDC__ || defined __cplusplus
3602 int yyparse (void* yyscanner, xhpast::Node** root);
3603 #else
3604 int yyparse ();
3605 #endif
3606 #endif /* ! YYPARSE_PARAM */
3607 
3608 
3609 
3610 
3611 
3612 
3613 /*----------.
3614 | yyparse.  |
3615 `----------*/
3616 
3617 #ifdef YYPARSE_PARAM
3618 #if (defined __STDC__ || defined __C99__FUNC__ \
3619      || defined __cplusplus || defined _MSC_VER)
3620 int
yyparse(void * YYPARSE_PARAM)3621 yyparse (void *YYPARSE_PARAM)
3622 #else
3623 int
3624 yyparse (YYPARSE_PARAM)
3625     void *YYPARSE_PARAM;
3626 #endif
3627 #else /* ! YYPARSE_PARAM */
3628 #if (defined __STDC__ || defined __C99__FUNC__ \
3629      || defined __cplusplus || defined _MSC_VER)
3630 int
3631 yyparse (void* yyscanner, xhpast::Node** root)
3632 #else
3633 int
3634 yyparse (yyscanner, root)
3635     void* yyscanner;
3636     xhpast::Node** root;
3637 #endif
3638 #endif
3639 {
3640   /* The look-ahead symbol.  */
3641 int yychar;
3642 
3643 /* The semantic value of the look-ahead symbol.  */
3644 YYSTYPE yylval;
3645 
3646 /* Number of syntax errors so far.  */
3647 int yynerrs;
3648 
3649   int yystate;
3650   int yyn;
3651   int yyresult;
3652   /* Number of tokens to shift before error messages enabled.  */
3653   int yyerrstatus;
3654   /* Look-ahead token as an internal (translated) token number.  */
3655   int yytoken = 0;
3656 #if YYERROR_VERBOSE
3657   /* Buffer for error messages, and its allocated size.  */
3658   char yymsgbuf[128];
3659   char *yymsg = yymsgbuf;
3660   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3661 #endif
3662 
3663   /* Three stacks and their tools:
3664      `yyss': related to states,
3665      `yyvs': related to semantic values,
3666      `yyls': related to locations.
3667 
3668      Refer to the stacks thru separate pointers, to allow yyoverflow
3669      to reallocate them elsewhere.  */
3670 
3671   /* The state stack.  */
3672   yytype_int16 yyssa[YYINITDEPTH];
3673   yytype_int16 *yyss = yyssa;
3674   yytype_int16 *yyssp;
3675 
3676   /* The semantic value stack.  */
3677   YYSTYPE yyvsa[YYINITDEPTH];
3678   YYSTYPE *yyvs = yyvsa;
3679   YYSTYPE *yyvsp;
3680 
3681 
3682 
3683 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3684 
3685   YYSIZE_T yystacksize = YYINITDEPTH;
3686 
3687   /* The variables used to return semantic value and location from the
3688      action routines.  */
3689   YYSTYPE yyval;
3690 
3691 
3692   /* The number of symbols on the RHS of the reduced rule.
3693      Keep to zero when no symbol should be popped.  */
3694   int yylen = 0;
3695 
3696   YYDPRINTF ((stderr, "Starting parse\n"));
3697 
3698   yystate = 0;
3699   yyerrstatus = 0;
3700   yynerrs = 0;
3701   yychar = YYEMPTY;		/* Cause a token to be read.  */
3702 
3703   /* Initialize stack pointers.
3704      Waste one element of value and location stack
3705      so that they stay on the same level as the state stack.
3706      The wasted elements are never initialized.  */
3707 
3708   yyssp = yyss;
3709   yyvsp = yyvs;
3710 
3711   goto yysetstate;
3712 
3713 /*------------------------------------------------------------.
3714 | yynewstate -- Push a new state, which is found in yystate.  |
3715 `------------------------------------------------------------*/
3716  yynewstate:
3717   /* In all cases, when you get here, the value and location stacks
3718      have just been pushed.  So pushing a state here evens the stacks.  */
3719   yyssp++;
3720 
3721  yysetstate:
3722   *yyssp = yystate;
3723 
3724   if (yyss + yystacksize - 1 <= yyssp)
3725     {
3726       /* Get the current used size of the three stacks, in elements.  */
3727       YYSIZE_T yysize = yyssp - yyss + 1;
3728 
3729 #ifdef yyoverflow
3730       {
3731 	/* Give user a chance to reallocate the stack.  Use copies of
3732 	   these so that the &'s don't force the real ones into
3733 	   memory.  */
3734 	YYSTYPE *yyvs1 = yyvs;
3735 	yytype_int16 *yyss1 = yyss;
3736 
3737 
3738 	/* Each stack pointer address is followed by the size of the
3739 	   data in use in that stack, in bytes.  This used to be a
3740 	   conditional around just the two extra args, but that might
3741 	   be undefined if yyoverflow is a macro.  */
3742 	yyoverflow (YY_("memory exhausted"),
3743 		    &yyss1, yysize * sizeof (*yyssp),
3744 		    &yyvs1, yysize * sizeof (*yyvsp),
3745 
3746 		    &yystacksize);
3747 
3748 	yyss = yyss1;
3749 	yyvs = yyvs1;
3750       }
3751 #else /* no yyoverflow */
3752 # ifndef YYSTACK_RELOCATE
3753       goto yyexhaustedlab;
3754 # else
3755       /* Extend the stack our own way.  */
3756       if (YYMAXDEPTH <= yystacksize)
3757 	goto yyexhaustedlab;
3758       yystacksize *= 2;
3759       if (YYMAXDEPTH < yystacksize)
3760 	yystacksize = YYMAXDEPTH;
3761 
3762       {
3763 	yytype_int16 *yyss1 = yyss;
3764 	union yyalloc *yyptr =
3765 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3766 	if (! yyptr)
3767 	  goto yyexhaustedlab;
3768 	YYSTACK_RELOCATE (yyss);
3769 	YYSTACK_RELOCATE (yyvs);
3770 
3771 #  undef YYSTACK_RELOCATE
3772 	if (yyss1 != yyssa)
3773 	  YYSTACK_FREE (yyss1);
3774       }
3775 # endif
3776 #endif /* no yyoverflow */
3777 
3778       yyssp = yyss + yysize - 1;
3779       yyvsp = yyvs + yysize - 1;
3780 
3781 
3782       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3783 		  (unsigned long int) yystacksize));
3784 
3785       if (yyss + yystacksize - 1 <= yyssp)
3786 	YYABORT;
3787     }
3788 
3789   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3790 
3791   goto yybackup;
3792 
3793 /*-----------.
3794 | yybackup.  |
3795 `-----------*/
3796 yybackup:
3797 
3798   /* Do appropriate processing given the current state.  Read a
3799      look-ahead token if we need one and don't already have one.  */
3800 
3801   /* First try to decide what to do without reference to look-ahead token.  */
3802   yyn = yypact[yystate];
3803   if (yyn == YYPACT_NINF)
3804     goto yydefault;
3805 
3806   /* Not known => get a look-ahead token if don't already have one.  */
3807 
3808   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
3809   if (yychar == YYEMPTY)
3810     {
3811       YYDPRINTF ((stderr, "Reading a token: "));
3812       yychar = YYLEX;
3813     }
3814 
3815   if (yychar <= YYEOF)
3816     {
3817       yychar = yytoken = YYEOF;
3818       YYDPRINTF ((stderr, "Now at end of input.\n"));
3819     }
3820   else
3821     {
3822       yytoken = YYTRANSLATE (yychar);
3823       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3824     }
3825 
3826   /* If the proper action on seeing token YYTOKEN is to reduce or to
3827      detect an error, take that action.  */
3828   yyn += yytoken;
3829   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3830     goto yydefault;
3831   yyn = yytable[yyn];
3832   if (yyn <= 0)
3833     {
3834       if (yyn == 0 || yyn == YYTABLE_NINF)
3835 	goto yyerrlab;
3836       yyn = -yyn;
3837       goto yyreduce;
3838     }
3839 
3840   if (yyn == YYFINAL)
3841     YYACCEPT;
3842 
3843   /* Count tokens shifted since error; after three, turn off error
3844      status.  */
3845   if (yyerrstatus)
3846     yyerrstatus--;
3847 
3848   /* Shift the look-ahead token.  */
3849   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3850 
3851   /* Discard the shifted token unless it is eof.  */
3852   if (yychar != YYEOF)
3853     yychar = YYEMPTY;
3854 
3855   yystate = yyn;
3856   *++yyvsp = yylval;
3857 
3858   goto yynewstate;
3859 
3860 
3861 /*-----------------------------------------------------------.
3862 | yydefault -- do the default action for the current state.  |
3863 `-----------------------------------------------------------*/
3864 yydefault:
3865   yyn = yydefact[yystate];
3866   if (yyn == 0)
3867     goto yyerrlab;
3868   goto yyreduce;
3869 
3870 
3871 /*-----------------------------.
3872 | yyreduce -- Do a reduction.  |
3873 `-----------------------------*/
3874 yyreduce:
3875   /* yyn is the number of a rule to reduce with.  */
3876   yylen = yyr2[yyn];
3877 
3878   /* If YYLEN is nonzero, implement the default value of the action:
3879      `$$ = $1'.
3880 
3881      Otherwise, the following line sets YYVAL to garbage.
3882      This behavior is undocumented and Bison
3883      users should not rely upon it.  Assigning to YYVAL
3884      unconditionally makes the parser a bit smaller, and it avoids a
3885      GCC warning that YYVAL may be used uninitialized.  */
3886   yyval = yyvsp[1-yylen];
3887 
3888 
3889   YY_REDUCE_PRINT (yyn);
3890   switch (yyn)
3891     {
3892         case 2:
3893 #line 207 "parser.y"
3894     {
3895     *root = NNEW(n_PROGRAM)->appendChild((yyvsp[(1) - (1)]));
3896   ;}
3897     break;
3898 
3899   case 3:
3900 #line 213 "parser.y"
3901     {
3902     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
3903   ;}
3904     break;
3905 
3906   case 4:
3907 #line 216 "parser.y"
3908     {
3909     (yyval) = NNEW(n_STATEMENT_LIST);
3910   ;}
3911     break;
3912 
3913   case 5:
3914 #line 222 "parser.y"
3915     {
3916     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_SYMBOL_NAME);
3917   ;}
3918     break;
3919 
3920   case 6:
3921 #line 225 "parser.y"
3922     {
3923     (yyval) = NMORE((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));
3924   ;}
3925     break;
3926 
3927   case 10:
3928 #line 234 "parser.y"
3929     {
3930     (yyvsp[(1) - (4)]) = NSPAN((yyvsp[(1) - (4)]), n_HALT_COMPILER, (yyvsp[(3) - (4)]));
3931     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (4)]));
3932     NMORE((yyval), (yyvsp[(4) - (4)]));
3933   ;}
3934     break;
3935 
3936   case 11:
3937 #line 239 "parser.y"
3938     {
3939     NSPAN((yyvsp[(1) - (3)]), n_NAMESPACE, (yyvsp[(2) - (3)]));
3940     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
3941     (yyvsp[(1) - (3)])->appendChild(NNEW(n_EMPTY));
3942     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
3943     NMORE((yyval), (yyvsp[(3) - (3)]));
3944   ;}
3945     break;
3946 
3947   case 12:
3948 #line 246 "parser.y"
3949     {
3950   NSPAN((yyvsp[(1) - (5)]), n_NAMESPACE, (yyvsp[(5) - (5)]));
3951   (yyvsp[(1) - (5)])->appendChild((yyvsp[(2) - (5)]));
3952   (yyvsp[(1) - (5)])->appendChild(NEXPAND((yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]), (yyvsp[(5) - (5)])));
3953   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (5)]));
3954   ;}
3955     break;
3956 
3957   case 13:
3958 #line 252 "parser.y"
3959     {
3960   NSPAN((yyvsp[(1) - (4)]), n_NAMESPACE, (yyvsp[(4) - (4)]));
3961   (yyvsp[(1) - (4)])->appendChild(NNEW(n_EMPTY));
3962   NMORE((yyvsp[(3) - (4)]), (yyvsp[(4) - (4)]));
3963   NMORE((yyvsp[(3) - (4)]), (yyvsp[(2) - (4)]));
3964   (yyvsp[(1) - (4)])->appendChild((yyvsp[(3) - (4)]));
3965   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (4)]));
3966   ;}
3967     break;
3968 
3969   case 14:
3970 #line 260 "parser.y"
3971     {
3972   NMORE((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)]));
3973   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(2) - (3)]));
3974   NMORE((yyval), (yyvsp[(3) - (3)]));
3975   ;}
3976     break;
3977 
3978   case 15:
3979 #line 265 "parser.y"
3980     {
3981   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
3982   NMORE((yyval), (yyvsp[(2) - (2)]));
3983   ;}
3984     break;
3985 
3986   case 16:
3987 #line 272 "parser.y"
3988     {
3989     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
3990   ;}
3991     break;
3992 
3993   case 17:
3994 #line 275 "parser.y"
3995     {
3996     (yyval) = NNEW(n_USE_LIST);
3997     (yyval)->appendChild((yyvsp[(1) - (1)]));
3998   ;}
3999     break;
4000 
4001   case 18:
4002 #line 282 "parser.y"
4003     {
4004     (yyval) = NNEW(n_USE);
4005     (yyval)->appendChild((yyvsp[(1) - (1)]));
4006     (yyval)->appendChild(NNEW(n_EMPTY));
4007   ;}
4008     break;
4009 
4010   case 19:
4011 #line 287 "parser.y"
4012     {
4013     (yyval) = NNEW(n_USE);
4014     (yyval)->appendChild((yyvsp[(1) - (3)]));
4015     NTYPE((yyvsp[(3) - (3)]), n_STRING);
4016     (yyval)->appendChild((yyvsp[(3) - (3)]));
4017   ;}
4018     break;
4019 
4020   case 20:
4021 #line 293 "parser.y"
4022     {
4023     (yyval) = NNEW(n_USE);
4024     NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
4025     (yyval)->appendChild((yyvsp[(2) - (2)]));
4026     (yyval)->appendChild(NNEW(n_EMPTY));
4027   ;}
4028     break;
4029 
4030   case 21:
4031 #line 299 "parser.y"
4032     {
4033     (yyval) = NNEW(n_USE);
4034     NMORE((yyvsp[(2) - (4)]), (yyvsp[(1) - (4)]));
4035     (yyval)->appendChild((yyvsp[(2) - (4)]));
4036     NTYPE((yyvsp[(4) - (4)]), n_STRING);
4037     (yyval)->appendChild((yyvsp[(4) - (4)]));
4038   ;}
4039     break;
4040 
4041   case 22:
4042 #line 309 "parser.y"
4043     {
4044     NMORE((yyval), (yyvsp[(5) - (5)]));
4045     (yyval)->appendChild(
4046       NNEW(n_CONSTANT_DECLARATION)
4047         ->appendChild(NTYPE((yyvsp[(3) - (5)]), n_STRING))
4048         ->appendChild((yyvsp[(5) - (5)])));
4049   ;}
4050     break;
4051 
4052   case 23:
4053 #line 316 "parser.y"
4054     {
4055     NSPAN((yyval), n_CONSTANT_DECLARATION_LIST, (yyvsp[(4) - (4)]));
4056     (yyval)->appendChild(
4057       NNEW(n_CONSTANT_DECLARATION)
4058         ->appendChild(NTYPE((yyvsp[(2) - (4)]), n_STRING))
4059         ->appendChild((yyvsp[(4) - (4)])));
4060   ;}
4061     break;
4062 
4063   case 24:
4064 #line 326 "parser.y"
4065     {
4066     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
4067   ;}
4068     break;
4069 
4070   case 25:
4071 #line 329 "parser.y"
4072     {
4073     (yyval) = NNEW(n_STATEMENT_LIST);
4074   ;}
4075     break;
4076 
4077   case 29:
4078 #line 338 "parser.y"
4079     {
4080   (yyvsp[(1) - (4)]) = NSPAN((yyvsp[(1) - (4)]), n_HALT_COMPILER, (yyvsp[(3) - (4)]));
4081   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (4)]));
4082   NMORE((yyval), (yyvsp[(4) - (4)]));
4083   ;}
4084     break;
4085 
4086   case 31:
4087 #line 347 "parser.y"
4088     {
4089     NTYPE((yyvsp[(1) - (2)]), n_STRING);
4090     (yyval) = NNEW(n_LABEL);
4091     (yyval)->appendChild((yyvsp[(1) - (2)]));
4092     NMORE((yyval), (yyvsp[(2) - (2)]));
4093   ;}
4094     break;
4095 
4096   case 32:
4097 #line 353 "parser.y"
4098     {
4099     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_OPEN_TAG);
4100   ;}
4101     break;
4102 
4103   case 33:
4104 #line 356 "parser.y"
4105     {
4106     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_OPEN_TAG);
4107   ;}
4108     break;
4109 
4110   case 34:
4111 #line 359 "parser.y"
4112     {
4113     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_CLOSE_TAG);
4114   ;}
4115     break;
4116 
4117   case 35:
4118 #line 365 "parser.y"
4119     {
4120     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
4121   ;}
4122     break;
4123 
4124   case 36:
4125 #line 368 "parser.y"
4126     {
4127     (yyval) = NNEW(n_CONDITION_LIST);
4128 
4129     (yyvsp[(1) - (7)]) = NTYPE((yyvsp[(1) - (7)]), n_IF);
4130     (yyvsp[(1) - (7)])->appendChild(NSPAN((yyvsp[(2) - (7)]), n_CONTROL_CONDITION, (yyvsp[(4) - (7)]))->appendChild((yyvsp[(3) - (7)])));
4131     (yyvsp[(1) - (7)])->appendChild((yyvsp[(5) - (7)]));
4132 
4133     (yyval)->appendChild((yyvsp[(1) - (7)]));
4134     (yyval)->appendChildren((yyvsp[(6) - (7)]));
4135 
4136     // Hacks: merge a list of if (x) { } else if (y) { } into a single condition
4137     // list instead of a condition tree.
4138 
4139     if ((yyvsp[(7) - (7)])->type == n_EMPTY) {
4140       // Ignore.
4141     } else if ((yyvsp[(7) - (7)])->type == n_ELSE) {
4142       xhpast::Node *stype = (yyvsp[(7) - (7)])->firstChild()->firstChild();
4143       if (stype && stype->type == n_CONDITION_LIST) {
4144         NTYPE(stype->firstChild(), n_ELSEIF);
4145         stype->firstChild()->l_tok = (yyvsp[(7) - (7)])->l_tok;
4146         (yyval)->appendChildren(stype);
4147       } else {
4148         (yyval)->appendChild((yyvsp[(7) - (7)]));
4149       }
4150     } else {
4151       (yyval)->appendChild((yyvsp[(7) - (7)]));
4152     }
4153 
4154     (yyval) = NNEW(n_STATEMENT)->appendChild((yyval));
4155   ;}
4156     break;
4157 
4158   case 37:
4159 #line 402 "parser.y"
4160     {
4161 
4162     (yyval) = NNEW(n_CONDITION_LIST);
4163     NTYPE((yyvsp[(1) - (10)]), n_IF);
4164     (yyvsp[(1) - (10)])->appendChild(NSPAN((yyvsp[(2) - (10)]), n_CONTROL_CONDITION, (yyvsp[(4) - (10)]))->appendChild((yyvsp[(3) - (10)])));
4165     (yyvsp[(1) - (10)])->appendChild((yyvsp[(6) - (10)]));
4166 
4167     (yyval)->appendChild((yyvsp[(1) - (10)]));
4168     (yyval)->appendChildren((yyvsp[(7) - (10)]));
4169     (yyval)->appendChild((yyvsp[(8) - (10)]));
4170     NMORE((yyval), (yyvsp[(9) - (10)]));
4171 
4172     (yyval) = NNEW(n_STATEMENT)->appendChild((yyval));
4173     NMORE((yyval), (yyvsp[(10) - (10)]));
4174   ;}
4175     break;
4176 
4177   case 38:
4178 #line 417 "parser.y"
4179     {
4180     NTYPE((yyvsp[(1) - (5)]), n_WHILE);
4181     (yyvsp[(1) - (5)])->appendChild(NSPAN((yyvsp[(2) - (5)]), n_CONTROL_CONDITION, (yyvsp[(4) - (5)]))->appendChild((yyvsp[(3) - (5)])));
4182     (yyvsp[(1) - (5)])->appendChild((yyvsp[(5) - (5)]));
4183 
4184     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (5)]));
4185   ;}
4186     break;
4187 
4188   case 39:
4189 #line 424 "parser.y"
4190     {
4191     NTYPE((yyvsp[(1) - (7)]), n_DO_WHILE);
4192     (yyvsp[(1) - (7)])->appendChild((yyvsp[(2) - (7)]));
4193     (yyvsp[(1) - (7)])->appendChild(NSPAN((yyvsp[(4) - (7)]), n_CONTROL_CONDITION, (yyvsp[(6) - (7)]))->appendChild((yyvsp[(5) - (7)])));
4194 
4195     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (7)]));
4196     NMORE((yyval), (yyvsp[(7) - (7)]));
4197   ;}
4198     break;
4199 
4200   case 40:
4201 #line 432 "parser.y"
4202     {
4203     NTYPE((yyvsp[(1) - (9)]), n_FOR);
4204 
4205     NSPAN((yyvsp[(2) - (9)]), n_FOR_EXPRESSION, (yyvsp[(8) - (9)]))
4206       ->appendChild((yyvsp[(3) - (9)]))
4207       ->appendChild((yyvsp[(5) - (9)]))
4208       ->appendChild((yyvsp[(7) - (9)]));
4209 
4210     (yyvsp[(1) - (9)])->appendChild((yyvsp[(2) - (9)]));
4211     (yyvsp[(1) - (9)])->appendChild((yyvsp[(9) - (9)]));
4212 
4213     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (9)]));
4214   ;}
4215     break;
4216 
4217   case 41:
4218 #line 445 "parser.y"
4219     {
4220     NTYPE((yyvsp[(1) - (5)]), n_SWITCH);
4221     (yyvsp[(1) - (5)])->appendChild(NSPAN((yyvsp[(2) - (5)]), n_CONTROL_CONDITION, (yyvsp[(4) - (5)]))->appendChild((yyvsp[(3) - (5)])));
4222     (yyvsp[(1) - (5)])->appendChild((yyvsp[(5) - (5)]));
4223 
4224     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (5)]));
4225   ;}
4226     break;
4227 
4228   case 42:
4229 #line 452 "parser.y"
4230     {
4231     NTYPE((yyvsp[(1) - (2)]), n_BREAK);
4232     (yyvsp[(1) - (2)])->appendChild(NNEW(n_EMPTY));
4233 
4234     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
4235     NMORE((yyval), (yyvsp[(2) - (2)]));
4236   ;}
4237     break;
4238 
4239   case 43:
4240 #line 459 "parser.y"
4241     {
4242     NTYPE((yyvsp[(1) - (3)]), n_BREAK);
4243     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
4244 
4245     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
4246     NMORE((yyval), (yyvsp[(3) - (3)]));
4247   ;}
4248     break;
4249 
4250   case 44:
4251 #line 466 "parser.y"
4252     {
4253     NTYPE((yyvsp[(1) - (2)]), n_CONTINUE);
4254     (yyvsp[(1) - (2)])->appendChild(NNEW(n_EMPTY));
4255 
4256     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
4257     NMORE((yyval), (yyvsp[(2) - (2)]));
4258   ;}
4259     break;
4260 
4261   case 45:
4262 #line 473 "parser.y"
4263     {
4264     NTYPE((yyvsp[(1) - (3)]), n_CONTINUE);
4265     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
4266 
4267     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
4268     NMORE((yyval), (yyvsp[(3) - (3)]));
4269   ;}
4270     break;
4271 
4272   case 46:
4273 #line 480 "parser.y"
4274     {
4275     NTYPE((yyvsp[(1) - (2)]), n_RETURN);
4276     (yyvsp[(1) - (2)])->appendChild(NNEW(n_EMPTY));
4277 
4278     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
4279     NMORE((yyval), (yyvsp[(2) - (2)]));
4280   ;}
4281     break;
4282 
4283   case 47:
4284 #line 487 "parser.y"
4285     {
4286     NTYPE((yyvsp[(1) - (3)]), n_RETURN);
4287     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
4288 
4289     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
4290     NMORE((yyval), (yyvsp[(3) - (3)]));
4291   ;}
4292     break;
4293 
4294   case 48:
4295 #line 494 "parser.y"
4296     {
4297     NTYPE((yyvsp[(1) - (3)]), n_RETURN);
4298     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
4299 
4300     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
4301     NMORE((yyval), (yyvsp[(3) - (3)]));
4302   ;}
4303     break;
4304 
4305   case 49:
4306 #line 501 "parser.y"
4307     {
4308     NMORE((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)]));
4309     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(2) - (3)]));
4310     NMORE((yyval), (yyvsp[(3) - (3)]));
4311   ;}
4312     break;
4313 
4314   case 50:
4315 #line 506 "parser.y"
4316     {
4317     NMORE((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)]));
4318     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(2) - (3)]));
4319     NMORE((yyval), (yyvsp[(3) - (3)]));
4320   ;}
4321     break;
4322 
4323   case 51:
4324 #line 511 "parser.y"
4325     {
4326     NMORE((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)]));
4327     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(2) - (3)]));
4328     NMORE((yyval), (yyvsp[(3) - (3)]));
4329   ;}
4330     break;
4331 
4332   case 52:
4333 #line 516 "parser.y"
4334     {
4335     NTYPE((yyvsp[(1) - (1)]), n_INLINE_HTML);
4336     (yyval) = (yyvsp[(1) - (1)]);
4337   ;}
4338     break;
4339 
4340   case 53:
4341 #line 520 "parser.y"
4342     {
4343     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
4344     NMORE((yyval), (yyvsp[(2) - (2)]));
4345   ;}
4346     break;
4347 
4348   case 54:
4349 #line 524 "parser.y"
4350     {
4351     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
4352     NMORE((yyval), (yyvsp[(2) - (2)]));
4353   ;}
4354     break;
4355 
4356   case 55:
4357 #line 528 "parser.y"
4358     {
4359     NMORE((yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]));
4360     NMORE((yyvsp[(3) - (5)]), (yyvsp[(1) - (5)]));
4361     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(3) - (5)]));
4362     NMORE((yyval), (yyvsp[(5) - (5)]));
4363   ;}
4364     break;
4365 
4366   case 56:
4367 #line 535 "parser.y"
4368     {
4369     NTYPE((yyvsp[(1) - (8)]), n_FOREACH);
4370     NSPAN((yyvsp[(2) - (8)]), n_FOREACH_EXPRESSION, (yyvsp[(7) - (8)]));
4371     (yyvsp[(2) - (8)])->appendChild((yyvsp[(3) - (8)]));
4372     if ((yyvsp[(6) - (8)])->type == n_EMPTY) {
4373       (yyvsp[(2) - (8)])->appendChild((yyvsp[(6) - (8)]));
4374       (yyvsp[(2) - (8)])->appendChild((yyvsp[(5) - (8)]));
4375     } else {
4376       (yyvsp[(2) - (8)])->appendChild((yyvsp[(5) - (8)]));
4377       (yyvsp[(2) - (8)])->appendChild((yyvsp[(6) - (8)]));
4378     }
4379     (yyvsp[(1) - (8)])->appendChild((yyvsp[(2) - (8)]));
4380 
4381     (yyvsp[(1) - (8)])->appendChild((yyvsp[(8) - (8)]));
4382 
4383     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (8)]));
4384   ;}
4385     break;
4386 
4387   case 57:
4388 #line 553 "parser.y"
4389     {
4390     NTYPE((yyvsp[(1) - (8)]), n_FOREACH);
4391     NSPAN((yyvsp[(2) - (8)]), n_FOREACH_EXPRESSION, (yyvsp[(7) - (8)]));
4392     (yyvsp[(2) - (8)])->appendChild((yyvsp[(3) - (8)]));
4393     if ((yyvsp[(6) - (8)])->type == n_EMPTY) {
4394       (yyvsp[(2) - (8)])->appendChild((yyvsp[(6) - (8)]));
4395       (yyvsp[(2) - (8)])->appendChild((yyvsp[(5) - (8)]));
4396     } else {
4397       (yyvsp[(2) - (8)])->appendChild((yyvsp[(5) - (8)]));
4398       (yyvsp[(2) - (8)])->appendChild((yyvsp[(6) - (8)]));
4399     }
4400     (yyvsp[(1) - (8)])->appendChild((yyvsp[(2) - (8)]));
4401     (yyvsp[(1) - (8)])->appendChild((yyvsp[(8) - (8)]));
4402 
4403     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (8)]));
4404   ;}
4405     break;
4406 
4407   case 58:
4408 #line 569 "parser.y"
4409     {
4410     NTYPE((yyvsp[(1) - (5)]), n_DECLARE);
4411     (yyvsp[(1) - (5)])->appendChild((yyvsp[(3) - (5)]));
4412     (yyvsp[(1) - (5)])->appendChild((yyvsp[(5) - (5)]));
4413     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (5)]));
4414   ;}
4415     break;
4416 
4417   case 59:
4418 #line 575 "parser.y"
4419     {
4420     (yyval) = NNEW(n_STATEMENT)->appendChild(NNEW(n_EMPTY));
4421     NMORE((yyval), (yyvsp[(1) - (1)]));
4422   ;}
4423     break;
4424 
4425   case 60:
4426 #line 579 "parser.y"
4427     {
4428     NTYPE((yyvsp[(1) - (6)]), n_TRY);
4429     (yyvsp[(1) - (6)])->appendChild(NEXPAND((yyvsp[(2) - (6)]), (yyvsp[(3) - (6)]), (yyvsp[(4) - (6)])));
4430 
4431     (yyvsp[(1) - (6)])->appendChild((yyvsp[(5) - (6)]));
4432     (yyvsp[(1) - (6)])->appendChild((yyvsp[(6) - (6)]));
4433 
4434     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (6)]));
4435   ;}
4436     break;
4437 
4438   case 61:
4439 #line 588 "parser.y"
4440     {
4441     NTYPE((yyvsp[(1) - (5)]), n_TRY);
4442     (yyvsp[(1) - (5)])->appendChild(NEXPAND((yyvsp[(2) - (5)]), (yyvsp[(3) - (5)]), (yyvsp[(4) - (5)])));
4443 
4444     (yyvsp[(1) - (5)])->appendChild(NNEW(n_CATCH_LIST));
4445     (yyvsp[(1) - (5)])->appendChild((yyvsp[(5) - (5)]));
4446 
4447     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (5)]));
4448   ;}
4449     break;
4450 
4451   case 62:
4452 #line 597 "parser.y"
4453     {
4454   NTYPE((yyvsp[(1) - (3)]), n_THROW);
4455   (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
4456 
4457   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
4458   NMORE((yyval), (yyvsp[(3) - (3)]));
4459 
4460   ;}
4461     break;
4462 
4463   case 63:
4464 #line 605 "parser.y"
4465     {
4466   NTYPE((yyvsp[(1) - (3)]), n_GOTO);
4467   NTYPE((yyvsp[(2) - (3)]), n_STRING);
4468   (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
4469 
4470   (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (3)]));
4471   NMORE((yyval), (yyvsp[(3) - (3)]));
4472   ;}
4473     break;
4474 
4475   case 64:
4476 #line 616 "parser.y"
4477     {
4478     (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
4479     (yyval) = (yyvsp[(1) - (2)]);
4480   ;}
4481     break;
4482 
4483   case 65:
4484 #line 620 "parser.y"
4485     {
4486   (yyval) = NNEW(n_CATCH_LIST);
4487   (yyval)->appendChild((yyvsp[(1) - (1)]));
4488 ;}
4489     break;
4490 
4491   case 66:
4492 #line 627 "parser.y"
4493     {
4494     NTYPE((yyvsp[(1) - (8)]), n_CATCH);
4495     (yyvsp[(1) - (8)])->appendChild((yyvsp[(3) - (8)]));
4496     (yyvsp[(1) - (8)])->appendChild(NTYPE((yyvsp[(4) - (8)]), n_VARIABLE));
4497     (yyvsp[(1) - (8)])->appendChild(NEXPAND((yyvsp[(6) - (8)]), (yyvsp[(7) - (8)]), (yyvsp[(8) - (8)])));
4498     NMORE((yyvsp[(1) - (8)]), (yyvsp[(8) - (8)]));
4499     (yyval) = (yyvsp[(1) - (8)]);
4500   ;}
4501     break;
4502 
4503   case 67:
4504 #line 638 "parser.y"
4505     {
4506     (yyval) = NNEW(n_EMPTY);
4507   ;}
4508     break;
4509 
4510   case 69:
4511 #line 645 "parser.y"
4512     {
4513     NTYPE((yyvsp[(1) - (4)]), n_FINALLY);
4514     (yyvsp[(1) - (4)])->appendChild((yyvsp[(3) - (4)]));
4515     NMORE((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)]));
4516     (yyval) = (yyvsp[(1) - (4)]);
4517   ;}
4518     break;
4519 
4520   case 70:
4521 #line 654 "parser.y"
4522     {
4523     (yyval) = NNEW(n_UNSET_LIST);
4524     (yyval)->appendChild((yyvsp[(1) - (1)]));
4525   ;}
4526     break;
4527 
4528   case 71:
4529 #line 658 "parser.y"
4530     {
4531     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
4532     (yyval) = (yyvsp[(1) - (3)]);
4533   ;}
4534     break;
4535 
4536   case 75:
4537 #line 677 "parser.y"
4538     {
4539     (yyval) = NNEW(n_EMPTY);
4540   ;}
4541     break;
4542 
4543   case 76:
4544 #line 680 "parser.y"
4545     {
4546     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_REFERENCE);
4547   ;}
4548     break;
4549 
4550   case 77:
4551 #line 687 "parser.y"
4552     {
4553     NSPAN((yyvsp[(1) - (10)]), n_FUNCTION_DECLARATION, (yyvsp[(9) - (10)]));
4554     (yyvsp[(1) - (10)])->appendChild(NNEW(n_EMPTY));
4555     (yyvsp[(1) - (10)])->appendChild((yyvsp[(2) - (10)]));
4556     (yyvsp[(1) - (10)])->appendChild(NTYPE((yyvsp[(3) - (10)]), n_STRING));
4557     (yyvsp[(1) - (10)])->appendChild(NEXPAND((yyvsp[(4) - (10)]), (yyvsp[(5) - (10)]), (yyvsp[(6) - (10)])));
4558     (yyvsp[(1) - (10)])->appendChild(NNEW(n_EMPTY));
4559     (yyvsp[(1) - (10)])->appendChild((yyvsp[(7) - (10)]));
4560     (yyvsp[(1) - (10)])->appendChild(NEXPAND((yyvsp[(8) - (10)]), (yyvsp[(9) - (10)]), (yyvsp[(10) - (10)])));
4561 
4562     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (10)]));
4563   ;}
4564     break;
4565 
4566   case 78:
4567 #line 703 "parser.y"
4568     {
4569     (yyval) = NNEW(n_CLASS_DECLARATION);
4570     (yyval)->appendChild((yyvsp[(1) - (7)]));
4571     (yyval)->appendChild(NTYPE((yyvsp[(2) - (7)]), n_CLASS_NAME));
4572     (yyval)->appendChild((yyvsp[(3) - (7)]));
4573     (yyval)->appendChild((yyvsp[(4) - (7)]));
4574     (yyval)->appendChild(NEXPAND((yyvsp[(5) - (7)]), (yyvsp[(6) - (7)]), (yyvsp[(7) - (7)])));
4575     NMORE((yyval), (yyvsp[(7) - (7)]));
4576 
4577     (yyval) = NNEW(n_STATEMENT)->appendChild((yyval));
4578   ;}
4579     break;
4580 
4581   case 79:
4582 #line 714 "parser.y"
4583     {
4584     (yyval) = NNEW(n_INTERFACE_DECLARATION);
4585     (yyval)->appendChild(NNEW(n_CLASS_ATTRIBUTES));
4586     NMORE((yyval), (yyvsp[(1) - (6)]));
4587     (yyval)->appendChild(NTYPE((yyvsp[(2) - (6)]), n_CLASS_NAME));
4588     (yyval)->appendChild((yyvsp[(3) - (6)]));
4589     (yyval)->appendChild(NNEW(n_EMPTY));
4590     (yyval)->appendChild(NEXPAND((yyvsp[(4) - (6)]), (yyvsp[(5) - (6)]), (yyvsp[(6) - (6)])));
4591     NMORE((yyval), (yyvsp[(6) - (6)]));
4592 
4593     (yyval) = NNEW(n_STATEMENT)->appendChild((yyval));
4594   ;}
4595     break;
4596 
4597   case 80:
4598 #line 729 "parser.y"
4599     {
4600     NTYPE((yyvsp[(1) - (1)]), n_CLASS_ATTRIBUTES);
4601     (yyval) = (yyvsp[(1) - (1)]);
4602   ;}
4603     break;
4604 
4605   case 81:
4606 #line 733 "parser.y"
4607     {
4608     NTYPE((yyvsp[(2) - (2)]), n_CLASS_ATTRIBUTES);
4609     NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
4610     (yyvsp[(2) - (2)])->appendChild(NTYPE((yyvsp[(1) - (2)]), n_STRING));
4611 
4612     (yyval) = (yyvsp[(2) - (2)]);
4613   ;}
4614     break;
4615 
4616   case 82:
4617 #line 740 "parser.y"
4618     {
4619     NTYPE((yyvsp[(2) - (2)]), n_CLASS_ATTRIBUTES);
4620     NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
4621     (yyvsp[(2) - (2)])->appendChild(NTYPE((yyvsp[(1) - (2)]), n_STRING));
4622 
4623     (yyval) = (yyvsp[(2) - (2)]);
4624   ;}
4625     break;
4626 
4627   case 83:
4628 #line 747 "parser.y"
4629     {
4630     (yyval) = NNEW(n_CLASS_ATTRIBUTES);
4631     (yyval)->appendChild(NTYPE((yyvsp[(1) - (1)]), n_STRING));
4632   ;}
4633     break;
4634 
4635   case 84:
4636 #line 754 "parser.y"
4637     {
4638     (yyval) = NNEW(n_EMPTY);
4639   ;}
4640     break;
4641 
4642   case 85:
4643 #line 757 "parser.y"
4644     {
4645     (yyval) = NTYPE((yyvsp[(1) - (2)]), n_EXTENDS_LIST)->appendChild((yyvsp[(2) - (2)]));
4646   ;}
4647     break;
4648 
4649   case 87:
4650 #line 767 "parser.y"
4651     {
4652     (yyval) = NNEW(n_EMPTY);
4653   ;}
4654     break;
4655 
4656   case 88:
4657 #line 770 "parser.y"
4658     {
4659     NTYPE((yyvsp[(1) - (2)]), n_EXTENDS_LIST);
4660     (yyvsp[(1) - (2)])->appendChildren((yyvsp[(2) - (2)]));
4661     (yyval) = (yyvsp[(1) - (2)]);
4662   ;}
4663     break;
4664 
4665   case 89:
4666 #line 778 "parser.y"
4667     {
4668     (yyval) = NNEW(n_EMPTY);
4669   ;}
4670     break;
4671 
4672   case 90:
4673 #line 781 "parser.y"
4674     {
4675     NTYPE((yyvsp[(1) - (2)]), n_IMPLEMENTS_LIST);
4676     (yyvsp[(1) - (2)])->appendChildren((yyvsp[(2) - (2)]));
4677     (yyval) = (yyvsp[(1) - (2)]);
4678   ;}
4679     break;
4680 
4681   case 91:
4682 #line 789 "parser.y"
4683     {
4684     (yyval) = NNEW(n_IMPLEMENTS_LIST)->appendChild((yyvsp[(1) - (1)]));
4685   ;}
4686     break;
4687 
4688   case 92:
4689 #line 792 "parser.y"
4690     {
4691     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
4692   ;}
4693     break;
4694 
4695   case 93:
4696 #line 798 "parser.y"
4697     {
4698     (yyval) = NNEW(n_EMPTY);
4699   ;}
4700     break;
4701 
4702   case 94:
4703 #line 801 "parser.y"
4704     {
4705     (yyval) = (yyvsp[(2) - (2)]);
4706   ;}
4707     break;
4708 
4709   case 96:
4710 #line 808 "parser.y"
4711     {
4712     NTYPE((yyvsp[(1) - (2)]), n_VARIABLE_REFERENCE);
4713     (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
4714     (yyval) = (yyvsp[(1) - (2)]);
4715   ;}
4716     break;
4717 
4718   case 98:
4719 #line 817 "parser.y"
4720     {
4721   NMORE((yyvsp[(2) - (4)]), (yyvsp[(1) - (4)]));
4722   NMORE((yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));
4723   (yyval) = (yyvsp[(2) - (4)]);
4724   ;}
4725     break;
4726 
4727   case 100:
4728 #line 826 "parser.y"
4729     {
4730   NMORE((yyvsp[(2) - (4)]), (yyvsp[(1) - (4)]));
4731   NMORE((yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));
4732   (yyval) = (yyvsp[(2) - (4)]);
4733   ;}
4734     break;
4735 
4736   case 102:
4737 #line 835 "parser.y"
4738     {
4739   NMORE((yyvsp[(2) - (4)]), (yyvsp[(1) - (4)]));
4740   NMORE((yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));
4741   (yyval) = (yyvsp[(2) - (4)]);
4742   ;}
4743     break;
4744 
4745   case 103:
4746 #line 843 "parser.y"
4747     {
4748     (yyval) = NNEW(n_DECLARE_DECLARATION);
4749     (yyval)->appendChild(NTYPE((yyvsp[(1) - (3)]), n_STRING));
4750     (yyval)->appendChild((yyvsp[(3) - (3)]));
4751     (yyval) = NNEW(n_DECLARE_DECLARATION_LIST)->appendChild((yyval));
4752   ;}
4753     break;
4754 
4755   case 104:
4756 #line 849 "parser.y"
4757     {
4758     (yyval) = NNEW(n_DECLARE_DECLARATION);
4759     (yyval)->appendChild(NTYPE((yyvsp[(3) - (5)]), n_STRING));
4760     (yyval)->appendChild((yyvsp[(5) - (5)]));
4761 
4762     (yyvsp[(1) - (5)])->appendChild((yyval));
4763     (yyval) = (yyvsp[(1) - (5)]);
4764   ;}
4765     break;
4766 
4767   case 105:
4768 #line 860 "parser.y"
4769     {
4770     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
4771   ;}
4772     break;
4773 
4774   case 106:
4775 #line 863 "parser.y"
4776     {
4777     // ...why does this rule exist?
4778 
4779     NTYPE((yyvsp[(2) - (4)]), n_STATEMENT);
4780     (yyvsp[(1) - (4)])->appendChild(NNEW(n_EMPTY));
4781 
4782     (yyval) = NNEW(n_STATEMENT_LIST)->appendChild((yyvsp[(2) - (4)]));
4783     (yyval)->appendChildren((yyvsp[(3) - (4)]));
4784     NEXPAND((yyvsp[(1) - (4)]), (yyval), (yyvsp[(4) - (4)]));
4785   ;}
4786     break;
4787 
4788   case 107:
4789 #line 873 "parser.y"
4790     {
4791     NMORE((yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));
4792     NMORE((yyvsp[(2) - (4)]), (yyvsp[(1) - (4)]));
4793     (yyval) = (yyvsp[(2) - (4)]);
4794   ;}
4795     break;
4796 
4797   case 108:
4798 #line 878 "parser.y"
4799     {
4800     NTYPE((yyvsp[(2) - (5)]), n_STATEMENT);
4801     (yyvsp[(1) - (5)])->appendChild(NNEW(n_EMPTY));
4802 
4803     (yyval) = NNEW(n_STATEMENT_LIST)->appendChild((yyvsp[(2) - (5)]));
4804     (yyval)->appendChildren((yyvsp[(3) - (5)]));
4805     NMORE((yyval), (yyvsp[(5) - (5)]));
4806     NMORE((yyval), (yyvsp[(1) - (5)]));
4807   ;}
4808     break;
4809 
4810   case 109:
4811 #line 890 "parser.y"
4812     {
4813     (yyval) = NNEW(n_STATEMENT_LIST);
4814   ;}
4815     break;
4816 
4817   case 110:
4818 #line 893 "parser.y"
4819     {
4820     NTYPE((yyvsp[(2) - (5)]), n_CASE);
4821     (yyvsp[(2) - (5)])->appendChild((yyvsp[(3) - (5)]));
4822     (yyvsp[(2) - (5)])->appendChild((yyvsp[(5) - (5)]));
4823 
4824     (yyvsp[(1) - (5)])->appendChild((yyvsp[(2) - (5)]));
4825     (yyval) = (yyvsp[(1) - (5)]);
4826   ;}
4827     break;
4828 
4829   case 111:
4830 #line 901 "parser.y"
4831     {
4832     NTYPE((yyvsp[(2) - (4)]), n_DEFAULT);
4833     (yyvsp[(2) - (4)])->appendChild((yyvsp[(4) - (4)]));
4834 
4835     (yyvsp[(1) - (4)])->appendChild((yyvsp[(2) - (4)]));
4836     (yyval) = (yyvsp[(1) - (4)]);
4837   ;}
4838     break;
4839 
4840   case 115:
4841 #line 917 "parser.y"
4842     {
4843   NMORE((yyvsp[(2) - (4)]), (yyvsp[(4) - (4)]));
4844   NMORE((yyvsp[(2) - (4)]), (yyvsp[(1) - (4)]));
4845   (yyval) = (yyvsp[(2) - (4)]);
4846   ;}
4847     break;
4848 
4849   case 116:
4850 #line 925 "parser.y"
4851     {
4852     (yyval) = NNEW(n_CONDITION_LIST);
4853   ;}
4854     break;
4855 
4856   case 117:
4857 #line 928 "parser.y"
4858     {
4859     NTYPE((yyvsp[(2) - (6)]), n_ELSEIF);
4860     (yyvsp[(2) - (6)])->appendChild(NSPAN((yyvsp[(3) - (6)]), n_CONTROL_CONDITION, (yyvsp[(5) - (6)]))->appendChild((yyvsp[(4) - (6)])));
4861     (yyvsp[(2) - (6)])->appendChild((yyvsp[(6) - (6)]));
4862 
4863     (yyval) = (yyvsp[(1) - (6)])->appendChild((yyvsp[(2) - (6)]));
4864   ;}
4865     break;
4866 
4867   case 118:
4868 #line 938 "parser.y"
4869     {
4870     (yyval) = NNEW(n_CONDITION_LIST);
4871   ;}
4872     break;
4873 
4874   case 119:
4875 #line 941 "parser.y"
4876     {
4877     NTYPE((yyvsp[(2) - (7)]), n_ELSEIF);
4878     (yyvsp[(2) - (7)])->appendChild((yyvsp[(4) - (7)]));
4879     (yyvsp[(2) - (7)])->appendChild((yyvsp[(7) - (7)]));
4880 
4881     (yyval) = (yyvsp[(1) - (7)])->appendChild((yyvsp[(2) - (7)]));
4882   ;}
4883     break;
4884 
4885   case 120:
4886 #line 951 "parser.y"
4887     {
4888     (yyval) = NNEW(n_EMPTY);
4889   ;}
4890     break;
4891 
4892   case 121:
4893 #line 954 "parser.y"
4894     {
4895     NTYPE((yyvsp[(1) - (2)]), n_ELSE);
4896     (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
4897     (yyval) = (yyvsp[(1) - (2)]);
4898   ;}
4899     break;
4900 
4901   case 122:
4902 #line 962 "parser.y"
4903     {
4904     (yyval) = NNEW(n_EMPTY);
4905   ;}
4906     break;
4907 
4908   case 123:
4909 #line 965 "parser.y"
4910     {
4911     NTYPE((yyvsp[(1) - (3)]), n_ELSE);
4912     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
4913     (yyval) = (yyvsp[(1) - (3)]);
4914   ;}
4915     break;
4916 
4917   case 125:
4918 #line 974 "parser.y"
4919     {
4920     (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST);
4921   ;}
4922     break;
4923 
4924   case 126:
4925 #line 980 "parser.y"
4926     {
4927     (yyval) = NNEW(n_DECLARATION_PARAMETER);
4928     (yyval)->appendChild((yyvsp[(1) - (2)]));
4929     (yyval)->appendChild((yyvsp[(2) - (2)]));
4930     (yyval)->appendChild(NNEW(n_EMPTY));
4931 
4932     (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval));
4933   ;}
4934     break;
4935 
4936   case 127:
4937 #line 988 "parser.y"
4938     {
4939     (yyval) = NNEW(n_DECLARATION_PARAMETER);
4940     (yyval)->appendChild((yyvsp[(1) - (3)]));
4941     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_VARIABLE_REFERENCE));
4942       (yyvsp[(2) - (3)])->appendChild((yyvsp[(3) - (3)]));
4943     (yyval)->appendChild(NNEW(n_EMPTY));
4944 
4945     (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval));
4946   ;}
4947     break;
4948 
4949   case 128:
4950 #line 997 "parser.y"
4951     {
4952     (yyval) = NNEW(n_DECLARATION_PARAMETER);
4953     (yyval)->appendChild((yyvsp[(1) - (5)]));
4954     (yyval)->appendChild(NTYPE((yyvsp[(2) - (5)]), n_VARIABLE_REFERENCE));
4955       (yyvsp[(2) - (5)])->appendChild((yyvsp[(3) - (5)]));
4956     (yyval)->appendChild((yyvsp[(5) - (5)]));
4957 
4958     (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval));
4959   ;}
4960     break;
4961 
4962   case 129:
4963 #line 1006 "parser.y"
4964     {
4965     (yyval) = NNEW(n_DECLARATION_PARAMETER);
4966     (yyval)->appendChild((yyvsp[(1) - (4)]));
4967     (yyval)->appendChild((yyvsp[(2) - (4)]));
4968     (yyval)->appendChild((yyvsp[(4) - (4)]));
4969 
4970     (yyval) = NNEW(n_DECLARATION_PARAMETER_LIST)->appendChild((yyval));
4971   ;}
4972     break;
4973 
4974   case 130:
4975 #line 1014 "parser.y"
4976     {
4977     (yyval) = NNEW(n_DECLARATION_PARAMETER);
4978     (yyval)->appendChild((yyvsp[(3) - (4)]));
4979     (yyval)->appendChild((yyvsp[(4) - (4)]));
4980     (yyval)->appendChild(NNEW(n_EMPTY));
4981 
4982     (yyval) = (yyvsp[(1) - (4)])->appendChild((yyval));
4983   ;}
4984     break;
4985 
4986   case 131:
4987 #line 1022 "parser.y"
4988     {
4989     (yyval) = NNEW(n_DECLARATION_PARAMETER);
4990     (yyval)->appendChild((yyvsp[(3) - (5)]));
4991     (yyval)->appendChild(NTYPE((yyvsp[(4) - (5)]), n_VARIABLE_REFERENCE));
4992       (yyvsp[(4) - (5)])->appendChild((yyvsp[(5) - (5)]));
4993     (yyval)->appendChild(NNEW(n_EMPTY));
4994 
4995     (yyval) = (yyvsp[(1) - (5)])->appendChild((yyval));
4996   ;}
4997     break;
4998 
4999   case 132:
5000 #line 1032 "parser.y"
5001     {
5002     (yyval) = NNEW(n_DECLARATION_PARAMETER);
5003     (yyval)->appendChild((yyvsp[(3) - (7)]));
5004     (yyval)->appendChild(NTYPE((yyvsp[(4) - (7)]), n_VARIABLE_REFERENCE));
5005       (yyvsp[(4) - (7)])->appendChild((yyvsp[(5) - (7)]));
5006     (yyval)->appendChild((yyvsp[(7) - (7)]));
5007 
5008     (yyval) = (yyvsp[(1) - (7)])->appendChild((yyval));
5009   ;}
5010     break;
5011 
5012   case 133:
5013 #line 1042 "parser.y"
5014     {
5015     (yyval) = NNEW(n_DECLARATION_PARAMETER);
5016     (yyval)->appendChild((yyvsp[(3) - (6)]));
5017     (yyval)->appendChild((yyvsp[(4) - (6)]));
5018     (yyval)->appendChild((yyvsp[(6) - (6)]));
5019 
5020     (yyval) = (yyvsp[(1) - (6)])->appendChild((yyval));
5021   ;}
5022     break;
5023 
5024   case 134:
5025 #line 1053 "parser.y"
5026     {
5027     NTYPE((yyvsp[(1) - (2)]), n_UNPACK);
5028     (yyval) = (yyvsp[(1) - (2)])->appendChild(NTYPE((yyvsp[(2) - (2)]), n_VARIABLE));
5029   ;}
5030     break;
5031 
5032   case 135:
5033 #line 1057 "parser.y"
5034     {
5035     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_VARIABLE);
5036   ;}
5037     break;
5038 
5039   case 136:
5040 #line 1063 "parser.y"
5041     {
5042     (yyval) = NNEW(n_EMPTY);
5043   ;}
5044     break;
5045 
5046   case 138:
5047 #line 1067 "parser.y"
5048     {
5049     (yyval) = NNEW(n_NULLABLE_TYPE);
5050     (yyval)->appendChild((yyvsp[(2) - (2)]));
5051   ;}
5052     break;
5053 
5054   case 139:
5055 #line 1074 "parser.y"
5056     {
5057     (yyval) = (yyvsp[(1) - (1)]);
5058   ;}
5059     break;
5060 
5061   case 140:
5062 #line 1077 "parser.y"
5063     {
5064     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_TYPE_NAME);
5065   ;}
5066     break;
5067 
5068   case 141:
5069 #line 1080 "parser.y"
5070     {
5071     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_TYPE_NAME);
5072   ;}
5073     break;
5074 
5075   case 142:
5076 #line 1086 "parser.y"
5077     {
5078     (yyval) = NNEW(n_EMPTY);
5079   ;}
5080     break;
5081 
5082   case 143:
5083 #line 1089 "parser.y"
5084     {
5085     (yyval) = NNEW(n_DECLARATION_RETURN);
5086     (yyval)->appendChild((yyvsp[(2) - (2)]));
5087   ;}
5088     break;
5089 
5090   case 145:
5091 #line 1097 "parser.y"
5092     {
5093     (yyval) = NNEW(n_CALL_PARAMETER_LIST);
5094   ;}
5095     break;
5096 
5097   case 146:
5098 #line 1103 "parser.y"
5099     {
5100     (yyval) = NNEW(n_CALL_PARAMETER_LIST)->appendChild((yyvsp[(1) - (1)]));
5101   ;}
5102     break;
5103 
5104   case 147:
5105 #line 1106 "parser.y"
5106     {
5107     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5108   ;}
5109     break;
5110 
5111   case 149:
5112 #line 1113 "parser.y"
5113     {
5114     NTYPE((yyvsp[(1) - (2)]), n_UNPACK);
5115     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
5116   ;}
5117     break;
5118 
5119   case 150:
5120 #line 1117 "parser.y"
5121     {
5122     NTYPE((yyvsp[(1) - (2)]), n_VARIABLE_REFERENCE);
5123     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
5124   ;}
5125     break;
5126 
5127   case 151:
5128 #line 1124 "parser.y"
5129     {
5130     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5131     (yyval) = (yyvsp[(1) - (3)]);
5132   ;}
5133     break;
5134 
5135   case 152:
5136 #line 1128 "parser.y"
5137     {
5138     (yyval) = NNEW(n_GLOBAL_DECLARATION_LIST);
5139     (yyval)->appendChild((yyvsp[(1) - (1)]));
5140   ;}
5141     break;
5142 
5143   case 153:
5144 #line 1135 "parser.y"
5145     {
5146     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_VARIABLE);
5147   ;}
5148     break;
5149 
5150   case 154:
5151 #line 1138 "parser.y"
5152     {
5153     (yyval) = NTYPE((yyvsp[(1) - (2)]), n_VARIABLE_VARIABLE);
5154     (yyval)->appendChild((yyvsp[(2) - (2)]));
5155   ;}
5156     break;
5157 
5158   case 155:
5159 #line 1142 "parser.y"
5160     {
5161     (yyval) = NTYPE((yyvsp[(1) - (4)]), n_VARIABLE_VARIABLE);
5162     (yyval)->appendChild((yyvsp[(3) - (4)]));
5163   ;}
5164     break;
5165 
5166   case 156:
5167 #line 1149 "parser.y"
5168     {
5169     NTYPE((yyvsp[(3) - (3)]), n_VARIABLE);
5170     (yyval) = NNEW(n_STATIC_DECLARATION);
5171     (yyval)->appendChild((yyvsp[(3) - (3)]));
5172     (yyval)->appendChild(NNEW(n_EMPTY));
5173 
5174     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyval));
5175   ;}
5176     break;
5177 
5178   case 157:
5179 #line 1157 "parser.y"
5180     {
5181     NTYPE((yyvsp[(3) - (5)]), n_VARIABLE);
5182     (yyval) = NNEW(n_STATIC_DECLARATION);
5183     (yyval)->appendChild((yyvsp[(3) - (5)]));
5184     (yyval)->appendChild((yyvsp[(5) - (5)]));
5185 
5186     (yyval) = (yyvsp[(1) - (5)])->appendChild((yyval));
5187   ;}
5188     break;
5189 
5190   case 158:
5191 #line 1165 "parser.y"
5192     {
5193     NTYPE((yyvsp[(1) - (1)]), n_VARIABLE);
5194     (yyval) = NNEW(n_STATIC_DECLARATION);
5195     (yyval)->appendChild((yyvsp[(1) - (1)]));
5196     (yyval)->appendChild(NNEW(n_EMPTY));
5197 
5198     (yyval) = NNEW(n_STATIC_DECLARATION_LIST)->appendChild((yyval));
5199   ;}
5200     break;
5201 
5202   case 159:
5203 #line 1173 "parser.y"
5204     {
5205     NTYPE((yyvsp[(1) - (3)]), n_VARIABLE);
5206     (yyval) = NNEW(n_STATIC_DECLARATION);
5207     (yyval)->appendChild((yyvsp[(1) - (3)]));
5208     (yyval)->appendChild((yyvsp[(3) - (3)]));
5209 
5210     (yyval) = NNEW(n_STATIC_DECLARATION_LIST)->appendChild((yyval));
5211   ;}
5212     break;
5213 
5214   case 160:
5215 #line 1184 "parser.y"
5216     {
5217     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
5218   ;}
5219     break;
5220 
5221   case 161:
5222 #line 1187 "parser.y"
5223     {
5224     (yyval) = NNEW(n_STATEMENT_LIST);
5225   ;}
5226     break;
5227 
5228   case 162:
5229 #line 1193 "parser.y"
5230     {
5231     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION_LIST);
5232     (yyval)->appendChild((yyvsp[(1) - (3)]));
5233     (yyval)->appendChildren((yyvsp[(2) - (3)]));
5234 
5235     (yyval) = NNEW(n_STATEMENT)->appendChild((yyval));
5236     NMORE((yyval), (yyvsp[(3) - (3)]));
5237   ;}
5238     break;
5239 
5240   case 163:
5241 #line 1201 "parser.y"
5242     {
5243     (yyval) = NNEW(n_STATEMENT)->appendChild((yyvsp[(1) - (2)]));
5244     NMORE((yyval), (yyvsp[(2) - (2)]));
5245   ;}
5246     break;
5247 
5248   case 164:
5249 #line 1205 "parser.y"
5250     {
5251     (yyval) = (yyvsp[(1) - (1)]);
5252   ;}
5253     break;
5254 
5255   case 165:
5256 #line 1208 "parser.y"
5257     {
5258     /* empty */
5259   ;}
5260     break;
5261 
5262   case 166:
5263 #line 1210 "parser.y"
5264     {
5265     (yyval) = NNEW(n_METHOD_DECLARATION);
5266     NMORE((yyval), (yyvsp[(2) - (10)]));
5267     (yyval)->appendChild((yyvsp[(1) - (10)]));
5268     (yyval)->appendChild((yyvsp[(4) - (10)]));
5269     (yyval)->appendChild(NTYPE((yyvsp[(5) - (10)]), n_STRING));
5270     (yyval)->appendChild(NEXPAND((yyvsp[(6) - (10)]), (yyvsp[(7) - (10)]), (yyvsp[(8) - (10)])));
5271     (yyval)->appendChild(NNEW(n_EMPTY));
5272     (yyval)->appendChild((yyvsp[(9) - (10)]));
5273     (yyval)->appendChild((yyvsp[(10) - (10)]));
5274 
5275     (yyval) = NNEW(n_STATEMENT)->appendChild((yyval));
5276   ;}
5277     break;
5278 
5279   case 167:
5280 #line 1226 "parser.y"
5281     {
5282     (yyval) = NTYPE((yyvsp[(1) - (3)]), n_TRAIT_USE);
5283     (yyval)->appendChildren((yyvsp[(2) - (3)]));
5284     (yyval)->appendChild((yyvsp[(3) - (3)]));
5285   ;}
5286     break;
5287 
5288   case 168:
5289 #line 1234 "parser.y"
5290     {
5291     (yyval) = NNEW(n_TRAIT_USE_LIST)->appendChild((yyvsp[(1) - (1)]));
5292   ;}
5293     break;
5294 
5295   case 169:
5296 #line 1237 "parser.y"
5297     {
5298     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5299   ;}
5300     break;
5301 
5302   case 170:
5303 #line 1243 "parser.y"
5304     {
5305     (yyval) = NNEW(n_EMPTY);
5306   ;}
5307     break;
5308 
5309   case 171:
5310 #line 1246 "parser.y"
5311     {
5312     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
5313   ;}
5314     break;
5315 
5316   case 172:
5317 #line 1252 "parser.y"
5318     {
5319     (yyval) = NNEW(n_TRAIT_ADAPTATION_LIST);
5320   ;}
5321     break;
5322 
5323   case 173:
5324 #line 1255 "parser.y"
5325     {
5326     (yyval) = (yyvsp[(1) - (1)]);
5327   ;}
5328     break;
5329 
5330   case 174:
5331 #line 1261 "parser.y"
5332     {
5333     (yyval) = NNEW(n_TRAIT_ADAPTATION_LIST);
5334     (yyval)->appendChild((yyvsp[(1) - (1)]));
5335   ;}
5336     break;
5337 
5338   case 175:
5339 #line 1265 "parser.y"
5340     {
5341     (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
5342     (yyval) = (yyvsp[(1) - (2)]);
5343   ;}
5344     break;
5345 
5346   case 176:
5347 #line 1272 "parser.y"
5348     {
5349     (yyval) = NMORE((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
5350   ;}
5351     break;
5352 
5353   case 177:
5354 #line 1275 "parser.y"
5355     {
5356     (yyval) = NMORE((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
5357   ;}
5358     break;
5359 
5360   case 178:
5361 #line 1281 "parser.y"
5362     {
5363     (yyval) = NNEW(n_TRAIT_INSTEADOF);
5364     (yyval)->appendChild((yyvsp[(1) - (3)]));
5365     (yyval)->appendChild((yyvsp[(3) - (3)]));
5366   ;}
5367     break;
5368 
5369   case 179:
5370 #line 1289 "parser.y"
5371     {
5372     (yyval) = NNEW(n_TRAIT_REFERENCE_LIST);
5373     (yyval)->appendChild((yyvsp[(1) - (1)]));
5374   ;}
5375     break;
5376 
5377   case 180:
5378 #line 1293 "parser.y"
5379     {
5380     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5381     (yyval) = (yyvsp[(1) - (3)]);
5382   ;}
5383     break;
5384 
5385   case 181:
5386 #line 1300 "parser.y"
5387     {
5388     (yyval) = NNEW(n_TRAIT_METHOD_REFERENCE);
5389     (yyval)->appendChild(NTYPE((yyvsp[(1) - (1)]), n_STRING));
5390   ;}
5391     break;
5392 
5393   case 182:
5394 #line 1304 "parser.y"
5395     {
5396     (yyval) = (yyvsp[(1) - (1)]);
5397   ;}
5398     break;
5399 
5400   case 183:
5401 #line 1310 "parser.y"
5402     {
5403     NTYPE((yyvsp[(2) - (3)]), n_TRAIT_METHOD_REFERENCE);
5404     NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), NTYPE((yyvsp[(3) - (3)]), n_STRING));
5405     (yyval) = (yyvsp[(2) - (3)]);
5406   ;}
5407     break;
5408 
5409   case 184:
5410 #line 1318 "parser.y"
5411     {
5412     (yyval) = NNEW(n_TRAIT_AS);
5413     (yyval)->appendChild((yyvsp[(1) - (4)]));
5414     (yyval)->appendChild((yyvsp[(3) - (4)]));
5415     (yyval)->appendChild(NTYPE((yyvsp[(4) - (4)]), n_STRING));
5416   ;}
5417     break;
5418 
5419   case 185:
5420 #line 1324 "parser.y"
5421     {
5422     (yyval) = NNEW(n_TRAIT_AS);
5423     (yyval)->appendChild((yyvsp[(1) - (3)]));
5424     (yyval)->appendChild((yyvsp[(3) - (3)]));
5425     (yyval)->appendChild(NNEW(n_EMPTY));
5426   ;}
5427     break;
5428 
5429   case 186:
5430 #line 1333 "parser.y"
5431     {
5432     (yyval) = NNEW(n_EMPTY);
5433   ;}
5434     break;
5435 
5436   case 187:
5437 #line 1336 "parser.y"
5438     {
5439     (yyval) = NNEW(n_METHOD_MODIFIER_LIST);
5440     (yyval)->appendChild((yyvsp[(1) - (1)]));
5441   ;}
5442     break;
5443 
5444   case 188:
5445 #line 1344 "parser.y"
5446     {
5447     (yyval) = NNEW(n_EMPTY);
5448   ;}
5449     break;
5450 
5451   case 189:
5452 #line 1347 "parser.y"
5453     {
5454     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
5455   ;}
5456     break;
5457 
5458   case 191:
5459 #line 1354 "parser.y"
5460     {
5461     (yyval) = NNEW(n_CLASS_MEMBER_MODIFIER_LIST);
5462     (yyval)->appendChild(NTYPE((yyvsp[(1) - (1)]), n_STRING));
5463   ;}
5464     break;
5465 
5466   case 192:
5467 #line 1361 "parser.y"
5468     {
5469     (yyval) = NNEW(n_METHOD_MODIFIER_LIST);
5470   ;}
5471     break;
5472 
5473   case 193:
5474 #line 1364 "parser.y"
5475     {
5476     NTYPE((yyvsp[(1) - (1)]), n_METHOD_MODIFIER_LIST);
5477     (yyval) = (yyvsp[(1) - (1)]);
5478   ;}
5479     break;
5480 
5481   case 194:
5482 #line 1371 "parser.y"
5483     {
5484     (yyval) = NNEW(n_CLASS_MEMBER_MODIFIER_LIST);
5485     (yyval)->appendChild((yyvsp[(1) - (1)]));
5486   ;}
5487     break;
5488 
5489   case 195:
5490 #line 1375 "parser.y"
5491     {
5492     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
5493   ;}
5494     break;
5495 
5496   case 196:
5497 #line 1381 "parser.y"
5498     {
5499     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_STRING);
5500   ;}
5501     break;
5502 
5503   case 203:
5504 #line 1396 "parser.y"
5505     {
5506     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION);
5507     (yyval)->appendChild(NTYPE((yyvsp[(3) - (3)]), n_VARIABLE));
5508     (yyval)->appendChild(NNEW(n_EMPTY));
5509 
5510     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyval));
5511   ;}
5512     break;
5513 
5514   case 204:
5515 #line 1403 "parser.y"
5516     {
5517     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION);
5518     (yyval)->appendChild(NTYPE((yyvsp[(3) - (5)]), n_VARIABLE));
5519     (yyval)->appendChild((yyvsp[(5) - (5)]));
5520 
5521     (yyval) = (yyvsp[(1) - (5)])->appendChild((yyval));
5522   ;}
5523     break;
5524 
5525   case 205:
5526 #line 1410 "parser.y"
5527     {
5528     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION);
5529     (yyval)->appendChild(NTYPE((yyvsp[(1) - (1)]), n_VARIABLE));
5530     (yyval)->appendChild(NNEW(n_EMPTY));
5531 
5532     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION_LIST)->appendChild((yyval));
5533   ;}
5534     break;
5535 
5536   case 206:
5537 #line 1417 "parser.y"
5538     {
5539     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION);
5540     (yyval)->appendChild(NTYPE((yyvsp[(1) - (3)]), n_VARIABLE));
5541     (yyval)->appendChild((yyvsp[(3) - (3)]));
5542 
5543     (yyval) = NNEW(n_CLASS_MEMBER_DECLARATION_LIST)->appendChild((yyval));
5544   ;}
5545     break;
5546 
5547   case 207:
5548 #line 1427 "parser.y"
5549     {
5550     (yyval) = NNEW(n_CLASS_CONSTANT_DECLARATION);
5551     (yyval)->appendChild(NTYPE((yyvsp[(3) - (5)]), n_STRING));
5552     (yyval)->appendChild((yyvsp[(5) - (5)]));
5553 
5554     (yyvsp[(1) - (5)])->appendChild((yyval));
5555 
5556     (yyval) = (yyvsp[(1) - (5)]);
5557   ;}
5558     break;
5559 
5560   case 208:
5561 #line 1436 "parser.y"
5562     {
5563     NTYPE((yyvsp[(1) - (4)]), n_CLASS_CONSTANT_DECLARATION_LIST);
5564     (yyval) = NNEW(n_CLASS_CONSTANT_DECLARATION);
5565     (yyval)->appendChild(NTYPE((yyvsp[(2) - (4)]), n_STRING));
5566     (yyval)->appendChild((yyvsp[(4) - (4)]));
5567     (yyvsp[(1) - (4)])->appendChild((yyval));
5568 
5569     (yyval) = (yyvsp[(1) - (4)]);
5570   ;}
5571     break;
5572 
5573   case 209:
5574 #line 1448 "parser.y"
5575     {
5576     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5577   ;}
5578     break;
5579 
5580   case 210:
5581 #line 1451 "parser.y"
5582     {
5583     (yyval) = NNEW(n_ECHO_LIST);
5584     (yyval)->appendChild((yyvsp[(1) - (1)]));
5585   ;}
5586     break;
5587 
5588   case 211:
5589 #line 1458 "parser.y"
5590     {
5591     (yyval) = NNEW(n_EMPTY);
5592   ;}
5593     break;
5594 
5595   case 213:
5596 #line 1466 "parser.y"
5597     {
5598     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5599   ;}
5600     break;
5601 
5602   case 214:
5603 #line 1469 "parser.y"
5604     {
5605     (yyval) = NNEW(n_EXPRESSION_LIST);
5606     (yyval)->appendChild((yyvsp[(1) - (1)]));
5607   ;}
5608     break;
5609 
5610   case 215:
5611 #line 1476 "parser.y"
5612     {
5613     NTYPE((yyvsp[(1) - (6)]), n_LIST);
5614     (yyvsp[(1) - (6)])->appendChild(NEXPAND((yyvsp[(2) - (6)]), (yyvsp[(3) - (6)]), (yyvsp[(4) - (6)])));
5615     (yyval) = NNEW(n_BINARY_EXPRESSION);
5616     (yyval)->appendChild((yyvsp[(1) - (6)]));
5617     (yyval)->appendChild(NTYPE((yyvsp[(5) - (6)]), n_OPERATOR));
5618     (yyval)->appendChild((yyvsp[(6) - (6)]));
5619   ;}
5620     break;
5621 
5622   case 216:
5623 #line 1484 "parser.y"
5624     {
5625     (yyval) = NNEW(n_BINARY_EXPRESSION);
5626     (yyval)->appendChild((yyvsp[(1) - (3)]));
5627     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5628     (yyval)->appendChild((yyvsp[(3) - (3)]));
5629   ;}
5630     break;
5631 
5632   case 217:
5633 #line 1490 "parser.y"
5634     {
5635     (yyval) = NNEW(n_BINARY_EXPRESSION);
5636     (yyval)->appendChild((yyvsp[(1) - (4)]));
5637     (yyval)->appendChild(NTYPE((yyvsp[(2) - (4)]), n_OPERATOR));
5638 
5639     NTYPE((yyvsp[(3) - (4)]), n_VARIABLE_REFERENCE);
5640     (yyvsp[(3) - (4)])->appendChild((yyvsp[(4) - (4)]));
5641 
5642     (yyval)->appendChild((yyvsp[(3) - (4)]));
5643   ;}
5644     break;
5645 
5646   case 218:
5647 #line 1500 "parser.y"
5648     {
5649     (yyval) = NNEW(n_BINARY_EXPRESSION);
5650     (yyval)->appendChild((yyvsp[(1) - (6)]));
5651     (yyval)->appendChild(NTYPE((yyvsp[(2) - (6)]), n_OPERATOR));
5652 
5653     NTYPE((yyvsp[(4) - (6)]), n_NEW);
5654     (yyvsp[(4) - (6)])->appendChild((yyvsp[(5) - (6)]));
5655     (yyvsp[(4) - (6)])->appendChild((yyvsp[(6) - (6)]));
5656 
5657     NTYPE((yyvsp[(3) - (6)]), n_VARIABLE_REFERENCE);
5658     (yyvsp[(3) - (6)])->appendChild((yyvsp[(4) - (6)]));
5659 
5660     (yyval)->appendChild((yyvsp[(3) - (6)]));
5661   ;}
5662     break;
5663 
5664   case 219:
5665 #line 1514 "parser.y"
5666     {
5667     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
5668     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
5669     (yyval)->appendChild((yyvsp[(2) - (2)]));
5670   ;}
5671     break;
5672 
5673   case 220:
5674 #line 1519 "parser.y"
5675     {
5676     (yyval) = NNEW(n_BINARY_EXPRESSION);
5677     (yyval)->appendChild((yyvsp[(1) - (3)]));
5678     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5679     (yyval)->appendChild((yyvsp[(3) - (3)]));
5680   ;}
5681     break;
5682 
5683   case 221:
5684 #line 1525 "parser.y"
5685     {
5686     (yyval) = NNEW(n_BINARY_EXPRESSION);
5687     (yyval)->appendChild((yyvsp[(1) - (3)]));
5688     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5689     (yyval)->appendChild((yyvsp[(3) - (3)]));
5690   ;}
5691     break;
5692 
5693   case 222:
5694 #line 1531 "parser.y"
5695     {
5696     (yyval) = NNEW(n_BINARY_EXPRESSION);
5697     (yyval)->appendChild((yyvsp[(1) - (3)]));
5698     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5699     (yyval)->appendChild((yyvsp[(3) - (3)]));
5700   ;}
5701     break;
5702 
5703   case 223:
5704 #line 1537 "parser.y"
5705     {
5706     (yyval) = NNEW(n_BINARY_EXPRESSION);
5707     (yyval)->appendChild((yyvsp[(1) - (3)]));
5708     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5709     (yyval)->appendChild((yyvsp[(3) - (3)]));
5710   ;}
5711     break;
5712 
5713   case 224:
5714 #line 1543 "parser.y"
5715     {
5716     (yyval) = NNEW(n_BINARY_EXPRESSION);
5717     (yyval)->appendChild((yyvsp[(1) - (3)]));
5718     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5719     (yyval)->appendChild((yyvsp[(3) - (3)]));
5720   ;}
5721     break;
5722 
5723   case 225:
5724 #line 1549 "parser.y"
5725     {
5726     (yyval) = NNEW(n_BINARY_EXPRESSION);
5727     (yyval)->appendChild((yyvsp[(1) - (3)]));
5728     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5729     (yyval)->appendChild((yyvsp[(3) - (3)]));
5730   ;}
5731     break;
5732 
5733   case 226:
5734 #line 1555 "parser.y"
5735     {
5736     (yyval) = NNEW(n_BINARY_EXPRESSION);
5737     (yyval)->appendChild((yyvsp[(1) - (3)]));
5738     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5739     (yyval)->appendChild((yyvsp[(3) - (3)]));
5740   ;}
5741     break;
5742 
5743   case 227:
5744 #line 1561 "parser.y"
5745     {
5746     (yyval) = NNEW(n_BINARY_EXPRESSION);
5747     (yyval)->appendChild((yyvsp[(1) - (3)]));
5748     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5749     (yyval)->appendChild((yyvsp[(3) - (3)]));
5750   ;}
5751     break;
5752 
5753   case 228:
5754 #line 1567 "parser.y"
5755     {
5756     (yyval) = NNEW(n_BINARY_EXPRESSION);
5757     (yyval)->appendChild((yyvsp[(1) - (3)]));
5758     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5759     (yyval)->appendChild((yyvsp[(3) - (3)]));
5760   ;}
5761     break;
5762 
5763   case 229:
5764 #line 1573 "parser.y"
5765     {
5766     (yyval) = NNEW(n_BINARY_EXPRESSION);
5767     (yyval)->appendChild((yyvsp[(1) - (3)]));
5768     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5769     (yyval)->appendChild((yyvsp[(3) - (3)]));
5770   ;}
5771     break;
5772 
5773   case 230:
5774 #line 1579 "parser.y"
5775     {
5776     (yyval) = NNEW(n_BINARY_EXPRESSION);
5777     (yyval)->appendChild((yyvsp[(1) - (3)]));
5778     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5779     (yyval)->appendChild((yyvsp[(3) - (3)]));
5780   ;}
5781     break;
5782 
5783   case 231:
5784 #line 1585 "parser.y"
5785     {
5786     (yyval) = NNEW(n_UNARY_POSTFIX_EXPRESSION);
5787     (yyval)->appendChild((yyvsp[(1) - (2)]));
5788     (yyval)->appendChild(NTYPE((yyvsp[(2) - (2)]), n_OPERATOR));
5789   ;}
5790     break;
5791 
5792   case 232:
5793 #line 1590 "parser.y"
5794     {
5795     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
5796     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
5797     (yyval)->appendChild((yyvsp[(2) - (2)]));
5798   ;}
5799     break;
5800 
5801   case 233:
5802 #line 1595 "parser.y"
5803     {
5804     (yyval) = NNEW(n_UNARY_POSTFIX_EXPRESSION);
5805     (yyval)->appendChild((yyvsp[(1) - (2)]));
5806     (yyval)->appendChild(NTYPE((yyvsp[(2) - (2)]), n_OPERATOR));
5807   ;}
5808     break;
5809 
5810   case 234:
5811 #line 1600 "parser.y"
5812     {
5813     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
5814     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
5815     (yyval)->appendChild((yyvsp[(2) - (2)]));
5816   ;}
5817     break;
5818 
5819   case 235:
5820 #line 1605 "parser.y"
5821     {
5822     (yyval) = NNEW(n_BINARY_EXPRESSION);
5823     (yyval)->appendChild((yyvsp[(1) - (3)]));
5824     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5825     (yyval)->appendChild((yyvsp[(3) - (3)]));
5826   ;}
5827     break;
5828 
5829   case 236:
5830 #line 1611 "parser.y"
5831     {
5832     (yyval) = NNEW(n_BINARY_EXPRESSION);
5833     (yyval)->appendChild((yyvsp[(1) - (3)]));
5834     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5835     (yyval)->appendChild((yyvsp[(3) - (3)]));
5836   ;}
5837     break;
5838 
5839   case 237:
5840 #line 1617 "parser.y"
5841     {
5842     (yyval) = NNEW(n_BINARY_EXPRESSION);
5843     (yyval)->appendChild((yyvsp[(1) - (3)]));
5844     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5845     (yyval)->appendChild((yyvsp[(3) - (3)]));
5846   ;}
5847     break;
5848 
5849   case 238:
5850 #line 1623 "parser.y"
5851     {
5852     (yyval) = NNEW(n_BINARY_EXPRESSION);
5853     (yyval)->appendChild((yyvsp[(1) - (3)]));
5854     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5855     (yyval)->appendChild((yyvsp[(3) - (3)]));
5856   ;}
5857     break;
5858 
5859   case 239:
5860 #line 1629 "parser.y"
5861     {
5862     (yyval) = NNEW(n_BINARY_EXPRESSION);
5863     (yyval)->appendChild((yyvsp[(1) - (3)]));
5864     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5865     (yyval)->appendChild((yyvsp[(3) - (3)]));
5866   ;}
5867     break;
5868 
5869   case 240:
5870 #line 1635 "parser.y"
5871     {
5872     (yyval) = NNEW(n_BINARY_EXPRESSION);
5873     (yyval)->appendChild((yyvsp[(1) - (3)]));
5874     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5875     (yyval)->appendChild((yyvsp[(3) - (3)]));
5876   ;}
5877     break;
5878 
5879   case 241:
5880 #line 1641 "parser.y"
5881     {
5882     (yyval) = NNEW(n_BINARY_EXPRESSION);
5883     (yyval)->appendChild((yyvsp[(1) - (3)]));
5884     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5885     (yyval)->appendChild((yyvsp[(3) - (3)]));
5886   ;}
5887     break;
5888 
5889   case 242:
5890 #line 1647 "parser.y"
5891     {
5892     (yyval) = NNEW(n_BINARY_EXPRESSION);
5893     (yyval)->appendChild((yyvsp[(1) - (3)]));
5894     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5895     (yyval)->appendChild((yyvsp[(3) - (3)]));
5896   ;}
5897     break;
5898 
5899   case 243:
5900 #line 1653 "parser.y"
5901     {
5902 
5903     /* The concatenation operator generates n_CONCATENATION_LIST instead of
5904        n_BINARY_EXPRESSION because we tend to run into stack depth issues in a
5905        lot of real-world cases otherwise (e.g., in PHP and JSON decoders). */
5906 
5907     if ((yyvsp[(1) - (3)])->type == n_CONCATENATION_LIST && (yyvsp[(3) - (3)])->type == n_CONCATENATION_LIST) {
5908       (yyvsp[(1) - (3)])->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5909       (yyvsp[(1) - (3)])->appendChildren((yyvsp[(3) - (3)]));
5910       (yyval) = (yyvsp[(1) - (3)]);
5911     } else if ((yyvsp[(1) - (3)])->type == n_CONCATENATION_LIST) {
5912       (yyvsp[(1) - (3)])->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5913       (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
5914       (yyval) = (yyvsp[(1) - (3)]);
5915     } else if ((yyvsp[(3) - (3)])->type == n_CONCATENATION_LIST) {
5916       (yyval) = NNEW(n_CONCATENATION_LIST);
5917       (yyval)->appendChild((yyvsp[(1) - (3)]));
5918       (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5919       (yyval)->appendChildren((yyvsp[(3) - (3)]));
5920     } else {
5921       (yyval) = NNEW(n_CONCATENATION_LIST);
5922       (yyval)->appendChild((yyvsp[(1) - (3)]));
5923       (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5924       (yyval)->appendChild((yyvsp[(3) - (3)]));
5925     }
5926   ;}
5927     break;
5928 
5929   case 244:
5930 #line 1679 "parser.y"
5931     {
5932     (yyval) = NNEW(n_BINARY_EXPRESSION);
5933     (yyval)->appendChild((yyvsp[(1) - (3)]));
5934     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5935     (yyval)->appendChild((yyvsp[(3) - (3)]));
5936   ;}
5937     break;
5938 
5939   case 245:
5940 #line 1685 "parser.y"
5941     {
5942     (yyval) = NNEW(n_BINARY_EXPRESSION);
5943     (yyval)->appendChild((yyvsp[(1) - (3)]));
5944     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5945     (yyval)->appendChild((yyvsp[(3) - (3)]));
5946   ;}
5947     break;
5948 
5949   case 246:
5950 #line 1691 "parser.y"
5951     {
5952     (yyval) = NNEW(n_BINARY_EXPRESSION);
5953     (yyval)->appendChild((yyvsp[(1) - (3)]));
5954     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5955     (yyval)->appendChild((yyvsp[(3) - (3)]));
5956   ;}
5957     break;
5958 
5959   case 247:
5960 #line 1697 "parser.y"
5961     {
5962     (yyval) = NNEW(n_BINARY_EXPRESSION);
5963     (yyval)->appendChild((yyvsp[(1) - (3)]));
5964     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5965     (yyval)->appendChild((yyvsp[(3) - (3)]));
5966   ;}
5967     break;
5968 
5969   case 248:
5970 #line 1703 "parser.y"
5971     {
5972     (yyval) = NNEW(n_BINARY_EXPRESSION);
5973     (yyval)->appendChild((yyvsp[(1) - (3)]));
5974     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5975     (yyval)->appendChild((yyvsp[(3) - (3)]));
5976   ;}
5977     break;
5978 
5979   case 249:
5980 #line 1709 "parser.y"
5981     {
5982     (yyval) = NNEW(n_BINARY_EXPRESSION);
5983     (yyval)->appendChild((yyvsp[(1) - (3)]));
5984     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5985     (yyval)->appendChild((yyvsp[(3) - (3)]));
5986   ;}
5987     break;
5988 
5989   case 250:
5990 #line 1715 "parser.y"
5991     {
5992     (yyval) = NNEW(n_BINARY_EXPRESSION);
5993     (yyval)->appendChild((yyvsp[(1) - (3)]));
5994     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
5995     (yyval)->appendChild((yyvsp[(3) - (3)]));
5996   ;}
5997     break;
5998 
5999   case 251:
6000 #line 1721 "parser.y"
6001     {
6002     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6003     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6004     (yyval)->appendChild((yyvsp[(2) - (2)]));
6005   ;}
6006     break;
6007 
6008   case 252:
6009 #line 1726 "parser.y"
6010     {
6011     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6012     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6013     (yyval)->appendChild((yyvsp[(2) - (2)]));
6014   ;}
6015     break;
6016 
6017   case 253:
6018 #line 1731 "parser.y"
6019     {
6020     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6021     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6022     (yyval)->appendChild((yyvsp[(2) - (2)]));
6023   ;}
6024     break;
6025 
6026   case 254:
6027 #line 1736 "parser.y"
6028     {
6029     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6030     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6031     (yyval)->appendChild((yyvsp[(2) - (2)]));
6032   ;}
6033     break;
6034 
6035   case 255:
6036 #line 1741 "parser.y"
6037     {
6038     (yyval) = NNEW(n_BINARY_EXPRESSION);
6039     (yyval)->appendChild((yyvsp[(1) - (3)]));
6040     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6041     (yyval)->appendChild((yyvsp[(3) - (3)]));
6042   ;}
6043     break;
6044 
6045   case 256:
6046 #line 1747 "parser.y"
6047     {
6048     (yyval) = NNEW(n_BINARY_EXPRESSION);
6049     (yyval)->appendChild((yyvsp[(1) - (3)]));
6050     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6051     (yyval)->appendChild((yyvsp[(3) - (3)]));
6052   ;}
6053     break;
6054 
6055   case 257:
6056 #line 1753 "parser.y"
6057     {
6058     (yyval) = NNEW(n_BINARY_EXPRESSION);
6059     (yyval)->appendChild((yyvsp[(1) - (3)]));
6060     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6061     (yyval)->appendChild((yyvsp[(3) - (3)]));
6062   ;}
6063     break;
6064 
6065   case 258:
6066 #line 1759 "parser.y"
6067     {
6068     (yyval) = NNEW(n_BINARY_EXPRESSION);
6069     (yyval)->appendChild((yyvsp[(1) - (3)]));
6070     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6071     (yyval)->appendChild((yyvsp[(3) - (3)]));
6072   ;}
6073     break;
6074 
6075   case 259:
6076 #line 1765 "parser.y"
6077     {
6078     (yyval) = NNEW(n_BINARY_EXPRESSION);
6079     (yyval)->appendChild((yyvsp[(1) - (3)]));
6080     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6081     (yyval)->appendChild((yyvsp[(3) - (3)]));
6082   ;}
6083     break;
6084 
6085   case 260:
6086 #line 1771 "parser.y"
6087     {
6088     (yyval) = NNEW(n_BINARY_EXPRESSION);
6089     (yyval)->appendChild((yyvsp[(1) - (3)]));
6090     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6091     (yyval)->appendChild((yyvsp[(3) - (3)]));
6092   ;}
6093     break;
6094 
6095   case 261:
6096 #line 1777 "parser.y"
6097     {
6098     (yyval) = NNEW(n_BINARY_EXPRESSION);
6099     (yyval)->appendChild((yyvsp[(1) - (3)]));
6100     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6101     (yyval)->appendChild((yyvsp[(3) - (3)]));
6102   ;}
6103     break;
6104 
6105   case 262:
6106 #line 1783 "parser.y"
6107     {
6108     (yyval) = NNEW(n_BINARY_EXPRESSION);
6109     (yyval)->appendChild((yyvsp[(1) - (3)]));
6110     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6111     (yyval)->appendChild((yyvsp[(3) - (3)]));
6112   ;}
6113     break;
6114 
6115   case 263:
6116 #line 1789 "parser.y"
6117     {
6118     (yyval) = NNEW(n_BINARY_EXPRESSION);
6119     (yyval)->appendChild((yyvsp[(1) - (3)]));
6120     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6121     (yyval)->appendChild((yyvsp[(3) - (3)]));
6122   ;}
6123     break;
6124 
6125   case 264:
6126 #line 1795 "parser.y"
6127     {
6128     (yyval) = NNEW(n_BINARY_EXPRESSION);
6129     (yyval)->appendChild((yyvsp[(1) - (3)]));
6130     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6131     (yyval)->appendChild((yyvsp[(3) - (3)]));
6132   ;}
6133     break;
6134 
6135   case 267:
6136 #line 1803 "parser.y"
6137     {
6138     (yyval) = NNEW(n_TERNARY_EXPRESSION);
6139     (yyval)->appendChild((yyvsp[(1) - (5)]));
6140     (yyval)->appendChild(NTYPE((yyvsp[(2) - (5)]), n_OPERATOR));
6141     (yyval)->appendChild((yyvsp[(3) - (5)]));
6142     (yyval)->appendChild(NTYPE((yyvsp[(4) - (5)]), n_OPERATOR));
6143     (yyval)->appendChild((yyvsp[(5) - (5)]));
6144   ;}
6145     break;
6146 
6147   case 268:
6148 #line 1811 "parser.y"
6149     {
6150     (yyval) = NNEW(n_TERNARY_EXPRESSION);
6151     (yyval)->appendChild((yyvsp[(1) - (4)]));
6152     (yyval)->appendChild(NTYPE((yyvsp[(2) - (4)]), n_OPERATOR));
6153     (yyval)->appendChild(NNEW(n_EMPTY));
6154     (yyval)->appendChild(NTYPE((yyvsp[(3) - (4)]), n_OPERATOR));
6155     (yyval)->appendChild((yyvsp[(4) - (4)]));
6156   ;}
6157     break;
6158 
6159   case 269:
6160 #line 1819 "parser.y"
6161     {
6162     (yyval) = NNEW(n_BINARY_EXPRESSION);
6163     (yyval)->appendChild((yyvsp[(1) - (3)]));
6164     (yyval)->appendChild(NTYPE((yyvsp[(2) - (3)]), n_OPERATOR));
6165     (yyval)->appendChild((yyvsp[(3) - (3)]));
6166   ;}
6167     break;
6168 
6169   case 271:
6170 #line 1826 "parser.y"
6171     {
6172     (yyval) = NNEW(n_CAST_EXPRESSION);
6173     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6174     (yyval)->appendChild((yyvsp[(2) - (2)]));
6175   ;}
6176     break;
6177 
6178   case 272:
6179 #line 1831 "parser.y"
6180     {
6181     (yyval) = NNEW(n_CAST_EXPRESSION);
6182     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6183     (yyval)->appendChild((yyvsp[(2) - (2)]));
6184   ;}
6185     break;
6186 
6187   case 273:
6188 #line 1836 "parser.y"
6189     {
6190     (yyval) = NNEW(n_CAST_EXPRESSION);
6191     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6192     (yyval)->appendChild((yyvsp[(2) - (2)]));
6193   ;}
6194     break;
6195 
6196   case 274:
6197 #line 1841 "parser.y"
6198     {
6199     (yyval) = NNEW(n_CAST_EXPRESSION);
6200     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6201     (yyval)->appendChild((yyvsp[(2) - (2)]));
6202   ;}
6203     break;
6204 
6205   case 275:
6206 #line 1846 "parser.y"
6207     {
6208     (yyval) = NNEW(n_CAST_EXPRESSION);
6209     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6210     (yyval)->appendChild((yyvsp[(2) - (2)]));
6211   ;}
6212     break;
6213 
6214   case 276:
6215 #line 1851 "parser.y"
6216     {
6217     (yyval) = NNEW(n_CAST_EXPRESSION);
6218     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6219     (yyval)->appendChild((yyvsp[(2) - (2)]));
6220   ;}
6221     break;
6222 
6223   case 277:
6224 #line 1856 "parser.y"
6225     {
6226     (yyval) = NNEW(n_CAST_EXPRESSION);
6227     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_CAST));
6228     (yyval)->appendChild((yyvsp[(2) - (2)]));
6229   ;}
6230     break;
6231 
6232   case 278:
6233 #line 1861 "parser.y"
6234     {
6235     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6236     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6237     (yyval)->appendChild((yyvsp[(2) - (2)]));
6238   ;}
6239     break;
6240 
6241   case 279:
6242 #line 1866 "parser.y"
6243     {
6244     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6245     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6246     (yyval)->appendChild((yyvsp[(2) - (2)]));
6247   ;}
6248     break;
6249 
6250   case 280:
6251 #line 1871 "parser.y"
6252     {
6253     NTYPE((yyvsp[(1) - (1)]), n_BACKTICKS_EXPRESSION);
6254     (yyval) = (yyvsp[(1) - (1)]);
6255   ;}
6256     break;
6257 
6258   case 284:
6259 #line 1878 "parser.y"
6260     {
6261     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6262     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6263     (yyval)->appendChild((yyvsp[(2) - (2)]));
6264   ;}
6265     break;
6266 
6267   case 285:
6268 #line 1883 "parser.y"
6269     {
6270     NTYPE((yyvsp[(1) - (1)]), n_YIELD);
6271     (yyvsp[(1) - (1)])->appendChild(NNEW(n_EMPTY));
6272     (yyvsp[(1) - (1)])->appendChild(NNEW(n_EMPTY));
6273     (yyval) = (yyvsp[(1) - (1)]);
6274   ;}
6275     break;
6276 
6277   case 286:
6278 #line 1892 "parser.y"
6279     {
6280     NSPAN((yyvsp[(1) - (10)]), n_FUNCTION_DECLARATION, (yyvsp[(9) - (10)]));
6281     (yyvsp[(1) - (10)])->appendChild(NNEW(n_EMPTY));
6282     (yyvsp[(1) - (10)])->appendChild((yyvsp[(2) - (10)]));
6283     (yyvsp[(1) - (10)])->appendChild(NNEW(n_EMPTY));
6284     (yyvsp[(1) - (10)])->appendChild(NEXPAND((yyvsp[(3) - (10)]), (yyvsp[(4) - (10)]), (yyvsp[(5) - (10)])));
6285     (yyvsp[(1) - (10)])->appendChild((yyvsp[(6) - (10)]));
6286     (yyvsp[(1) - (10)])->appendChild((yyvsp[(7) - (10)]));
6287     (yyvsp[(1) - (10)])->appendChild(NEXPAND((yyvsp[(8) - (10)]), (yyvsp[(9) - (10)]), (yyvsp[(10) - (10)])));
6288 
6289     (yyval) = (yyvsp[(1) - (10)]);
6290   ;}
6291     break;
6292 
6293   case 287:
6294 #line 1907 "parser.y"
6295     {
6296     NSPAN((yyvsp[(2) - (11)]), n_FUNCTION_DECLARATION, (yyvsp[(10) - (11)]));
6297     NMORE((yyvsp[(2) - (11)]), (yyvsp[(1) - (11)]));
6298 
6299     (yyval) = NNEW(n_FUNCTION_MODIFIER_LIST);
6300     (yyval)->appendChild(NTYPE((yyvsp[(1) - (11)]), n_STRING));
6301     (yyvsp[(2) - (11)])->appendChild((yyvsp[(1) - (11)]));
6302 
6303     (yyvsp[(2) - (11)])->appendChild(NNEW(n_EMPTY));
6304     (yyvsp[(2) - (11)])->appendChild((yyvsp[(3) - (11)]));
6305     (yyvsp[(2) - (11)])->appendChild(NNEW(n_EMPTY));
6306     (yyvsp[(2) - (11)])->appendChild(NEXPAND((yyvsp[(4) - (11)]), (yyvsp[(5) - (11)]), (yyvsp[(6) - (11)])));
6307     (yyvsp[(2) - (11)])->appendChild((yyvsp[(7) - (11)]));
6308     (yyvsp[(2) - (11)])->appendChild((yyvsp[(8) - (11)]));
6309     (yyvsp[(2) - (11)])->appendChild(NEXPAND((yyvsp[(9) - (11)]), (yyvsp[(10) - (11)]), (yyvsp[(11) - (11)])));
6310 
6311     (yyval) = (yyvsp[(2) - (11)]);
6312   ;}
6313     break;
6314 
6315   case 288:
6316 #line 1928 "parser.y"
6317     {
6318     NTYPE((yyvsp[(1) - (2)]), n_YIELD);
6319     (yyvsp[(2) - (2)])->appendChild(NNEW(n_EMPTY));
6320     (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
6321     (yyval) = (yyvsp[(1) - (2)]);
6322   ;}
6323     break;
6324 
6325   case 289:
6326 #line 1934 "parser.y"
6327     {
6328     NTYPE((yyvsp[(1) - (2)]), n_YIELD);
6329     (yyvsp[(2) - (2)])->appendChild(NNEW(n_EMPTY));
6330     (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
6331     (yyval) = (yyvsp[(1) - (2)]);
6332   ;}
6333     break;
6334 
6335   case 290:
6336 #line 1940 "parser.y"
6337     {
6338     NTYPE((yyvsp[(1) - (4)]), n_YIELD);
6339     (yyvsp[(1) - (4)])->appendChild((yyvsp[(2) - (4)]));
6340     (yyvsp[(1) - (4)])->appendChild((yyvsp[(4) - (4)]));
6341     (yyval) = (yyvsp[(1) - (4)]);
6342   ;}
6343     break;
6344 
6345   case 291:
6346 #line 1946 "parser.y"
6347     {
6348     NTYPE((yyvsp[(1) - (4)]), n_YIELD);
6349     (yyvsp[(1) - (4)])->appendChild((yyvsp[(2) - (4)]));
6350     (yyvsp[(1) - (4)])->appendChild((yyvsp[(4) - (4)]));
6351     (yyval) = (yyvsp[(1) - (4)]);
6352   ;}
6353     break;
6354 
6355   case 293:
6356 #line 1959 "parser.y"
6357     {
6358     (yyval) = NNEW(n_EMPTY);
6359   ;}
6360     break;
6361 
6362   case 294:
6363 #line 1962 "parser.y"
6364     {
6365     NTYPE((yyvsp[(1) - (4)]), n_LEXICAL_VARIABLE_LIST);
6366     (yyvsp[(1) - (4)])->appendChildren((yyvsp[(3) - (4)]));
6367     (yyval) = (yyvsp[(1) - (4)]);
6368   ;}
6369     break;
6370 
6371   case 295:
6372 #line 1970 "parser.y"
6373     {
6374     (yyval) = (yyvsp[(1) - (3)])->appendChild(NTYPE((yyvsp[(3) - (3)]), n_VARIABLE));
6375   ;}
6376     break;
6377 
6378   case 296:
6379 #line 1973 "parser.y"
6380     {
6381     NTYPE((yyvsp[(3) - (4)]), n_VARIABLE_REFERENCE);
6382     (yyvsp[(3) - (4)])->appendChild(NTYPE((yyvsp[(4) - (4)]), n_VARIABLE));
6383     (yyval) = (yyvsp[(1) - (4)])->appendChild((yyvsp[(3) - (4)]));
6384   ;}
6385     break;
6386 
6387   case 297:
6388 #line 1978 "parser.y"
6389     {
6390     (yyval) = NNEW(n_LEXICAL_VARIABLE_LIST);
6391     (yyval)->appendChild(NTYPE((yyvsp[(1) - (1)]), n_VARIABLE));
6392   ;}
6393     break;
6394 
6395   case 298:
6396 #line 1982 "parser.y"
6397     {
6398     NTYPE((yyvsp[(1) - (2)]), n_VARIABLE_REFERENCE);
6399     (yyvsp[(1) - (2)])->appendChild(NTYPE((yyvsp[(2) - (2)]), n_VARIABLE));
6400     (yyval) = NNEW(n_LEXICAL_VARIABLE_LIST);
6401     (yyval)->appendChild((yyvsp[(1) - (2)]));
6402   ;}
6403     break;
6404 
6405   case 299:
6406 #line 1991 "parser.y"
6407     {
6408     (yyval) = NNEW(n_FUNCTION_CALL);
6409     (yyval)->appendChild((yyvsp[(1) - (4)]));
6410     (yyval)->appendChild(NEXPAND((yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]), (yyvsp[(4) - (4)])));
6411   ;}
6412     break;
6413 
6414   case 300:
6415 #line 1997 "parser.y"
6416     {
6417     NMORE((yyvsp[(3) - (6)]), (yyvsp[(1) - (6)]));
6418     (yyval) = NNEW(n_FUNCTION_CALL);
6419     (yyval)->appendChild((yyvsp[(3) - (6)]));
6420     (yyval)->appendChild(NEXPAND((yyvsp[(4) - (6)]), (yyvsp[(5) - (6)]), (yyvsp[(6) - (6)])));
6421   ;}
6422     break;
6423 
6424   case 301:
6425 #line 2003 "parser.y"
6426     {
6427     NMORE((yyvsp[(2) - (5)]), (yyvsp[(1) - (5)]));
6428     (yyval) = NNEW(n_FUNCTION_CALL);
6429     (yyval)->appendChild((yyvsp[(2) - (5)]));
6430     (yyval)->appendChild(NEXPAND((yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]), (yyvsp[(5) - (5)])));
6431   ;}
6432     break;
6433 
6434   case 302:
6435 #line 2010 "parser.y"
6436     {
6437     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6438     (yyval)->appendChild((yyvsp[(1) - (6)]));
6439     (yyval)->appendChild(NTYPE((yyvsp[(3) - (6)]), n_STRING));
6440 
6441     (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval));
6442     (yyval)->appendChild(NEXPAND((yyvsp[(4) - (6)]), (yyvsp[(5) - (6)]), (yyvsp[(6) - (6)])));
6443   ;}
6444     break;
6445 
6446   case 303:
6447 #line 2019 "parser.y"
6448     {
6449     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6450     (yyval)->appendChild((yyvsp[(1) - (6)]));
6451     (yyval)->appendChild(NTYPE((yyvsp[(3) - (6)]), n_STRING));
6452 
6453     (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval));
6454     (yyval)->appendChild(NEXPAND((yyvsp[(4) - (6)]), (yyvsp[(5) - (6)]), (yyvsp[(6) - (6)])));
6455   ;}
6456     break;
6457 
6458   case 304:
6459 #line 2028 "parser.y"
6460     {
6461     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6462     (yyval)->appendChild((yyvsp[(1) - (6)]));
6463     (yyval)->appendChild(NTYPE((yyvsp[(3) - (6)]), n_STRING));
6464 
6465     (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval));
6466     (yyval)->appendChild(NEXPAND((yyvsp[(4) - (6)]), (yyvsp[(5) - (6)]), (yyvsp[(6) - (6)])));
6467   ;}
6468     break;
6469 
6470   case 305:
6471 #line 2037 "parser.y"
6472     {
6473     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6474     (yyval)->appendChild((yyvsp[(1) - (6)]));
6475     (yyval)->appendChild(NTYPE((yyvsp[(3) - (6)]), n_STRING));
6476 
6477     (yyval) = NNEW(n_FUNCTION_CALL)->appendChild((yyval));
6478     (yyval)->appendChild(NEXPAND((yyvsp[(4) - (6)]), (yyvsp[(5) - (6)]), (yyvsp[(6) - (6)])));
6479   ;}
6480     break;
6481 
6482   case 306:
6483 #line 2045 "parser.y"
6484     {
6485     (yyval) = NNEW(n_FUNCTION_CALL);
6486     (yyval)->appendChild((yyvsp[(1) - (4)]));
6487     (yyval)->appendChild(NEXPAND((yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]), (yyvsp[(4) - (4)])));
6488   ;}
6489     break;
6490 
6491   case 307:
6492 #line 2053 "parser.y"
6493     {
6494     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_CLASS_NAME);
6495   ;}
6496     break;
6497 
6498   case 308:
6499 #line 2056 "parser.y"
6500     {
6501     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_CLASS_NAME);
6502   ;}
6503     break;
6504 
6505   case 309:
6506 #line 2059 "parser.y"
6507     {
6508     NMORE((yyvsp[(3) - (3)]), (yyvsp[(1) - (3)]));
6509     (yyval) = NTYPE((yyvsp[(3) - (3)]), n_CLASS_NAME);
6510   ;}
6511     break;
6512 
6513   case 310:
6514 #line 2063 "parser.y"
6515     {
6516     NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
6517     (yyval) = NTYPE((yyvsp[(2) - (2)]), n_CLASS_NAME);
6518   ;}
6519     break;
6520 
6521   case 311:
6522 #line 2070 "parser.y"
6523     {
6524     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_CLASS_NAME);
6525   ;}
6526     break;
6527 
6528   case 312:
6529 #line 2073 "parser.y"
6530     {
6531     NMORE((yyvsp[(3) - (3)]), (yyvsp[(1) - (3)]));
6532     (yyval) = NTYPE((yyvsp[(3) - (3)]), n_CLASS_NAME);
6533   ;}
6534     break;
6535 
6536   case 313:
6537 #line 2077 "parser.y"
6538     {
6539     NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
6540     (yyval) = NTYPE((yyvsp[(2) - (2)]), n_CLASS_NAME);
6541   ;}
6542     break;
6543 
6544   case 316:
6545 #line 2092 "parser.y"
6546     {
6547     (yyval) = NNEW(n_OBJECT_PROPERTY_ACCESS);
6548     (yyval)->appendChild((yyvsp[(1) - (4)]));
6549     (yyval)->appendChild((yyvsp[(3) - (4)]));
6550     for (xhpast::node_list_t::iterator ii = (yyvsp[(4) - (4)])->children.begin();
6551       ii != (yyvsp[(4) - (4)])->children.end();
6552       ++ii) {
6553 
6554       (yyval) = NNEW(n_OBJECT_PROPERTY_ACCESS)->appendChild((yyval));
6555       (yyval)->appendChild(*ii);
6556     }
6557   ;}
6558     break;
6559 
6560   case 318:
6561 #line 2108 "parser.y"
6562     {
6563     (yyval) = (yyvsp[(1) - (2)])->appendChild((yyvsp[(2) - (2)]));
6564   ;}
6565     break;
6566 
6567   case 319:
6568 #line 2111 "parser.y"
6569     {
6570     (yyval) = NNEW(n_EMPTY);
6571   ;}
6572     break;
6573 
6574   case 320:
6575 #line 2117 "parser.y"
6576     {
6577     (yyval) = (yyvsp[(2) - (2)]);
6578   ;}
6579     break;
6580 
6581   case 321:
6582 #line 2123 "parser.y"
6583     {
6584     (yyval) = NNEW(n_EMPTY);
6585   ;}
6586     break;
6587 
6588   case 322:
6589 #line 2126 "parser.y"
6590     {
6591     NSPAN((yyvsp[(1) - (2)]), n_EMPTY, (yyvsp[(2) - (2)]));
6592     (yyval) = (yyvsp[(1) - (2)]);
6593   ;}
6594     break;
6595 
6596   case 323:
6597 #line 2130 "parser.y"
6598     {
6599     NSPAN((yyvsp[(1) - (3)]), n_PARENTHETICAL_EXPRESSION, (yyvsp[(3) - (3)]));
6600     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
6601     (yyval) = (yyvsp[(1) - (3)]);
6602   ;}
6603     break;
6604 
6605   case 324:
6606 #line 2138 "parser.y"
6607     {
6608     (yyval) = NNEW(n_EMPTY);
6609   ;}
6610     break;
6611 
6612   case 325:
6613 #line 2141 "parser.y"
6614     {
6615     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
6616   ;}
6617     break;
6618 
6619   case 326:
6620 #line 2147 "parser.y"
6621     {
6622     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_NUMERIC_SCALAR);
6623   ;}
6624     break;
6625 
6626   case 327:
6627 #line 2150 "parser.y"
6628     {
6629     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_NUMERIC_SCALAR);
6630   ;}
6631     break;
6632 
6633   case 328:
6634 #line 2153 "parser.y"
6635     {
6636     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_STRING_SCALAR);
6637   ;}
6638     break;
6639 
6640   case 329:
6641 #line 2156 "parser.y"
6642     {
6643     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6644   ;}
6645     break;
6646 
6647   case 330:
6648 #line 2159 "parser.y"
6649     {
6650     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6651   ;}
6652     break;
6653 
6654   case 331:
6655 #line 2162 "parser.y"
6656     {
6657     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6658   ;}
6659     break;
6660 
6661   case 332:
6662 #line 2165 "parser.y"
6663     {
6664     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6665   ;}
6666     break;
6667 
6668   case 333:
6669 #line 2168 "parser.y"
6670     {
6671     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6672   ;}
6673     break;
6674 
6675   case 334:
6676 #line 2171 "parser.y"
6677     {
6678     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6679   ;}
6680     break;
6681 
6682   case 335:
6683 #line 2174 "parser.y"
6684     {
6685     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6686   ;}
6687     break;
6688 
6689   case 336:
6690 #line 2177 "parser.y"
6691     {
6692     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_MAGIC_SCALAR);
6693   ;}
6694     break;
6695 
6696   case 337:
6697 #line 2180 "parser.y"
6698     {
6699     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_HEREDOC);
6700   ;}
6701     break;
6702 
6703   case 340:
6704 #line 2188 "parser.y"
6705     {
6706     NMORE((yyvsp[(3) - (3)]), (yyvsp[(1) - (3)]));
6707     (yyval) = (yyvsp[(3) - (3)]);
6708   ;}
6709     break;
6710 
6711   case 341:
6712 #line 2192 "parser.y"
6713     {
6714     NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
6715     (yyval) = (yyvsp[(2) - (2)]);
6716   ;}
6717     break;
6718 
6719   case 342:
6720 #line 2196 "parser.y"
6721     {
6722     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6723     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6724     (yyval)->appendChild((yyvsp[(2) - (2)]));
6725   ;}
6726     break;
6727 
6728   case 343:
6729 #line 2201 "parser.y"
6730     {
6731     (yyval) = NNEW(n_UNARY_PREFIX_EXPRESSION);
6732     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_OPERATOR));
6733     (yyval)->appendChild((yyvsp[(2) - (2)]));
6734   ;}
6735     break;
6736 
6737   case 344:
6738 #line 2206 "parser.y"
6739     {
6740     NTYPE((yyvsp[(1) - (4)]), n_ARRAY_LITERAL);
6741     (yyvsp[(1) - (4)])->appendChild(NEXPAND((yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]), (yyvsp[(4) - (4)])));
6742     (yyval) = (yyvsp[(1) - (4)]);
6743   ;}
6744     break;
6745 
6746   case 345:
6747 #line 2211 "parser.y"
6748     {
6749     NTYPE((yyvsp[(1) - (3)]), n_ARRAY_LITERAL);
6750     (yyvsp[(1) - (3)])->appendChild(NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)])));
6751     (yyval) = (yyvsp[(1) - (3)]);
6752   ;}
6753     break;
6754 
6755   case 347:
6756 #line 2220 "parser.y"
6757     {
6758     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6759     (yyval)->appendChild((yyvsp[(1) - (3)]));
6760     (yyval)->appendChild(NTYPE((yyvsp[(3) - (3)]), n_STRING));
6761   ;}
6762     break;
6763 
6764   case 351:
6765 #line 2231 "parser.y"
6766     {
6767     (yyval) = NMORE((yyvsp[(3) - (3)]), (yyvsp[(1) - (3)]));
6768   ;}
6769     break;
6770 
6771   case 352:
6772 #line 2234 "parser.y"
6773     {
6774     (yyval) = NMORE((yyvsp[(2) - (2)]), (yyvsp[(1) - (2)]));
6775   ;}
6776     break;
6777 
6778   case 354:
6779 #line 2241 "parser.y"
6780     {
6781     (yyval) = NNEW(n_ARRAY_VALUE_LIST);
6782   ;}
6783     break;
6784 
6785   case 355:
6786 #line 2244 "parser.y"
6787     {
6788     (yyval) = NMORE((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
6789   ;}
6790     break;
6791 
6792   case 356:
6793 #line 2250 "parser.y"
6794     {
6795     (yyval) = NNEW(n_EMPTY);
6796   ;}
6797     break;
6798 
6799   case 358:
6800 #line 2261 "parser.y"
6801     {
6802     (yyval) = NNEW(n_ARRAY_VALUE);
6803     (yyval)->appendChild((yyvsp[(3) - (5)]));
6804     (yyval)->appendChild((yyvsp[(5) - (5)]));
6805 
6806     (yyval) = (yyvsp[(1) - (5)])->appendChild((yyval));
6807   ;}
6808     break;
6809 
6810   case 359:
6811 #line 2268 "parser.y"
6812     {
6813     (yyval) = NNEW(n_ARRAY_VALUE);
6814     (yyval)->appendChild(NNEW(n_EMPTY));
6815     (yyval)->appendChild((yyvsp[(3) - (3)]));
6816 
6817     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyval));
6818   ;}
6819     break;
6820 
6821   case 360:
6822 #line 2275 "parser.y"
6823     {
6824     (yyval) = NNEW(n_ARRAY_VALUE);
6825     (yyval)->appendChild((yyvsp[(1) - (3)]));
6826     (yyval)->appendChild((yyvsp[(3) - (3)]));
6827 
6828     (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval));
6829   ;}
6830     break;
6831 
6832   case 361:
6833 #line 2282 "parser.y"
6834     {
6835     (yyval) = NNEW(n_ARRAY_VALUE);
6836     (yyval)->appendChild(NNEW(n_EMPTY));
6837     (yyval)->appendChild((yyvsp[(1) - (1)]));
6838 
6839     (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval));
6840   ;}
6841     break;
6842 
6843   case 367:
6844 #line 2312 "parser.y"
6845     {
6846     (yyval) = NNEW(n_OBJECT_PROPERTY_ACCESS);
6847     (yyval)->appendChild((yyvsp[(1) - (5)]));
6848     (yyval)->appendChild((yyvsp[(3) - (5)]));
6849 
6850     if ((yyvsp[(4) - (5)])->type != n_EMPTY) {
6851       (yyval) = NNEW(n_METHOD_CALL)->appendChild((yyval));
6852       (yyval)->appendChild((yyvsp[(4) - (5)]));
6853     }
6854 
6855     for (xhpast::node_list_t::iterator ii = (yyvsp[(5) - (5)])->children.begin();
6856       ii != (yyvsp[(5) - (5)])->children.end();
6857       ++ii) {
6858 
6859       if ((*ii)->type == n_CALL_PARAMETER_LIST) {
6860         (yyval) = NNEW(n_METHOD_CALL)->appendChild((yyval));
6861         (yyval)->appendChild((*ii));
6862       } else {
6863         (yyval) = NNEW(n_OBJECT_PROPERTY_ACCESS)->appendChild((yyval));
6864         (yyval)->appendChild((*ii));
6865       }
6866     }
6867   ;}
6868     break;
6869 
6870   case 369:
6871 #line 2339 "parser.y"
6872     {
6873     (yyval) = (yyvsp[(1) - (2)])->appendChildren((yyvsp[(2) - (2)]));
6874   ;}
6875     break;
6876 
6877   case 370:
6878 #line 2342 "parser.y"
6879     {
6880     (yyval) = NNEW(n_EMPTY);
6881   ;}
6882     break;
6883 
6884   case 371:
6885 #line 2348 "parser.y"
6886     {
6887     (yyval) = NNEW(n_EMPTY);
6888     (yyval)->appendChild((yyvsp[(2) - (3)]));
6889     if ((yyvsp[(3) - (3)])->type != n_EMPTY) {
6890       (yyval)->appendChild((yyvsp[(3) - (3)]));
6891     }
6892   ;}
6893     break;
6894 
6895   case 372:
6896 #line 2358 "parser.y"
6897     {
6898     (yyval) = NNEW(n_INDEX_ACCESS);
6899     (yyval)->appendChild((yyvsp[(1) - (4)]));
6900     (yyval)->appendChild((yyvsp[(3) - (4)]));
6901     NMORE((yyval), (yyvsp[(4) - (4)]));
6902   ;}
6903     break;
6904 
6905   case 373:
6906 #line 2364 "parser.y"
6907     {
6908     (yyval) = NNEW(n_INDEX_ACCESS);
6909     (yyval)->appendChild((yyvsp[(1) - (4)]));
6910     (yyval)->appendChild((yyvsp[(3) - (4)]));
6911     NMORE((yyval), (yyvsp[(4) - (4)]));
6912   ;}
6913     break;
6914 
6915   case 374:
6916 #line 2373 "parser.y"
6917     {
6918     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
6919   ;}
6920     break;
6921 
6922   case 377:
6923 #line 2381 "parser.y"
6924     {
6925     (yyval) = NNEW(n_EMPTY);
6926   ;}
6927     break;
6928 
6929   case 379:
6930 #line 2388 "parser.y"
6931     {
6932     xhpast::Node *last = (yyvsp[(1) - (2)]);
6933     NMORE((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
6934     while (last->firstChild() &&
6935            last->firstChild()->type == n_VARIABLE_VARIABLE) {
6936       NMORE(last, (yyvsp[(2) - (2)]));
6937       last = last->firstChild();
6938     }
6939     last->appendChild((yyvsp[(2) - (2)]));
6940 
6941     (yyval) = (yyvsp[(1) - (2)]);
6942   ;}
6943     break;
6944 
6945   case 380:
6946 #line 2403 "parser.y"
6947     {
6948     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6949     (yyval)->appendChild((yyvsp[(1) - (3)]));
6950     (yyval)->appendChild((yyvsp[(3) - (3)]));
6951   ;}
6952     break;
6953 
6954   case 381:
6955 #line 2408 "parser.y"
6956     {
6957     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
6958     (yyval)->appendChild((yyvsp[(1) - (3)]));
6959     (yyval)->appendChild((yyvsp[(3) - (3)]));
6960   ;}
6961     break;
6962 
6963   case 383:
6964 #line 2420 "parser.y"
6965     {
6966     (yyval) = NNEW(n_INDEX_ACCESS);
6967     (yyval)->appendChild((yyvsp[(1) - (4)]));
6968     (yyval)->appendChild((yyvsp[(3) - (4)]));
6969     NMORE((yyval), (yyvsp[(4) - (4)]));
6970   ;}
6971     break;
6972 
6973   case 384:
6974 #line 2426 "parser.y"
6975     {
6976     (yyval) = NNEW(n_INDEX_ACCESS);
6977     (yyval)->appendChild((yyvsp[(1) - (4)]));
6978     (yyval)->appendChild((yyvsp[(3) - (4)]));
6979     NMORE((yyval), (yyvsp[(4) - (4)]));
6980   ;}
6981     break;
6982 
6983   case 389:
6984 #line 2442 "parser.y"
6985     {
6986     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
6987   ;}
6988     break;
6989 
6990   case 390:
6991 #line 2445 "parser.y"
6992     {
6993     xhpast::Node *last = (yyvsp[(1) - (2)]);
6994     NMORE((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
6995     while (last->firstChild() &&
6996            last->firstChild()->type == n_VARIABLE_VARIABLE) {
6997       NMORE(last, (yyvsp[(2) - (2)]));
6998       last = last->firstChild();
6999     }
7000     last->appendChild((yyvsp[(2) - (2)]));
7001 
7002     (yyval) = (yyvsp[(1) - (2)]);
7003   ;}
7004     break;
7005 
7006   case 392:
7007 #line 2461 "parser.y"
7008     {
7009     (yyval) = NNEW(n_INDEX_ACCESS);
7010     (yyval)->appendChild((yyvsp[(1) - (4)]));
7011     (yyval)->appendChild((yyvsp[(3) - (4)]));
7012     NMORE((yyval), (yyvsp[(4) - (4)]));
7013   ;}
7014     break;
7015 
7016   case 393:
7017 #line 2467 "parser.y"
7018     {
7019     (yyval) = NNEW(n_INDEX_ACCESS);
7020     (yyval)->appendChild((yyvsp[(1) - (4)]));
7021     (yyval)->appendChild((yyvsp[(3) - (4)]));
7022     NMORE((yyval), (yyvsp[(4) - (4)]));
7023   ;}
7024     break;
7025 
7026   case 395:
7027 #line 2477 "parser.y"
7028     {
7029     NTYPE((yyvsp[(1) - (1)]), n_VARIABLE);
7030   ;}
7031     break;
7032 
7033   case 396:
7034 #line 2480 "parser.y"
7035     {
7036     NSPAN((yyvsp[(1) - (4)]), n_VARIABLE_EXPRESSION, (yyvsp[(4) - (4)]));
7037     (yyvsp[(1) - (4)])->appendChild((yyvsp[(3) - (4)]));
7038     (yyval) = (yyvsp[(1) - (4)]);
7039   ;}
7040     break;
7041 
7042   case 397:
7043 #line 2488 "parser.y"
7044     {
7045     (yyval) = NNEW(n_EMPTY);
7046   ;}
7047     break;
7048 
7049   case 398:
7050 #line 2491 "parser.y"
7051     {
7052     (yyval) = (yyvsp[(1) - (1)]);
7053   ;}
7054     break;
7055 
7056   case 401:
7057 #line 2502 "parser.y"
7058     {
7059     (yyval) = NNEW(n_INDEX_ACCESS);
7060     (yyval)->appendChild((yyvsp[(1) - (4)]));
7061     (yyval)->appendChild((yyvsp[(3) - (4)]));
7062     NMORE((yyval), (yyvsp[(4) - (4)]));
7063   ;}
7064     break;
7065 
7066   case 402:
7067 #line 2508 "parser.y"
7068     {
7069     (yyval) = NNEW(n_INDEX_ACCESS);
7070     (yyval)->appendChild((yyvsp[(1) - (4)]));
7071     (yyval)->appendChild((yyvsp[(3) - (4)]));
7072     NMORE((yyval), (yyvsp[(4) - (4)]));
7073   ;}
7074     break;
7075 
7076   case 404:
7077 #line 2518 "parser.y"
7078     {
7079     NTYPE((yyvsp[(1) - (1)]), n_STRING);
7080     (yyval) = (yyvsp[(1) - (1)]);
7081   ;}
7082     break;
7083 
7084   case 405:
7085 #line 2522 "parser.y"
7086     {
7087   (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
7088   ;}
7089     break;
7090 
7091   case 406:
7092 #line 2528 "parser.y"
7093     {
7094     (yyval) = NTYPE((yyvsp[(1) - (1)]), n_VARIABLE_VARIABLE);
7095   ;}
7096     break;
7097 
7098   case 407:
7099 #line 2531 "parser.y"
7100     {
7101     (yyvsp[(2) - (2)]) = NTYPE((yyvsp[(2) - (2)]), n_VARIABLE_VARIABLE);
7102 
7103     xhpast::Node *last = (yyvsp[(1) - (2)]);
7104     while (last->firstChild() &&
7105            last->firstChild()->type == n_VARIABLE_VARIABLE) {
7106       last = last->firstChild();
7107     }
7108     last->appendChild((yyvsp[(2) - (2)]));
7109 
7110     (yyval) = (yyvsp[(1) - (2)]);
7111   ;}
7112     break;
7113 
7114   case 408:
7115 #line 2546 "parser.y"
7116     {
7117     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
7118   ;}
7119     break;
7120 
7121   case 409:
7122 #line 2549 "parser.y"
7123     {
7124     (yyval) = NNEW(n_ASSIGNMENT_LIST);
7125     (yyval)->appendChild((yyvsp[(1) - (1)]));
7126   ;}
7127     break;
7128 
7129   case 411:
7130 #line 2557 "parser.y"
7131     {
7132     (yyval) = NNEW(n_LIST);
7133     (yyval)->appendChild(NEXPAND((yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]), (yyvsp[(4) - (4)])));
7134   ;}
7135     break;
7136 
7137   case 412:
7138 #line 2561 "parser.y"
7139     {
7140     (yyval) = NNEW(n_EMPTY);
7141   ;}
7142     break;
7143 
7144   case 413:
7145 #line 2567 "parser.y"
7146     {
7147     (yyval) = NNEW(n_ARRAY_VALUE_LIST);
7148   ;}
7149     break;
7150 
7151   case 414:
7152 #line 2570 "parser.y"
7153     {
7154     (yyval) = NMORE((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
7155   ;}
7156     break;
7157 
7158   case 415:
7159 #line 2576 "parser.y"
7160     {
7161     (yyval) = NNEW(n_ARRAY_VALUE);
7162     (yyval)->appendChild((yyvsp[(3) - (5)]));
7163     (yyval)->appendChild((yyvsp[(5) - (5)]));
7164 
7165     (yyval) = (yyvsp[(1) - (5)])->appendChild((yyval));
7166   ;}
7167     break;
7168 
7169   case 416:
7170 #line 2583 "parser.y"
7171     {
7172     (yyval) = NNEW(n_ARRAY_VALUE);
7173     (yyval)->appendChild(NNEW(n_EMPTY));
7174     (yyval)->appendChild((yyvsp[(3) - (3)]));
7175 
7176     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyval));
7177   ;}
7178     break;
7179 
7180   case 417:
7181 #line 2590 "parser.y"
7182     {
7183     (yyval) = NNEW(n_ARRAY_VALUE);
7184     (yyval)->appendChild((yyvsp[(1) - (3)]));
7185     (yyval)->appendChild((yyvsp[(3) - (3)]));
7186 
7187     (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval));
7188   ;}
7189     break;
7190 
7191   case 418:
7192 #line 2597 "parser.y"
7193     {
7194     (yyval) = NNEW(n_ARRAY_VALUE);
7195     (yyval)->appendChild(NNEW(n_EMPTY));
7196     (yyval)->appendChild((yyvsp[(1) - (1)]));
7197 
7198     (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval));
7199   ;}
7200     break;
7201 
7202   case 419:
7203 #line 2604 "parser.y"
7204     {
7205     (yyval) = NNEW(n_ARRAY_VALUE);
7206     (yyval)->appendChild((yyvsp[(3) - (6)]));
7207     (yyval)->appendChild(NTYPE((yyvsp[(5) - (6)]), n_VARIABLE_REFERENCE)->appendChild((yyvsp[(6) - (6)])));
7208 
7209     (yyval) = (yyvsp[(1) - (6)])->appendChild((yyval));
7210   ;}
7211     break;
7212 
7213   case 420:
7214 #line 2611 "parser.y"
7215     {
7216     (yyval) = NNEW(n_ARRAY_VALUE);
7217     (yyval)->appendChild(NNEW(n_EMPTY));
7218     (yyval)->appendChild(NTYPE((yyvsp[(3) - (4)]), n_VARIABLE_REFERENCE)->appendChild((yyvsp[(4) - (4)])));
7219 
7220     (yyval) = (yyvsp[(1) - (4)])->appendChild((yyval));
7221   ;}
7222     break;
7223 
7224   case 421:
7225 #line 2618 "parser.y"
7226     {
7227     (yyval) = NNEW(n_ARRAY_VALUE);
7228     (yyval)->appendChild((yyvsp[(1) - (4)]));
7229     (yyval)->appendChild(NTYPE((yyvsp[(3) - (4)]), n_VARIABLE_REFERENCE)->appendChild((yyvsp[(4) - (4)])));
7230 
7231     (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval));
7232   ;}
7233     break;
7234 
7235   case 422:
7236 #line 2625 "parser.y"
7237     {
7238     (yyval) = NNEW(n_ARRAY_VALUE);
7239     (yyval)->appendChild(NNEW(n_EMPTY));
7240     (yyval)->appendChild(NTYPE((yyvsp[(1) - (2)]), n_VARIABLE_REFERENCE)->appendChild((yyvsp[(2) - (2)])));
7241 
7242     (yyval) = NNEW(n_ARRAY_VALUE_LIST)->appendChild((yyval));
7243   ;}
7244     break;
7245 
7246   case 423:
7247 #line 2635 "parser.y"
7248     {
7249     NTYPE((yyvsp[(1) - (4)]), n_SYMBOL_NAME);
7250 
7251     NSPAN((yyvsp[(2) - (4)]), n_CALL_PARAMETER_LIST, (yyvsp[(4) - (4)]));
7252     (yyvsp[(2) - (4)])->appendChildren((yyvsp[(3) - (4)]));
7253 
7254     (yyval) = NNEW(n_FUNCTION_CALL);
7255     (yyval)->appendChild((yyvsp[(1) - (4)]));
7256     (yyval)->appendChild((yyvsp[(2) - (4)]));
7257   ;}
7258     break;
7259 
7260   case 424:
7261 #line 2645 "parser.y"
7262     {
7263     NTYPE((yyvsp[(1) - (4)]), n_SYMBOL_NAME);
7264 
7265     NSPAN((yyvsp[(2) - (4)]), n_CALL_PARAMETER_LIST, (yyvsp[(4) - (4)]));
7266     (yyvsp[(2) - (4)])->appendChild((yyvsp[(3) - (4)]));
7267 
7268     (yyval) = NNEW(n_FUNCTION_CALL);
7269     (yyval)->appendChild((yyvsp[(1) - (4)]));
7270     (yyval)->appendChild((yyvsp[(2) - (4)]));
7271   ;}
7272     break;
7273 
7274   case 425:
7275 #line 2655 "parser.y"
7276     {
7277     (yyval) = NTYPE((yyvsp[(1) - (2)]), n_INCLUDE_FILE)->appendChild((yyvsp[(2) - (2)]));
7278   ;}
7279     break;
7280 
7281   case 426:
7282 #line 2658 "parser.y"
7283     {
7284     (yyval) = NTYPE((yyvsp[(1) - (2)]), n_INCLUDE_FILE)->appendChild((yyvsp[(2) - (2)]));
7285   ;}
7286     break;
7287 
7288   case 427:
7289 #line 2661 "parser.y"
7290     {
7291     NTYPE((yyvsp[(1) - (4)]), n_SYMBOL_NAME);
7292 
7293     NSPAN((yyvsp[(2) - (4)]), n_CALL_PARAMETER_LIST, (yyvsp[(4) - (4)]));
7294     (yyvsp[(2) - (4)])->appendChild((yyvsp[(3) - (4)]));
7295 
7296     (yyval) = NNEW(n_FUNCTION_CALL);
7297     (yyval)->appendChild((yyvsp[(1) - (4)]));
7298     (yyval)->appendChild((yyvsp[(2) - (4)]));
7299   ;}
7300     break;
7301 
7302   case 428:
7303 #line 2671 "parser.y"
7304     {
7305     (yyval) = NTYPE((yyvsp[(1) - (2)]), n_INCLUDE_FILE)->appendChild((yyvsp[(2) - (2)]));
7306   ;}
7307     break;
7308 
7309   case 429:
7310 #line 2674 "parser.y"
7311     {
7312     (yyval) = NTYPE((yyvsp[(1) - (2)]), n_INCLUDE_FILE)->appendChild((yyvsp[(2) - (2)]));
7313   ;}
7314     break;
7315 
7316   case 430:
7317 #line 2680 "parser.y"
7318     {
7319     (yyval) = NNEW(n_EMPTY);
7320     (yyval)->appendChild((yyvsp[(1) - (1)]));
7321   ;}
7322     break;
7323 
7324   case 431:
7325 #line 2684 "parser.y"
7326     {
7327     (yyval) = (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
7328   ;}
7329     break;
7330 
7331   case 432:
7332 #line 2690 "parser.y"
7333     {
7334     NSPAN((yyvsp[(1) - (3)]), n_PARENTHETICAL_EXPRESSION, (yyvsp[(3) - (3)]));
7335     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
7336     (yyval) = (yyvsp[(1) - (3)]);
7337   ;}
7338     break;
7339 
7340   case 433:
7341 #line 2695 "parser.y"
7342     {
7343     (yyval) = NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]));
7344   ;}
7345     break;
7346 
7347   case 434:
7348 #line 2701 "parser.y"
7349     {
7350     (yyval) = NNEW(n_INDEX_ACCESS);
7351     (yyval)->appendChild((yyvsp[(1) - (4)]));
7352     (yyval)->appendChild((yyvsp[(3) - (4)]));
7353     NMORE((yyval), (yyvsp[(4) - (4)]));
7354   ;}
7355     break;
7356 
7357   case 435:
7358 #line 2707 "parser.y"
7359     {
7360     (yyval) = NNEW(n_INDEX_ACCESS);
7361     (yyval)->appendChild((yyvsp[(1) - (4)]));
7362     (yyval)->appendChild((yyvsp[(3) - (4)]));
7363     NMORE((yyval), (yyvsp[(4) - (4)]));
7364   ;}
7365     break;
7366 
7367   case 436:
7368 #line 2713 "parser.y"
7369     {
7370     (yyval) = NNEW(n_INDEX_ACCESS);
7371     (yyval)->appendChild(NTYPE((yyvsp[(1) - (4)]), n_STRING_SCALAR));
7372     (yyval)->appendChild((yyvsp[(3) - (4)]));
7373     NMORE((yyval), (yyvsp[(4) - (4)]));
7374   ;}
7375     break;
7376 
7377   case 437:
7378 #line 2719 "parser.y"
7379     {
7380     (yyval) = NNEW(n_INDEX_ACCESS);
7381     (yyval)->appendChild((yyvsp[(1) - (4)]));
7382     (yyval)->appendChild((yyvsp[(3) - (4)]));
7383     NMORE((yyval), (yyvsp[(4) - (4)]));
7384   ;}
7385     break;
7386 
7387   case 438:
7388 #line 2725 "parser.y"
7389     {
7390     (yyval) = NNEW(n_INDEX_ACCESS);
7391     (yyval)->appendChild(NTYPE((yyvsp[(1) - (4)]), n_STRING));
7392     (yyval)->appendChild((yyvsp[(3) - (4)]));
7393     NMORE((yyval), (yyvsp[(4) - (4)]));
7394   ;}
7395     break;
7396 
7397   case 439:
7398 #line 2734 "parser.y"
7399     {
7400     NTYPE((yyvsp[(1) - (4)]), n_ARRAY_LITERAL);
7401     (yyvsp[(1) - (4)])->appendChild(NEXPAND((yyvsp[(2) - (4)]), (yyvsp[(3) - (4)]), (yyvsp[(4) - (4)])));
7402     (yyval) = (yyvsp[(1) - (4)]);
7403   ;}
7404     break;
7405 
7406   case 440:
7407 #line 2739 "parser.y"
7408     {
7409     NTYPE((yyvsp[(1) - (3)]), n_ARRAY_LITERAL);
7410     (yyvsp[(1) - (3)])->appendChild(NEXPAND((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)])));
7411     (yyval) = (yyvsp[(1) - (3)]);
7412   ;}
7413     break;
7414 
7415   case 441:
7416 #line 2747 "parser.y"
7417     {
7418     NTYPE((yyvsp[(1) - (3)]), n_NEW);
7419     (yyvsp[(1) - (3)])->appendChild((yyvsp[(2) - (3)]));
7420     (yyvsp[(1) - (3)])->appendChild((yyvsp[(3) - (3)]));
7421     (yyval) = (yyvsp[(1) - (3)]);
7422   ;}
7423     break;
7424 
7425   case 442:
7426 #line 2754 "parser.y"
7427     {
7428     (yyval) = NNEW(n_CLASS_DECLARATION);
7429     (yyval)->appendChild(NNEW(n_EMPTY));
7430     (yyval)->appendChild(NNEW(n_EMPTY));
7431     (yyval)->appendChild((yyvsp[(4) - (8)]));
7432     (yyval)->appendChild((yyvsp[(5) - (8)]));
7433     (yyval)->appendChild(NEXPAND((yyvsp[(6) - (8)]), (yyvsp[(7) - (8)]), (yyvsp[(8) - (8)])));
7434     NMORE((yyval), (yyvsp[(8) - (8)]));
7435 
7436     NTYPE((yyvsp[(1) - (8)]), n_NEW);
7437     (yyvsp[(1) - (8)])->appendChild((yyval));
7438     (yyvsp[(1) - (8)])->appendChild((yyvsp[(3) - (8)]));
7439     (yyval) = (yyvsp[(1) - (8)]);
7440   ;}
7441     break;
7442 
7443   case 443:
7444 #line 2771 "parser.y"
7445     {
7446     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
7447     (yyval)->appendChild((yyvsp[(1) - (3)]));
7448     (yyval)->appendChild(NTYPE((yyvsp[(3) - (3)]), n_STRING));
7449   ;}
7450     break;
7451 
7452   case 444:
7453 #line 2776 "parser.y"
7454     {
7455     (yyval) = NNEW(n_CLASS_STATIC_ACCESS);
7456     (yyval)->appendChild((yyvsp[(1) - (3)]));
7457     (yyval)->appendChild(NTYPE((yyvsp[(3) - (3)]), n_STRING));
7458   ;}
7459     break;
7460 
7461 
7462 /* Line 1267 of yacc.c.  */
7463 #line 7464 "parser.yacc.cpp"
7464       default: break;
7465     }
7466   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7467 
7468   YYPOPSTACK (yylen);
7469   yylen = 0;
7470   YY_STACK_PRINT (yyss, yyssp);
7471 
7472   *++yyvsp = yyval;
7473 
7474 
7475   /* Now `shift' the result of the reduction.  Determine what state
7476      that goes to, based on the state we popped back to and the rule
7477      number reduced by.  */
7478 
7479   yyn = yyr1[yyn];
7480 
7481   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7482   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7483     yystate = yytable[yystate];
7484   else
7485     yystate = yydefgoto[yyn - YYNTOKENS];
7486 
7487   goto yynewstate;
7488 
7489 
7490 /*------------------------------------.
7491 | yyerrlab -- here on detecting error |
7492 `------------------------------------*/
7493 yyerrlab:
7494   /* If not already recovering from an error, report this error.  */
7495   if (!yyerrstatus)
7496     {
7497       ++yynerrs;
7498 #if ! YYERROR_VERBOSE
7499       yyerror (yyscanner, root, YY_("syntax error"));
7500 #else
7501       {
7502 	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
7503 	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
7504 	  {
7505 	    YYSIZE_T yyalloc = 2 * yysize;
7506 	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
7507 	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
7508 	    if (yymsg != yymsgbuf)
7509 	      YYSTACK_FREE (yymsg);
7510 	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
7511 	    if (yymsg)
7512 	      yymsg_alloc = yyalloc;
7513 	    else
7514 	      {
7515 		yymsg = yymsgbuf;
7516 		yymsg_alloc = sizeof yymsgbuf;
7517 	      }
7518 	  }
7519 
7520 	if (0 < yysize && yysize <= yymsg_alloc)
7521 	  {
7522 	    (void) yysyntax_error (yymsg, yystate, yychar);
7523 	    yyerror (yyscanner, root, yymsg);
7524 	  }
7525 	else
7526 	  {
7527 	    yyerror (yyscanner, root, YY_("syntax error"));
7528 	    if (yysize != 0)
7529 	      goto yyexhaustedlab;
7530 	  }
7531       }
7532 #endif
7533     }
7534 
7535 
7536 
7537   if (yyerrstatus == 3)
7538     {
7539       /* If just tried and failed to reuse look-ahead token after an
7540 	 error, discard it.  */
7541 
7542       if (yychar <= YYEOF)
7543 	{
7544 	  /* Return failure if at end of input.  */
7545 	  if (yychar == YYEOF)
7546 	    YYABORT;
7547 	}
7548       else
7549 	{
7550 	  yydestruct ("Error: discarding",
7551 		      yytoken, &yylval, yyscanner, root);
7552 	  yychar = YYEMPTY;
7553 	}
7554     }
7555 
7556   /* Else will try to reuse look-ahead token after shifting the error
7557      token.  */
7558   goto yyerrlab1;
7559 
7560 
7561 /*---------------------------------------------------.
7562 | yyerrorlab -- error raised explicitly by YYERROR.  |
7563 `---------------------------------------------------*/
7564 yyerrorlab:
7565 
7566   /* Pacify compilers like GCC when the user code never invokes
7567      YYERROR and the label yyerrorlab therefore never appears in user
7568      code.  */
7569   if (/*CONSTCOND*/ 0)
7570      goto yyerrorlab;
7571 
7572   /* Do not reclaim the symbols of the rule which action triggered
7573      this YYERROR.  */
7574   YYPOPSTACK (yylen);
7575   yylen = 0;
7576   YY_STACK_PRINT (yyss, yyssp);
7577   yystate = *yyssp;
7578   goto yyerrlab1;
7579 
7580 
7581 /*-------------------------------------------------------------.
7582 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
7583 `-------------------------------------------------------------*/
7584 yyerrlab1:
7585   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
7586 
7587   for (;;)
7588     {
7589       yyn = yypact[yystate];
7590       if (yyn != YYPACT_NINF)
7591 	{
7592 	  yyn += YYTERROR;
7593 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7594 	    {
7595 	      yyn = yytable[yyn];
7596 	      if (0 < yyn)
7597 		break;
7598 	    }
7599 	}
7600 
7601       /* Pop the current state because it cannot handle the error token.  */
7602       if (yyssp == yyss)
7603 	YYABORT;
7604 
7605 
7606       yydestruct ("Error: popping",
7607 		  yystos[yystate], yyvsp, yyscanner, root);
7608       YYPOPSTACK (1);
7609       yystate = *yyssp;
7610       YY_STACK_PRINT (yyss, yyssp);
7611     }
7612 
7613   if (yyn == YYFINAL)
7614     YYACCEPT;
7615 
7616   *++yyvsp = yylval;
7617 
7618 
7619   /* Shift the error token.  */
7620   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7621 
7622   yystate = yyn;
7623   goto yynewstate;
7624 
7625 
7626 /*-------------------------------------.
7627 | yyacceptlab -- YYACCEPT comes here.  |
7628 `-------------------------------------*/
7629 yyacceptlab:
7630   yyresult = 0;
7631   goto yyreturn;
7632 
7633 /*-----------------------------------.
7634 | yyabortlab -- YYABORT comes here.  |
7635 `-----------------------------------*/
7636 yyabortlab:
7637   yyresult = 1;
7638   goto yyreturn;
7639 
7640 #ifndef yyoverflow
7641 /*-------------------------------------------------.
7642 | yyexhaustedlab -- memory exhaustion comes here.  |
7643 `-------------------------------------------------*/
7644 yyexhaustedlab:
7645   yyerror (yyscanner, root, YY_("memory exhausted"));
7646   yyresult = 2;
7647   /* Fall through.  */
7648 #endif
7649 
7650 yyreturn:
7651   if (yychar != YYEOF && yychar != YYEMPTY)
7652      yydestruct ("Cleanup: discarding lookahead",
7653 		 yytoken, &yylval, yyscanner, root);
7654   /* Do not reclaim the symbols of the rule which action triggered
7655      this YYABORT or YYACCEPT.  */
7656   YYPOPSTACK (yylen);
7657   YY_STACK_PRINT (yyss, yyssp);
7658   while (yyssp != yyss)
7659     {
7660       yydestruct ("Cleanup: popping",
7661 		  yystos[*yyssp], yyvsp, yyscanner, root);
7662       YYPOPSTACK (1);
7663     }
7664 #ifndef yyoverflow
7665   if (yyss != yyssa)
7666     YYSTACK_FREE (yyss);
7667 #endif
7668 #if YYERROR_VERBOSE
7669   if (yymsg != yymsgbuf)
7670     YYSTACK_FREE (yymsg);
7671 #endif
7672   /* Make sure YYID is used.  */
7673   return YYID (yyresult);
7674 }
7675 
7676 
7677 #line 2783 "parser.y"
7678 
7679 
yytokname(int tok)7680 const char* yytokname(int tok) {
7681   if (tok < 255) {
7682     return NULL;
7683   }
7684   return yytname[YYTRANSLATE(tok)];
7685 }
7686 
7687 /* @generated */
7688