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