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 0
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62 /* Substitute the variable and function names. */
63 #define yyparse phpparse
64 #define yylex phplex
65 #define yyerror phperror
66 #define yydebug phpdebug
67 #define yynerrs phpnerrs
68
69 #define yylval phplval
70 #define yychar phpchar
71
72 /* Copy the first part of user declarations. */
73 #line 1 "php_parser.y" /* yacc.c:339 */
74
75 //
76 // This file is part of the aMule Project.
77 //
78 // Copyright (c) 2003-2011 aMule Team ( admin@amule.org / http://www.amule.org )
79 // Copyright (c) 2005-2011 Froenchenko Leonid ( lfroen@gmail.com / http://www.amule.org )
80 //
81 // Any parts of this program derived from the xMule, lMule or eMule project,
82 // or contributed by third-party developers are copyrighted by their
83 // respective authors.
84 //
85 // This program is free software; you can redistribute it and/or modify
86 // it under the terms of the GNU General Public License as published by
87 // the Free Software Foundation; either version 2 of the License, or
88 // (at your option) any later version.
89 //
90 // This program is distributed in the hope that it will be useful,
91 // but WITHOUT ANY WARRANTY; without even the implied warranty of
92 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
93 // GNU General Public License for more details.
94 //
95 // You should have received a copy of the GNU General Public License
96 // along with this program; if not, write to the Free Software
97 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
98 //
99
100 #include <stdio.h>
101 #include <string.h>
102
103 #include "php_syntree.h"
104
105 int phplex(void);
106
107 // add item to syntree list
add_statement_2_list(PHP_SYN_NODE * list,PHP_SYN_NODE * st)108 PHP_SYN_NODE *add_statement_2_list(PHP_SYN_NODE *list, PHP_SYN_NODE *st)
109 {
110 if ( st && list) {
111 PHP_SYN_NODE *last = list;
112 while ( last->next_node ) {
113 last = last->next_node;
114 }
115 last->next_node = st;
116 return list;
117 } else if ( st ) {
118 return st;
119 } else {
120 return list;
121 }
122 }
123
add_branch_2_elseif(PHP_SYN_NODE * list,PHP_SYN_NODE * branch)124 PHP_SYN_NODE *add_branch_2_elseif(PHP_SYN_NODE *list, PHP_SYN_NODE *branch)
125 {
126 if ( list ) {
127 PHP_SYN_NODE *curr_if = list;
128 while ( curr_if->node_if.code_else ) {
129 curr_if = curr_if->node_if.code_else;
130 }
131 curr_if->node_if.code_else = branch;
132 return list;
133 } else {
134 return branch;
135 }
136 }
137
138
139 #line 140 "php_parser.c" /* yacc.c:339 */
140
141 # ifndef YY_NULLPTR
142 # if defined __cplusplus && 201103L <= __cplusplus
143 # define YY_NULLPTR nullptr
144 # else
145 # define YY_NULLPTR 0
146 # endif
147 # endif
148
149 /* Enabling verbose error messages. */
150 #ifdef YYERROR_VERBOSE
151 # undef YYERROR_VERBOSE
152 # define YYERROR_VERBOSE 1
153 #else
154 # define YYERROR_VERBOSE 0
155 #endif
156
157 /* In a future release of Bison, this section will be replaced
158 by #include "php_parser.h". */
159 #ifndef YY_PHP_PHP_PARSER_H_INCLUDED
160 # define YY_PHP_PHP_PARSER_H_INCLUDED
161 /* Debug traces. */
162 #ifndef YYDEBUG
163 # define YYDEBUG 1
164 #endif
165 #if YYDEBUG
166 extern int phpdebug;
167 #endif
168
169 /* Token type. */
170 #ifndef YYTOKENTYPE
171 # define YYTOKENTYPE
172 enum yytokentype
173 {
174 FNUMBER = 258,
175 DNUMBER = 259,
176 STRING = 260,
177 IDENT = 261,
178 VARIABLE = 262,
179 T_ECHO = 263,
180 EXIT = 264,
181 IF = 265,
182 DO = 266,
183 WHILE = 267,
184 ENDWHILE = 268,
185 FOR = 269,
186 ENDFOR = 270,
187 FOREACH = 271,
188 ENDFOREACH = 272,
189 DECLARE = 273,
190 ENDDECLARE = 274,
191 AS = 275,
192 CONST = 276,
193 GLOBAL = 277,
194 UNSET = 278,
195 ISSET = 279,
196 EMPTY = 280,
197 SWITCH = 281,
198 ENDSWITCH = 282,
199 CASE = 283,
200 DEFAULT = 284,
201 BREAK = 285,
202 CONTINUE = 286,
203 FUNCTION = 287,
204 RETURN = 288,
205 CLASS = 289,
206 INTERFACE = 290,
207 EXTENDS = 291,
208 IMPLEMENTS = 292,
209 OBJECT_OPERATOR = 293,
210 HASH_ASSIGN = 294,
211 LIST = 295,
212 ARRAY = 296,
213 CLASS_SCOPE = 297,
214 PRINT = 298,
215 PLUS_EQ = 299,
216 MINUS_EQ = 300,
217 MUL_EQ = 301,
218 DIV_EQ = 302,
219 CONCAT_EQ = 303,
220 MOD_EQ = 304,
221 AND_EQ = 305,
222 OR_EQ = 306,
223 XOR_EQ = 307,
224 SL_EQ = 308,
225 SR_EQ = 309,
226 LOG_OR = 310,
227 LOG_XOR = 311,
228 LOG_AND = 312,
229 BOOLEAN_OR = 313,
230 BOOLEAN_AND = 314,
231 IS_EQ = 315,
232 IS_NOEQUAL = 316,
233 IS_IDENTICAL = 317,
234 IS_NOIDENTICAL = 318,
235 IS_SMALLER_OR_EQ = 319,
236 IS_GREATER_OR_EQ = 320,
237 SL = 321,
238 SR = 322,
239 INSTANCEOF = 323,
240 INC = 324,
241 DEC = 325,
242 INT_CAST = 326,
243 DOUBLE_CAST = 327,
244 STRING_CAST = 328,
245 ARRAY_CAST = 329,
246 OBJECT_CAST = 330,
247 BOOL_CAST = 331,
248 UNSET_CAST = 332,
249 NEW = 333,
250 CLONE = 334,
251 ELSEIF = 335,
252 ELSE = 336,
253 ENDIF = 337,
254 STATIC = 338,
255 ABSTRACT = 339,
256 FINAL = 340,
257 PRIVATE = 341,
258 PROTECTED = 342,
259 PUBLIC = 343,
260 START_SCRIPT = 344,
261 END_SCRIPT = 345
262 };
263 #endif
264
265 /* Value type. */
266 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
267
268 union YYSTYPE
269 {
270 #line 67 "php_parser.y" /* yacc.c:355 */
271
272 PHP_SYN_NODE *syn_node;
273 PHP_EXP_NODE *exp_node;
274
275 char str_val[256];
276
277 #line 278 "php_parser.c" /* yacc.c:355 */
278 };
279
280 typedef union YYSTYPE YYSTYPE;
281 # define YYSTYPE_IS_TRIVIAL 1
282 # define YYSTYPE_IS_DECLARED 1
283 #endif
284
285
286 extern YYSTYPE phplval;
287
288 int phpparse (void);
289
290 #endif /* !YY_PHP_PHP_PARSER_H_INCLUDED */
291
292 /* Copy the second part of user declarations. */
293
294 #line 295 "php_parser.c" /* yacc.c:358 */
295
296 #ifdef short
297 # undef short
298 #endif
299
300 #ifdef YYTYPE_UINT8
301 typedef YYTYPE_UINT8 yytype_uint8;
302 #else
303 typedef unsigned char yytype_uint8;
304 #endif
305
306 #ifdef YYTYPE_INT8
307 typedef YYTYPE_INT8 yytype_int8;
308 #else
309 typedef signed char yytype_int8;
310 #endif
311
312 #ifdef YYTYPE_UINT16
313 typedef YYTYPE_UINT16 yytype_uint16;
314 #else
315 typedef unsigned short int yytype_uint16;
316 #endif
317
318 #ifdef YYTYPE_INT16
319 typedef YYTYPE_INT16 yytype_int16;
320 #else
321 typedef short int yytype_int16;
322 #endif
323
324 #ifndef YYSIZE_T
325 # ifdef __SIZE_TYPE__
326 # define YYSIZE_T __SIZE_TYPE__
327 # elif defined size_t
328 # define YYSIZE_T size_t
329 # elif ! defined YYSIZE_T
330 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
331 # define YYSIZE_T size_t
332 # else
333 # define YYSIZE_T unsigned int
334 # endif
335 #endif
336
337 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
338
339 #ifndef YY_
340 # if defined YYENABLE_NLS && YYENABLE_NLS
341 # if ENABLE_NLS
342 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
343 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
344 # endif
345 # endif
346 # ifndef YY_
347 # define YY_(Msgid) Msgid
348 # endif
349 #endif
350
351 #ifndef YY_ATTRIBUTE
352 # if (defined __GNUC__ \
353 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
354 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
355 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
356 # else
357 # define YY_ATTRIBUTE(Spec) /* empty */
358 # endif
359 #endif
360
361 #ifndef YY_ATTRIBUTE_PURE
362 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
363 #endif
364
365 #ifndef YY_ATTRIBUTE_UNUSED
366 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
367 #endif
368
369 #if !defined _Noreturn \
370 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
371 # if defined _MSC_VER && 1200 <= _MSC_VER
372 # define _Noreturn __declspec (noreturn)
373 # else
374 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
375 # endif
376 #endif
377
378 /* Suppress unused-variable warnings by "using" E. */
379 #if ! defined lint || defined __GNUC__
380 # define YYUSE(E) ((void) (E))
381 #else
382 # define YYUSE(E) /* empty */
383 #endif
384
385 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
386 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
387 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
388 _Pragma ("GCC diagnostic push") \
389 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
390 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
391 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
392 _Pragma ("GCC diagnostic pop")
393 #else
394 # define YY_INITIAL_VALUE(Value) Value
395 #endif
396 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
397 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
398 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
399 #endif
400 #ifndef YY_INITIAL_VALUE
401 # define YY_INITIAL_VALUE(Value) /* Nothing. */
402 #endif
403
404
405 #if ! defined yyoverflow || YYERROR_VERBOSE
406
407 /* The parser invokes alloca or malloc; define the necessary symbols. */
408
409 # ifdef YYSTACK_USE_ALLOCA
410 # if YYSTACK_USE_ALLOCA
411 # ifdef __GNUC__
412 # define YYSTACK_ALLOC __builtin_alloca
413 # elif defined __BUILTIN_VA_ARG_INCR
414 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
415 # elif defined _AIX
416 # define YYSTACK_ALLOC __alloca
417 # elif defined _MSC_VER
418 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
419 # define alloca _alloca
420 # else
421 # define YYSTACK_ALLOC alloca
422 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
423 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
424 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
425 # ifndef EXIT_SUCCESS
426 # define EXIT_SUCCESS 0
427 # endif
428 # endif
429 # endif
430 # endif
431 # endif
432
433 # ifdef YYSTACK_ALLOC
434 /* Pacify GCC's 'empty if-body' warning. */
435 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
436 # ifndef YYSTACK_ALLOC_MAXIMUM
437 /* The OS might guarantee only one guard page at the bottom of the stack,
438 and a page size can be as small as 4096 bytes. So we cannot safely
439 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
440 to allow for a few compiler-allocated temporary stack slots. */
441 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
442 # endif
443 # else
444 # define YYSTACK_ALLOC YYMALLOC
445 # define YYSTACK_FREE YYFREE
446 # ifndef YYSTACK_ALLOC_MAXIMUM
447 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
448 # endif
449 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
450 && ! ((defined YYMALLOC || defined malloc) \
451 && (defined YYFREE || defined free)))
452 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
453 # ifndef EXIT_SUCCESS
454 # define EXIT_SUCCESS 0
455 # endif
456 # endif
457 # ifndef YYMALLOC
458 # define YYMALLOC malloc
459 # if ! defined malloc && ! defined EXIT_SUCCESS
460 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
461 # endif
462 # endif
463 # ifndef YYFREE
464 # define YYFREE free
465 # if ! defined free && ! defined EXIT_SUCCESS
466 void free (void *); /* INFRINGES ON USER NAME SPACE */
467 # endif
468 # endif
469 # endif
470 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
471
472
473 #if (! defined yyoverflow \
474 && (! defined __cplusplus \
475 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
476
477 /* A type that is properly aligned for any stack member. */
478 union yyalloc
479 {
480 yytype_int16 yyss_alloc;
481 YYSTYPE yyvs_alloc;
482 };
483
484 /* The size of the maximum gap between one aligned stack and the next. */
485 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
486
487 /* The size of an array large to enough to hold all stacks, each with
488 N elements. */
489 # define YYSTACK_BYTES(N) \
490 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
491 + YYSTACK_GAP_MAXIMUM)
492
493 # define YYCOPY_NEEDED 1
494
495 /* Relocate STACK from its old location to the new one. The
496 local variables YYSIZE and YYSTACKSIZE give the old and new number of
497 elements in the stack, and YYPTR gives the new location of the
498 stack. Advance YYPTR to a properly aligned location for the next
499 stack. */
500 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
501 do \
502 { \
503 YYSIZE_T yynewbytes; \
504 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
505 Stack = &yyptr->Stack_alloc; \
506 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
507 yyptr += yynewbytes / sizeof (*yyptr); \
508 } \
509 while (0)
510
511 #endif
512
513 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
514 /* Copy COUNT objects from SRC to DST. The source and destination do
515 not overlap. */
516 # ifndef YYCOPY
517 # if defined __GNUC__ && 1 < __GNUC__
518 # define YYCOPY(Dst, Src, Count) \
519 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
520 # else
521 # define YYCOPY(Dst, Src, Count) \
522 do \
523 { \
524 YYSIZE_T yyi; \
525 for (yyi = 0; yyi < (Count); yyi++) \
526 (Dst)[yyi] = (Src)[yyi]; \
527 } \
528 while (0)
529 # endif
530 # endif
531 #endif /* !YYCOPY_NEEDED */
532
533 /* YYFINAL -- State number of the termination state. */
534 #define YYFINAL 4
535 /* YYLAST -- Last index in YYTABLE. */
536 #define YYLAST 3048
537
538 /* YYNTOKENS -- Number of terminals. */
539 #define YYNTOKENS 117
540 /* YYNNTS -- Number of nonterminals. */
541 #define YYNNTS 37
542 /* YYNRULES -- Number of rules. */
543 #define YYNRULES 169
544 /* YYNSTATES -- Number of states. */
545 #define YYNSTATES 385
546
547 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
548 by yylex, with out-of-bounds checking. */
549 #define YYUNDEFTOK 2
550 #define YYMAXUTOK 345
551
552 #define YYTRANSLATE(YYX) \
553 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
554
555 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
556 as returned by yylex, without out-of-bounds checking. */
557 static const yytype_uint8 yytranslate[] =
558 {
559 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
562 2, 2, 2, 83, 2, 2, 116, 82, 66, 2,
563 113, 114, 80, 77, 43, 78, 79, 81, 2, 2,
564 2, 2, 2, 2, 2, 2, 2, 2, 58, 112,
565 71, 45, 73, 57, 95, 2, 2, 2, 2, 2,
566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
568 2, 96, 2, 115, 65, 2, 2, 2, 2, 2,
569 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
570 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
571 2, 2, 2, 110, 64, 111, 85, 2, 2, 2,
572 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
573 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
576 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
577 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
580 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
581 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
582 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
583 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
584 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
585 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
586 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
587 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
588 35, 36, 37, 38, 39, 40, 41, 42, 44, 46,
589 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
590 59, 60, 61, 62, 63, 67, 68, 69, 70, 72,
591 74, 75, 76, 84, 86, 87, 88, 89, 90, 91,
592 92, 93, 94, 97, 98, 99, 100, 101, 102, 103,
593 104, 105, 106, 107, 108, 109
594 };
595
596 #if YYDEBUG
597 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
598 static const yytype_uint16 yyrline[] =
599 {
600 0, 142, 142, 146, 147, 152, 153, 154, 159, 160,
601 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
602 171, 172, 173, 174, 175, 176, 179, 182, 185, 186,
603 187, 190, 191, 194, 195, 204, 205, 211, 212, 216,
604 231, 232, 235, 236, 244, 244, 255, 259, 260, 261,
605 262, 263, 267, 268, 272, 273, 277, 278, 281, 282,
606 286, 287, 291, 292, 295, 296, 300, 301, 302, 303,
607 307, 308, 323, 324, 327, 328, 332, 333, 334, 335,
608 338, 339, 340, 344, 345, 346, 347, 348, 352, 353,
609 354, 357, 358, 359, 360, 361, 366, 367, 368, 369,
610 370, 375, 376, 377, 378, 379, 380, 381, 382, 383,
611 384, 385, 387, 388, 389, 390, 392, 393, 394, 395,
612 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
613 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
614 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
615 428, 429, 430, 432, 433, 434, 437, 438, 439, 442,
616 443, 447, 448, 449, 452, 453, 462, 463, 464, 465
617 };
618 #endif
619
620 #if YYDEBUG || YYERROR_VERBOSE || 0
621 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
622 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
623 static const char *const yytname[] =
624 {
625 "$end", "error", "$undefined", "FNUMBER", "DNUMBER", "STRING", "IDENT",
626 "VARIABLE", "T_ECHO", "EXIT", "IF", "DO", "WHILE", "ENDWHILE", "FOR",
627 "ENDFOR", "FOREACH", "ENDFOREACH", "DECLARE", "ENDDECLARE", "AS",
628 "CONST", "GLOBAL", "UNSET", "ISSET", "EMPTY", "SWITCH", "ENDSWITCH",
629 "CASE", "DEFAULT", "BREAK", "CONTINUE", "FUNCTION", "RETURN", "CLASS",
630 "INTERFACE", "EXTENDS", "IMPLEMENTS", "OBJECT_OPERATOR", "HASH_ASSIGN",
631 "LIST", "ARRAY", "CLASS_SCOPE", "','", "PRINT", "'='", "PLUS_EQ",
632 "MINUS_EQ", "MUL_EQ", "DIV_EQ", "CONCAT_EQ", "MOD_EQ", "AND_EQ", "OR_EQ",
633 "XOR_EQ", "SL_EQ", "SR_EQ", "'?'", "':'", "LOG_OR", "LOG_XOR", "LOG_AND",
634 "BOOLEAN_OR", "BOOLEAN_AND", "'|'", "'^'", "'&'", "IS_EQ", "IS_NOEQUAL",
635 "IS_IDENTICAL", "IS_NOIDENTICAL", "'<'", "IS_SMALLER_OR_EQ", "'>'",
636 "IS_GREATER_OR_EQ", "SL", "SR", "'+'", "'-'", "'.'", "'*'", "'/'", "'%'",
637 "'!'", "INSTANCEOF", "'~'", "INC", "DEC", "INT_CAST", "DOUBLE_CAST",
638 "STRING_CAST", "ARRAY_CAST", "OBJECT_CAST", "BOOL_CAST", "UNSET_CAST",
639 "'@'", "'['", "NEW", "CLONE", "ELSEIF", "ELSE", "ENDIF", "STATIC",
640 "ABSTRACT", "FINAL", "PRIVATE", "PROTECTED", "PUBLIC", "START_SCRIPT",
641 "END_SCRIPT", "'{'", "'}'", "';'", "'('", "')'", "']'", "'$'", "$accept",
642 "program_tree", "top_statement_list", "top_statement", "statement",
643 "decl_list", "expr_list", "variable_list", "global_var_list",
644 "global_var", "static_var_list", "static_var", "function_decl_statement",
645 "$@1", "parameter_list", "optional_class_type", "for_statement",
646 "foreach_statement", "for_expr", "elseif_list", "else_statement",
647 "while_statement", "switch_case_list", "case_list", "case_list_item",
648 "case_separator", "const_value", "variable", "deref_variable",
649 "function_call", "func_param_list", "expr", "exit_expr",
650 "assignment_list", "assignment_list_element", "array_pair_list",
651 "array_elem", YY_NULLPTR
652 };
653 #endif
654
655 # ifdef YYPRINT
656 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
657 (internal) symbol number NUM (which must be that of a token). */
658 static const yytype_uint16 yytoknum[] =
659 {
660 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
661 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
662 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
663 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
664 295, 296, 297, 44, 298, 61, 299, 300, 301, 302,
665 303, 304, 305, 306, 307, 308, 309, 63, 58, 310,
666 311, 312, 313, 314, 124, 94, 38, 315, 316, 317,
667 318, 60, 319, 62, 320, 321, 322, 43, 45, 46,
668 42, 47, 37, 33, 323, 126, 324, 325, 326, 327,
669 328, 329, 330, 331, 332, 64, 91, 333, 334, 335,
670 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
671 123, 125, 59, 40, 41, 93, 36
672 };
673 # endif
674
675 #define YYPACT_NINF -335
676
677 #define yypact_value_is_default(Yystate) \
678 (!!((Yystate) == (-335)))
679
680 #define YYTABLE_NINF -53
681
682 #define yytable_value_is_error(Yytable_value) \
683 (!!((Yytable_value) == (-53)))
684
685 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
686 STATE-NUM. */
687 static const yytype_int16 yypact[] =
688 {
689 -94, -335, 54, 344, -335, -335, -335, -335, -32, -335,
690 2566, -64, -57, 1940, -49, -44, -37, 42, 59, 70,
691 78, 1996, 2054, 14, 2110, 88, 90, 2566, 2566, 2566,
692 2566, 2566, 34, 34, 2566, 2566, 2566, 2566, 2566, 2566,
693 61, -335, -335, -335, -335, 2566, 56, -335, -335, -335,
694 -335, 123, 49, -335, 1356, 157, 2168, 0, 2837, 2224,
695 -335, 2566, 192, 2566, 2566, 2566, 205, -335, 36, -335,
696 34, 2566, -335, 2624, -335, 2650, -335, 208, -335, 2678,
697 31, 2282, 2837, 118, 118, -335, -335, 173, -335, -36,
698 -335, -335, -335, -335, -335, -335, -335, 171, 50, -335,
699 458, 572, 558, 2566, 2338, 2566, 2566, 2566, 2566, 2566,
700 2566, 2566, 2566, 2566, 2566, 2566, -335, -335, 211, 212,
701 2396, 2566, 2566, 2566, 2566, 2566, 2566, 2566, 2566, 2566,
702 2566, 2566, 2566, 2566, 2566, 2566, 2566, 2566, 2566, 2566,
703 2566, 2566, 2566, 2566, 2566, 2566, 2566, -335, -335, 34,
704 -31, 2837, 2566, -335, -335, 672, 786, 106, 900, 177,
705 109, 451, 178, -1, 59, -335, 27, -335, 1014, -335,
706 -335, 111, 113, -335, 116, -335, 30, -335, 34, 2785,
707 35, -335, 216, 191, 61, -335, -335, -335, -335, 2704,
708 34, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837,
709 2837, 2837, 2837, 117, 124, -335, 330, 2732, 2811, 2884,
710 2906, 2927, 2947, 2966, 1478, 1591, 1704, 1818, 1818, 1818,
711 1818, 202, 202, 202, 202, 108, 108, 118, 118, 118,
712 -335, -335, -335, -335, 2452, -335, 2837, -335, 1940, 2566,
713 1484, 2566, 34, 191, 225, 1598, -335, 34, 126, -47,
714 146, 146, 31, 31, 194, -335, 2510, 2282, -335, -335,
715 -335, -335, -335, -335, -335, 2168, 2168, -335, -335, 2566,
716 34, 2837, -335, 1128, -335, -335, -335, 128, -30, -335,
717 197, -335, -335, -335, -335, 131, 133, -335, -335, 43,
718 136, 46, 51, -335, 2566, 34, 2837, -335, 53, 67,
719 2861, -335, -73, 134, 686, 2566, 45, 1712, 191, 800,
720 -335, 17, -335, -23, 230, 137, -335, 241, 142, -335,
721 2837, -335, -335, -335, 140, 1940, -335, -335, 144, 150,
722 34, 151, -335, -335, -335, -335, -335, 179, 149, 2566,
723 -335, -45, -21, -335, 147, -335, -335, -335, 2566, -335,
724 -335, 1826, 152, 1712, 914, 158, -335, 2837, -335, -335,
725 -335, -335, -335, 251, 1028, 1142, 1242, -335, -335, -335,
726 1712, -335, 159, -335, 1370, -335, -335, -335, 1940, 1256,
727 -335, -335, -335, 174, -335
728 };
729
730 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
731 Performed when YYTABLE does not specify something else to do. Zero
732 means the default is an error. */
733 static const yytype_uint8 yydefact[] =
734 {
735 0, 4, 0, 0, 1, 76, 77, 78, 79, 83,
736 0, 158, 0, 0, 0, 0, 0, 0, 0, 0,
737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 4, 2, 4, 30, 0, 0, 3, 5, 7,
740 153, 97, 80, 99, 0, 0, 95, 0, 33, 0,
741 151, 0, 0, 0, 59, 0, 0, 39, 0, 37,
742 0, 0, 19, 0, 17, 0, 44, 0, 21, 0,
743 163, 0, 155, 132, 133, 134, 135, 0, 113, 80,
744 115, 146, 147, 148, 149, 150, 152, 42, 0, 40,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 112, 114, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
749 0, 0, 0, 0, 0, 0, 0, 9, 81, 0,
750 0, 91, 0, 23, 157, 0, 0, 0, 0, 58,
751 0, 0, 0, 0, 0, 10, 0, 35, 0, 20,
752 18, 0, 0, 22, 0, 161, 0, 159, 0, 166,
753 0, 164, 0, 0, 0, 11, 6, 8, 144, 0,
754 0, 98, 101, 102, 103, 104, 105, 106, 107, 108,
755 109, 110, 111, 82, 0, 84, 0, 0, 0, 118,
756 120, 119, 116, 117, 121, 123, 122, 138, 139, 136,
757 137, 140, 141, 142, 143, 130, 131, 125, 126, 124,
758 127, 128, 129, 92, 0, 88, 34, 156, 0, 0,
759 0, 59, 0, 0, 0, 0, 38, 0, 0, 0,
760 51, 51, 163, 163, 0, 169, 0, 0, 154, 82,
761 79, 43, 41, 87, 100, 95, 95, 85, 86, 0,
762 0, 93, 61, 0, 4, 64, 13, 0, 0, 31,
763 0, 4, 28, 36, 24, 70, 70, 16, 53, 0,
764 0, 0, 0, 160, 0, 0, 167, 165, 0, 0,
765 145, 94, 62, 0, 0, 59, 0, 0, 0, 0,
766 70, 0, 70, 0, 52, 0, 47, 0, 0, 162,
767 96, 168, 90, 89, 0, 0, 12, 14, 0, 0,
768 0, 0, 4, 56, 25, 32, 29, 0, 0, 0,
769 73, 0, 0, 66, 0, 4, 48, 4, 0, 63,
770 65, 0, 0, 0, 0, 0, 68, 72, 74, 75,
771 4, 67, 49, 0, 0, 0, 0, 4, 54, 15,
772 0, 26, 0, 69, 71, 50, 45, 46, 0, 0,
773 27, 57, 60, 0, 55
774 };
775
776 /* YYPGOTO[NTERM-NUM]. */
777 static const yytype_int16 yypgoto[] =
778 {
779 -335, -335, -40, -335, -13, -335, 259, -335, -335, 125,
780 -335, 103, -335, -335, 39, -19, -335, -334, -149, -335,
781 -335, -335, -335, -128, -335, -335, -166, 2, 15, -335,
782 -204, -6, -335, 41, 38, -335, 44
783 };
784
785 /* YYDEFGOTO[NTERM-NUM]. */
786 static const yytype_int16 yydefgoto[] =
787 {
788 -1, 2, 3, 47, 48, 163, 159, 166, 68, 69,
789 98, 99, 49, 171, 289, 290, 369, 334, 160, 302,
790 326, 276, 287, 311, 341, 360, 50, 51, 52, 53,
791 150, 54, 60, 176, 177, 180, 181
792 };
793
794 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
795 positive, shift that token. If negative, reduce the rule whose
796 number is the opposite. If YYTABLE_NINF, syntax error. */
797 static const yytype_int16 yytable[] =
798 {
799 62, 100, 182, 101, 58, 339, 340, 339, 340, 306,
800 55, 285, 234, 358, 1, 73, 75, 261, 79, 371,
801 76, 82, 83, 84, 85, 86, 324, 325, 91, 92,
802 93, 94, 95, 96, 88, 90, 380, 87, 9, 102,
803 87, 9, 244, 152, 338, 339, 340, 89, 89, 59,
804 151, 87, 9, 155, 4, 156, 61, 158, 58, 161,
805 120, 298, 299, 286, 63, 168, 67, 359, 97, 64,
806 247, 174, 167, 253, 121, 179, 65, 279, 257, 164,
807 77, 56, 175, 235, 307, 89, 314, 118, 343, 314,
808 361, 119, 277, 184, 253, 89, 234, 189, 191, 192,
809 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
810 234, 330, 153, 245, 206, 207, 208, 209, 210, 211,
811 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
812 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
813 232, 248, 335, 316, 254, 120, 236, 46, 165, 258,
814 46, 233, 288, -52, 362, 66, 329, 315, 313, 121,
815 318, 46, 185, 148, 89, 319, 103, 322, 104, 105,
816 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
817 255, 323, 337, 70, 342, 141, 142, 143, 144, 145,
818 146, 71, 264, 89, 5, 6, 7, 260, 144, 145,
819 146, 80, 317, 81, 157, 89, 355, 339, 340, 116,
820 117, 162, -52, 363, 172, 55, 183, 203, 204, 239,
821 152, 241, 259, 243, 250, 272, 251, 275, 271, 252,
822 265, 280, 282, 273, 304, 58, 288, 266, 284, 294,
823 305, 309, 308, 310, 278, 312, 327, 345, 346, 283,
824 296, 179, 347, 348, 175, 175, 350, 89, 375, 151,
825 151, 356, 89, 300, 351, 353, 370, 89, 89, 57,
826 373, 381, 301, -53, -53, -53, -53, 139, 140, 141,
827 142, 143, 144, 145, 146, 89, 384, 262, 320, 246,
828 291, 293, 354, 292, 333, 344, 0, 321, 0, 58,
829 0, 297, 0, 0, 0, 364, 0, 365, 331, 0,
830 89, 0, 349, 0, 0, 0, 0, 0, 0, 0,
831 374, 89, 0, 0, 0, 0, 0, 379, 0, 0,
832 0, 0, 352, 357, 0, 0, 0, 0, 368, 0,
833 333, 0, 366, 0, 0, 89, 0, 5, 6, 7,
834 8, 9, 10, 11, 12, 13, 14, 333, 15, 0,
835 16, 0, 17, 0, 0, 382, 18, 19, 0, 0,
836 20, 0, 0, 0, 21, 22, 23, 24, 0, 0,
837 0, 0, 0, 0, 25, 26, 0, 122, 27, 123,
838 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
839 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
840 144, 145, 146, 0, 0, 0, 0, 0, 0, 0,
841 0, 28, 29, 0, 0, 0, 0, 30, 0, 31,
842 32, 33, 34, 35, 36, 0, 0, 37, 38, 39,
843 0, 0, 0, 0, 0, 267, 40, 0, 0, 0,
844 0, 0, 41, 42, 43, 0, 44, 45, 0, 0,
845 46, 5, 6, 7, 8, 9, 10, 11, 12, 13,
846 14, 242, 15, 0, 16, 0, 17, 0, 0, 0,
847 18, 19, 0, 0, 20, 0, 0, 0, 21, 22,
848 23, 24, 0, 0, 0, 0, 0, 0, 25, 26,
849 0, 0, 27, 0, 0, 0, 0, 0, 122, 0,
850 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
851 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
852 143, 144, 145, 146, 0, 28, 29, 0, 0, 0,
853 0, 30, 0, 31, 32, 33, 34, 35, 36, 0,
854 0, 37, 38, 39, 0, 0, 0, 0, 0, 0,
855 40, 0, 0, 0, 0, 0, 41, 186, 43, 0,
856 44, 45, 0, 0, 46, 5, 6, 7, 8, 9,
857 10, 11, 12, 13, 14, 0, 15, 0, 16, 0,
858 17, 0, 0, 0, 18, 19, 0, 0, 20, 0,
859 0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
860 0, 0, 25, 26, 0, 122, 27, 123, 124, 125,
861 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
862 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
863 146, 0, 0, 0, 0, 0, 0, 0, 0, 28,
864 29, 0, 0, 0, 0, 30, 0, 31, 32, 33,
865 34, 35, 36, 0, 0, 37, 38, 39, 0, 0,
866 0, 0, 188, 0, 40, 0, 0, 0, 0, 0,
867 41, 0, 43, 187, 44, 45, 0, 0, 46, 5,
868 6, 7, 8, 9, 10, 11, 12, 13, 14, 328,
869 15, 0, 16, 0, 17, 0, 0, 0, 18, 19,
870 0, 0, 20, 0, 0, 0, 21, 22, 23, 24,
871 0, 0, 0, 0, 0, 0, 25, 26, 0, 122,
872 27, 123, 124, 125, 126, 127, 128, 129, 130, 131,
873 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
874 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
875 0, 0, 0, 28, 29, 0, 0, 0, 0, 30,
876 0, 31, 32, 33, 34, 35, 36, 0, 0, 37,
877 38, 39, 0, 0, 0, 0, 237, 0, 40, 0,
878 0, 0, 0, 0, 41, 0, 43, 0, 44, 45,
879 0, 0, 46, 5, 6, 7, 8, 9, 10, 11,
880 12, 13, 14, 0, 15, 0, 16, 0, 17, 336,
881 0, 0, 18, 19, 0, 0, 20, 0, 0, 0,
882 21, 22, 23, 24, 0, 0, 0, 0, 0, 0,
883 25, 26, 0, 122, 27, 123, 124, 125, 126, 127,
884 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
885 138, 139, 140, 141, 142, 143, 144, 145, 146, 0,
886 0, 0, 0, 0, 0, 0, 0, 28, 29, 0,
887 0, 0, 0, 30, 0, 31, 32, 33, 34, 35,
888 36, 0, 0, 37, 38, 39, 0, 0, 0, 0,
889 238, 0, 40, 0, 0, 0, 0, 0, 41, 0,
890 43, 0, 44, 45, 0, 0, 46, 5, 6, 7,
891 8, 9, 10, 11, 12, 13, 14, 0, 15, 0,
892 16, 372, 17, 0, 0, 0, 18, 19, 0, 0,
893 20, 0, 0, 0, 21, 22, 23, 24, 0, 0,
894 0, 0, 0, 0, 25, 26, 0, 122, 27, 123,
895 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
896 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
897 144, 145, 146, 0, 0, 0, 0, 0, 0, 0,
898 0, 28, 29, 0, 0, 0, 0, 30, 0, 31,
899 32, 33, 34, 35, 36, 0, 0, 37, 38, 39,
900 0, 0, 0, 0, 240, 0, 40, 0, 0, 0,
901 0, 0, 41, 0, 43, 0, 44, 45, 0, 0,
902 46, 5, 6, 7, 8, 9, 10, 11, 12, 13,
903 14, 0, 15, 0, 16, 0, 17, 0, 0, 0,
904 18, 19, 0, 0, 20, 0, 0, 0, 21, 22,
905 23, 24, 0, 0, 0, 0, 0, 0, 25, 26,
906 0, 122, 27, 123, 124, 125, 126, 127, 128, 129,
907 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
908 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
909 0, 0, 0, 0, 0, 28, 29, 0, 0, 0,
910 0, 30, 0, 31, 32, 33, 34, 35, 36, 0,
911 0, 37, 38, 39, 0, 0, 0, 0, 249, 0,
912 40, 0, 0, 0, 0, 0, 41, 0, 43, 376,
913 44, 45, 0, 0, 46, 5, 6, 7, 8, 9,
914 10, 11, 12, 13, 14, 0, 15, 0, 16, 0,
915 17, 0, 0, 0, 18, 19, 0, 0, 20, 0,
916 0, 0, 21, 22, 23, 24, 0, 0, 0, 0,
917 0, 0, 25, 26, 0, 122, 27, 123, 124, 125,
918 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
919 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
920 146, 0, 0, 0, 0, 0, 0, 0, 0, 28,
921 29, 0, 0, 0, 0, 30, 0, 31, 32, 33,
922 34, 35, 36, 0, 0, 37, 38, 39, 0, 0,
923 0, 0, 303, 0, 40, 0, 0, 0, 0, 0,
924 41, 0, 43, 377, 44, 45, 0, 0, 46, 5,
925 6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
926 15, 383, 16, 0, 17, 0, 0, 0, 18, 19,
927 0, 0, 20, 0, 0, 0, 21, 22, 23, 24,
928 0, 0, 0, 0, 0, 0, 25, 26, 0, 122,
929 27, 123, 124, 125, 126, 127, 128, 129, 130, 131,
930 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
931 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
932 0, 0, 0, 28, 29, 0, 0, 0, 0, 30,
933 0, 31, 32, 33, 34, 35, 36, 0, 0, 37,
934 38, 39, 0, 0, 0, 0, 378, 0, 40, 0,
935 0, 0, 0, 0, 41, 0, 43, 0, 44, 45,
936 0, 0, 46, 5, 6, 7, 8, 9, 10, 11,
937 12, 13, 14, 0, 15, 0, 16, 0, 17, 0,
938 0, 0, 18, 19, 0, 0, 20, 0, 0, 0,
939 21, 22, 23, 24, 0, 0, 0, 0, 0, 0,
940 25, 26, 0, 122, 27, 123, 124, 125, 126, 127,
941 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
942 138, 139, 140, 141, 142, 143, 144, 145, 146, 0,
943 0, 0, 0, 0, 0, 0, 0, 28, 29, 0,
944 0, 0, 0, 30, 0, 31, 32, 33, 34, 35,
945 36, 0, 0, 37, 38, 39, 0, 0, 147, 0,
946 0, 0, 40, 0, 0, 0, 0, 0, 41, 0,
947 43, 0, 44, 45, 0, 0, 46, 5, 6, 7,
948 8, 9, 10, 11, 12, 13, 14, 0, 15, 0,
949 16, 0, 17, 0, 0, 0, 18, 19, 0, 0,
950 20, 0, 0, 0, 21, 22, 0, 24, 0, 0,
951 0, 0, 0, 0, 25, 26, 0, 0, 27, 0,
952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
953 0, 0, 274, 129, 130, 131, 132, 133, 134, 135,
954 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
955 146, 28, 29, 0, 0, 0, 0, 30, 0, 31,
956 32, 33, 34, 35, 36, 0, 0, 37, 38, 39,
957 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
958 0, 0, 0, 0, 43, 0, 44, 45, 0, 0,
959 46, 5, 6, 7, 8, 9, 10, 11, 12, 13,
960 14, 0, 15, 0, 16, 0, 17, 0, 0, 0,
961 18, 19, 0, 0, 20, 0, 0, 0, 21, 22,
962 0, 24, 0, 0, 0, 0, 0, 0, 25, 26,
963 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 0, 281, 130, 131, 132,
965 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
966 143, 144, 145, 146, 0, 28, 29, 0, 0, 0,
967 0, 30, 0, 31, 32, 33, 34, 35, 36, 0,
968 0, 37, 38, 39, 0, 0, 0, 0, 0, 0,
969 40, 0, 0, 0, 0, 0, 0, 0, 43, 0,
970 44, 45, 0, 0, 46, 5, 6, 7, 8, 9,
971 10, 11, 12, 13, 14, 0, 15, 0, 16, 0,
972 17, 0, 0, 0, 18, 19, 0, 0, 20, 0,
973 0, 0, 21, 22, 0, 24, 0, 0, 0, 0,
974 0, 0, 25, 26, 0, 0, 27, 0, 0, 0,
975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
976 332, 131, 132, 133, 134, 135, 136, 137, 138, 139,
977 140, 141, 142, 143, 144, 145, 146, 0, 0, 28,
978 29, 0, 0, 0, 0, 30, 0, 31, 32, 33,
979 34, 35, 36, 0, 0, 37, 38, 39, 0, 0,
980 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
981 0, 0, 43, 0, 44, 45, 0, 0, 46, 5,
982 6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
983 15, 0, 16, 0, 17, 0, 0, 0, 18, 19,
984 0, 0, 20, 0, 0, 0, 21, 22, 0, 24,
985 0, 0, 0, 0, 0, 0, 25, 26, 0, 0,
986 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
987 0, 0, 0, 0, 367, -53, -53, -53, -53, 135,
988 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
989 146, 0, 0, 28, 29, 0, 0, 0, 0, 30,
990 0, 31, 32, 33, 34, 35, 36, 0, 0, 37,
991 38, 39, 0, 0, 0, 0, 0, 0, 40, 0,
992 0, 0, 0, 0, 0, 0, 43, 0, 44, 45,
993 0, 0, 46, 5, 6, 7, 8, 9, 10, 11,
994 12, 13, 14, 0, 15, 0, 16, 0, 17, 0,
995 0, 0, 18, 19, 0, 0, 20, 0, 0, 0,
996 21, 22, 0, 24, 0, 0, 0, 0, 0, 0,
997 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
998 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
999 6, 7, 8, 9, 0, 11, 0, 0, 0, 0,
1000 0, 0, 0, 0, 0, 0, 0, 28, 29, 0,
1001 0, 0, 0, 30, 0, 31, 32, 33, 34, 35,
1002 36, 0, 0, 37, 38, 39, 25, 26, 0, 0,
1003 27, 0, 40, 0, 0, 0, 0, 0, 0, 0,
1004 43, 0, 44, 45, 0, 0, 46, 5, 6, 7,
1005 8, 9, 0, 11, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 28, 29, 0, 0, 0, 0, 30,
1007 0, 31, 32, 33, 34, 35, 36, 0, 0, 37,
1008 38, 39, 0, 0, 25, 26, 0, 0, 27, 0,
1009 0, 0, 0, 0, 0, 0, 0, 0, 72, 45,
1010 0, 0, 46, 5, 6, 7, 8, 9, 0, 11,
1011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1012 0, 28, 29, 0, 0, 0, 0, 30, 0, 31,
1013 32, 33, 34, 35, 36, 0, 0, 37, 38, 39,
1014 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 74, 45, 0, 0,
1016 46, 5, 6, 7, 8, 9, 0, 11, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, 28, 29, 0,
1018 0, 0, 0, 30, 0, 31, 32, 33, 34, 35,
1019 36, 0, 0, 37, 38, 39, 0, 0, 25, 26,
1020 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
1021 0, 0, 78, 45, 0, 0, 46, 5, 6, 7,
1022 8, 9, 0, 11, 149, 0, 0, 0, 0, 0,
1023 0, 0, 0, 0, 0, 28, 29, 0, 0, 0,
1024 0, 30, 0, 31, 32, 33, 34, 35, 36, 0,
1025 0, 37, 38, 39, 25, 26, 0, 0, 27, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1027 0, 45, 0, 0, 46, 5, 6, 7, 8, 9,
1028 0, 11, 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 28, 29, 0, 0, 0, 0, 30, 0, 31,
1030 32, 33, 34, 35, 36, 0, 0, 37, 38, 39,
1031 0, 0, 25, 26, 0, 0, 27, 0, 0, 0,
1032 0, 0, 0, 0, 0, 0, 0, 45, 154, 0,
1033 46, 5, 6, 7, 8, 9, 0, 11, 178, 0,
1034 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
1035 29, 0, 0, 0, 0, 30, 0, 31, 32, 33,
1036 34, 35, 36, 0, 0, 37, 38, 39, 25, 26,
1037 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 45, 0, 0, 46, 5,
1039 6, 7, 8, 9, 190, 11, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 28, 29, 0, 0, 0,
1041 0, 30, 0, 31, 32, 33, 34, 35, 36, 0,
1042 0, 37, 38, 39, 0, 0, 25, 26, 0, 0,
1043 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1044 0, 45, 0, 0, 46, 5, 6, 7, 8, 9,
1045 0, 11, 0, 0, 0, 0, 0, 0, 0, 0,
1046 0, 0, 0, 28, 29, 0, 0, 0, 0, 30,
1047 0, 31, 32, 33, 34, 35, 36, 0, 0, 37,
1048 38, 39, 25, 26, 0, 0, 27, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
1050 0, 205, 46, 5, 6, 7, 8, 9, 270, 11,
1051 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
1052 29, 0, 0, 0, 0, 30, 0, 31, 32, 33,
1053 34, 35, 36, 0, 0, 37, 38, 39, 0, 0,
1054 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 45, 0, 0, 46, 5,
1056 6, 7, 8, 9, 0, 11, 295, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 0, 28, 29, 0,
1058 0, 0, 0, 30, 0, 31, 32, 33, 34, 35,
1059 36, 0, 0, 37, 38, 39, 25, 26, 0, 0,
1060 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, 45, 0, 0, 46, 0, 0, 0,
1062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1063 0, 0, 0, 28, 29, 0, 0, 0, 0, 30,
1064 0, 31, 32, 33, 34, 35, 36, 0, 0, 37,
1065 38, 39, 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
1067 0, 122, 46, 123, 124, 125, 126, 127, 128, 129,
1068 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1069 140, 141, 142, 143, 144, 145, 146, 122, 0, 123,
1070 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1071 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1072 144, 145, 146, 0, 0, 122, 169, 123, 124, 125,
1073 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1074 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1075 146, 122, 170, 123, 124, 125, 126, 127, 128, 129,
1076 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1077 140, 141, 142, 143, 144, 145, 146, 0, 0, 122,
1078 173, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1079 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1080 142, 143, 144, 145, 146, 263, 0, 0, 0, 0,
1081 0, 0, 0, 0, 256, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1083 0, 0, 122, 268, 123, 124, 125, 126, 127, 128,
1084 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1085 139, 140, 141, 142, 143, 144, 145, 146, 122, 269,
1086 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1087 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1088 143, 144, 145, 146, 122, 0, 123, 124, 125, 126,
1089 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1090 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1091 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1092 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1093 143, 144, 145, 146, 124, 125, 126, 127, 128, 129,
1094 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1095 140, 141, 142, 143, 144, 145, 146, 125, 126, 127,
1096 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1097 138, 139, 140, 141, 142, 143, 144, 145, 146, 126,
1098 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1099 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1100 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1101 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1102 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1103 138, 139, 140, 141, 142, 143, 144, 145, 146
1104 };
1105
1106 static const yytype_int16 yycheck[] =
1107 {
1108 13, 41, 38, 43, 10, 28, 29, 28, 29, 39,
1109 42, 58, 43, 58, 108, 21, 22, 183, 24, 353,
1110 6, 27, 28, 29, 30, 31, 99, 100, 34, 35,
1111 36, 37, 38, 39, 32, 33, 370, 6, 7, 45,
1112 6, 7, 43, 43, 27, 28, 29, 32, 33, 113,
1113 56, 6, 7, 59, 0, 61, 113, 63, 64, 65,
1114 96, 265, 266, 110, 113, 71, 7, 112, 7, 113,
1115 43, 40, 70, 43, 110, 81, 113, 243, 43, 43,
1116 66, 113, 80, 114, 114, 70, 43, 38, 111, 43,
1117 111, 42, 241, 43, 43, 80, 43, 103, 104, 105,
1118 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1119 43, 66, 112, 114, 120, 121, 122, 123, 124, 125,
1120 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1121 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1122 146, 114, 308, 7, 114, 96, 152, 116, 112, 114,
1123 116, 149, 6, 7, 7, 113, 305, 114, 286, 110,
1124 114, 116, 112, 6, 149, 114, 110, 114, 45, 46,
1125 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1126 178, 114, 310, 113, 312, 77, 78, 79, 80, 81,
1127 82, 113, 190, 178, 3, 4, 5, 6, 80, 81,
1128 82, 113, 66, 113, 12, 190, 27, 28, 29, 86,
1129 87, 6, 66, 66, 6, 42, 45, 6, 6, 113,
1130 43, 112, 6, 45, 113, 238, 113, 240, 234, 113,
1131 113, 6, 245, 239, 274, 241, 6, 113, 112, 45,
1132 112, 281, 45, 112, 242, 112, 112, 110, 7, 247,
1133 256, 257, 110, 113, 252, 253, 112, 242, 7, 265,
1134 266, 112, 247, 269, 114, 114, 114, 252, 253, 10,
1135 112, 112, 270, 71, 72, 73, 74, 75, 76, 77,
1136 78, 79, 80, 81, 82, 270, 112, 184, 294, 164,
1137 251, 253, 332, 252, 307, 314, -1, 295, -1, 305,
1138 -1, 257, -1, -1, -1, 345, -1, 347, 306, -1,
1139 295, -1, 325, -1, -1, -1, -1, -1, -1, -1,
1140 360, 306, -1, -1, -1, -1, -1, 367, -1, -1,
1141 -1, -1, 330, 339, -1, -1, -1, -1, 351, -1,
1142 353, -1, 348, -1, -1, 330, -1, 3, 4, 5,
1143 6, 7, 8, 9, 10, 11, 12, 370, 14, -1,
1144 16, -1, 18, -1, -1, 378, 22, 23, -1, -1,
1145 26, -1, -1, -1, 30, 31, 32, 33, -1, -1,
1146 -1, -1, -1, -1, 40, 41, -1, 57, 44, 59,
1147 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1148 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1149 80, 81, 82, -1, -1, -1, -1, -1, -1, -1,
1150 -1, 77, 78, -1, -1, -1, -1, 83, -1, 85,
1151 86, 87, 88, 89, 90, -1, -1, 93, 94, 95,
1152 -1, -1, -1, -1, -1, 115, 102, -1, -1, -1,
1153 -1, -1, 108, 109, 110, -1, 112, 113, -1, -1,
1154 116, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1155 12, 20, 14, -1, 16, -1, 18, -1, -1, -1,
1156 22, 23, -1, -1, 26, -1, -1, -1, 30, 31,
1157 32, 33, -1, -1, -1, -1, -1, -1, 40, 41,
1158 -1, -1, 44, -1, -1, -1, -1, -1, 57, -1,
1159 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1160 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1161 79, 80, 81, 82, -1, 77, 78, -1, -1, -1,
1162 -1, 83, -1, 85, 86, 87, 88, 89, 90, -1,
1163 -1, 93, 94, 95, -1, -1, -1, -1, -1, -1,
1164 102, -1, -1, -1, -1, -1, 108, 109, 110, -1,
1165 112, 113, -1, -1, 116, 3, 4, 5, 6, 7,
1166 8, 9, 10, 11, 12, -1, 14, -1, 16, -1,
1167 18, -1, -1, -1, 22, 23, -1, -1, 26, -1,
1168 -1, -1, 30, 31, 32, 33, -1, -1, -1, -1,
1169 -1, -1, 40, 41, -1, 57, 44, 59, 60, 61,
1170 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1171 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1172 82, -1, -1, -1, -1, -1, -1, -1, -1, 77,
1173 78, -1, -1, -1, -1, 83, -1, 85, 86, 87,
1174 88, 89, 90, -1, -1, 93, 94, 95, -1, -1,
1175 -1, -1, 114, -1, 102, -1, -1, -1, -1, -1,
1176 108, -1, 110, 111, 112, 113, -1, -1, 116, 3,
1177 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1178 14, -1, 16, -1, 18, -1, -1, -1, 22, 23,
1179 -1, -1, 26, -1, -1, -1, 30, 31, 32, 33,
1180 -1, -1, -1, -1, -1, -1, 40, 41, -1, 57,
1181 44, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1182 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1183 78, 79, 80, 81, 82, -1, -1, -1, -1, -1,
1184 -1, -1, -1, 77, 78, -1, -1, -1, -1, 83,
1185 -1, 85, 86, 87, 88, 89, 90, -1, -1, 93,
1186 94, 95, -1, -1, -1, -1, 114, -1, 102, -1,
1187 -1, -1, -1, -1, 108, -1, 110, -1, 112, 113,
1188 -1, -1, 116, 3, 4, 5, 6, 7, 8, 9,
1189 10, 11, 12, -1, 14, -1, 16, -1, 18, 19,
1190 -1, -1, 22, 23, -1, -1, 26, -1, -1, -1,
1191 30, 31, 32, 33, -1, -1, -1, -1, -1, -1,
1192 40, 41, -1, 57, 44, 59, 60, 61, 62, 63,
1193 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1194 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
1195 -1, -1, -1, -1, -1, -1, -1, 77, 78, -1,
1196 -1, -1, -1, 83, -1, 85, 86, 87, 88, 89,
1197 90, -1, -1, 93, 94, 95, -1, -1, -1, -1,
1198 114, -1, 102, -1, -1, -1, -1, -1, 108, -1,
1199 110, -1, 112, 113, -1, -1, 116, 3, 4, 5,
1200 6, 7, 8, 9, 10, 11, 12, -1, 14, -1,
1201 16, 17, 18, -1, -1, -1, 22, 23, -1, -1,
1202 26, -1, -1, -1, 30, 31, 32, 33, -1, -1,
1203 -1, -1, -1, -1, 40, 41, -1, 57, 44, 59,
1204 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1205 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1206 80, 81, 82, -1, -1, -1, -1, -1, -1, -1,
1207 -1, 77, 78, -1, -1, -1, -1, 83, -1, 85,
1208 86, 87, 88, 89, 90, -1, -1, 93, 94, 95,
1209 -1, -1, -1, -1, 114, -1, 102, -1, -1, -1,
1210 -1, -1, 108, -1, 110, -1, 112, 113, -1, -1,
1211 116, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1212 12, -1, 14, -1, 16, -1, 18, -1, -1, -1,
1213 22, 23, -1, -1, 26, -1, -1, -1, 30, 31,
1214 32, 33, -1, -1, -1, -1, -1, -1, 40, 41,
1215 -1, 57, 44, 59, 60, 61, 62, 63, 64, 65,
1216 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1217 76, 77, 78, 79, 80, 81, 82, -1, -1, -1,
1218 -1, -1, -1, -1, -1, 77, 78, -1, -1, -1,
1219 -1, 83, -1, 85, 86, 87, 88, 89, 90, -1,
1220 -1, 93, 94, 95, -1, -1, -1, -1, 114, -1,
1221 102, -1, -1, -1, -1, -1, 108, -1, 110, 111,
1222 112, 113, -1, -1, 116, 3, 4, 5, 6, 7,
1223 8, 9, 10, 11, 12, -1, 14, -1, 16, -1,
1224 18, -1, -1, -1, 22, 23, -1, -1, 26, -1,
1225 -1, -1, 30, 31, 32, 33, -1, -1, -1, -1,
1226 -1, -1, 40, 41, -1, 57, 44, 59, 60, 61,
1227 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1228 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1229 82, -1, -1, -1, -1, -1, -1, -1, -1, 77,
1230 78, -1, -1, -1, -1, 83, -1, 85, 86, 87,
1231 88, 89, 90, -1, -1, 93, 94, 95, -1, -1,
1232 -1, -1, 114, -1, 102, -1, -1, -1, -1, -1,
1233 108, -1, 110, 111, 112, 113, -1, -1, 116, 3,
1234 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
1235 14, 15, 16, -1, 18, -1, -1, -1, 22, 23,
1236 -1, -1, 26, -1, -1, -1, 30, 31, 32, 33,
1237 -1, -1, -1, -1, -1, -1, 40, 41, -1, 57,
1238 44, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1239 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1240 78, 79, 80, 81, 82, -1, -1, -1, -1, -1,
1241 -1, -1, -1, 77, 78, -1, -1, -1, -1, 83,
1242 -1, 85, 86, 87, 88, 89, 90, -1, -1, 93,
1243 94, 95, -1, -1, -1, -1, 114, -1, 102, -1,
1244 -1, -1, -1, -1, 108, -1, 110, -1, 112, 113,
1245 -1, -1, 116, 3, 4, 5, 6, 7, 8, 9,
1246 10, 11, 12, -1, 14, -1, 16, -1, 18, -1,
1247 -1, -1, 22, 23, -1, -1, 26, -1, -1, -1,
1248 30, 31, 32, 33, -1, -1, -1, -1, -1, -1,
1249 40, 41, -1, 57, 44, 59, 60, 61, 62, 63,
1250 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1251 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
1252 -1, -1, -1, -1, -1, -1, -1, 77, 78, -1,
1253 -1, -1, -1, 83, -1, 85, 86, 87, 88, 89,
1254 90, -1, -1, 93, 94, 95, -1, -1, 112, -1,
1255 -1, -1, 102, -1, -1, -1, -1, -1, 108, -1,
1256 110, -1, 112, 113, -1, -1, 116, 3, 4, 5,
1257 6, 7, 8, 9, 10, 11, 12, -1, 14, -1,
1258 16, -1, 18, -1, -1, -1, 22, 23, -1, -1,
1259 26, -1, -1, -1, 30, 31, -1, 33, -1, -1,
1260 -1, -1, -1, -1, 40, 41, -1, -1, 44, -1,
1261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1262 -1, -1, 58, 65, 66, 67, 68, 69, 70, 71,
1263 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1264 82, 77, 78, -1, -1, -1, -1, 83, -1, 85,
1265 86, 87, 88, 89, 90, -1, -1, 93, 94, 95,
1266 -1, -1, -1, -1, -1, -1, 102, -1, -1, -1,
1267 -1, -1, -1, -1, 110, -1, 112, 113, -1, -1,
1268 116, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1269 12, -1, 14, -1, 16, -1, 18, -1, -1, -1,
1270 22, 23, -1, -1, 26, -1, -1, -1, 30, 31,
1271 -1, 33, -1, -1, -1, -1, -1, -1, 40, 41,
1272 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
1273 -1, -1, -1, -1, -1, -1, 58, 66, 67, 68,
1274 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1275 79, 80, 81, 82, -1, 77, 78, -1, -1, -1,
1276 -1, 83, -1, 85, 86, 87, 88, 89, 90, -1,
1277 -1, 93, 94, 95, -1, -1, -1, -1, -1, -1,
1278 102, -1, -1, -1, -1, -1, -1, -1, 110, -1,
1279 112, 113, -1, -1, 116, 3, 4, 5, 6, 7,
1280 8, 9, 10, 11, 12, -1, 14, -1, 16, -1,
1281 18, -1, -1, -1, 22, 23, -1, -1, 26, -1,
1282 -1, -1, 30, 31, -1, 33, -1, -1, -1, -1,
1283 -1, -1, 40, 41, -1, -1, 44, -1, -1, -1,
1284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1285 58, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1286 76, 77, 78, 79, 80, 81, 82, -1, -1, 77,
1287 78, -1, -1, -1, -1, 83, -1, 85, 86, 87,
1288 88, 89, 90, -1, -1, 93, 94, 95, -1, -1,
1289 -1, -1, -1, -1, 102, -1, -1, -1, -1, -1,
1290 -1, -1, 110, -1, 112, 113, -1, -1, 116, 3,
1291 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
1292 14, -1, 16, -1, 18, -1, -1, -1, 22, 23,
1293 -1, -1, 26, -1, -1, -1, 30, 31, -1, 33,
1294 -1, -1, -1, -1, -1, -1, 40, 41, -1, -1,
1295 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1296 -1, -1, -1, -1, 58, 67, 68, 69, 70, 71,
1297 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1298 82, -1, -1, 77, 78, -1, -1, -1, -1, 83,
1299 -1, 85, 86, 87, 88, 89, 90, -1, -1, 93,
1300 94, 95, -1, -1, -1, -1, -1, -1, 102, -1,
1301 -1, -1, -1, -1, -1, -1, 110, -1, 112, 113,
1302 -1, -1, 116, 3, 4, 5, 6, 7, 8, 9,
1303 10, 11, 12, -1, 14, -1, 16, -1, 18, -1,
1304 -1, -1, 22, 23, -1, -1, 26, -1, -1, -1,
1305 30, 31, -1, 33, -1, -1, -1, -1, -1, -1,
1306 40, 41, -1, -1, 44, -1, -1, -1, -1, -1,
1307 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
1308 4, 5, 6, 7, -1, 9, -1, -1, -1, -1,
1309 -1, -1, -1, -1, -1, -1, -1, 77, 78, -1,
1310 -1, -1, -1, 83, -1, 85, 86, 87, 88, 89,
1311 90, -1, -1, 93, 94, 95, 40, 41, -1, -1,
1312 44, -1, 102, -1, -1, -1, -1, -1, -1, -1,
1313 110, -1, 112, 113, -1, -1, 116, 3, 4, 5,
1314 6, 7, -1, 9, -1, -1, -1, -1, -1, -1,
1315 -1, -1, -1, 77, 78, -1, -1, -1, -1, 83,
1316 -1, 85, 86, 87, 88, 89, 90, -1, -1, 93,
1317 94, 95, -1, -1, 40, 41, -1, -1, 44, -1,
1318 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
1319 -1, -1, 116, 3, 4, 5, 6, 7, -1, 9,
1320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1321 -1, 77, 78, -1, -1, -1, -1, 83, -1, 85,
1322 86, 87, 88, 89, 90, -1, -1, 93, 94, 95,
1323 40, 41, -1, -1, 44, -1, -1, -1, -1, -1,
1324 -1, -1, -1, -1, -1, -1, 112, 113, -1, -1,
1325 116, 3, 4, 5, 6, 7, -1, 9, -1, -1,
1326 -1, -1, -1, -1, -1, -1, -1, 77, 78, -1,
1327 -1, -1, -1, 83, -1, 85, 86, 87, 88, 89,
1328 90, -1, -1, 93, 94, 95, -1, -1, 40, 41,
1329 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
1330 -1, -1, 112, 113, -1, -1, 116, 3, 4, 5,
1331 6, 7, -1, 9, 66, -1, -1, -1, -1, -1,
1332 -1, -1, -1, -1, -1, 77, 78, -1, -1, -1,
1333 -1, 83, -1, 85, 86, 87, 88, 89, 90, -1,
1334 -1, 93, 94, 95, 40, 41, -1, -1, 44, -1,
1335 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1336 -1, 113, -1, -1, 116, 3, 4, 5, 6, 7,
1337 -1, 9, -1, -1, -1, -1, -1, -1, -1, -1,
1338 -1, 77, 78, -1, -1, -1, -1, 83, -1, 85,
1339 86, 87, 88, 89, 90, -1, -1, 93, 94, 95,
1340 -1, -1, 40, 41, -1, -1, 44, -1, -1, -1,
1341 -1, -1, -1, -1, -1, -1, -1, 113, 114, -1,
1342 116, 3, 4, 5, 6, 7, -1, 9, 66, -1,
1343 -1, -1, -1, -1, -1, -1, -1, -1, -1, 77,
1344 78, -1, -1, -1, -1, 83, -1, 85, 86, 87,
1345 88, 89, 90, -1, -1, 93, 94, 95, 40, 41,
1346 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
1347 -1, -1, -1, -1, -1, 113, -1, -1, 116, 3,
1348 4, 5, 6, 7, 66, 9, -1, -1, -1, -1,
1349 -1, -1, -1, -1, -1, 77, 78, -1, -1, -1,
1350 -1, 83, -1, 85, 86, 87, 88, 89, 90, -1,
1351 -1, 93, 94, 95, -1, -1, 40, 41, -1, -1,
1352 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1353 -1, 113, -1, -1, 116, 3, 4, 5, 6, 7,
1354 -1, 9, -1, -1, -1, -1, -1, -1, -1, -1,
1355 -1, -1, -1, 77, 78, -1, -1, -1, -1, 83,
1356 -1, 85, 86, 87, 88, 89, 90, -1, -1, 93,
1357 94, 95, 40, 41, -1, -1, 44, -1, -1, -1,
1358 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113,
1359 -1, 115, 116, 3, 4, 5, 6, 7, 66, 9,
1360 -1, -1, -1, -1, -1, -1, -1, -1, -1, 77,
1361 78, -1, -1, -1, -1, 83, -1, 85, 86, 87,
1362 88, 89, 90, -1, -1, 93, 94, 95, -1, -1,
1363 40, 41, -1, -1, 44, -1, -1, -1, -1, -1,
1364 -1, -1, -1, -1, -1, 113, -1, -1, 116, 3,
1365 4, 5, 6, 7, -1, 9, 66, -1, -1, -1,
1366 -1, -1, -1, -1, -1, -1, -1, 77, 78, -1,
1367 -1, -1, -1, 83, -1, 85, 86, 87, 88, 89,
1368 90, -1, -1, 93, 94, 95, 40, 41, -1, -1,
1369 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1370 -1, -1, -1, 113, -1, -1, 116, -1, -1, -1,
1371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1372 -1, -1, -1, 77, 78, -1, -1, -1, -1, 83,
1373 -1, 85, 86, 87, 88, 89, 90, -1, -1, 93,
1374 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
1375 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113,
1376 -1, 57, 116, 59, 60, 61, 62, 63, 64, 65,
1377 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1378 76, 77, 78, 79, 80, 81, 82, 57, -1, 59,
1379 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1380 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1381 80, 81, 82, -1, -1, 57, 112, 59, 60, 61,
1382 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1383 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1384 82, 57, 112, 59, 60, 61, 62, 63, 64, 65,
1385 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1386 76, 77, 78, 79, 80, 81, 82, -1, -1, 57,
1387 112, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1388 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1389 78, 79, 80, 81, 82, 111, -1, -1, -1, -1,
1390 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1,
1391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1392 -1, -1, 57, 111, 59, 60, 61, 62, 63, 64,
1393 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1394 75, 76, 77, 78, 79, 80, 81, 82, 57, 58,
1395 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1396 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1397 79, 80, 81, 82, 57, -1, 59, 60, 61, 62,
1398 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1399 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1400 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1401 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1402 79, 80, 81, 82, 60, 61, 62, 63, 64, 65,
1403 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1404 76, 77, 78, 79, 80, 81, 82, 61, 62, 63,
1405 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1406 74, 75, 76, 77, 78, 79, 80, 81, 82, 62,
1407 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1408 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1409 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1410 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1411 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1412 74, 75, 76, 77, 78, 79, 80, 81, 82
1413 };
1414
1415 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1416 symbol of state STATE-NUM. */
1417 static const yytype_uint8 yystos[] =
1418 {
1419 0, 108, 118, 119, 0, 3, 4, 5, 6, 7,
1420 8, 9, 10, 11, 12, 14, 16, 18, 22, 23,
1421 26, 30, 31, 32, 33, 40, 41, 44, 77, 78,
1422 83, 85, 86, 87, 88, 89, 90, 93, 94, 95,
1423 102, 108, 109, 110, 112, 113, 116, 120, 121, 129,
1424 143, 144, 145, 146, 148, 42, 113, 123, 148, 113,
1425 149, 113, 121, 113, 113, 113, 113, 7, 125, 126,
1426 113, 113, 112, 148, 112, 148, 6, 66, 112, 148,
1427 113, 113, 148, 148, 148, 148, 148, 6, 144, 145,
1428 144, 148, 148, 148, 148, 148, 148, 7, 127, 128,
1429 119, 119, 148, 110, 45, 46, 47, 48, 49, 50,
1430 51, 52, 53, 54, 55, 56, 86, 87, 38, 42,
1431 96, 110, 57, 59, 60, 61, 62, 63, 64, 65,
1432 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1433 76, 77, 78, 79, 80, 81, 82, 112, 6, 66,
1434 147, 148, 43, 112, 114, 148, 148, 12, 148, 123,
1435 135, 148, 6, 122, 43, 112, 124, 144, 148, 112,
1436 112, 130, 6, 112, 40, 144, 150, 151, 66, 148,
1437 152, 153, 38, 45, 43, 112, 109, 111, 114, 148,
1438 66, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1439 148, 148, 148, 6, 6, 115, 148, 148, 148, 148,
1440 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1441 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1442 148, 148, 148, 144, 43, 114, 148, 114, 114, 113,
1443 114, 112, 20, 45, 43, 114, 126, 43, 114, 114,
1444 113, 113, 113, 43, 114, 144, 39, 43, 114, 6,
1445 6, 143, 128, 111, 144, 113, 113, 115, 111, 58,
1446 66, 148, 121, 148, 58, 121, 138, 135, 144, 143,
1447 6, 58, 121, 144, 112, 58, 110, 139, 6, 131,
1448 132, 131, 150, 151, 45, 66, 148, 153, 147, 147,
1449 148, 144, 136, 114, 119, 112, 39, 114, 45, 119,
1450 112, 140, 112, 140, 43, 114, 7, 66, 114, 114,
1451 148, 144, 114, 114, 99, 100, 137, 112, 13, 135,
1452 66, 144, 58, 121, 134, 143, 19, 140, 27, 28,
1453 29, 141, 140, 111, 132, 110, 7, 110, 113, 121,
1454 112, 114, 144, 114, 119, 27, 112, 148, 58, 112,
1455 142, 111, 7, 66, 119, 119, 148, 58, 121, 133,
1456 114, 134, 17, 112, 119, 7, 111, 111, 114, 119,
1457 134, 112, 121, 15, 112
1458 };
1459
1460 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1461 static const yytype_uint8 yyr1[] =
1462 {
1463 0, 117, 118, 119, 119, 120, 120, 120, 121, 121,
1464 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
1465 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
1466 121, 122, 122, 123, 123, 124, 124, 125, 125, 126,
1467 127, 127, 128, 128, 130, 129, 129, 131, 131, 131,
1468 131, 131, 132, 132, 133, 133, 134, 134, 135, 135,
1469 136, 136, 137, 137, 138, 138, 139, 139, 139, 139,
1470 140, 140, 141, 141, 142, 142, 143, 143, 143, 143,
1471 144, 144, 144, 145, 145, 145, 145, 145, 146, 146,
1472 146, 147, 147, 147, 147, 147, 148, 148, 148, 148,
1473 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1474 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1475 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1476 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1477 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1478 148, 148, 148, 148, 148, 148, 149, 149, 149, 150,
1479 150, 151, 151, 151, 152, 152, 153, 153, 153, 153
1480 };
1481
1482 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1483 static const yytype_uint8 yyr2[] =
1484 {
1485 0, 2, 3, 2, 0, 1, 3, 1, 3, 2,
1486 3, 3, 7, 5, 7, 9, 5, 2, 3, 2,
1487 3, 2, 3, 3, 5, 7, 9, 10, 5, 7,
1488 1, 3, 5, 1, 3, 1, 3, 1, 3, 1,
1489 1, 3, 1, 3, 0, 9, 9, 2, 3, 4,
1490 5, 0, 0, 1, 1, 4, 1, 4, 1, 0,
1491 6, 0, 0, 2, 1, 4, 3, 4, 4, 5,
1492 0, 4, 2, 1, 1, 1, 1, 1, 1, 1,
1493 1, 3, 3, 1, 3, 4, 4, 4, 4, 6,
1494 6, 1, 2, 3, 4, 0, 6, 1, 3, 1,
1495 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1496 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
1497 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1498 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
1499 3, 3, 3, 3, 3, 5, 2, 2, 2, 2,
1500 2, 2, 2, 1, 4, 2, 3, 2, 0, 1,
1501 3, 1, 4, 0, 1, 3, 1, 3, 4, 2
1502 };
1503
1504
1505 #define yyerrok (yyerrstatus = 0)
1506 #define yyclearin (yychar = YYEMPTY)
1507 #define YYEMPTY (-2)
1508 #define YYEOF 0
1509
1510 #define YYACCEPT goto yyacceptlab
1511 #define YYABORT goto yyabortlab
1512 #define YYERROR goto yyerrorlab
1513
1514
1515 #define YYRECOVERING() (!!yyerrstatus)
1516
1517 #define YYBACKUP(Token, Value) \
1518 do \
1519 if (yychar == YYEMPTY) \
1520 { \
1521 yychar = (Token); \
1522 yylval = (Value); \
1523 YYPOPSTACK (yylen); \
1524 yystate = *yyssp; \
1525 goto yybackup; \
1526 } \
1527 else \
1528 { \
1529 yyerror (YY_("syntax error: cannot back up")); \
1530 YYERROR; \
1531 } \
1532 while (0)
1533
1534 /* Error token number */
1535 #define YYTERROR 1
1536 #define YYERRCODE 256
1537
1538
1539
1540 /* Enable debugging if requested. */
1541 #if YYDEBUG
1542
1543 # ifndef YYFPRINTF
1544 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1545 # define YYFPRINTF fprintf
1546 # endif
1547
1548 # define YYDPRINTF(Args) \
1549 do { \
1550 if (yydebug) \
1551 YYFPRINTF Args; \
1552 } while (0)
1553
1554 /* This macro is provided for backward compatibility. */
1555 #ifndef YY_LOCATION_PRINT
1556 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1557 #endif
1558
1559
1560 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1561 do { \
1562 if (yydebug) \
1563 { \
1564 YYFPRINTF (stderr, "%s ", Title); \
1565 yy_symbol_print (stderr, \
1566 Type, Value); \
1567 YYFPRINTF (stderr, "\n"); \
1568 } \
1569 } while (0)
1570
1571
1572 /*----------------------------------------.
1573 | Print this symbol's value on YYOUTPUT. |
1574 `----------------------------------------*/
1575
1576 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)1577 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1578 {
1579 FILE *yyo = yyoutput;
1580 YYUSE (yyo);
1581 if (!yyvaluep)
1582 return;
1583 # ifdef YYPRINT
1584 if (yytype < YYNTOKENS)
1585 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1586 # endif
1587 YYUSE (yytype);
1588 }
1589
1590
1591 /*--------------------------------.
1592 | Print this symbol on YYOUTPUT. |
1593 `--------------------------------*/
1594
1595 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep)1596 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1597 {
1598 YYFPRINTF (yyoutput, "%s %s (",
1599 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1600
1601 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1602 YYFPRINTF (yyoutput, ")");
1603 }
1604
1605 /*------------------------------------------------------------------.
1606 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1607 | TOP (included). |
1608 `------------------------------------------------------------------*/
1609
1610 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)1611 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1612 {
1613 YYFPRINTF (stderr, "Stack now");
1614 for (; yybottom <= yytop; yybottom++)
1615 {
1616 int yybot = *yybottom;
1617 YYFPRINTF (stderr, " %d", yybot);
1618 }
1619 YYFPRINTF (stderr, "\n");
1620 }
1621
1622 # define YY_STACK_PRINT(Bottom, Top) \
1623 do { \
1624 if (yydebug) \
1625 yy_stack_print ((Bottom), (Top)); \
1626 } while (0)
1627
1628
1629 /*------------------------------------------------.
1630 | Report that the YYRULE is going to be reduced. |
1631 `------------------------------------------------*/
1632
1633 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule)1634 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1635 {
1636 unsigned long int yylno = yyrline[yyrule];
1637 int yynrhs = yyr2[yyrule];
1638 int yyi;
1639 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1640 yyrule - 1, yylno);
1641 /* The symbols being reduced. */
1642 for (yyi = 0; yyi < yynrhs; yyi++)
1643 {
1644 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1645 yy_symbol_print (stderr,
1646 yystos[yyssp[yyi + 1 - yynrhs]],
1647 &(yyvsp[(yyi + 1) - (yynrhs)])
1648 );
1649 YYFPRINTF (stderr, "\n");
1650 }
1651 }
1652
1653 # define YY_REDUCE_PRINT(Rule) \
1654 do { \
1655 if (yydebug) \
1656 yy_reduce_print (yyssp, yyvsp, Rule); \
1657 } while (0)
1658
1659 /* Nonzero means print parse trace. It is left uninitialized so that
1660 multiple parsers can coexist. */
1661 int yydebug;
1662 #else /* !YYDEBUG */
1663 # define YYDPRINTF(Args)
1664 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1665 # define YY_STACK_PRINT(Bottom, Top)
1666 # define YY_REDUCE_PRINT(Rule)
1667 #endif /* !YYDEBUG */
1668
1669
1670 /* YYINITDEPTH -- initial size of the parser's stacks. */
1671 #ifndef YYINITDEPTH
1672 # define YYINITDEPTH 200
1673 #endif
1674
1675 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1676 if the built-in stack extension method is used).
1677
1678 Do not make this value too large; the results are undefined if
1679 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1680 evaluated with infinite-precision integer arithmetic. */
1681
1682 #ifndef YYMAXDEPTH
1683 # define YYMAXDEPTH 10000
1684 #endif
1685
1686
1687 #if YYERROR_VERBOSE
1688
1689 # ifndef yystrlen
1690 # if defined __GLIBC__ && defined _STRING_H
1691 # define yystrlen strlen
1692 # else
1693 /* Return the length of YYSTR. */
1694 static YYSIZE_T
yystrlen(const char * yystr)1695 yystrlen (const char *yystr)
1696 {
1697 YYSIZE_T yylen;
1698 for (yylen = 0; yystr[yylen]; yylen++)
1699 continue;
1700 return yylen;
1701 }
1702 # endif
1703 # endif
1704
1705 # ifndef yystpcpy
1706 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1707 # define yystpcpy stpcpy
1708 # else
1709 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1710 YYDEST. */
1711 static char *
yystpcpy(char * yydest,const char * yysrc)1712 yystpcpy (char *yydest, const char *yysrc)
1713 {
1714 char *yyd = yydest;
1715 const char *yys = yysrc;
1716
1717 while ((*yyd++ = *yys++) != '\0')
1718 continue;
1719
1720 return yyd - 1;
1721 }
1722 # endif
1723 # endif
1724
1725 # ifndef yytnamerr
1726 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1727 quotes and backslashes, so that it's suitable for yyerror. The
1728 heuristic is that double-quoting is unnecessary unless the string
1729 contains an apostrophe, a comma, or backslash (other than
1730 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1731 null, do not copy; instead, return the length of what the result
1732 would have been. */
1733 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)1734 yytnamerr (char *yyres, const char *yystr)
1735 {
1736 if (*yystr == '"')
1737 {
1738 YYSIZE_T yyn = 0;
1739 char const *yyp = yystr;
1740
1741 for (;;)
1742 switch (*++yyp)
1743 {
1744 case '\'':
1745 case ',':
1746 goto do_not_strip_quotes;
1747
1748 case '\\':
1749 if (*++yyp != '\\')
1750 goto do_not_strip_quotes;
1751 /* Fall through. */
1752 default:
1753 if (yyres)
1754 yyres[yyn] = *yyp;
1755 yyn++;
1756 break;
1757
1758 case '"':
1759 if (yyres)
1760 yyres[yyn] = '\0';
1761 return yyn;
1762 }
1763 do_not_strip_quotes: ;
1764 }
1765
1766 if (! yyres)
1767 return yystrlen (yystr);
1768
1769 return yystpcpy (yyres, yystr) - yyres;
1770 }
1771 # endif
1772
1773 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1774 about the unexpected token YYTOKEN for the state stack whose top is
1775 YYSSP.
1776
1777 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1778 not large enough to hold the message. In that case, also set
1779 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1780 required number of bytes is too large to store. */
1781 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)1782 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1783 yytype_int16 *yyssp, int yytoken)
1784 {
1785 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1786 YYSIZE_T yysize = yysize0;
1787 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1788 /* Internationalized format string. */
1789 const char *yyformat = YY_NULLPTR;
1790 /* Arguments of yyformat. */
1791 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1792 /* Number of reported tokens (one for the "unexpected", one per
1793 "expected"). */
1794 int yycount = 0;
1795
1796 /* There are many possibilities here to consider:
1797 - If this state is a consistent state with a default action, then
1798 the only way this function was invoked is if the default action
1799 is an error action. In that case, don't check for expected
1800 tokens because there are none.
1801 - The only way there can be no lookahead present (in yychar) is if
1802 this state is a consistent state with a default action. Thus,
1803 detecting the absence of a lookahead is sufficient to determine
1804 that there is no unexpected or expected token to report. In that
1805 case, just report a simple "syntax error".
1806 - Don't assume there isn't a lookahead just because this state is a
1807 consistent state with a default action. There might have been a
1808 previous inconsistent state, consistent state with a non-default
1809 action, or user semantic action that manipulated yychar.
1810 - Of course, the expected token list depends on states to have
1811 correct lookahead information, and it depends on the parser not
1812 to perform extra reductions after fetching a lookahead from the
1813 scanner and before detecting a syntax error. Thus, state merging
1814 (from LALR or IELR) and default reductions corrupt the expected
1815 token list. However, the list is correct for canonical LR with
1816 one exception: it will still contain any token that will not be
1817 accepted due to an error action in a later state.
1818 */
1819 if (yytoken != YYEMPTY)
1820 {
1821 int yyn = yypact[*yyssp];
1822 yyarg[yycount++] = yytname[yytoken];
1823 if (!yypact_value_is_default (yyn))
1824 {
1825 /* Start YYX at -YYN if negative to avoid negative indexes in
1826 YYCHECK. In other words, skip the first -YYN actions for
1827 this state because they are default actions. */
1828 int yyxbegin = yyn < 0 ? -yyn : 0;
1829 /* Stay within bounds of both yycheck and yytname. */
1830 int yychecklim = YYLAST - yyn + 1;
1831 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1832 int yyx;
1833
1834 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1835 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1836 && !yytable_value_is_error (yytable[yyx + yyn]))
1837 {
1838 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1839 {
1840 yycount = 1;
1841 yysize = yysize0;
1842 break;
1843 }
1844 yyarg[yycount++] = yytname[yyx];
1845 {
1846 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1847 if (! (yysize <= yysize1
1848 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1849 return 2;
1850 yysize = yysize1;
1851 }
1852 }
1853 }
1854 }
1855
1856 switch (yycount)
1857 {
1858 # define YYCASE_(N, S) \
1859 case N: \
1860 yyformat = S; \
1861 break
1862 YYCASE_(0, YY_("syntax error"));
1863 YYCASE_(1, YY_("syntax error, unexpected %s"));
1864 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1865 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1866 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1867 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1868 # undef YYCASE_
1869 }
1870
1871 {
1872 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1873 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1874 return 2;
1875 yysize = yysize1;
1876 }
1877
1878 if (*yymsg_alloc < yysize)
1879 {
1880 *yymsg_alloc = 2 * yysize;
1881 if (! (yysize <= *yymsg_alloc
1882 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1883 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1884 return 1;
1885 }
1886
1887 /* Avoid sprintf, as that infringes on the user's name space.
1888 Don't have undefined behavior even if the translation
1889 produced a string with the wrong number of "%s"s. */
1890 {
1891 char *yyp = *yymsg;
1892 int yyi = 0;
1893 while ((*yyp = *yyformat) != '\0')
1894 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1895 {
1896 yyp += yytnamerr (yyp, yyarg[yyi++]);
1897 yyformat += 2;
1898 }
1899 else
1900 {
1901 yyp++;
1902 yyformat++;
1903 }
1904 }
1905 return 0;
1906 }
1907 #endif /* YYERROR_VERBOSE */
1908
1909 /*-----------------------------------------------.
1910 | Release the memory associated to this symbol. |
1911 `-----------------------------------------------*/
1912
1913 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep)1914 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1915 {
1916 YYUSE (yyvaluep);
1917 if (!yymsg)
1918 yymsg = "Deleting";
1919 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1920
1921 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1922 YYUSE (yytype);
1923 YY_IGNORE_MAYBE_UNINITIALIZED_END
1924 }
1925
1926
1927
1928
1929 /* The lookahead symbol. */
1930 int yychar;
1931
1932 /* The semantic value of the lookahead symbol. */
1933 YYSTYPE yylval;
1934 /* Number of syntax errors so far. */
1935 int yynerrs;
1936
1937
1938 /*----------.
1939 | yyparse. |
1940 `----------*/
1941
1942 int
yyparse(void)1943 yyparse (void)
1944 {
1945 int yystate;
1946 /* Number of tokens to shift before error messages enabled. */
1947 int yyerrstatus;
1948
1949 /* The stacks and their tools:
1950 'yyss': related to states.
1951 'yyvs': related to semantic values.
1952
1953 Refer to the stacks through separate pointers, to allow yyoverflow
1954 to reallocate them elsewhere. */
1955
1956 /* The state stack. */
1957 yytype_int16 yyssa[YYINITDEPTH];
1958 yytype_int16 *yyss;
1959 yytype_int16 *yyssp;
1960
1961 /* The semantic value stack. */
1962 YYSTYPE yyvsa[YYINITDEPTH];
1963 YYSTYPE *yyvs;
1964 YYSTYPE *yyvsp;
1965
1966 YYSIZE_T yystacksize;
1967
1968 int yyn;
1969 int yyresult;
1970 /* Lookahead token as an internal (translated) token number. */
1971 int yytoken = 0;
1972 /* The variables used to return semantic value and location from the
1973 action routines. */
1974 YYSTYPE yyval;
1975
1976 #if YYERROR_VERBOSE
1977 /* Buffer for error messages, and its allocated size. */
1978 char yymsgbuf[128];
1979 char *yymsg = yymsgbuf;
1980 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1981 #endif
1982
1983 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1984
1985 /* The number of symbols on the RHS of the reduced rule.
1986 Keep to zero when no symbol should be popped. */
1987 int yylen = 0;
1988
1989 yyssp = yyss = yyssa;
1990 yyvsp = yyvs = yyvsa;
1991 yystacksize = YYINITDEPTH;
1992
1993 YYDPRINTF ((stderr, "Starting parse\n"));
1994
1995 yystate = 0;
1996 yyerrstatus = 0;
1997 yynerrs = 0;
1998 yychar = YYEMPTY; /* Cause a token to be read. */
1999 goto yysetstate;
2000
2001 /*------------------------------------------------------------.
2002 | yynewstate -- Push a new state, which is found in yystate. |
2003 `------------------------------------------------------------*/
2004 yynewstate:
2005 /* In all cases, when you get here, the value and location stacks
2006 have just been pushed. So pushing a state here evens the stacks. */
2007 yyssp++;
2008
2009 yysetstate:
2010 *yyssp = yystate;
2011
2012 if (yyss + yystacksize - 1 <= yyssp)
2013 {
2014 /* Get the current used size of the three stacks, in elements. */
2015 YYSIZE_T yysize = yyssp - yyss + 1;
2016
2017 #ifdef yyoverflow
2018 {
2019 /* Give user a chance to reallocate the stack. Use copies of
2020 these so that the &'s don't force the real ones into
2021 memory. */
2022 YYSTYPE *yyvs1 = yyvs;
2023 yytype_int16 *yyss1 = yyss;
2024
2025 /* Each stack pointer address is followed by the size of the
2026 data in use in that stack, in bytes. This used to be a
2027 conditional around just the two extra args, but that might
2028 be undefined if yyoverflow is a macro. */
2029 yyoverflow (YY_("memory exhausted"),
2030 &yyss1, yysize * sizeof (*yyssp),
2031 &yyvs1, yysize * sizeof (*yyvsp),
2032 &yystacksize);
2033
2034 yyss = yyss1;
2035 yyvs = yyvs1;
2036 }
2037 #else /* no yyoverflow */
2038 # ifndef YYSTACK_RELOCATE
2039 goto yyexhaustedlab;
2040 # else
2041 /* Extend the stack our own way. */
2042 if (YYMAXDEPTH <= yystacksize)
2043 goto yyexhaustedlab;
2044 yystacksize *= 2;
2045 if (YYMAXDEPTH < yystacksize)
2046 yystacksize = YYMAXDEPTH;
2047
2048 {
2049 yytype_int16 *yyss1 = yyss;
2050 union yyalloc *yyptr =
2051 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2052 if (! yyptr)
2053 goto yyexhaustedlab;
2054 YYSTACK_RELOCATE (yyss_alloc, yyss);
2055 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2056 # undef YYSTACK_RELOCATE
2057 if (yyss1 != yyssa)
2058 YYSTACK_FREE (yyss1);
2059 }
2060 # endif
2061 #endif /* no yyoverflow */
2062
2063 yyssp = yyss + yysize - 1;
2064 yyvsp = yyvs + yysize - 1;
2065
2066 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2067 (unsigned long int) yystacksize));
2068
2069 if (yyss + yystacksize - 1 <= yyssp)
2070 YYABORT;
2071 }
2072
2073 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2074
2075 if (yystate == YYFINAL)
2076 YYACCEPT;
2077
2078 goto yybackup;
2079
2080 /*-----------.
2081 | yybackup. |
2082 `-----------*/
2083 yybackup:
2084
2085 /* Do appropriate processing given the current state. Read a
2086 lookahead token if we need one and don't already have one. */
2087
2088 /* First try to decide what to do without reference to lookahead token. */
2089 yyn = yypact[yystate];
2090 if (yypact_value_is_default (yyn))
2091 goto yydefault;
2092
2093 /* Not known => get a lookahead token if don't already have one. */
2094
2095 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2096 if (yychar == YYEMPTY)
2097 {
2098 YYDPRINTF ((stderr, "Reading a token: "));
2099 yychar = yylex ();
2100 }
2101
2102 if (yychar <= YYEOF)
2103 {
2104 yychar = yytoken = YYEOF;
2105 YYDPRINTF ((stderr, "Now at end of input.\n"));
2106 }
2107 else
2108 {
2109 yytoken = YYTRANSLATE (yychar);
2110 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2111 }
2112
2113 /* If the proper action on seeing token YYTOKEN is to reduce or to
2114 detect an error, take that action. */
2115 yyn += yytoken;
2116 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2117 goto yydefault;
2118 yyn = yytable[yyn];
2119 if (yyn <= 0)
2120 {
2121 if (yytable_value_is_error (yyn))
2122 goto yyerrlab;
2123 yyn = -yyn;
2124 goto yyreduce;
2125 }
2126
2127 /* Count tokens shifted since error; after three, turn off error
2128 status. */
2129 if (yyerrstatus)
2130 yyerrstatus--;
2131
2132 /* Shift the lookahead token. */
2133 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2134
2135 /* Discard the shifted token. */
2136 yychar = YYEMPTY;
2137
2138 yystate = yyn;
2139 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2140 *++yyvsp = yylval;
2141 YY_IGNORE_MAYBE_UNINITIALIZED_END
2142
2143 goto yynewstate;
2144
2145
2146 /*-----------------------------------------------------------.
2147 | yydefault -- do the default action for the current state. |
2148 `-----------------------------------------------------------*/
2149 yydefault:
2150 yyn = yydefact[yystate];
2151 if (yyn == 0)
2152 goto yyerrlab;
2153 goto yyreduce;
2154
2155
2156 /*-----------------------------.
2157 | yyreduce -- Do a reduction. |
2158 `-----------------------------*/
2159 yyreduce:
2160 /* yyn is the number of a rule to reduce with. */
2161 yylen = yyr2[yyn];
2162
2163 /* If YYLEN is nonzero, implement the default value of the action:
2164 '$$ = $1'.
2165
2166 Otherwise, the following line sets YYVAL to garbage.
2167 This behavior is undocumented and Bison
2168 users should not rely upon it. Assigning to YYVAL
2169 unconditionally makes the parser a bit smaller, and it avoids a
2170 GCC warning that YYVAL may be used uninitialized. */
2171 yyval = yyvsp[1-yylen];
2172
2173
2174 YY_REDUCE_PRINT (yyn);
2175 switch (yyn)
2176 {
2177 case 2:
2178 #line 142 "php_parser.y" /* yacc.c:1646 */
2179 { g_syn_tree_top = (yyvsp[-1].syn_node); }
2180 #line 2181 "php_parser.c" /* yacc.c:1646 */
2181 break;
2182
2183 case 3:
2184 #line 146 "php_parser.y" /* yacc.c:1646 */
2185 { (yyval.syn_node) = add_statement_2_list((yyvsp[-1].syn_node), (yyvsp[0].syn_node)); }
2186 #line 2187 "php_parser.c" /* yacc.c:1646 */
2187 break;
2188
2189 case 4:
2190 #line 147 "php_parser.y" /* yacc.c:1646 */
2191 { (yyval.syn_node) = 0; }
2192 #line 2193 "php_parser.c" /* yacc.c:1646 */
2193 break;
2194
2195 case 6:
2196 #line 153 "php_parser.y" /* yacc.c:1646 */
2197 { (yyval.syn_node) = (yyvsp[-1].syn_node); }
2198 #line 2199 "php_parser.c" /* yacc.c:1646 */
2199 break;
2200
2201 case 8:
2202 #line 159 "php_parser.y" /* yacc.c:1646 */
2203 { (yyval.syn_node) = (yyvsp[-1].syn_node); }
2204 #line 2205 "php_parser.c" /* yacc.c:1646 */
2205 break;
2206
2207 case 9:
2208 #line 160 "php_parser.y" /* yacc.c:1646 */
2209 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_EXPR, (yyvsp[-1].exp_node)); }
2210 #line 2211 "php_parser.c" /* yacc.c:1646 */
2211 break;
2212
2213 case 10:
2214 #line 161 "php_parser.y" /* yacc.c:1646 */
2215 { (yyval.syn_node) = 0; }
2216 #line 2217 "php_parser.c" /* yacc.c:1646 */
2217 break;
2218
2219 case 11:
2220 #line 162 "php_parser.y" /* yacc.c:1646 */
2221 { (yyval.syn_node) = (yyvsp[-1].syn_node); }
2222 #line 2223 "php_parser.c" /* yacc.c:1646 */
2223 break;
2224
2225 case 12:
2226 #line 163 "php_parser.y" /* yacc.c:1646 */
2227 { (yyval.syn_node) = make_ifelse_syn_node((yyvsp[-4].exp_node), (yyvsp[-2].syn_node), (yyvsp[-1].syn_node), (yyvsp[0].syn_node)); }
2228 #line 2229 "php_parser.c" /* yacc.c:1646 */
2229 break;
2230
2231 case 13:
2232 #line 164 "php_parser.y" /* yacc.c:1646 */
2233 { (yyval.syn_node) = make_while_loop_syn_node((yyvsp[-2].exp_node), (yyvsp[0].syn_node), 1); }
2234 #line 2235 "php_parser.c" /* yacc.c:1646 */
2235 break;
2236
2237 case 14:
2238 #line 165 "php_parser.y" /* yacc.c:1646 */
2239 { (yyval.syn_node) = make_while_loop_syn_node((yyvsp[-2].exp_node), (yyvsp[-5].syn_node), 0); }
2240 #line 2241 "php_parser.c" /* yacc.c:1646 */
2241 break;
2242
2243 case 15:
2244 #line 166 "php_parser.y" /* yacc.c:1646 */
2245 { (yyval.syn_node) = make_for_syn_node((yyvsp[-6].exp_node), (yyvsp[-4].exp_node), (yyvsp[-2].exp_node), (yyvsp[0].syn_node)); }
2246 #line 2247 "php_parser.c" /* yacc.c:1646 */
2247 break;
2248
2249 case 16:
2250 #line 167 "php_parser.y" /* yacc.c:1646 */
2251 { (yyval.syn_node) = make_switch_syn_node((yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2252 #line 2253 "php_parser.c" /* yacc.c:1646 */
2253 break;
2254
2255 case 17:
2256 #line 168 "php_parser.y" /* yacc.c:1646 */
2257 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_CONTINUE, 0); }
2258 #line 2259 "php_parser.c" /* yacc.c:1646 */
2259 break;
2260
2261 case 18:
2262 #line 169 "php_parser.y" /* yacc.c:1646 */
2263 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_CONTINUE, (yyvsp[-1].exp_node)); }
2264 #line 2265 "php_parser.c" /* yacc.c:1646 */
2265 break;
2266
2267 case 19:
2268 #line 170 "php_parser.y" /* yacc.c:1646 */
2269 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_BREAK, 0); }
2270 #line 2271 "php_parser.c" /* yacc.c:1646 */
2271 break;
2272
2273 case 20:
2274 #line 171 "php_parser.y" /* yacc.c:1646 */
2275 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_BREAK, (yyvsp[-1].exp_node)); }
2276 #line 2277 "php_parser.c" /* yacc.c:1646 */
2277 break;
2278
2279 case 21:
2280 #line 172 "php_parser.y" /* yacc.c:1646 */
2281 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_RET, 0); }
2282 #line 2283 "php_parser.c" /* yacc.c:1646 */
2283 break;
2284
2285 case 22:
2286 #line 173 "php_parser.y" /* yacc.c:1646 */
2287 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_RET, (yyvsp[-1].exp_node)); }
2288 #line 2289 "php_parser.c" /* yacc.c:1646 */
2289 break;
2290
2291 case 23:
2292 #line 174 "php_parser.y" /* yacc.c:1646 */
2293 { (yyval.syn_node) = make_expr_syn_node(PHP_ST_ECHO, (yyvsp[-1].exp_node)); }
2294 #line 2295 "php_parser.c" /* yacc.c:1646 */
2295 break;
2296
2297 case 24:
2298 #line 175 "php_parser.y" /* yacc.c:1646 */
2299 { }
2300 #line 2301 "php_parser.c" /* yacc.c:1646 */
2301 break;
2302
2303 case 25:
2304 #line 176 "php_parser.y" /* yacc.c:1646 */
2305 {
2306 (yyval.syn_node) = make_foreach_loop_syn_node((yyvsp[-4].exp_node), 0, (yyvsp[-2].exp_node), (yyvsp[0].syn_node), 0);
2307 }
2308 #line 2309 "php_parser.c" /* yacc.c:1646 */
2309 break;
2310
2311 case 26:
2312 #line 179 "php_parser.y" /* yacc.c:1646 */
2313 {
2314 (yyval.syn_node) = make_foreach_loop_syn_node((yyvsp[-6].exp_node), (yyvsp[-4].exp_node), (yyvsp[-2].exp_node), (yyvsp[0].syn_node), 0);
2315 }
2316 #line 2317 "php_parser.c" /* yacc.c:1646 */
2317 break;
2318
2319 case 27:
2320 #line 182 "php_parser.y" /* yacc.c:1646 */
2321 {
2322 (yyval.syn_node) = make_foreach_loop_syn_node((yyvsp[-7].exp_node), (yyvsp[-5].exp_node), (yyvsp[-2].exp_node), (yyvsp[0].syn_node), 1);
2323 }
2324 #line 2325 "php_parser.c" /* yacc.c:1646 */
2325 break;
2326
2327 case 28:
2328 #line 185 "php_parser.y" /* yacc.c:1646 */
2329 { }
2330 #line 2331 "php_parser.c" /* yacc.c:1646 */
2331 break;
2332
2333 case 29:
2334 #line 186 "php_parser.y" /* yacc.c:1646 */
2335 { }
2336 #line 2337 "php_parser.c" /* yacc.c:1646 */
2337 break;
2338
2339 case 30:
2340 #line 187 "php_parser.y" /* yacc.c:1646 */
2341 { (yyval.syn_node) = 0; }
2342 #line 2343 "php_parser.c" /* yacc.c:1646 */
2343 break;
2344
2345 case 31:
2346 #line 190 "php_parser.y" /* yacc.c:1646 */
2347 { }
2348 #line 2349 "php_parser.c" /* yacc.c:1646 */
2349 break;
2350
2351 case 32:
2352 #line 191 "php_parser.y" /* yacc.c:1646 */
2353 { }
2354 #line 2355 "php_parser.c" /* yacc.c:1646 */
2355 break;
2356
2357 case 33:
2358 #line 194 "php_parser.y" /* yacc.c:1646 */
2359 { (yyval.exp_node) = make_exp_1(PHP_OP_LIST, 0); (yyval.exp_node)->exp_node = (yyvsp[0].exp_node); }
2360 #line 2361 "php_parser.c" /* yacc.c:1646 */
2361 break;
2362
2363 case 34:
2364 #line 195 "php_parser.y" /* yacc.c:1646 */
2365 {
2366 PHP_EXP_NODE *last = (yyvsp[-2].exp_node);
2367 while ( last->next) last = last->next;
2368 last->next = make_exp_1(PHP_OP_LIST, 0);
2369 last->next->exp_node = (yyvsp[0].exp_node);
2370 (yyval.exp_node) = (yyvsp[-2].exp_node);
2371 }
2372 #line 2373 "php_parser.c" /* yacc.c:1646 */
2373 break;
2374
2375 case 37:
2376 #line 211 "php_parser.y" /* yacc.c:1646 */
2377 { (yyval.syn_node) = 0; }
2378 #line 2379 "php_parser.c" /* yacc.c:1646 */
2379 break;
2380
2381 case 38:
2382 #line 212 "php_parser.y" /* yacc.c:1646 */
2383 { }
2384 #line 2385 "php_parser.c" /* yacc.c:1646 */
2385 break;
2386
2387 case 39:
2388 #line 216 "php_parser.y" /* yacc.c:1646 */
2389 {
2390 const char *varname = get_scope_var_name(g_current_scope, (yyvsp[0].exp_node)->var_si_node->var);
2391 PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, varname);
2392 PHP_SCOPE_ITEM *gsi = get_scope_item(g_global_scope, varname);
2393 if ( gsi && (gsi->type == PHP_SCOPE_VAR) ) {
2394 free_var_node(si->var);
2395 php_exp_tree_free((yyvsp[0].exp_node));
2396 gsi->var->ref_count++;
2397 si->var = gsi->var;
2398 } else {
2399 php_report_error(PHP_ERROR, "There is no such global var");
2400 }
2401 }
2402 #line 2403 "php_parser.c" /* yacc.c:1646 */
2403 break;
2404
2405 case 40:
2406 #line 231 "php_parser.y" /* yacc.c:1646 */
2407 { (yyval.syn_node) = 0; }
2408 #line 2409 "php_parser.c" /* yacc.c:1646 */
2409 break;
2410
2411 case 41:
2412 #line 232 "php_parser.y" /* yacc.c:1646 */
2413 { }
2414 #line 2415 "php_parser.c" /* yacc.c:1646 */
2415 break;
2416
2417 case 42:
2418 #line 235 "php_parser.y" /* yacc.c:1646 */
2419 { (yyvsp[0].exp_node)->var_node->flags |= PHP_VARFLAG_STATIC; (yyval.exp_node) = (yyvsp[0].exp_node); }
2420 #line 2421 "php_parser.c" /* yacc.c:1646 */
2421 break;
2422
2423 case 43:
2424 #line 236 "php_parser.y" /* yacc.c:1646 */
2425 {
2426 (yyvsp[-2].exp_node)->var_node->flags |= PHP_VARFLAG_STATIC; (yyval.exp_node) = (yyvsp[-2].exp_node);
2427 value_value_assign(&(yyvsp[-2].exp_node)->var_node->value, &(yyvsp[0].exp_node)->val_node);
2428 }
2429 #line 2430 "php_parser.c" /* yacc.c:1646 */
2430 break;
2431
2432 case 44:
2433 #line 244 "php_parser.y" /* yacc.c:1646 */
2434 {
2435 switch_push_scope_table(make_scope_table());
2436 }
2437 #line 2438 "php_parser.c" /* yacc.c:1646 */
2438 break;
2439
2440 case 45:
2441 #line 246 "php_parser.y" /* yacc.c:1646 */
2442 {
2443 (yyval.syn_node) = make_func_decl_syn_node((yyvsp[-7].str_val), (yyvsp[-4].exp_node));
2444 (yyval.syn_node)->func_decl->scope = g_current_scope;
2445 (yyval.syn_node)->func_decl->is_native = 0;
2446 (yyval.syn_node)->func_decl->code = (yyvsp[-1].syn_node);
2447 switch_pop_scope_table(0);
2448 add_func_2_scope(g_current_scope, (yyval.syn_node));
2449 (yyval.syn_node) = 0;
2450 }
2451 #line 2452 "php_parser.c" /* yacc.c:1646 */
2452 break;
2453
2454 case 46:
2455 #line 255 "php_parser.y" /* yacc.c:1646 */
2456 { }
2457 #line 2458 "php_parser.c" /* yacc.c:1646 */
2458 break;
2459
2460 case 47:
2461 #line 259 "php_parser.y" /* yacc.c:1646 */
2462 { (yyval.exp_node) = make_func_param(0, (yyvsp[0].exp_node), (yyvsp[-1].str_val), 0); }
2463 #line 2464 "php_parser.c" /* yacc.c:1646 */
2464 break;
2465
2466 case 48:
2467 #line 260 "php_parser.y" /* yacc.c:1646 */
2468 { (yyval.exp_node) = make_func_param(0, (yyvsp[0].exp_node), (yyvsp[-2].str_val), 1); }
2469 #line 2470 "php_parser.c" /* yacc.c:1646 */
2470 break;
2471
2472 case 49:
2473 #line 261 "php_parser.y" /* yacc.c:1646 */
2474 { (yyval.exp_node) = make_func_param((yyvsp[-3].exp_node), (yyvsp[0].exp_node), (yyvsp[-1].str_val), 0); }
2475 #line 2476 "php_parser.c" /* yacc.c:1646 */
2476 break;
2477
2478 case 50:
2479 #line 262 "php_parser.y" /* yacc.c:1646 */
2480 { (yyval.exp_node) = make_func_param((yyvsp[-4].exp_node), (yyvsp[0].exp_node), (yyvsp[-2].str_val), 1); }
2481 #line 2482 "php_parser.c" /* yacc.c:1646 */
2482 break;
2483
2484 case 51:
2485 #line 263 "php_parser.y" /* yacc.c:1646 */
2486 { (yyval.exp_node) = 0; }
2487 #line 2488 "php_parser.c" /* yacc.c:1646 */
2488 break;
2489
2490 case 52:
2491 #line 267 "php_parser.y" /* yacc.c:1646 */
2492 { (yyval.str_val)[0] = 0; }
2493 #line 2494 "php_parser.c" /* yacc.c:1646 */
2494 break;
2495
2496 case 55:
2497 #line 273 "php_parser.y" /* yacc.c:1646 */
2498 { (yyval.syn_node) = (yyvsp[-2].syn_node); }
2499 #line 2500 "php_parser.c" /* yacc.c:1646 */
2500 break;
2501
2502 case 57:
2503 #line 278 "php_parser.y" /* yacc.c:1646 */
2504 { (yyval.syn_node) = (yyvsp[-2].syn_node); }
2505 #line 2506 "php_parser.c" /* yacc.c:1646 */
2506 break;
2507
2508 case 59:
2509 #line 282 "php_parser.y" /* yacc.c:1646 */
2510 { (yyval.exp_node) = 0; }
2511 #line 2512 "php_parser.c" /* yacc.c:1646 */
2512 break;
2513
2514 case 60:
2515 #line 286 "php_parser.y" /* yacc.c:1646 */
2516 { (yyval.syn_node) = add_branch_2_elseif((yyvsp[-5].syn_node), make_ifelse_syn_node((yyvsp[-2].exp_node), (yyvsp[0].syn_node), 0, 0)); }
2517 #line 2518 "php_parser.c" /* yacc.c:1646 */
2518 break;
2519
2520 case 61:
2521 #line 287 "php_parser.y" /* yacc.c:1646 */
2522 { (yyval.syn_node) = 0; }
2523 #line 2524 "php_parser.c" /* yacc.c:1646 */
2524 break;
2525
2526 case 62:
2527 #line 291 "php_parser.y" /* yacc.c:1646 */
2528 { (yyval.syn_node) = 0; }
2529 #line 2530 "php_parser.c" /* yacc.c:1646 */
2530 break;
2531
2532 case 63:
2533 #line 292 "php_parser.y" /* yacc.c:1646 */
2534 { (yyval.syn_node) = (yyvsp[0].syn_node); }
2535 #line 2536 "php_parser.c" /* yacc.c:1646 */
2536 break;
2537
2538 case 65:
2539 #line 296 "php_parser.y" /* yacc.c:1646 */
2540 { (yyval.syn_node) = (yyvsp[-2].syn_node); }
2541 #line 2542 "php_parser.c" /* yacc.c:1646 */
2542 break;
2543
2544 case 66:
2545 #line 300 "php_parser.y" /* yacc.c:1646 */
2546 { (yyval.exp_node) = (yyvsp[-1].exp_node); }
2547 #line 2548 "php_parser.c" /* yacc.c:1646 */
2548 break;
2549
2550 case 67:
2551 #line 301 "php_parser.y" /* yacc.c:1646 */
2552 { (yyval.exp_node) = (yyvsp[-1].exp_node); }
2553 #line 2554 "php_parser.c" /* yacc.c:1646 */
2554 break;
2555
2556 case 68:
2557 #line 302 "php_parser.y" /* yacc.c:1646 */
2558 { (yyval.exp_node) = (yyvsp[-2].exp_node); }
2559 #line 2560 "php_parser.c" /* yacc.c:1646 */
2560 break;
2561
2562 case 69:
2563 #line 303 "php_parser.y" /* yacc.c:1646 */
2564 { (yyval.exp_node) = (yyvsp[-2].exp_node); }
2565 #line 2566 "php_parser.c" /* yacc.c:1646 */
2566 break;
2567
2568 case 70:
2569 #line 307 "php_parser.y" /* yacc.c:1646 */
2570 { (yyval.exp_node) = 0; }
2571 #line 2572 "php_parser.c" /* yacc.c:1646 */
2572 break;
2573
2574 case 71:
2575 #line 308 "php_parser.y" /* yacc.c:1646 */
2576 {
2577 (yyvsp[-2].exp_node)->tree_node.syn_right = (yyvsp[0].syn_node);
2578 if ( (yyvsp[-3].exp_node) ) {
2579 PHP_EXP_NODE *last = (yyvsp[-3].exp_node);
2580 while ( last->next) last = last->next;
2581 last->next = make_exp_1(PHP_OP_LIST, 0);
2582 last->next->exp_node = (yyvsp[-2].exp_node);
2583 (yyval.exp_node) = (yyvsp[-3].exp_node);
2584 } else {
2585 (yyval.exp_node) = make_exp_1(PHP_OP_LIST, 0);
2586 (yyval.exp_node)->exp_node = (yyvsp[-2].exp_node);
2587 }
2588 }
2589 #line 2590 "php_parser.c" /* yacc.c:1646 */
2590 break;
2591
2592 case 72:
2593 #line 323 "php_parser.y" /* yacc.c:1646 */
2594 { (yyval.exp_node) = make_exp_2(PHP_OP_LIST, (yyvsp[0].exp_node), 0); }
2595 #line 2596 "php_parser.c" /* yacc.c:1646 */
2596 break;
2597
2598 case 73:
2599 #line 324 "php_parser.y" /* yacc.c:1646 */
2600 { (yyval.exp_node) = make_exp_2(PHP_OP_LIST, 0, 0); }
2601 #line 2602 "php_parser.c" /* yacc.c:1646 */
2602 break;
2603
2604 case 79:
2605 #line 335 "php_parser.y" /* yacc.c:1646 */
2606 { (yyval.exp_node) = make_known_const((yyvsp[0].str_val)); }
2607 #line 2608 "php_parser.c" /* yacc.c:1646 */
2608 break;
2609
2610 case 81:
2611 #line 339 "php_parser.y" /* yacc.c:1646 */
2612 { (yyval.exp_node) = make_exp_2(PHP_OP_CLASS_DEREF, make_const_exp_str((yyvsp[-2].str_val), 0), make_const_exp_str((yyvsp[0].str_val), 0)); }
2613 #line 2614 "php_parser.c" /* yacc.c:1646 */
2614 break;
2615
2616 case 82:
2617 #line 340 "php_parser.y" /* yacc.c:1646 */
2618 { (yyval.exp_node) = make_exp_2(PHP_OP_OBJECT_DEREF, (yyvsp[-2].exp_node), make_const_exp_str((yyvsp[0].str_val), 0)); }
2619 #line 2620 "php_parser.c" /* yacc.c:1646 */
2620 break;
2621
2622 case 84:
2623 #line 345 "php_parser.y" /* yacc.c:1646 */
2624 { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_BY_KEY, (yyvsp[-2].exp_node), 0); }
2625 #line 2626 "php_parser.c" /* yacc.c:1646 */
2626 break;
2627
2628 case 85:
2629 #line 346 "php_parser.y" /* yacc.c:1646 */
2630 { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_BY_KEY, (yyvsp[-3].exp_node), (yyvsp[-1].exp_node));}
2631 #line 2632 "php_parser.c" /* yacc.c:1646 */
2632 break;
2633
2634 case 86:
2635 #line 347 "php_parser.y" /* yacc.c:1646 */
2636 { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_BY_KEY, (yyvsp[-3].exp_node), (yyvsp[-1].exp_node));}
2637 #line 2638 "php_parser.c" /* yacc.c:1646 */
2638 break;
2639
2640 case 87:
2641 #line 348 "php_parser.y" /* yacc.c:1646 */
2642 { (yyval.exp_node) = make_exp_1(PHP_OP_VAR_BY_EXP, (yyvsp[-1].exp_node)); }
2643 #line 2644 "php_parser.c" /* yacc.c:1646 */
2644 break;
2645
2646 case 88:
2647 #line 352 "php_parser.y" /* yacc.c:1646 */
2648 { (yyval.exp_node) = make_func_call_exp((yyvsp[-3].str_val), (yyvsp[-1].exp_node)); }
2649 #line 2650 "php_parser.c" /* yacc.c:1646 */
2650 break;
2651
2652 case 89:
2653 #line 353 "php_parser.y" /* yacc.c:1646 */
2654 { }
2655 #line 2656 "php_parser.c" /* yacc.c:1646 */
2656 break;
2657
2658 case 90:
2659 #line 354 "php_parser.y" /* yacc.c:1646 */
2660 { }
2661 #line 2662 "php_parser.c" /* yacc.c:1646 */
2662 break;
2663
2664 case 91:
2665 #line 357 "php_parser.y" /* yacc.c:1646 */
2666 { (yyval.exp_node) = make_func_call_param_list(); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[0].exp_node), 0); }
2667 #line 2668 "php_parser.c" /* yacc.c:1646 */
2668 break;
2669
2670 case 92:
2671 #line 358 "php_parser.y" /* yacc.c:1646 */
2672 { (yyval.exp_node) = make_func_call_param_list(); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[0].exp_node), 1); }
2673 #line 2674 "php_parser.c" /* yacc.c:1646 */
2674 break;
2675
2676 case 93:
2677 #line 359 "php_parser.y" /* yacc.c:1646 */
2678 { (yyval.exp_node) = (yyvsp[-2].exp_node); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[0].exp_node), 0); }
2679 #line 2680 "php_parser.c" /* yacc.c:1646 */
2680 break;
2681
2682 case 94:
2683 #line 360 "php_parser.y" /* yacc.c:1646 */
2684 { (yyval.exp_node) = (yyvsp[-3].exp_node); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[0].exp_node), 1); }
2685 #line 2686 "php_parser.c" /* yacc.c:1646 */
2686 break;
2687
2688 case 95:
2689 #line 361 "php_parser.y" /* yacc.c:1646 */
2690 { (yyval.exp_node) = make_func_call_param_list(); }
2691 #line 2692 "php_parser.c" /* yacc.c:1646 */
2692 break;
2693
2694 case 96:
2695 #line 366 "php_parser.y" /* yacc.c:1646 */
2696 { }
2697 #line 2698 "php_parser.c" /* yacc.c:1646 */
2698 break;
2699
2700 case 98:
2701 #line 368 "php_parser.y" /* yacc.c:1646 */
2702 { (yyval.exp_node) = make_exp_2(PHP_OP_ASS, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2703 #line 2704 "php_parser.c" /* yacc.c:1646 */
2704 break;
2705
2706 case 99:
2707 #line 369 "php_parser.y" /* yacc.c:1646 */
2708 { (yyval.exp_node) = (yyvsp[0].exp_node); }
2709 #line 2710 "php_parser.c" /* yacc.c:1646 */
2710 break;
2711
2712 case 100:
2713 #line 370 "php_parser.y" /* yacc.c:1646 */
2714 { (yyval.exp_node) = make_exp_2(PHP_MAKE_REF, (yyvsp[-3].exp_node), (yyvsp[0].exp_node)); }
2715 #line 2716 "php_parser.c" /* yacc.c:1646 */
2716 break;
2717
2718 case 101:
2719 #line 375 "php_parser.y" /* yacc.c:1646 */
2720 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_ADD, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2721 #line 2722 "php_parser.c" /* yacc.c:1646 */
2722 break;
2723
2724 case 102:
2725 #line 376 "php_parser.y" /* yacc.c:1646 */
2726 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_SUB, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2727 #line 2728 "php_parser.c" /* yacc.c:1646 */
2728 break;
2729
2730 case 103:
2731 #line 377 "php_parser.y" /* yacc.c:1646 */
2732 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_MUL, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2733 #line 2734 "php_parser.c" /* yacc.c:1646 */
2734 break;
2735
2736 case 104:
2737 #line 378 "php_parser.y" /* yacc.c:1646 */
2738 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_DIV, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2739 #line 2740 "php_parser.c" /* yacc.c:1646 */
2740 break;
2741
2742 case 105:
2743 #line 379 "php_parser.y" /* yacc.c:1646 */
2744 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_CAT, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2745 #line 2746 "php_parser.c" /* yacc.c:1646 */
2746 break;
2747
2748 case 106:
2749 #line 380 "php_parser.y" /* yacc.c:1646 */
2750 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_REM, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2751 #line 2752 "php_parser.c" /* yacc.c:1646 */
2752 break;
2753
2754 case 107:
2755 #line 381 "php_parser.y" /* yacc.c:1646 */
2756 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_AND, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2757 #line 2758 "php_parser.c" /* yacc.c:1646 */
2758 break;
2759
2760 case 108:
2761 #line 382 "php_parser.y" /* yacc.c:1646 */
2762 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_OR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2763 #line 2764 "php_parser.c" /* yacc.c:1646 */
2764 break;
2765
2766 case 109:
2767 #line 383 "php_parser.y" /* yacc.c:1646 */
2768 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_XOR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2769 #line 2770 "php_parser.c" /* yacc.c:1646 */
2770 break;
2771
2772 case 110:
2773 #line 384 "php_parser.y" /* yacc.c:1646 */
2774 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_SHL, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2775 #line 2776 "php_parser.c" /* yacc.c:1646 */
2776 break;
2777
2778 case 111:
2779 #line 385 "php_parser.y" /* yacc.c:1646 */
2780 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-2].exp_node), make_exp_2(PHP_OP_SHR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node))); }
2781 #line 2782 "php_parser.c" /* yacc.c:1646 */
2782 break;
2783
2784 case 112:
2785 #line 387 "php_parser.y" /* yacc.c:1646 */
2786 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-1].exp_node), make_exp_2(PHP_OP_ADD, (yyvsp[-1].exp_node), make_const_exp_dnum(1))); }
2787 #line 2788 "php_parser.c" /* yacc.c:1646 */
2788 break;
2789
2790 case 113:
2791 #line 388 "php_parser.y" /* yacc.c:1646 */
2792 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[0].exp_node), make_exp_2(PHP_OP_ADD, (yyvsp[0].exp_node), make_const_exp_dnum(1))); }
2793 #line 2794 "php_parser.c" /* yacc.c:1646 */
2794 break;
2795
2796 case 114:
2797 #line 389 "php_parser.y" /* yacc.c:1646 */
2798 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[-1].exp_node), make_exp_2(PHP_OP_SUB, (yyvsp[-1].exp_node), make_const_exp_dnum(1))); }
2799 #line 2800 "php_parser.c" /* yacc.c:1646 */
2800 break;
2801
2802 case 115:
2803 #line 390 "php_parser.y" /* yacc.c:1646 */
2804 { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[0].exp_node), make_exp_2(PHP_OP_SUB, (yyvsp[0].exp_node), make_const_exp_dnum(1))); }
2805 #line 2806 "php_parser.c" /* yacc.c:1646 */
2806 break;
2807
2808 case 116:
2809 #line 392 "php_parser.y" /* yacc.c:1646 */
2810 { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_OR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2811 #line 2812 "php_parser.c" /* yacc.c:1646 */
2812 break;
2813
2814 case 117:
2815 #line 393 "php_parser.y" /* yacc.c:1646 */
2816 { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_AND, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2817 #line 2818 "php_parser.c" /* yacc.c:1646 */
2818 break;
2819
2820 case 118:
2821 #line 394 "php_parser.y" /* yacc.c:1646 */
2822 { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_OR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2823 #line 2824 "php_parser.c" /* yacc.c:1646 */
2824 break;
2825
2826 case 119:
2827 #line 395 "php_parser.y" /* yacc.c:1646 */
2828 { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_AND, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2829 #line 2830 "php_parser.c" /* yacc.c:1646 */
2830 break;
2831
2832 case 120:
2833 #line 396 "php_parser.y" /* yacc.c:1646 */
2834 { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_XOR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2835 #line 2836 "php_parser.c" /* yacc.c:1646 */
2836 break;
2837
2838 case 121:
2839 #line 397 "php_parser.y" /* yacc.c:1646 */
2840 { (yyval.exp_node) = make_exp_2(PHP_OP_OR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2841 #line 2842 "php_parser.c" /* yacc.c:1646 */
2842 break;
2843
2844 case 122:
2845 #line 398 "php_parser.y" /* yacc.c:1646 */
2846 { (yyval.exp_node) = make_exp_2(PHP_OP_AND, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2847 #line 2848 "php_parser.c" /* yacc.c:1646 */
2848 break;
2849
2850 case 123:
2851 #line 399 "php_parser.y" /* yacc.c:1646 */
2852 { (yyval.exp_node) = make_exp_2(PHP_OP_XOR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2853 #line 2854 "php_parser.c" /* yacc.c:1646 */
2854 break;
2855
2856 case 124:
2857 #line 400 "php_parser.y" /* yacc.c:1646 */
2858 { (yyval.exp_node) = make_exp_2(PHP_OP_CAT, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2859 #line 2860 "php_parser.c" /* yacc.c:1646 */
2860 break;
2861
2862 case 125:
2863 #line 401 "php_parser.y" /* yacc.c:1646 */
2864 { (yyval.exp_node) = make_exp_2(PHP_OP_ADD, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2865 #line 2866 "php_parser.c" /* yacc.c:1646 */
2866 break;
2867
2868 case 126:
2869 #line 402 "php_parser.y" /* yacc.c:1646 */
2870 { (yyval.exp_node) = make_exp_2(PHP_OP_SUB, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2871 #line 2872 "php_parser.c" /* yacc.c:1646 */
2872 break;
2873
2874 case 127:
2875 #line 403 "php_parser.y" /* yacc.c:1646 */
2876 { (yyval.exp_node) = make_exp_2(PHP_OP_MUL, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2877 #line 2878 "php_parser.c" /* yacc.c:1646 */
2878 break;
2879
2880 case 128:
2881 #line 404 "php_parser.y" /* yacc.c:1646 */
2882 { (yyval.exp_node) = make_exp_2(PHP_OP_DIV, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2883 #line 2884 "php_parser.c" /* yacc.c:1646 */
2884 break;
2885
2886 case 129:
2887 #line 405 "php_parser.y" /* yacc.c:1646 */
2888 { (yyval.exp_node) = make_exp_2(PHP_OP_REM, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2889 #line 2890 "php_parser.c" /* yacc.c:1646 */
2890 break;
2891
2892 case 130:
2893 #line 406 "php_parser.y" /* yacc.c:1646 */
2894 { (yyval.exp_node) = make_exp_2(PHP_OP_SHL, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2895 #line 2896 "php_parser.c" /* yacc.c:1646 */
2896 break;
2897
2898 case 131:
2899 #line 407 "php_parser.y" /* yacc.c:1646 */
2900 { (yyval.exp_node) = make_exp_2(PHP_OP_SHR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2901 #line 2902 "php_parser.c" /* yacc.c:1646 */
2902 break;
2903
2904 case 132:
2905 #line 408 "php_parser.y" /* yacc.c:1646 */
2906 { (yyval.exp_node) = (yyvsp[0].exp_node); }
2907 #line 2908 "php_parser.c" /* yacc.c:1646 */
2908 break;
2909
2910 case 133:
2911 #line 409 "php_parser.y" /* yacc.c:1646 */
2912 { (yyval.exp_node) = make_exp_2(PHP_OP_SUB, make_const_exp_dnum(0), (yyvsp[0].exp_node)); }
2913 #line 2914 "php_parser.c" /* yacc.c:1646 */
2914 break;
2915
2916 case 134:
2917 #line 410 "php_parser.y" /* yacc.c:1646 */
2918 { (yyval.exp_node) = make_exp_1(PHP_OP_LOG_NOT, (yyvsp[0].exp_node)); }
2919 #line 2920 "php_parser.c" /* yacc.c:1646 */
2920 break;
2921
2922 case 135:
2923 #line 411 "php_parser.y" /* yacc.c:1646 */
2924 { (yyval.exp_node) = make_exp_1(PHP_OP_NOT, (yyvsp[0].exp_node)); }
2925 #line 2926 "php_parser.c" /* yacc.c:1646 */
2926 break;
2927
2928 case 136:
2929 #line 412 "php_parser.y" /* yacc.c:1646 */
2930 { (yyval.exp_node) = make_exp_2(PHP_OP_SAME, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2931 #line 2932 "php_parser.c" /* yacc.c:1646 */
2932 break;
2933
2934 case 137:
2935 #line 413 "php_parser.y" /* yacc.c:1646 */
2936 { (yyval.exp_node) = make_exp_2(PHP_OP_NOT_SAME, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2937 #line 2938 "php_parser.c" /* yacc.c:1646 */
2938 break;
2939
2940 case 138:
2941 #line 414 "php_parser.y" /* yacc.c:1646 */
2942 { (yyval.exp_node) = make_exp_2(PHP_OP_EQ, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2943 #line 2944 "php_parser.c" /* yacc.c:1646 */
2944 break;
2945
2946 case 139:
2947 #line 415 "php_parser.y" /* yacc.c:1646 */
2948 { (yyval.exp_node) = make_exp_2(PHP_OP_NEQ, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2949 #line 2950 "php_parser.c" /* yacc.c:1646 */
2950 break;
2951
2952 case 140:
2953 #line 416 "php_parser.y" /* yacc.c:1646 */
2954 { (yyval.exp_node) = make_exp_2(PHP_OP_LWR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2955 #line 2956 "php_parser.c" /* yacc.c:1646 */
2956 break;
2957
2958 case 141:
2959 #line 417 "php_parser.y" /* yacc.c:1646 */
2960 { (yyval.exp_node) = make_exp_2(PHP_OP_LWR_EQ, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2961 #line 2962 "php_parser.c" /* yacc.c:1646 */
2962 break;
2963
2964 case 142:
2965 #line 418 "php_parser.y" /* yacc.c:1646 */
2966 { (yyval.exp_node) = make_exp_2(PHP_OP_GRT, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2967 #line 2968 "php_parser.c" /* yacc.c:1646 */
2968 break;
2969
2970 case 143:
2971 #line 419 "php_parser.y" /* yacc.c:1646 */
2972 { (yyval.exp_node) = make_exp_2(PHP_OP_GRT_EQ, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
2973 #line 2974 "php_parser.c" /* yacc.c:1646 */
2974 break;
2975
2976 case 144:
2977 #line 420 "php_parser.y" /* yacc.c:1646 */
2978 { (yyval.exp_node) = (yyvsp[-1].exp_node); }
2979 #line 2980 "php_parser.c" /* yacc.c:1646 */
2980 break;
2981
2982 case 145:
2983 #line 421 "php_parser.y" /* yacc.c:1646 */
2984 { (yyval.exp_node) = make_exp_2(PHP_OP_MUX, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); (yyval.exp_node)->exp_node = (yyvsp[-4].exp_node); }
2985 #line 2986 "php_parser.c" /* yacc.c:1646 */
2986 break;
2987
2988 case 146:
2989 #line 422 "php_parser.y" /* yacc.c:1646 */
2990 { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_INT, (yyvsp[0].exp_node)); }
2991 #line 2992 "php_parser.c" /* yacc.c:1646 */
2992 break;
2993
2994 case 147:
2995 #line 423 "php_parser.y" /* yacc.c:1646 */
2996 { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_FLOAT, (yyvsp[0].exp_node)); }
2997 #line 2998 "php_parser.c" /* yacc.c:1646 */
2998 break;
2999
3000 case 148:
3001 #line 424 "php_parser.y" /* yacc.c:1646 */
3002 { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_STR, (yyvsp[0].exp_node)); }
3003 #line 3004 "php_parser.c" /* yacc.c:1646 */
3004 break;
3005
3006 case 149:
3007 #line 425 "php_parser.y" /* yacc.c:1646 */
3008 { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_BOOL, (yyvsp[0].exp_node)); }
3009 #line 3010 "php_parser.c" /* yacc.c:1646 */
3010 break;
3011
3012 case 150:
3013 #line 428 "php_parser.y" /* yacc.c:1646 */
3014 { }
3015 #line 3016 "php_parser.c" /* yacc.c:1646 */
3016 break;
3017
3018 case 151:
3019 #line 429 "php_parser.y" /* yacc.c:1646 */
3020 { }
3021 #line 3022 "php_parser.c" /* yacc.c:1646 */
3022 break;
3023
3024 case 152:
3025 #line 430 "php_parser.y" /* yacc.c:1646 */
3026 { (yyval.exp_node) = (yyvsp[0].exp_node); }
3027 #line 3028 "php_parser.c" /* yacc.c:1646 */
3028 break;
3029
3030 case 153:
3031 #line 432 "php_parser.y" /* yacc.c:1646 */
3032 { (yyval.exp_node) = (yyvsp[0].exp_node); }
3033 #line 3034 "php_parser.c" /* yacc.c:1646 */
3034 break;
3035
3036 case 154:
3037 #line 433 "php_parser.y" /* yacc.c:1646 */
3038 { (yyval.exp_node) = make_exp_1(PHP_OP_ARRAY, (yyvsp[-1].exp_node)); }
3039 #line 3040 "php_parser.c" /* yacc.c:1646 */
3040 break;
3041
3042 case 155:
3043 #line 434 "php_parser.y" /* yacc.c:1646 */
3044 { (yyval.exp_node) = make_exp_1(PHP_OP_PRINT, (yyvsp[0].exp_node)); }
3045 #line 3046 "php_parser.c" /* yacc.c:1646 */
3046 break;
3047
3048 case 156:
3049 #line 437 "php_parser.y" /* yacc.c:1646 */
3050 { (yyval.exp_node) = (yyvsp[-1].exp_node); }
3051 #line 3052 "php_parser.c" /* yacc.c:1646 */
3052 break;
3053
3054 case 157:
3055 #line 438 "php_parser.y" /* yacc.c:1646 */
3056 { (yyval.exp_node) = 0; }
3057 #line 3058 "php_parser.c" /* yacc.c:1646 */
3058 break;
3059
3060 case 158:
3061 #line 439 "php_parser.y" /* yacc.c:1646 */
3062 { (yyval.exp_node) = 0; }
3063 #line 3064 "php_parser.c" /* yacc.c:1646 */
3064 break;
3065
3066 case 161:
3067 #line 447 "php_parser.y" /* yacc.c:1646 */
3068 { /*$$ = make_assign_node($1);*/ }
3069 #line 3070 "php_parser.c" /* yacc.c:1646 */
3070 break;
3071
3072 case 162:
3073 #line 448 "php_parser.y" /* yacc.c:1646 */
3074 { (yyval.exp_node) = (yyvsp[-1].exp_node); }
3075 #line 3076 "php_parser.c" /* yacc.c:1646 */
3076 break;
3077
3078 case 163:
3079 #line 449 "php_parser.y" /* yacc.c:1646 */
3080 { /*$$ = make_assign_node(0);*/ }
3081 #line 3082 "php_parser.c" /* yacc.c:1646 */
3082 break;
3083
3084 case 164:
3085 #line 452 "php_parser.y" /* yacc.c:1646 */
3086 { (yyval.exp_node) = make_exp_1(PHP_OP_LIST, 0); (yyval.exp_node)->exp_node = (yyvsp[0].exp_node); }
3087 #line 3088 "php_parser.c" /* yacc.c:1646 */
3088 break;
3089
3090 case 165:
3091 #line 453 "php_parser.y" /* yacc.c:1646 */
3092 {
3093 PHP_EXP_NODE *last = (yyvsp[-2].exp_node);
3094 while ( last->next) last = last->next;
3095 last->next = make_exp_1(PHP_OP_LIST, 0);
3096 last->next->exp_node = (yyvsp[0].exp_node);
3097 (yyval.exp_node) = (yyvsp[-2].exp_node);
3098 }
3099 #line 3100 "php_parser.c" /* yacc.c:1646 */
3100 break;
3101
3102 case 166:
3103 #line 462 "php_parser.y" /* yacc.c:1646 */
3104 { (yyval.exp_node) = make_exp_1(PHP_OP_ARRAY_PAIR, (yyvsp[0].exp_node)); }
3105 #line 3106 "php_parser.c" /* yacc.c:1646 */
3106 break;
3107
3108 case 167:
3109 #line 463 "php_parser.y" /* yacc.c:1646 */
3110 { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_PAIR, (yyvsp[-2].exp_node), (yyvsp[0].exp_node)); }
3111 #line 3112 "php_parser.c" /* yacc.c:1646 */
3112 break;
3113
3114 case 168:
3115 #line 464 "php_parser.y" /* yacc.c:1646 */
3116 { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_REF_PAIR, (yyvsp[-3].exp_node), (yyvsp[0].exp_node)); }
3117 #line 3118 "php_parser.c" /* yacc.c:1646 */
3118 break;
3119
3120 case 169:
3121 #line 465 "php_parser.y" /* yacc.c:1646 */
3122 { (yyval.exp_node) = make_exp_1(PHP_OP_ARRAY_REF_PAIR, (yyvsp[0].exp_node)); }
3123 #line 3124 "php_parser.c" /* yacc.c:1646 */
3124 break;
3125
3126
3127 #line 3128 "php_parser.c" /* yacc.c:1646 */
3128 default: break;
3129 }
3130 /* User semantic actions sometimes alter yychar, and that requires
3131 that yytoken be updated with the new translation. We take the
3132 approach of translating immediately before every use of yytoken.
3133 One alternative is translating here after every semantic action,
3134 but that translation would be missed if the semantic action invokes
3135 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3136 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3137 incorrect destructor might then be invoked immediately. In the
3138 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3139 to an incorrect destructor call or verbose syntax error message
3140 before the lookahead is translated. */
3141 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3142
3143 YYPOPSTACK (yylen);
3144 yylen = 0;
3145 YY_STACK_PRINT (yyss, yyssp);
3146
3147 *++yyvsp = yyval;
3148
3149 /* Now 'shift' the result of the reduction. Determine what state
3150 that goes to, based on the state we popped back to and the rule
3151 number reduced by. */
3152
3153 yyn = yyr1[yyn];
3154
3155 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3156 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3157 yystate = yytable[yystate];
3158 else
3159 yystate = yydefgoto[yyn - YYNTOKENS];
3160
3161 goto yynewstate;
3162
3163
3164 /*--------------------------------------.
3165 | yyerrlab -- here on detecting error. |
3166 `--------------------------------------*/
3167 yyerrlab:
3168 /* Make sure we have latest lookahead translation. See comments at
3169 user semantic actions for why this is necessary. */
3170 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3171
3172 /* If not already recovering from an error, report this error. */
3173 if (!yyerrstatus)
3174 {
3175 ++yynerrs;
3176 #if ! YYERROR_VERBOSE
3177 yyerror (YY_("syntax error"));
3178 #else
3179 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3180 yyssp, yytoken)
3181 {
3182 char const *yymsgp = YY_("syntax error");
3183 int yysyntax_error_status;
3184 yysyntax_error_status = YYSYNTAX_ERROR;
3185 if (yysyntax_error_status == 0)
3186 yymsgp = yymsg;
3187 else if (yysyntax_error_status == 1)
3188 {
3189 if (yymsg != yymsgbuf)
3190 YYSTACK_FREE (yymsg);
3191 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3192 if (!yymsg)
3193 {
3194 yymsg = yymsgbuf;
3195 yymsg_alloc = sizeof yymsgbuf;
3196 yysyntax_error_status = 2;
3197 }
3198 else
3199 {
3200 yysyntax_error_status = YYSYNTAX_ERROR;
3201 yymsgp = yymsg;
3202 }
3203 }
3204 yyerror (yymsgp);
3205 if (yysyntax_error_status == 2)
3206 goto yyexhaustedlab;
3207 }
3208 # undef YYSYNTAX_ERROR
3209 #endif
3210 }
3211
3212
3213
3214 if (yyerrstatus == 3)
3215 {
3216 /* If just tried and failed to reuse lookahead token after an
3217 error, discard it. */
3218
3219 if (yychar <= YYEOF)
3220 {
3221 /* Return failure if at end of input. */
3222 if (yychar == YYEOF)
3223 YYABORT;
3224 }
3225 else
3226 {
3227 yydestruct ("Error: discarding",
3228 yytoken, &yylval);
3229 yychar = YYEMPTY;
3230 }
3231 }
3232
3233 /* Else will try to reuse lookahead token after shifting the error
3234 token. */
3235 goto yyerrlab1;
3236
3237
3238 /*---------------------------------------------------.
3239 | yyerrorlab -- error raised explicitly by YYERROR. |
3240 `---------------------------------------------------*/
3241 yyerrorlab:
3242
3243 /* Pacify compilers like GCC when the user code never invokes
3244 YYERROR and the label yyerrorlab therefore never appears in user
3245 code. */
3246 if (/*CONSTCOND*/ 0)
3247 goto yyerrorlab;
3248
3249 /* Do not reclaim the symbols of the rule whose action triggered
3250 this YYERROR. */
3251 YYPOPSTACK (yylen);
3252 yylen = 0;
3253 YY_STACK_PRINT (yyss, yyssp);
3254 yystate = *yyssp;
3255 goto yyerrlab1;
3256
3257
3258 /*-------------------------------------------------------------.
3259 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3260 `-------------------------------------------------------------*/
3261 yyerrlab1:
3262 yyerrstatus = 3; /* Each real token shifted decrements this. */
3263
3264 for (;;)
3265 {
3266 yyn = yypact[yystate];
3267 if (!yypact_value_is_default (yyn))
3268 {
3269 yyn += YYTERROR;
3270 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3271 {
3272 yyn = yytable[yyn];
3273 if (0 < yyn)
3274 break;
3275 }
3276 }
3277
3278 /* Pop the current state because it cannot handle the error token. */
3279 if (yyssp == yyss)
3280 YYABORT;
3281
3282
3283 yydestruct ("Error: popping",
3284 yystos[yystate], yyvsp);
3285 YYPOPSTACK (1);
3286 yystate = *yyssp;
3287 YY_STACK_PRINT (yyss, yyssp);
3288 }
3289
3290 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3291 *++yyvsp = yylval;
3292 YY_IGNORE_MAYBE_UNINITIALIZED_END
3293
3294
3295 /* Shift the error token. */
3296 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3297
3298 yystate = yyn;
3299 goto yynewstate;
3300
3301
3302 /*-------------------------------------.
3303 | yyacceptlab -- YYACCEPT comes here. |
3304 `-------------------------------------*/
3305 yyacceptlab:
3306 yyresult = 0;
3307 goto yyreturn;
3308
3309 /*-----------------------------------.
3310 | yyabortlab -- YYABORT comes here. |
3311 `-----------------------------------*/
3312 yyabortlab:
3313 yyresult = 1;
3314 goto yyreturn;
3315
3316 #if !defined yyoverflow || YYERROR_VERBOSE
3317 /*-------------------------------------------------.
3318 | yyexhaustedlab -- memory exhaustion comes here. |
3319 `-------------------------------------------------*/
3320 yyexhaustedlab:
3321 yyerror (YY_("memory exhausted"));
3322 yyresult = 2;
3323 /* Fall through. */
3324 #endif
3325
3326 yyreturn:
3327 if (yychar != YYEMPTY)
3328 {
3329 /* Make sure we have latest lookahead translation. See comments at
3330 user semantic actions for why this is necessary. */
3331 yytoken = YYTRANSLATE (yychar);
3332 yydestruct ("Cleanup: discarding lookahead",
3333 yytoken, &yylval);
3334 }
3335 /* Do not reclaim the symbols of the rule whose action triggered
3336 this YYABORT or YYACCEPT. */
3337 YYPOPSTACK (yylen);
3338 YY_STACK_PRINT (yyss, yyssp);
3339 while (yyssp != yyss)
3340 {
3341 yydestruct ("Cleanup: popping",
3342 yystos[*yyssp], yyvsp);
3343 YYPOPSTACK (1);
3344 }
3345 #ifndef yyoverflow
3346 if (yyss != yyssa)
3347 YYSTACK_FREE (yyss);
3348 #endif
3349 #if YYERROR_VERBOSE
3350 if (yymsg != yymsgbuf)
3351 YYSTACK_FREE (yymsg);
3352 #endif
3353 return yyresult;
3354 }
3355