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