php_parser.c

Go to the documentation of this file.
00001 /* A Bison parser, made by GNU Bison 2.1.  */
00002 
00003 /* Skeleton parser for Yacc-like parsing with Bison,
00004    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License as published by
00008    the Free Software Foundation; either version 2, or (at your option)
00009    any later version.
00010 
00011    This program is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014    GNU General Public License for more details.
00015 
00016    You should have received a copy of the GNU General Public License
00017    along with this program; if not, write to the Free Software
00018    Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019    Boston, MA 02110-1301, USA.  */
00020 
00021 /* As a special exception, when this file is copied by Bison into a
00022    Bison output file, you may use that output file without restriction.
00023    This special exception was added by the Free Software Foundation
00024    in version 1.24 of Bison.  */
00025 
00026 /* Written by Richard Stallman by simplifying the original so called
00027    ``semantic'' parser.  */
00028 
00029 /* All symbols defined below should begin with yy or YY, to avoid
00030    infringing on user name space.  This should be done even for local
00031    variables, as they might otherwise be expanded by user macros.
00032    There are some unavoidable exceptions within include files to
00033    define necessary library symbols; they are noted "INFRINGES ON
00034    USER NAME SPACE" below.  */
00035 
00036 /* Identify Bison output.  */
00037 #define YYBISON 1
00038 
00039 /* Bison version.  */
00040 #define YYBISON_VERSION "2.1"
00041 
00042 /* Skeleton name.  */
00043 #define YYSKELETON_NAME "php-ast.c"
00044 
00045 /* Pure parsers.  */
00046 #define YYPURE 1
00047 
00048 /* Using locations.  */
00049 #define YYLSP_NEEDED 1
00050 
00051 
00052 
00053 /* Tokens.  */
00054 #ifndef YYTOKENTYPE
00055 # define YYTOKENTYPE
00056    /* Put the tokens into the symbol table, so that GDB and other debuggers
00057       know about them.  */
00058    enum yytokentype {
00059      T_REQUIRE_ONCE = 258,
00060      T_REQUIRE = 259,
00061      T_EVAL = 260,
00062      T_INCLUDE_ONCE = 261,
00063      T_INCLUDE = 262,
00064      T_LOGICAL_OR = 263,
00065      T_LOGICAL_XOR = 264,
00066      T_LOGICAL_AND = 265,
00067      T_PRINT = 266,
00068      T_SR_EQUAL = 267,
00069      T_SL_EQUAL = 268,
00070      T_XOR_EQUAL = 269,
00071      T_OR_EQUAL = 270,
00072      T_AND_EQUAL = 271,
00073      T_MOD_EQUAL = 272,
00074      T_CONCAT_EQUAL = 273,
00075      T_DIV_EQUAL = 274,
00076      T_MUL_EQUAL = 275,
00077      T_MINUS_EQUAL = 276,
00078      T_PLUS_EQUAL = 277,
00079      T_BOOLEAN_OR = 278,
00080      T_BOOLEAN_AND = 279,
00081      T_IS_NOT_IDENTICAL = 280,
00082      T_IS_IDENTICAL = 281,
00083      T_IS_NOT_EQUAL = 282,
00084      T_IS_EQUAL = 283,
00085      T_IS_GREATER_OR_EQUAL = 284,
00086      T_IS_SMALLER_OR_EQUAL = 285,
00087      T_SR = 286,
00088      T_SL = 287,
00089      T_INSTANCEOF = 288,
00090      T_UNSET_CAST = 289,
00091      T_BOOL_CAST = 290,
00092      T_OBJECT_CAST = 291,
00093      T_ARRAY_CAST = 292,
00094      T_STRING_CAST = 293,
00095      T_DOUBLE_CAST = 294,
00096      T_INT_CAST = 295,
00097      T_DEC = 296,
00098      T_INC = 297,
00099      T_CLONE = 298,
00100      T_NEW = 299,
00101      T_EXIT = 300,
00102      T_IF = 301,
00103      T_ELSEIF = 302,
00104      T_ELSE = 303,
00105      T_ENDIF = 304,
00106      T_LNUMBER = 305,
00107      T_DNUMBER = 306,
00108      T_STRING = 307,
00109      T_STRING_VARNAME = 308,
00110      T_VARIABLE = 309,
00111      T_NUM_STRING = 310,
00112      T_INLINE_HTML = 311,
00113      T_CHARACTER = 312,
00114      T_BAD_CHARACTER = 313,
00115      T_ENCAPSED_AND_WHITESPACE = 314,
00116      T_CONSTANT_ENCAPSED_STRING = 315,
00117      T_ECHO = 316,
00118      T_DO = 317,
00119      T_WHILE = 318,
00120      T_ENDWHILE = 319,
00121      T_FOR = 320,
00122      T_ENDFOR = 321,
00123      T_FOREACH = 322,
00124      T_ENDFOREACH = 323,
00125      T_DECLARE = 324,
00126      T_ENDDECLARE = 325,
00127      T_AS = 326,
00128      T_SWITCH = 327,
00129      T_ENDSWITCH = 328,
00130      T_CASE = 329,
00131      T_DEFAULT = 330,
00132      T_BREAK = 331,
00133      T_CONTINUE = 332,
00134      T_FUNCTION = 333,
00135      T_CONST = 334,
00136      T_RETURN = 335,
00137      T_TRY = 336,
00138      T_CATCH = 337,
00139      T_THROW = 338,
00140      T_USE = 339,
00141      T_GLOBAL = 340,
00142      T_PUBLIC = 341,
00143      T_PROTECTED = 342,
00144      T_PRIVATE = 343,
00145      T_FINAL = 344,
00146      T_ABSTRACT = 345,
00147      T_STATIC = 346,
00148      T_VAR = 347,
00149      T_UNSET = 348,
00150      T_ISSET = 349,
00151      T_EMPTY = 350,
00152      T_HALT_COMPILER = 351,
00153      T_CLASS = 352,
00154      T_INTERFACE = 353,
00155      T_EXTENDS = 354,
00156      T_IMPLEMENTS = 355,
00157      T_OBJECT_OPERATOR = 356,
00158      T_DOUBLE_ARROW = 357,
00159      T_LIST = 358,
00160      T_ARRAY = 359,
00161      T_CLASS_C = 360,
00162      T_METHOD_C = 361,
00163      T_FUNC_C = 362,
00164      T_LINE = 363,
00165      T_FILE = 364,
00166      T_COMMENT = 365,
00167      T_DOC_COMMENT = 366,
00168      T_OPEN_TAG = 367,
00169      T_OPEN_TAG_WITH_ECHO = 368,
00170      T_CLOSE_TAG = 369,
00171      T_WHITESPACE = 370,
00172      T_START_HEREDOC = 371,
00173      T_END_HEREDOC = 372,
00174      T_DOLLAR_OPEN_CURLY_BRACES = 373,
00175      T_CURLY_OPEN = 374,
00176      T_PAAMAYIM_NEKUDOTAYIM = 375,
00177      T_ASPECT = 376,
00178      T_BEFORE = 377,
00179      T_AROUND = 378,
00180      T_AFTER = 379,
00181      T_POINTCUT = 380,
00182      T_EXEC = 381,
00183      T_CALL = 382,
00184      T_SET = 383,
00185      T_GET = 384,
00186      T_THIS = 385,
00187      T_WITHIN = 386
00188    };
00189 #endif
00190 /* Tokens.  */
00191 #define T_REQUIRE_ONCE 258
00192 #define T_REQUIRE 259
00193 #define T_EVAL 260
00194 #define T_INCLUDE_ONCE 261
00195 #define T_INCLUDE 262
00196 #define T_LOGICAL_OR 263
00197 #define T_LOGICAL_XOR 264
00198 #define T_LOGICAL_AND 265
00199 #define T_PRINT 266
00200 #define T_SR_EQUAL 267
00201 #define T_SL_EQUAL 268
00202 #define T_XOR_EQUAL 269
00203 #define T_OR_EQUAL 270
00204 #define T_AND_EQUAL 271
00205 #define T_MOD_EQUAL 272
00206 #define T_CONCAT_EQUAL 273
00207 #define T_DIV_EQUAL 274
00208 #define T_MUL_EQUAL 275
00209 #define T_MINUS_EQUAL 276
00210 #define T_PLUS_EQUAL 277
00211 #define T_BOOLEAN_OR 278
00212 #define T_BOOLEAN_AND 279
00213 #define T_IS_NOT_IDENTICAL 280
00214 #define T_IS_IDENTICAL 281
00215 #define T_IS_NOT_EQUAL 282
00216 #define T_IS_EQUAL 283
00217 #define T_IS_GREATER_OR_EQUAL 284
00218 #define T_IS_SMALLER_OR_EQUAL 285
00219 #define T_SR 286
00220 #define T_SL 287
00221 #define T_INSTANCEOF 288
00222 #define T_UNSET_CAST 289
00223 #define T_BOOL_CAST 290
00224 #define T_OBJECT_CAST 291
00225 #define T_ARRAY_CAST 292
00226 #define T_STRING_CAST 293
00227 #define T_DOUBLE_CAST 294
00228 #define T_INT_CAST 295
00229 #define T_DEC 296
00230 #define T_INC 297
00231 #define T_CLONE 298
00232 #define T_NEW 299
00233 #define T_EXIT 300
00234 #define T_IF 301
00235 #define T_ELSEIF 302
00236 #define T_ELSE 303
00237 #define T_ENDIF 304
00238 #define T_LNUMBER 305
00239 #define T_DNUMBER 306
00240 #define T_STRING 307
00241 #define T_STRING_VARNAME 308
00242 #define T_VARIABLE 309
00243 #define T_NUM_STRING 310
00244 #define T_INLINE_HTML 311
00245 #define T_CHARACTER 312
00246 #define T_BAD_CHARACTER 313
00247 #define T_ENCAPSED_AND_WHITESPACE 314
00248 #define T_CONSTANT_ENCAPSED_STRING 315
00249 #define T_ECHO 316
00250 #define T_DO 317
00251 #define T_WHILE 318
00252 #define T_ENDWHILE 319
00253 #define T_FOR 320
00254 #define T_ENDFOR 321
00255 #define T_FOREACH 322
00256 #define T_ENDFOREACH 323
00257 #define T_DECLARE 324
00258 #define T_ENDDECLARE 325
00259 #define T_AS 326
00260 #define T_SWITCH 327
00261 #define T_ENDSWITCH 328
00262 #define T_CASE 329
00263 #define T_DEFAULT 330
00264 #define T_BREAK 331
00265 #define T_CONTINUE 332
00266 #define T_FUNCTION 333
00267 #define T_CONST 334
00268 #define T_RETURN 335
00269 #define T_TRY 336
00270 #define T_CATCH 337
00271 #define T_THROW 338
00272 #define T_USE 339
00273 #define T_GLOBAL 340
00274 #define T_PUBLIC 341
00275 #define T_PROTECTED 342
00276 #define T_PRIVATE 343
00277 #define T_FINAL 344
00278 #define T_ABSTRACT 345
00279 #define T_STATIC 346
00280 #define T_VAR 347
00281 #define T_UNSET 348
00282 #define T_ISSET 349
00283 #define T_EMPTY 350
00284 #define T_HALT_COMPILER 351
00285 #define T_CLASS 352
00286 #define T_INTERFACE 353
00287 #define T_EXTENDS 354
00288 #define T_IMPLEMENTS 355
00289 #define T_OBJECT_OPERATOR 356
00290 #define T_DOUBLE_ARROW 357
00291 #define T_LIST 358
00292 #define T_ARRAY 359
00293 #define T_CLASS_C 360
00294 #define T_METHOD_C 361
00295 #define T_FUNC_C 362
00296 #define T_LINE 363
00297 #define T_FILE 364
00298 #define T_COMMENT 365
00299 #define T_DOC_COMMENT 366
00300 #define T_OPEN_TAG 367
00301 #define T_OPEN_TAG_WITH_ECHO 368
00302 #define T_CLOSE_TAG 369
00303 #define T_WHITESPACE 370
00304 #define T_START_HEREDOC 371
00305 #define T_END_HEREDOC 372
00306 #define T_DOLLAR_OPEN_CURLY_BRACES 373
00307 #define T_CURLY_OPEN 374
00308 #define T_PAAMAYIM_NEKUDOTAYIM 375
00309 #define T_ASPECT 376
00310 #define T_BEFORE 377
00311 #define T_AROUND 378
00312 #define T_AFTER 379
00313 #define T_POINTCUT 380
00314 #define T_EXEC 381
00315 #define T_CALL 382
00316 #define T_SET 383
00317 #define T_GET 384
00318 #define T_THIS 385
00319 #define T_WITHIN 386
00320 
00321 
00322 
00323 
00324 /* Copy the first part of user declarations.  */
00325 #line 1 "php_parser.y"
00326 
00327 /*
00328    +----------------------------------------------------------------------+
00329    | Zend Engine                                                          |
00330    +----------------------------------------------------------------------+
00331    | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
00332    +----------------------------------------------------------------------+
00333    | This source file is subject to version 2.00 of the Zend license,     |
00334    | that is bundled with this package in the file LICENSE, and is        | 
00335    | available through the world-wide-web at the following url:           |
00336    | http://www.zend.com/license/2_00.txt.                                |
00337    | If you did not receive a copy of the Zend license and are unable to  |
00338    | obtain it through the world-wide-web, please send a note to          |
00339    | license@zend.com so we can mail you a copy immediately.              |
00340    +----------------------------------------------------------------------+
00341    | Authors: Andi Gutmans <andi@zend.com>                                |
00342    |          Zeev Suraski <zeev@zend.com>                                |
00343    +----------------------------------------------------------------------+
00344 */
00345 
00346 /* $Id: php_parser.c,v 1.5 2007/01/06 03:20:11 wcandillon Exp $ */
00347 
00348 /* 
00349  * LALR shift/reduce conflicts and how they are resolved:
00350  *
00351  * - 2 shift/reduce conflicts due to the dangeling elseif/else ambiguity.  Solved by shift.
00352  * - 1 shift/reduce conflict due to arrays within encapsulated strings. Solved by shift. 
00353  * - 1 shift/reduce conflict due to objects within encapsulated strings.  Solved by shift.
00354  * 
00355  */
00356 
00357 #define YYERROR_VERBOSE
00358 #define YYSTYPE char*
00359 void yyerror(char* s);
00360 extern int yylex();
00361 extern int yywrap();
00362 extern int yylocationp();
00363 extern int getLineno();
00364 char* file_name;
00365 char* _xml_output;
00366 int _error=0;
00367 
00368 
00369 /* Enabling traces.  */
00370 #ifndef YYDEBUG
00371 # define YYDEBUG 0
00372 #endif
00373 
00374 /* Enabling verbose error messages.  */
00375 #ifdef YYERROR_VERBOSE
00376 # undef YYERROR_VERBOSE
00377 # define YYERROR_VERBOSE 1
00378 #else
00379 # define YYERROR_VERBOSE 0
00380 #endif
00381 
00382 /* Enabling the token table.  */
00383 #ifndef YYTOKEN_TABLE
00384 # define YYTOKEN_TABLE 0
00385 #endif
00386 
00387 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
00388 typedef int YYSTYPE;
00389 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
00390 # define YYSTYPE_IS_DECLARED 1
00391 # define YYSTYPE_IS_TRIVIAL 1
00392 #endif
00393 
00394 
00395 
00396 /* Copy the second part of user declarations.  */
00397 
00398 
00399 /* Line 222 of yacc.c.  */
00400 #line 401 "php_parser.c"
00401 
00402 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00403 # define YYSIZE_T __SIZE_TYPE__
00404 #endif
00405 #if ! defined (YYSIZE_T) && defined (size_t)
00406 # define YYSIZE_T size_t
00407 #endif
00408 #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
00409 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
00410 # define YYSIZE_T size_t
00411 #endif
00412 #if ! defined (YYSIZE_T)
00413 # define YYSIZE_T unsigned int
00414 #endif
00415 
00416 #ifndef YY_
00417 # if YYENABLE_NLS
00418 #  if ENABLE_NLS
00419 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
00420 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
00421 #  endif
00422 # endif
00423 # ifndef YY_
00424 #  define YY_(msgid) msgid
00425 # endif
00426 #endif
00427 
00428 //#if ! defined (yyoverflow) || YYERROR_VERBOSE
00429 #if 1
00430 
00431 /* The parser invokes alloca or malloc; define the necessary symbols.  */
00432 
00433 #define XML_ALLOC(X) malloc(X)
00434 #define XML_FREE(X) free(X)
00435 # ifdef YYSTACK_USE_ALLOCA
00436 #  if YYSTACK_USE_ALLOCA
00437 #   ifdef __GNUC__
00438 #    define YYSTACK_ALLOC __builtin_alloca
00439 #   else
00440 #    define YYSTACK_ALLOC alloca
00441 #    if defined (__STDC__) || defined (__cplusplus)
00442 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00443 #     define YYINCLUDED_STDLIB_H
00444 #    endif
00445 #   endif
00446 #  endif
00447 # endif
00448 
00449 # ifdef YYSTACK_ALLOC
00450    /* Pacify GCC's `empty if-body' warning. */
00451 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
00452 #  ifndef YYSTACK_ALLOC_MAXIMUM
00453     /* The OS might guarantee only one guard page at the bottom of the stack,
00454        and a page size can be as small as 4096 bytes.  So we cannot safely
00455        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
00456        to allow for a few compiler-allocated temporary stack slots.  */
00457 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
00458 #  endif
00459 # else
00460 #  define YYSTACK_ALLOC YYMALLOC
00461 #  define YYSTACK_FREE YYFREE
00462 #  ifndef YYSTACK_ALLOC_MAXIMUM
00463 #   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
00464 #  endif
00465 #  ifdef __cplusplus
00466 extern "C" {
00467 #  endif
00468 #  ifndef YYMALLOC
00469 #   define YYMALLOC malloc
00470 #   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
00471     && (defined (__STDC__) || defined (__cplusplus)))
00472 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
00473 #   endif
00474 #  endif
00475 #  ifndef YYFREE
00476 #   define YYFREE free
00477 #   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
00478     && (defined (__STDC__) || defined (__cplusplus)))
00479 void free (void *); /* INFRINGES ON USER NAME SPACE */
00480 #   endif
00481 #  endif
00482 #  ifdef __cplusplus
00483 }
00484 #  endif
00485 # endif
00486 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
00487 
00488 
00489 #if (! defined (yyoverflow) \
00490      && (! defined (__cplusplus) \
00491      || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
00492 /* A type that is properly aligned for any stack member.  */
00493 union yyalloc
00494 {
00495   short int yyss;
00496   char *yyxs; // Yijun Yu: for XML
00497   YYSTYPE yyvs;
00498   };
00499 
00500 /* The size of the maximum gap between one aligned stack and the next.  */
00501 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00502 // Yijun Yu: for yyxs
00503 /* The size of an array large to enough to hold all stacks, each with
00504    N elements.  */
00505 # define YYSTACK_BYTES(N) \
00506      ((N) * (sizeof (short int) + sizeof (YYSTYPE))             \
00507      + sizeof(char *) \
00508       + YYSTACK_GAP_MAXIMUM)
00509 
00510 /* Copy COUNT objects from FROM to TO.  The source and destination do
00511    not overlap.  */
00512 # ifndef YYCOPY
00513 #  if defined (__GNUC__) && 1 < __GNUC__
00514 #   define YYCOPY(To, From, Count) \
00515       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00516 #  else
00517 #   define YYCOPY(To, From, Count)      \
00518       do                    \
00519     {                   \
00520       YYSIZE_T yyi;     \
00521       for (yyi = 0; yyi < (Count); yyi++)   \
00522         (To)[yyi] = (From)[yyi];        \
00523     }                   \
00524       while (0)
00525 #  endif
00526 # endif
00527 
00528 /* Relocate STACK from its old location to the new one.  The
00529    local variables YYSIZE and YYSTACKSIZE give the old and new number of
00530    elements in the stack, and YYPTR gives the new location of the
00531    stack.  Advance YYPTR to a properly aligned location for the next
00532    stack.  */
00533 # define YYSTACK_RELOCATE(Stack)                    \
00534     do                                  \
00535       {                                 \
00536     YYSIZE_T yynewbytes;                        \
00537     YYCOPY (&yyptr->Stack, Stack, yysize);              \
00538     Stack = &yyptr->Stack;                      \
00539     yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00540     yyptr += yynewbytes / sizeof (*yyptr);              \
00541       }                                 \
00542     while (0)
00543 
00544 #endif
00545 
00546 #if defined (__STDC__) || defined (__cplusplus)
00547    typedef signed char yysigned_char;
00548 #else
00549    typedef short int yysigned_char;
00550 #endif
00551 
00552 /* YYFINAL -- State number of the termination state. */
00553 #define YYFINAL  3
00554 /* YYLAST -- Last index in YYTABLE.  */
00555 #define YYLAST   4343
00556 
00557 /* YYNTOKENS -- Number of terminals. */
00558 #define YYNTOKENS  161
00559 /* YYNNTS -- Number of nonterminals. */
00560 #define YYNNTS  181
00561 /* YYNRULES -- Number of rules. */
00562 #define YYNRULES  471
00563 /* YYNRULES -- Number of states. */
00564 #define YYNSTATES  952
00565 
00566 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
00567 #define YYUNDEFTOK  2
00568 #define YYMAXUTOK   386
00569 
00570 #define YYTRANSLATE(YYX)                        \
00571   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00572 
00573 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
00574 static const unsigned char yytranslate[] =
00575 {
00576        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00579        2,     2,     2,    48,   158,     2,   156,    47,    31,   159,
00580      151,   152,    45,    42,     8,    43,    44,    46,     2,     2,
00581        2,     2,     2,     2,     2,     2,     2,     2,    26,   153,
00582       36,    13,    37,    25,    51,     2,     2,     2,     2,     2,
00583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00584        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00585        2,    61,     2,   160,    30,     2,   157,     2,     2,     2,
00586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00588        2,     2,     2,   154,    29,   155,    50,     2,     2,     2,
00589        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00590        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00591        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00592        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00593        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00594        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00595        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00596        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00597        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00598        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00599        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00600        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00601        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00602        5,     6,     7,     9,    10,    11,    12,    14,    15,    16,
00603       17,    18,    19,    20,    21,    22,    23,    24,    27,    28,
00604       32,    33,    34,    35,    38,    39,    40,    41,    49,    52,
00605       53,    54,    55,    56,    57,    58,    59,    60,    62,    63,
00606       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
00607       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
00608       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
00609       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
00610      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
00611      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
00612      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
00613      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
00614      144,   145,   146,   147,   148,   149,   150
00615 };
00616 
00617 //#if YYDEBUG
00618 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
00619    YYRHS.  */
00620 static const unsigned short int yyprhs[] =
00621 {
00622        0,     0,     3,     5,     6,    10,    11,    13,    15,    17,
00623       22,    28,    29,    33,    34,    36,    38,    40,    45,    47,
00624       51,    52,    53,    63,    64,    65,    78,    79,    80,    88,
00625       89,    90,   100,   101,   102,   103,   116,   117,   124,   127,
00626      131,   134,   138,   141,   145,   149,   153,   157,   161,   163,
00627      166,   170,   176,   177,   178,   179,   191,   192,   193,   194,
00628      206,   207,   214,   216,   217,   218,   219,   220,   221,   240,
00629      244,   246,   247,   249,   252,   253,   254,   265,   267,   271,
00630      273,   275,   279,   281,   283,   284,   286,   287,   288,   300,
00631      301,   310,   311,   319,   322,   323,   325,   329,   332,   343,
00632      349,   359,   368,   378,   379,   381,   385,   389,   393,   396,
00633      398,   400,   410,   423,   431,   436,   441,   448,   455,   460,
00634      465,   470,   473,   475,   477,   479,   481,   487,   495,   499,
00635      505,   513,   520,   524,   526,   529,   532,   535,   537,   539,
00636      541,   542,   544,   547,   550,   551,   554,   556,   557,   560,
00637      561,   564,   566,   570,   571,   574,   576,   579,   581,   586,
00638      588,   593,   595,   600,   604,   610,   614,   619,   624,   630,
00639      631,   632,   639,   640,   646,   648,   650,   652,   657,   658,
00640      659,   667,   668,   669,   678,   679,   682,   683,   687,   689,
00641      690,   693,   697,   703,   708,   713,   719,   727,   734,   735,
00642      737,   739,   741,   742,   744,   746,   749,   753,   757,   762,
00643      766,   768,   770,   773,   778,   782,   788,   790,   794,   797,
00644      798,   799,   804,   807,   816,   818,   822,   824,   826,   827,
00645      829,   831,   834,   836,   838,   840,   842,   844,   846,   850,
00646      856,   858,   862,   868,   873,   877,   879,   880,   882,   883,
00647      888,   890,   891,   899,   903,   908,   909,   917,   918,   923,
00648      926,   930,   934,   938,   942,   946,   950,   954,   958,   962,
00649      966,   970,   973,   976,   979,   982,   983,   988,   989,   994,
00650      995,  1000,  1001,  1006,  1010,  1014,  1018,  1022,  1026,  1030,
00651     1034,  1038,  1042,  1046,  1050,  1054,  1057,  1060,  1063,  1066,
00652     1070,  1074,  1078,  1082,  1086,  1090,  1094,  1098,  1102,  1106,
00653     1107,  1108,  1116,  1118,  1121,  1124,  1127,  1130,  1133,  1136,
00654     1139,  1142,  1143,  1147,  1149,  1154,  1158,  1161,  1162,  1168,
00655     1169,  1177,  1178,  1186,  1187,  1193,  1195,  1197,  1199,  1200,
00656     1201,  1208,  1210,  1213,  1214,  1217,  1218,  1221,  1225,  1226,
00657     1230,  1232,  1234,  1236,  1238,  1240,  1242,  1244,  1246,  1248,
00658     1250,  1253,  1256,  1261,  1263,  1267,  1269,  1271,  1273,  1275,
00659     1279,  1283,  1287,  1288,  1291,  1292,  1294,  1300,  1304,  1308,
00660     1310,  1312,  1314,  1316,  1317,  1320,  1321,  1324,  1325,  1326,
00661     1334,  1336,  1339,  1340,  1341,  1346,  1347,  1352,  1353,  1355,
00662     1358,  1362,  1364,  1366,  1368,  1371,  1373,  1378,  1383,  1385,
00663     1387,  1392,  1393,  1395,  1397,  1398,  1401,  1406,  1411,  1413,
00664     1415,  1419,  1421,  1424,  1428,  1430,  1432,  1433,  1439,  1440,
00665     1441,  1444,  1450,  1454,  1458,  1460,  1467,  1472,  1477,  1480,
00666     1483,  1486,  1489,  1492,  1495,  1498,  1501,  1504,  1507,  1510,
00667     1513,  1514,  1516,  1517,  1523,  1527,  1531,  1538,  1542,  1544,
00668     1546,  1548,  1553,  1558,  1561,  1564,  1569,  1572,  1575,  1577,
00669     1578,  1583
00670 };
00671 
00672 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
00673 static const short int yyrhs[] =
00674 {
00675      162,     0,    -1,   163,    -1,    -1,   163,   164,   165,    -1,
00676       -1,   169,    -1,   203,    -1,   204,    -1,   115,   151,   152,
00677      153,    -1,   140,    71,   154,   212,   155,    -1,    -1,   166,
00678      167,   168,    -1,    -1,   169,    -1,   203,    -1,   204,    -1,
00679      115,   151,   152,   153,    -1,   170,    -1,   154,   166,   155,
00680       -1,    -1,    -1,    65,   151,   303,   152,   171,   169,   172,
00681      243,   247,    -1,    -1,    -1,    65,   151,   303,   152,    26,
00682      173,   166,   174,   245,   248,    68,   153,    -1,    -1,    -1,
00683       82,   151,   175,   303,   152,   176,   242,    -1,    -1,    -1,
00684       81,   177,   169,    82,   151,   178,   303,   152,   153,    -1,
00685       -1,    -1,    -1,    84,   151,   268,   153,   179,   268,   153,
00686      180,   268,   152,   181,   233,    -1,    -1,    91,   151,   303,
00687      152,   182,   237,    -1,    95,   153,    -1,    95,   303,   153,
00688       -1,    96,   153,    -1,    96,   303,   153,    -1,    99,   153,
00689       -1,    99,   271,   153,    -1,    99,   309,   153,    -1,   104,
00690      254,   153,    -1,   110,   256,   153,    -1,    80,   267,   153,
00691       -1,    75,    -1,   303,   153,    -1,   103,   202,   153,    -1,
00692      112,   151,   200,   152,   153,    -1,    -1,    -1,    -1,    86,
00693      151,   309,   183,    90,   184,   232,   231,   152,   185,   234,
00694       -1,    -1,    -1,    -1,    86,   151,   271,   186,    90,   187,
00695      309,   231,   152,   188,   234,    -1,    -1,    88,   189,   151,
00696      236,   152,   235,    -1,   153,    -1,    -1,    -1,    -1,    -1,
00697       -1,   100,   190,   154,   166,   155,   101,   151,   191,   287,
00698      192,    73,   152,   193,   154,   166,   155,   194,   195,    -1,
00699      102,   303,   153,    -1,   196,    -1,    -1,   197,    -1,   196,
00700      197,    -1,    -1,    -1,   101,   151,   287,   198,    73,   152,
00701      199,   154,   166,   155,    -1,   201,    -1,   200,     8,   201,
00702       -1,   309,    -1,    79,    -1,   151,    79,   152,    -1,   206,
00703       -1,   209,    -1,    -1,    31,    -1,    -1,    -1,    97,   207,
00704      205,    71,   208,   151,   249,   152,   154,   166,   155,    -1,
00705       -1,   225,    71,   226,   210,   229,   154,   257,   155,    -1,
00706       -1,   227,    71,   211,   228,   154,   257,   155,    -1,   212,
00707      213,    -1,    -1,   258,    -1,   261,   219,   153,    -1,   220,
00708      153,    -1,   262,    97,   205,   221,   139,    71,   151,   249,
00709      152,   260,    -1,   144,    71,    26,   215,   153,    -1,   141,
00710      151,   214,   152,    26,   215,   154,   166,   155,    -1,   142,
00711      151,   152,    26,   215,   154,   166,   155,    -1,   143,   151,
00712      214,   152,    26,   215,   154,   166,   155,    -1,    -1,   200,
00713       -1,   215,    27,   215,    -1,   215,    28,   215,    -1,   151,
00714      215,   152,    -1,    48,   215,    -1,   216,    -1,    71,    -1,
00715      146,   151,   222,   218,   223,   151,   217,   152,   152,    -1,
00716      145,   151,   262,   205,   223,   139,   223,   224,   151,   217,
00717      152,   152,    -1,    63,   151,   222,   151,   217,   152,   152,
00718       -1,   101,   151,   221,   152,    -1,   112,   151,   221,   152,
00719       -1,   147,   151,   223,   218,   223,   152,    -1,   148,   151,
00720      223,   218,   223,   152,    -1,   149,   151,   222,   152,    -1,
00721      150,   151,   222,   152,    -1,   128,   151,    79,   152,    -1,
00722       51,   222,    -1,    69,    -1,    45,    -1,   120,    -1,   139,
00723       -1,   219,     8,   221,   139,    73,    -1,   219,     8,   221,
00724      139,    73,    13,   297,    -1,   221,   139,    73,    -1,   221,
00725      139,    73,    13,   297,    -1,   220,     8,   221,   139,    71,
00726       13,   297,    -1,    98,   221,   139,    71,    13,   297,    -1,
00727      221,     8,   222,    -1,   222,    -1,   223,   224,    -1,   223,
00728       45,    -1,   223,    71,    -1,    45,    -1,    71,    -1,    42,
00729       -1,    -1,   116,    -1,   109,   116,    -1,   108,   116,    -1,
00730       -1,   118,   287,    -1,   117,    -1,    -1,   118,   230,    -1,
00731       -1,   119,   230,    -1,   287,    -1,   230,     8,   287,    -1,
00732       -1,   121,   232,    -1,   309,    -1,    31,   309,    -1,   169,
00733       -1,    26,   166,    85,   153,    -1,   169,    -1,    26,   166,
00734       87,   153,    -1,   169,    -1,    26,   166,    89,   153,    -1,
00735       71,    13,   297,    -1,   236,     8,    71,    13,   297,    -1,
00736      154,   238,   155,    -1,   154,   153,   238,   155,    -1,    26,
00737      238,    92,   153,    -1,    26,   153,   238,    92,   153,    -1,
00738       -1,    -1,   238,    93,   303,   241,   239,   166,    -1,    -1,
00739      238,    94,   241,   240,   166,    -1,    26,    -1,   153,    -1,
00740      169,    -1,    26,   166,    83,   153,    -1,    -1,    -1,   243,
00741       66,   151,   303,   152,   244,   169,    -1,    -1,    -1,   245,
00742       66,   151,   303,   152,    26,   246,   166,    -1,    -1,    67,
00743      169,    -1,    -1,    67,    26,   166,    -1,   250,    -1,    -1,
00744      251,    73,    -1,   251,    31,    73,    -1,   251,    31,    73,
00745       13,   297,    -1,   251,    73,    13,   297,    -1,   250,     8,
00746      251,    73,    -1,   250,     8,   251,    31,    73,    -1,   250,
00747        8,   251,    31,    73,    13,   297,    -1,   250,     8,   251,
00748       73,    13,   297,    -1,    -1,    71,    -1,   123,    -1,   253,
00749       -1,    -1,   271,    -1,   309,    -1,    31,   305,    -1,   253,
00750        8,   271,    -1,   253,     8,   309,    -1,   253,     8,    31,
00751      305,    -1,   254,     8,   255,    -1,   255,    -1,    73,    -1,
00752      156,   304,    -1,   156,   154,   303,   155,    -1,   256,     8,
00753       73,    -1,   256,     8,    73,    13,   297,    -1,    73,    -1,
00754       73,    13,   297,    -1,   257,   258,    -1,    -1,    -1,   261,
00755      259,   265,   153,    -1,   266,   153,    -1,   262,    97,   205,
00756       71,   151,   249,   152,   260,    -1,   153,    -1,   154,   166,
00757      155,    -1,   263,    -1,   111,    -1,    -1,   263,    -1,   264,
00758       -1,   263,   264,    -1,   105,    -1,   106,    -1,   107,    -1,
00759      110,    -1,   109,    -1,   108,    -1,   265,     8,    73,    -1,
00760      265,     8,    73,    13,   297,    -1,    73,    -1,    73,    13,
00761      297,    -1,   266,     8,    71,    13,   297,    -1,    98,    71,
00762       13,   297,    -1,   267,     8,   303,    -1,   303,    -1,    -1,
00763      269,    -1,    -1,   269,     8,   270,   303,    -1,   303,    -1,
00764       -1,   122,   151,   272,   329,   152,    13,   303,    -1,   309,
00765       13,   303,    -1,   309,    13,    31,   309,    -1,    -1,   309,
00766       13,    31,    63,   288,   273,   295,    -1,    -1,    63,   288,
00767      274,   295,    -1,    62,   303,    -1,   309,    24,   303,    -1,
00768      309,    23,   303,    -1,   309,    22,   303,    -1,   309,    21,
00769      303,    -1,   309,    20,   303,    -1,   309,    19,   303,    -1,
00770      309,    18,   303,    -1,   309,    17,   303,    -1,   309,    16,
00771      303,    -1,   309,    15,   303,    -1,   309,    14,   303,    -1,
00772      307,    60,    -1,    60,   307,    -1,   307,    59,    -1,    59,
00773      307,    -1,    -1,   303,    27,   275,   303,    -1,    -1,   303,
00774       28,   276,   303,    -1,    -1,   303,     9,   277,   303,    -1,
00775       -1,   303,    11,   278,   303,    -1,   303,    10,   303,    -1,
00776      303,    29,   303,    -1,   303,    31,   303,    -1,   303,    30,
00777      303,    -1,   303,    44,   303,    -1,   303,    42,   303,    -1,
00778      303,    43,   303,    -1,   303,    45,   303,    -1,   303,    46,
00779      303,    -1,   303,    47,   303,    -1,   303,    41,   303,    -1,
00780      303,    40,   303,    -1,    42,   303,    -1,    43,   303,    -1,
00781       48,   303,    -1,    50,   303,    -1,   303,    33,   303,    -1,
00782      303,    32,   303,    -1,   303,    35,   303,    -1,   303,    34,
00783      303,    -1,   303,    36,   303,    -1,   303,    39,   303,    -1,
00784      303,    37,   303,    -1,   303,    38,   303,    -1,   303,    49,
00785      288,    -1,   151,   303,   152,    -1,    -1,    -1,   303,    25,
00786      279,   303,    26,   280,   303,    -1,   338,    -1,    58,   303,
00787       -1,    57,   303,    -1,    56,   303,    -1,    55,   303,    -1,
00788       54,   303,    -1,    53,   303,    -1,    52,   303,    -1,    64,
00789      294,    -1,    -1,    51,   281,   303,    -1,   299,    -1,   123,
00790      151,   332,   152,    -1,   157,   334,   157,    -1,    12,   303,
00791       -1,    -1,    71,   151,   283,   252,   152,    -1,    -1,   287,
00792      139,    71,   151,   284,   252,   152,    -1,    -1,   287,   139,
00793      317,   151,   285,   252,   152,    -1,    -1,   317,   151,   286,
00794      252,   152,    -1,    71,    -1,    71,    -1,   289,    -1,    -1,
00795       -1,   320,   120,   290,   324,   291,   292,    -1,   320,    -1,
00796      292,   293,    -1,    -1,   120,   324,    -1,    -1,   151,   152,
00797       -1,   151,   303,   152,    -1,    -1,   151,   252,   152,    -1,
00798       69,    -1,    70,    -1,    79,    -1,   127,    -1,   128,    -1,
00799      124,    -1,   125,    -1,   126,    -1,   296,    -1,    71,    -1,
00800       42,   297,    -1,    43,   297,    -1,   123,   151,   300,   152,
00801       -1,   298,    -1,    71,   139,    71,    -1,    71,    -1,    72,
00802       -1,   341,    -1,   296,    -1,   158,   334,   158,    -1,   159,
00803      334,   159,    -1,   135,   334,   136,    -1,    -1,   302,   301,
00804       -1,    -1,     8,    -1,   302,     8,   297,   121,   297,    -1,
00805      302,     8,   297,    -1,   297,   121,   297,    -1,   297,    -1,
00806      304,    -1,   271,    -1,   309,    -1,    -1,   309,   306,    -1,
00807       -1,   309,   308,    -1,    -1,    -1,   319,   120,   310,   324,
00808      311,   315,   312,    -1,   319,    -1,   312,   313,    -1,    -1,
00809       -1,   120,   324,   314,   315,    -1,    -1,   151,   316,   252,
00810      152,    -1,    -1,   321,    -1,   328,   321,    -1,   287,   139,
00811      317,    -1,   320,    -1,   282,    -1,   321,    -1,   328,   321,
00812       -1,   318,    -1,   321,    61,   323,   160,    -1,   321,   154,
00813      303,   155,    -1,   322,    -1,    73,    -1,   156,   154,   303,
00814      155,    -1,    -1,   303,    -1,   326,    -1,    -1,   317,   325,
00815       -1,   326,    61,   323,   160,    -1,   326,   154,   303,   155,
00816       -1,   327,    -1,    71,    -1,   154,   303,   155,    -1,   156,
00817       -1,   328,   156,    -1,   329,     8,   330,    -1,   330,    -1,
00818      309,    -1,    -1,   122,   151,   331,   329,   152,    -1,    -1,
00819       -1,   333,   301,    -1,   333,     8,   303,   121,   303,    -1,
00820      333,     8,   303,    -1,   303,   121,   303,    -1,   303,    -1,
00821      333,     8,   303,   121,    31,   305,    -1,   333,     8,    31,
00822      305,    -1,   303,   121,    31,   305,    -1,    31,   305,    -1,
00823      334,   335,    -1,   334,    71,    -1,   334,    74,    -1,   334,
00824       78,    -1,   334,    76,    -1,   334,    77,    -1,   334,    61,
00825       -1,   334,   160,    -1,   334,   154,    -1,   334,   155,    -1,
00826      334,   120,    -1,    -1,    73,    -1,    -1,    73,    61,   336,
00827      337,   160,    -1,    73,   120,    71,    -1,   137,   303,   155,
00828       -1,   137,    72,    61,   303,   160,   155,    -1,   138,   309,
00829      155,    -1,    71,    -1,    74,    -1,    73,    -1,   113,   151,
00830      339,   152,    -1,   114,   151,   309,   152,    -1,     7,   303,
00831       -1,     6,   303,    -1,     5,   151,   303,   152,    -1,     4,
00832      303,    -1,     3,   303,    -1,   309,    -1,    -1,   339,     8,
00833      340,   309,    -1,   287,   139,    71,    -1
00834 };
00835 
00836 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
00837 static const unsigned short int yyrline[] =
00838 {
00839        0,   158,   158,   162,   162,   163,   168,   169,   170,   171,
00840      173,   178,   178,   179,   184,   185,   186,   187,   192,   196,
00841      197,   197,   197,   198,   198,   198,   199,   199,   199,   200,
00842      200,   200,   204,   206,   208,   201,   210,   210,   211,   212,
00843      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
00844      223,   224,   225,   226,   227,   225,   229,   230,   231,   229,
00845      233,   233,   234,   235,   236,   237,   238,   239,   235,   241,
00846      246,   247,   251,   252,   257,   257,   257,   262,   263,   267,
00847      271,   272,   277,   281,   286,   287,   292,   292,   292,   298,
00848      297,   304,   303,   313,   314,   319,   320,   321,   322,   323,
00849      324,   325,   326,   331,   333,   338,   339,   340,   341,   342,
00850      347,   348,   349,   351,   352,   353,   354,   355,   356,   357,
00851      358,   359,   364,   365,   370,   371,   376,   377,   378,   379,
00852      384,   385,   391,   392,   397,   400,   401,   402,   403,   408,
00853      409,   413,   414,   415,   419,   420,   424,   427,   429,   432,
00854      434,   438,   439,   443,   444,   449,   450,   454,   455,   460,
00855      461,   466,   467,   472,   473,   478,   479,   480,   481,   486,
00856      487,   487,   488,   488,   493,   494,   499,   500,   505,   507,
00857      507,   511,   513,   513,   517,   519,   523,   525,   530,   531,
00858      536,   537,   538,   539,   540,   541,   542,   543,   548,   549,
00859      550,   555,   556,   561,   562,   563,   564,   565,   566,   570,
00860      571,   576,   577,   578,   583,   584,   585,   586,   592,   593,
00861      598,   598,   599,   600,   606,   607,   611,   612,   616,   617,
00862      621,   622,   626,   627,   628,   629,   630,   631,   635,   636,
00863      637,   638,   642,   643,   647,   648,   653,   654,   658,   658,
00864      659,   663,   663,   664,   665,   666,   666,   667,   667,   668,
00865      669,   670,   671,   672,   673,   674,   675,   676,   677,   678,
00866      679,   680,   681,   682,   683,   684,   684,   685,   685,   686,
00867      686,   687,   687,   688,   689,   690,   691,   692,   693,   694,
00868      695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
00869      705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
00870      715,   714,   717,   718,   719,   720,   721,   722,   723,   724,
00871      725,   726,   726,   727,   728,   729,   730,   734,   734,   737,
00872      737,   740,   740,   743,   743,   749,   753,   754,   759,   760,
00873      759,   762,   767,   768,   773,   777,   778,   779,   784,   785,
00874      790,   791,   792,   793,   794,   795,   796,   797,   802,   803,
00875      804,   805,   806,   807,   811,   815,   816,   817,   818,   819,
00876      820,   821,   826,   827,   830,   832,   836,   837,   838,   839,
00877      843,   844,   849,   854,   854,   859,   859,   864,   865,   864,
00878      867,   871,   872,   877,   877,   881,   881,   885,   889,   890,
00879      894,   899,   900,   905,   906,   907,   911,   912,   913,   918,
00880      919,   923,   924,   929,   930,   930,   934,   935,   936,   940,
00881      941,   945,   946,   950,   951,   956,   957,   957,   958,   963,
00882      964,   968,   969,   970,   971,   972,   973,   974,   975,   979,
00883      980,   981,   982,   983,   984,   985,   986,   987,   988,   989,
00884      990,   997,   998,   998,   999,  1000,  1001,  1002,  1007,  1008,
00885     1009,  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1024,  1025,
00886     1025,  1029
00887 };
00888 //#endif
00889 
00890 //#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00891 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
00892    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
00893 static const char *const yytname[] =
00894 {
00895   "$end", "error", "$undefined", "T_REQUIRE_ONCE", "T_REQUIRE", "T_EVAL",
00896   "T_INCLUDE_ONCE", "T_INCLUDE", "','", "T_LOGICAL_OR", "T_LOGICAL_XOR",
00897   "T_LOGICAL_AND", "T_PRINT", "'='", "T_SR_EQUAL", "T_SL_EQUAL",
00898   "T_XOR_EQUAL", "T_OR_EQUAL", "T_AND_EQUAL", "T_MOD_EQUAL",
00899   "T_CONCAT_EQUAL", "T_DIV_EQUAL", "T_MUL_EQUAL", "T_MINUS_EQUAL",
00900   "T_PLUS_EQUAL", "'?'", "':'", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "'|'",
00901   "'^'", "'&'", "T_IS_NOT_IDENTICAL", "T_IS_IDENTICAL", "T_IS_NOT_EQUAL",
00902   "T_IS_EQUAL", "'<'", "'>'", "T_IS_GREATER_OR_EQUAL",
00903   "T_IS_SMALLER_OR_EQUAL", "T_SR", "T_SL", "'+'", "'-'", "'.'", "'*'",
00904   "'/'", "'%'", "'!'", "T_INSTANCEOF", "'~'", "'@'", "T_UNSET_CAST",
00905   "T_BOOL_CAST", "T_OBJECT_CAST", "T_ARRAY_CAST", "T_STRING_CAST",
00906   "T_DOUBLE_CAST", "T_INT_CAST", "T_DEC", "T_INC", "'['", "T_CLONE",
00907   "T_NEW", "T_EXIT", "T_IF", "T_ELSEIF", "T_ELSE", "T_ENDIF", "T_LNUMBER",
00908   "T_DNUMBER", "T_STRING", "T_STRING_VARNAME", "T_VARIABLE",
00909   "T_NUM_STRING", "T_INLINE_HTML", "T_CHARACTER", "T_BAD_CHARACTER",
00910   "T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING", "T_ECHO",
00911   "T_DO", "T_WHILE", "T_ENDWHILE", "T_FOR", "T_ENDFOR", "T_FOREACH",
00912   "T_ENDFOREACH", "T_DECLARE", "T_ENDDECLARE", "T_AS", "T_SWITCH",
00913   "T_ENDSWITCH", "T_CASE", "T_DEFAULT", "T_BREAK", "T_CONTINUE",
00914   "T_FUNCTION", "T_CONST", "T_RETURN", "T_TRY", "T_CATCH", "T_THROW",
00915   "T_USE", "T_GLOBAL", "T_PUBLIC", "T_PROTECTED", "T_PRIVATE", "T_FINAL",
00916   "T_ABSTRACT", "T_STATIC", "T_VAR", "T_UNSET", "T_ISSET", "T_EMPTY",
00917   "T_HALT_COMPILER", "T_CLASS", "T_INTERFACE", "T_EXTENDS", "T_IMPLEMENTS",
00918   "T_OBJECT_OPERATOR", "T_DOUBLE_ARROW", "T_LIST", "T_ARRAY", "T_CLASS_C",
00919   "T_METHOD_C", "T_FUNC_C", "T_LINE", "T_FILE", "T_COMMENT",
00920   "T_DOC_COMMENT", "T_OPEN_TAG", "T_OPEN_TAG_WITH_ECHO", "T_CLOSE_TAG",
00921   "T_WHITESPACE", "T_START_HEREDOC", "T_END_HEREDOC",
00922   "T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM",
00923   "T_ASPECT", "T_BEFORE", "T_AROUND", "T_AFTER", "T_POINTCUT", "T_EXEC",
00924   "T_CALL", "T_SET", "T_GET", "T_THIS", "T_WITHIN", "'('", "')'", "';'",
00925   "'{'", "'}'", "'$'", "'`'", "'\"'", "'''", "']'", "$accept", "start",
00926   "top_statement_list", "@1", "top_statement", "inner_statement_list",
00927   "@2", "inner_statement", "statement", "unticked_statement", "@3", "@4",
00928   "@5", "@6", "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15",
00929   "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25",
00930   "@26", "additional_catches", "non_empty_additional_catches",
00931   "additional_catch", "@27", "@28", "unset_variables", "unset_variable",
00932   "use_filename", "function_declaration_statement",
00933   "class_declaration_statement", "is_reference",
00934   "unticked_function_declaration_statement", "@29", "@30",
00935   "unticked_class_declaration_statement", "@31", "@32",
00936   "aspect_statement_list", "aspect_statement", "aspect_advices_variables",
00937   "aspect_pointcut", "aspect_joinpoint", "aspect_parameters",
00938   "aspect_call", "aspect_variable_introduction",
00939   "aspect_constant_introduction", "aspect_class_signature",
00940   "aspect_signature_r", "aspect_signature", "aspect_subtype_or_not",
00941   "class_entry_type", "extends_from", "interface_entry",
00942   "interface_extends_list", "implements_list", "interface_list",
00943   "foreach_optional_arg", "foreach_variable", "for_statement",
00944   "foreach_statement", "declare_statement", "declare_list",
00945   "switch_case_list", "case_list", "@33", "@34", "case_separator",
00946   "while_statement", "elseif_list", "@35", "new_elseif_list", "@36",
00947   "else_single", "new_else_single", "parameter_list",
00948   "non_empty_parameter_list", "optional_class_type",
00949   "function_call_parameter_list", "non_empty_function_call_parameter_list",
00950   "global_var_list", "global_var", "static_var_list",
00951   "class_statement_list", "class_statement", "@37", "method_body",
00952   "variable_modifiers", "method_modifiers", "non_empty_member_modifiers",
00953   "member_modifier", "class_variable_declaration",
00954   "class_constant_declaration", "echo_expr_list", "for_expr",
00955   "non_empty_for_expr", "@38", "expr_without_variable", "@39", "@40",
00956   "@41", "@42", "@43", "@44", "@45", "@46", "@47", "@48", "function_call",
00957   "@49", "@50", "@51", "@52", "fully_qualified_class_name",
00958   "class_name_reference", "dynamic_class_name_reference", "@53", "@54",
00959   "dynamic_class_name_variable_properties",
00960   "dynamic_class_name_variable_property", "exit_expr", "ctor_arguments",
00961   "common_scalar", "static_scalar", "static_class_constant", "scalar",
00962   "static_array_pair_list", "possible_comma",
00963   "non_empty_static_array_pair_list", "expr", "r_variable", "w_variable",
00964   "@55", "rw_variable", "@56", "variable", "@57", "@58",
00965   "variable_properties", "variable_property", "@59", "method_or_not",
00966   "@60", "variable_without_objects", "static_member",
00967   "base_variable_with_function_calls", "base_variable",
00968   "reference_variable", "compound_variable", "dim_offset",
00969   "object_property", "@61", "object_dim_list", "variable_name",
00970   "simple_indirect_reference", "assignment_list",
00971   "assignment_list_element", "@62", "array_pair_list",
00972   "non_empty_array_pair_list", "encaps_list", "encaps_var", "@63",
00973   "encaps_var_offset", "internal_functions_in_yacc", "isset_variables",
00974   "@64", "class_constant", 0
00975 };
00976 //#endif
00977 
00978 # ifdef YYPRINT
00979 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
00980    token YYLEX-NUM.  */
00981 static const unsigned short int yytoknum[] =
00982 {
00983        0,   256,   257,   258,   259,   260,   261,   262,    44,   263,
00984      264,   265,   266,    61,   267,   268,   269,   270,   271,   272,
00985      273,   274,   275,   276,   277,    63,    58,   278,   279,   124,
00986       94,    38,   280,   281,   282,   283,    60,    62,   284,   285,
00987      286,   287,    43,    45,    46,    42,    47,    37,    33,   288,
00988      126,    64,   289,   290,   291,   292,   293,   294,   295,   296,
00989      297,    91,   298,   299,   300,   301,   302,   303,   304,   305,
00990      306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
00991      316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
00992      326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
00993      336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
00994      346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
00995      356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
00996      366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
00997      376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
00998      386,    40,    41,    59,   123,   125,    36,    96,    34,    39,
00999       93
01000 };
01001 # endif
01002 
01003 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
01004 static const unsigned short int yyr1[] =
01005 {
01006        0,   161,   162,   164,   163,   163,   165,   165,   165,   165,
01007      165,   167,   166,   166,   168,   168,   168,   168,   169,   170,
01008      171,   172,   170,   173,   174,   170,   175,   176,   170,   177,
01009      178,   170,   179,   180,   181,   170,   182,   170,   170,   170,
01010      170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
01011      170,   170,   183,   184,   185,   170,   186,   187,   188,   170,
01012      189,   170,   170,   190,   191,   192,   193,   194,   170,   170,
01013      195,   195,   196,   196,   198,   199,   197,   200,   200,   201,
01014      202,   202,   203,   204,   205,   205,   207,   208,   206,   210,
01015      209,   211,   209,   212,   212,   213,   213,   213,   213,   213,
01016      213,   213,   213,   214,   214,   215,   215,   215,   215,   215,
01017      216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
01018      216,   216,   217,   217,   218,   218,   219,   219,   219,   219,
01019      220,   220,   221,   221,   222,   223,   223,   223,   223,   224,
01020      224,   225,   225,   225,   226,   226,   227,   228,   228,   229,
01021      229,   230,   230,   231,   231,   232,   232,   233,   233,   234,
01022      234,   235,   235,   236,   236,   237,   237,   237,   237,   238,
01023      239,   238,   240,   238,   241,   241,   242,   242,   243,   244,
01024      243,   245,   246,   245,   247,   247,   248,   248,   249,   249,
01025      250,   250,   250,   250,   250,   250,   250,   250,   251,   251,
01026      251,   252,   252,   253,   253,   253,   253,   253,   253,   254,
01027      254,   255,   255,   255,   256,   256,   256,   256,   257,   257,
01028      259,   258,   258,   258,   260,   260,   261,   261,   262,   262,
01029      263,   263,   264,   264,   264,   264,   264,   264,   265,   265,
01030      265,   265,   266,   266,   267,   267,   268,   268,   270,   269,
01031      269,   272,   271,   271,   271,   273,   271,   274,   271,   271,
01032      271,   271,   271,   271,   271,   271,   271,   271,   271,   271,
01033      271,   271,   271,   271,   271,   275,   271,   276,   271,   277,
01034      271,   278,   271,   271,   271,   271,   271,   271,   271,   271,
01035      271,   271,   271,   271,   271,   271,   271,   271,   271,   271,
01036      271,   271,   271,   271,   271,   271,   271,   271,   271,   279,
01037      280,   271,   271,   271,   271,   271,   271,   271,   271,   271,
01038      271,   281,   271,   271,   271,   271,   271,   283,   282,   284,
01039      282,   285,   282,   286,   282,   287,   288,   288,   290,   291,
01040      289,   289,   292,   292,   293,   294,   294,   294,   295,   295,
01041      296,   296,   296,   296,   296,   296,   296,   296,   297,   297,
01042      297,   297,   297,   297,   298,   299,   299,   299,   299,   299,
01043      299,   299,   300,   300,   301,   301,   302,   302,   302,   302,
01044      303,   303,   304,   306,   305,   308,   307,   310,   311,   309,
01045      309,   312,   312,   314,   313,   316,   315,   315,   317,   317,
01046      318,   319,   319,   320,   320,   320,   321,   321,   321,   322,
01047      322,   323,   323,   324,   325,   324,   326,   326,   326,   327,
01048      327,   328,   328,   329,   329,   330,   331,   330,   330,   332,
01049      332,   333,   333,   333,   333,   333,   333,   333,   333,   334,
01050      334,   334,   334,   334,   334,   334,   334,   334,   334,   334,
01051      334,   335,   336,   335,   335,   335,   335,   335,   337,   337,
01052      337,   338,   338,   338,   338,   338,   338,   338,   339,   340,
01053      339,   341
01054 };
01055 
01056 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
01057 static const unsigned char yyr2[] =
01058 {
01059        0,     2,     1,     0,     3,     0,     1,     1,     1,     4,
01060        5,     0,     3,     0,     1,     1,     1,     4,     1,     3,
01061        0,     0,     9,     0,     0,    12,     0,     0,     7,     0,
01062        0,     9,     0,     0,     0,    12,     0,     6,     2,     3,
01063        2,     3,     2,     3,     3,     3,     3,     3,     1,     2,
01064        3,     5,     0,     0,     0,    11,     0,     0,     0,    11,
01065        0,     6,     1,     0,     0,     0,     0,     0,    18,     3,
01066        1,     0,     1,     2,     0,     0,    10,     1,     3,     1,
01067        1,     3,     1,     1,     0,     1,     0,     0,    11,     0,
01068        8,     0,     7,     2,     0,     1,     3,     2,    10,     5,
01069        9,     8,     9,     0,     1,     3,     3,     3,     2,     1,
01070        1,     9,    12,     7,     4,     4,     6,     6,     4,     4,
01071        4,     2,     1,     1,     1,     1,     5,     7,     3,     5,
01072        7,     6,     3,     1,     2,     2,     2,     1,     1,     1,
01073        0,     1,     2,     2,     0,     2,     1,     0,     2,     0,
01074        2,     1,     3,     0,     2,     1,     2,     1,     4,     1,
01075        4,     1,     4,     3,     5,     3,     4,     4,     5,     0,
01076        0,     6,     0,     5,     1,     1,     1,     4,     0,     0,
01077        7,     0,     0,     8,     0,     2,     0,     3,     1,     0,
01078        2,     3,     5,     4,     4,     5,     7,     6,     0,     1,
01079        1,     1,     0,     1,     1,     2,     3,     3,     4,     3,
01080        1,     1,     2,     4,     3,     5,     1,     3,     2,     0,
01081        0,     4,     2,     8,     1,     3,     1,     1,     0,     1,
01082        1,     2,     1,     1,     1,     1,     1,     1,     3,     5,
01083        1,     3,     5,     4,     3,     1,     0,     1,     0,     4,
01084        1,     0,     7,     3,     4,     0,     7,     0,     4,     2,
01085        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
01086        3,     2,     2,     2,     2,     0,     4,     0,     4,     0,
01087        4,     0,     4,     3,     3,     3,     3,     3,     3,     3,
01088        3,     3,     3,     3,     3,     2,     2,     2,     2,     3,
01089        3,     3,     3,     3,     3,     3,     3,     3,     3,     0,
01090        0,     7,     1,     2,     2,     2,     2,     2,     2,     2,
01091        2,     0,     3,     1,     4,     3,     2,     0,     5,     0,
01092        7,     0,     7,     0,     5,     1,     1,     1,     0,     0,
01093        6,     1,     2,     0,     2,     0,     2,     3,     0,     3,
01094        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
01095        2,     2,     4,     1,     3,     1,     1,     1,     1,     3,
01096        3,     3,     0,     2,     0,     1,     5,     3,     3,     1,
01097        1,     1,     1,     0,     2,     0,     2,     0,     0,     7,
01098        1,     2,     0,     0,     4,     0,     4,     0,     1,     2,
01099        3,     1,     1,     1,     2,     1,     4,     4,     1,     1,
01100        4,     0,     1,     1,     0,     2,     4,     4,     1,     1,
01101        3,     1,     2,     3,     1,     1,     0,     5,     0,     0,
01102        2,     5,     3,     3,     1,     6,     4,     4,     2,     2,
01103        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01104        0,     1,     0,     5,     3,     3,     6,     3,     1,     1,
01105        1,     4,     4,     2,     2,     4,     2,     2,     1,     0,
01106        4,     3
01107 };
01108 
01109 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
01110    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
01111    means the default is an error.  */
01112 static const unsigned short int yydefact[] =
01113 {
01114        5,     0,     3,     1,     0,     0,     0,     0,     0,     0,
01115        0,     0,     0,     0,     0,   321,     0,     0,     0,     0,
01116        0,     0,     0,     0,     0,     0,     0,   345,     0,   350,
01117      351,   365,   366,   409,    48,   352,     0,    29,     0,     0,
01118        0,    60,     0,     0,     0,    86,     0,    63,     0,     0,
01119        0,     0,     0,     0,     0,     0,     0,     0,   141,   146,
01120        0,     0,   355,   356,   357,   353,   354,   450,     0,     0,
01121       62,    13,   421,   450,   450,   450,     4,     6,    18,     7,
01122        8,    82,    83,     0,     0,   381,   402,     0,   368,   323,
01123        0,   380,     0,   382,     0,   405,   390,   401,   403,   408,
01124        0,   312,   367,   467,   466,     0,   464,   463,   326,   295,
01125      296,   297,   298,     0,   319,   318,   317,   316,   315,   314,
01126      313,   335,     0,   274,   385,   272,   259,   336,     0,   257,
01127      337,   341,   403,     0,     0,   320,     0,   327,     0,   245,
01128        0,    26,   246,     0,     0,     0,    38,     0,    40,     0,
01129       84,    42,   381,     0,   382,     0,     0,    80,     0,     0,
01130      211,     0,     0,   210,   143,   142,   216,     0,     0,     0,
01131        0,     0,   251,   429,     0,     0,     0,    11,     0,     0,
01132        0,     0,   144,    91,     0,   279,     0,   281,   309,   275,
01133      277,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01134        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01135        0,    49,   273,   271,     0,     0,     0,     0,     0,     0,
01136        0,     0,     0,     0,     0,     0,   386,   333,   387,   411,
01137        0,   422,   404,     0,   322,     0,     0,   348,   338,   404,
01138      346,     0,     0,   202,     0,    47,     0,     0,     0,   247,
01139      250,   381,   382,     0,     0,    39,    41,    85,     0,    43,
01140       44,    13,    69,     0,    50,     0,   212,   382,     0,    45,
01141        0,     0,    46,     0,    77,    79,   468,     0,     0,     0,
01142      428,     0,   434,     0,   374,   445,   440,   451,   441,   443,
01143      444,   442,   449,   371,     0,     0,   447,   448,   446,   439,
01144       94,   308,    19,     0,     0,   325,   369,   370,     0,    89,
01145      147,   471,   400,   398,     0,     0,   283,     0,     0,     0,
01146        0,   284,   286,   285,   300,   299,   302,   301,   303,   305,
01147      306,   304,   294,   293,   288,   289,   287,   290,   291,   292,
01148      307,     0,   253,   270,   269,   268,   267,   266,   265,   264,
01149      263,   262,   261,   260,   202,     0,   412,     0,     0,   465,
01150        0,   400,   202,   258,     0,   347,    20,     0,     0,   201,
01151      381,   382,   244,     0,     0,    32,   248,     0,     0,     0,
01152        0,    36,    87,    11,    81,     0,   209,     0,     0,   359,
01153        0,   358,   217,   363,   214,     0,     0,   469,   461,   462,
01154        9,     0,   425,     0,   424,   438,   383,     0,   324,   375,
01155      430,   452,     0,   366,     0,     0,   228,     0,    12,    14,
01156       15,    16,   410,   335,   145,   149,     0,     0,   329,   331,
01157      399,   280,   282,     0,   276,   278,     0,   254,     0,   419,
01158        0,   414,   388,   413,   418,   406,   407,     0,   339,    23,
01159        0,   205,   328,     0,    30,    27,   246,     0,    57,    53,
01160        0,     0,     0,     0,     0,     0,   213,   360,   361,     0,
01161      372,     0,    78,    51,     0,   426,   428,     0,   384,     0,
01162      433,     0,   432,     0,   454,     0,   455,   457,     0,   232,
01163      233,   234,   237,   236,   235,   227,     0,     0,     0,     0,
01164       10,    93,     0,    95,   220,     0,   226,   230,     0,     0,
01165        0,     0,   148,   151,   219,   202,   202,   310,   255,   334,
01166        0,   415,   397,   411,     0,   349,   343,    13,    21,     0,
01167      381,   382,     0,     0,     0,   249,     0,     0,   163,     0,
01168       13,   161,    61,   169,   169,    37,   198,     0,   364,   379,
01169        0,   374,   215,   470,   428,   423,     0,   437,   436,     0,
01170      458,   460,   459,     0,     0,   137,   138,     0,   133,   140,
01171      103,     0,   103,     0,     0,    97,   138,     0,     0,     0,
01172       84,   231,     0,   222,     0,   150,   219,     0,   228,     0,
01173        0,     0,   348,   420,   395,   392,     0,     0,   340,    11,
01174      178,   208,     0,    13,   176,    28,    33,   153,     0,   153,
01175      155,     0,    11,   169,     0,   169,     0,   199,   200,     0,
01176      188,     0,    64,     0,   362,   375,   373,     0,   252,     0,
01177      431,   453,     0,     0,     0,     0,   139,   135,   136,   134,
01178      104,     0,     0,     0,     0,     0,     0,    96,     0,   240,
01179        0,     0,     0,    17,   228,   152,     0,    92,   218,   220,
01180        0,   330,   332,   311,   256,   202,   389,   416,   417,     0,
01181      342,   181,   184,     0,    11,   246,     0,     0,   156,     0,
01182      164,     0,     0,     0,     0,     0,     0,   165,     0,   198,
01183        0,   190,     0,   378,   377,   427,   435,   456,   243,   132,
01184        0,     0,     0,     0,     0,     0,     0,   110,     0,     0,
01185        0,     0,     0,     0,     0,     0,     0,     0,     0,   109,
01186        0,     0,   128,     0,     0,   221,   138,     0,     0,    90,
01187        0,    84,     0,     0,   391,   344,   186,     0,     0,    22,
01188       31,     0,     0,   154,    58,    54,   162,     0,   167,     0,
01189      174,   175,   172,   166,    13,     0,   191,     0,    65,     0,
01190        0,     0,     0,     0,   108,   121,     0,     0,     0,     0,
01191      228,     0,     0,     0,     0,     0,     0,     0,     0,    99,
01192        0,     0,     0,   241,   238,   198,     0,   242,     0,   396,
01193      393,     0,     0,     0,     0,   185,   177,    34,     0,     0,
01194      168,   170,    13,    11,     0,   194,     0,   193,     0,   376,
01195      131,     0,    13,     0,     0,     0,     0,     0,    84,   229,
01196        0,     0,     0,     0,     0,   107,   105,   106,     0,   126,
01197      129,     0,     0,     0,     0,   397,     0,    13,     0,     0,
01198        0,    13,   159,    59,    55,    13,    11,    88,   195,     0,
01199      192,     0,    13,    11,    13,     0,   114,   115,   120,     0,
01200      124,   125,     0,     0,     0,   118,   119,   130,     0,   239,
01201        0,   198,   394,     0,    11,    25,   179,    13,   157,    35,
01202       11,    11,     0,   197,    66,    11,   101,    11,   123,   122,
01203        0,     0,     0,     0,     0,   127,   224,    13,   223,     0,
01204        0,     0,    11,     0,   196,     0,   100,   102,     0,     0,
01205        0,   116,   117,    11,     0,   182,   180,     0,   160,    13,
01206      113,   140,     0,   225,    98,    13,   158,    11,     0,     0,
01207       11,    67,     0,   111,    71,     0,     0,    68,    70,    72,
01208        0,     0,    73,   112,    74,     0,     0,    75,     0,    13,
01209       11,    76
01210 };
01211 
01212 /* YYDEFGOTO[NTERM-NUM]. */
01213 static const short int yydefgoto[] =
01214 {
01215       -1,     1,     2,     4,    76,   177,   303,   418,   842,    78,
01216      450,   600,   527,   671,   247,   533,   140,   532,   456,   675,
01217      840,   463,   378,   537,   799,   377,   536,   798,   144,   155,
01218      692,   808,   905,   934,   937,   938,   939,   945,   948,   640,
01219      274,   159,    79,    80,   258,    81,   150,   464,    82,   425,
01220      310,   416,   501,   641,   718,   719,   890,   862,   577,   502,
01221      567,   568,   569,   639,    83,   309,    84,   427,   511,   512,
01222      677,   609,   879,   843,   542,   380,   545,   614,   845,   802,
01223      752,   605,   672,   901,   736,   925,   739,   793,   619,   620,
01224      621,   368,   369,   162,   163,   167,   588,   658,   579,   898,
01225      659,   660,   506,   507,   650,   508,   138,   248,   249,   457,
01226       85,   280,   592,   237,   319,   320,   315,   317,   318,   591,
01227      113,    86,   243,   515,   516,   354,    87,   129,   130,   364,
01228      526,   598,   670,   135,   363,    88,   392,   393,    89,   550,
01229      410,   551,    90,    91,   405,   478,    92,   226,    93,   355,
01230      522,   666,   734,   835,   595,   665,    94,    95,    96,    97,
01231       98,    99,   357,   442,   521,   443,   444,   100,   403,   404,
01232      554,   283,   284,   174,   299,   483,   563,   101,   277,   474,
01233      102
01234 };
01235 
01236 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
01237    STATE-NUM.  */
01238 #define YYPACT_NINF -819
01239 static const short int yypact[] =
01240 {
01241     -819,    61,   104,  -819,   869,  3186,  3186,   -36,  3186,  3186,
01242     3186,  3186,  3186,  3186,  3186,  -819,  3186,  3186,  3186,  3186,
01243     3186,  3186,  3186,   227,   227,  3186,   228,    -7,   117,  -819,
01244     -819,   175,  -819,  -819,  -819,  -819,  3186,  -819,   173,   182,
01245      184,  -819,   192,  1751,  1877,  -819,  2003,  -819,  3186,   -15,
01246       -5,    53,   237,   292,   229,   265,   271,   276,  -819,  -819,
01247      278,   286,  -819,  -819,  -819,  -819,  -819,  -819,   367,  3186,
01248     -819,  -819,   287,  -819,  -819,  -819,  -819,  -819,  -819,  -819,
01249     -819,  -819,  -819,   369,   377,  -819,  -819,   310,  -819,  -819,
01250     3116,  -819,    31,  2216,   301,  -819,   334,  -819,   -12,  -819,
01251      231,  -819,  -819,  4090,  4090,  3186,  4090,  4090,  4153,   372,
01252      372,   406,  -819,  3186,  -819,  -819,  -819,  -819,  -819,  -819,
01253     -819,   312,   322,  -819,  -819,  -819,  -819,   344,   373,  -819,
01254     -819,   353,   198,   231,  2129,  -819,  3186,  -819,     5,  4090,
01255     1625,  -819,  3186,  3186,   364,  3186,  -819,  3243,  -819,  3447,
01256      489,  -819,   375,  4090,   730,   376,  3488,  -819,   442,   379,
01257     -819,   194,    10,  -819,  -819,  -819,   523,    13,   227,   227,
01258      227,   387,  -819,  2262,   513,   390,  3529,   386,  3186,   644,
01259      732,  3896,   427,  -819,   238,  -819,  3186,  -819,  -819,  -819,
01260     -819,  3186,  3186,  3186,  3186,  3186,  3186,  3186,  3186,  3186,
01261     3186,  3186,  3186,  3186,  3186,  3186,  3186,  3186,  3186,  3186,
01262      228,  -819,  -819,  -819,  2395,  3186,  3186,  3186,  3186,  3186,
01263     3186,  3186,  3186,  3186,  3186,  3186,  -819,  -819,  -819,  3186,
01264     3186,   287,   225,  3574,  -819,   239,   242,   395,  -819,   198,
01265     -819,  3615,  3657,  2528,  3186,  -819,   466,  3186,   397,   547,
01266     4090,   469,  2202,   485,  3700,  -819,  -819,  -819,   490,  -819,
01267     -819,  -819,  -819,   408,  -819,  3186,  -819,  -819,    -5,  -819,
01268      354,   492,  -819,     8,  -819,  -819,  -819,    43,   421,   423,
01269      203,   227,  3909,   425,   571,  -819,  -819,    11,  -819,  -819,
01270     -819,  -819,  -819,  -819,  3312,   227,  -819,  -819,  -819,  -819,
01271     -819,  -819,  -819,   995,  2059,  -819,  -819,  -819,   509,  -819,
01272      463,   431,   432,   198,   231,  3186,  3375,  3186,  3186,  3186,
01273     3186,  4239,  4258,  4276,  4294,  4294,  4294,  4294,  1602,  1602,
01274     1602,  1602,   772,   772,   372,   372,   372,   406,   406,   406,
01275     -819,   219,  4153,  4153,  4153,  4153,  4153,  4153,  4153,  4153,
01276     4153,  4153,  4153,  4153,  2528,   210,  4090,   433,  2318,  -819,
01277      431,  -819,  2528,  -819,   210,  -819,   568,   227,   443,   589,
01278       44,   478,  4090,   447,  3741,  -819,  -819,   510,   512,   591,
01279       46,  -819,  -819,   453,  -819,  2451,  -819,   354,   354,   468,
01280      460,  -819,  -819,  -819,   599,   227,   470,  -819,  -819,  -819,
01281     -819,   462,  -819,    48,  -819,  -819,  -819,  2661,  -819,  2794,
01282     -819,  -819,   553,   565,  2584,   472,   -25,   480,  -819,  -819,
01283     -819,  -819,  -819,  -819,  -819,   515,   509,   475,  -819,  -819,
01284      198,  4130,  4153,  4049,  4198,  4219,   228,  -819,   483,  -819,
01285     3186,  -819,  -819,   232,  -819,  -819,  -819,   488,  -819,  -819,
01286     1625,  -819,  -819,  2927,  -819,  -819,  3186,  3186,  -819,  -819,
01287      354,   561,  1121,   -11,   491,   543,  -819,  -819,  -819,   574,
01288      354,   354,  -819,  -819,   227,  -819,   203,   633,  -819,   227,
01289     4090,   227,  3952,   333,  -819,  3186,  -819,  -819,    34,  -819,
01290     -819,  -819,  -819,  -819,  -819,  -819,   503,   504,   505,   588,
01291     -819,  -819,    35,  -819,    55,   564,   461,  -819,    37,   519,
01292      509,   508,   656,  -819,  -819,  2528,  2528,  -819,  -819,  -819,
01293     2717,  -819,   528,  3186,  3186,  -819,  -819,  -819,  -819,   227,
01294       49,  1957,  3186,  1247,   527,  4090,   227,    16,  -819,   668,
01295     -819,  -819,  -819,   529,   530,  -819,   204,   534,  -819,   566,
01296      538,   684,  -819,  -819,   203,  -819,  3186,  -819,  -819,  3060,
01297     -819,  -819,  -819,   533,  1807,  -819,   682,     2,  -819,   343,
01298      227,   544,   227,   671,    55,  -819,  -819,    38,    18,   628,
01299      489,  -819,   631,  -819,   551,   656,  -819,   509,     1,   554,
01300      555,  3186,   395,  -819,  -819,  -819,   548,  2850,   590,   368,
01301     -819,  -819,  3783,  -819,  -819,  -819,  -819,   592,   227,   592,
01302     -819,   354,   620,  -819,   396,  -819,     4,  -819,  -819,   560,
01303      706,    62,  -819,   354,  -819,   354,  -819,    50,  4153,   227,
01304     4090,  -819,   569,   354,    55,   648,  -819,  -819,  -819,  -819,
01305      715,   573,   700,   576,   319,    42,    55,  -819,   657,   718,
01306       40,    77,   720,  -819,   511,  -819,   665,  -819,  -819,  -819,
01307      642,  -819,  -819,  4176,  -819,  2528,   621,  -819,  -819,   210,
01308     -819,  -819,   222,   587,   672,  3186,    16,   604,  -819,   606,
01309     -819,   608,   417,   609,  3186,   111,   284,  -819,   605,    -2,
01310      690,   752,   509,  -819,   645,  -819,  -819,  -819,  -819,  -819,
01311      754,   742,   319,   743,   319,    55,   624,  -819,   625,   626,
01312      629,   641,   643,   649,   651,   661,   673,   319,   101,  -819,
01313      701,    68,   766,   354,   722,  -819,   674,    70,   354,  -819,
01314      682,   489,   655,   210,  -819,  -819,   230,   675,  1625,  -819,
01315     -819,   669,   676,  -819,  -819,  -819,  -819,   670,  -819,  2983,
01316     -819,  -819,  -819,  -819,  -819,   248,   816,   354,  -819,   354,
01317      354,   319,   106,   319,  -819,  -819,    55,    55,    55,   751,
01318      678,    55,    55,    55,    55,    55,    32,   319,   319,  -819,
01319      818,   759,   354,  -819,   820,   204,   763,  -819,   764,  -819,
01320     -819,   685,   811,   771,  3186,  -819,  -819,  -819,  1373,  1373,
01321     -819,  -819,  -819,   686,   770,   831,   354,  -819,   773,  -819,
01322     -819,   140,  -819,   148,   696,    94,    95,   697,   489,   678,
01323      -19,   235,   235,   698,   699,  -819,   825,  -819,   354,   835,
01324     -819,   354,   702,   705,   674,   528,  3186,  -819,   704,  3826,
01325     1499,  -819,  -819,  -819,  -819,  -819,   316,  -819,   845,   354,
01326     -819,   707,  -819,   709,  -819,    26,  -819,  -819,  -819,    55,
01327     -819,  -819,    55,    55,    55,  -819,  -819,  -819,   354,  -819,
01328      187,   204,  -819,  3867,   792,  -819,  -819,  -819,  -819,  -819,
01329      774,   352,   354,  -819,  -819,   710,  -819,   711,  -819,  -819,
01330      716,   224,   206,    25,   216,  -819,  -819,  -819,  -819,   719,
01331      836,  1625,   782,   724,  -819,   725,  -819,  -819,   726,    55,
01332       26,  -819,  -819,   729,   187,  -819,  -819,   727,  -819,  -819,
01333     -819,   343,   733,  -819,  -819,  -819,  -819,   734,   737,   739,
01334      451,  -819,    26,  -819,   793,   741,   744,  -819,   793,  -819,
01335      745,   509,  -819,  -819,  -819,   826,   746,  -819,   748,  -819,
01336      749,  -819
01337 };
01338 
01339 /* YYPGOTO[NTERM-NUM].  */
01340 static const short int yypgoto[] =
01341 {
01342     -819,  -819,  -819,  -819,  -819,  -249,  -819,  -819,     0,  -819,
01343     -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,
01344     -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,
01345     -819,  -819,  -819,  -819,  -819,  -819,   -38,  -819,  -819,   735,
01346      514,  -819,   602,   603,  -566,  -819,  -819,  -819,  -819,  -819,
01347     -819,  -819,  -819,   335,  -103,  -819,  -818,  -493,  -819,  -819,
01348     -497,  -592,  -517,   -13,  -819,  -819,  -819,  -819,  -819,   400,
01349      304,   240,  -819,   115,  -819,  -819,  -819,  -222,  -819,  -819,
01350      166,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -719,  -819,
01351      241,  -345,  -819,  -819,   667,  -819,   350,   521,  -819,    29,
01352      531,  -408,   176,  -500,  -819,  -819,  -819,  -422,  -819,  -819,
01353        7,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,  -819,
01354     -819,  -819,  -819,  -819,  -819,  -819,   -23,  -191,  -819,  -819,
01355     -819,  -819,  -819,  -819,   360,   -71,    14,  -819,  -819,  -819,
01356      394,  -819,    19,   795,  -356,  -819,   388,  -819,   162,  -819,
01357     -819,  -819,  -819,  -819,   119,  -819,  -161,  -819,  -819,   -21,
01358       -6,  -819,   435,  -362,  -819,  -819,  -819,    -4,   405,   486,
01359     -819,  -819,  -819,   452,  -819,  -819,  -819,  -819,  -819,  -819,
01360     -819
01361 };
01362 
01363 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
01364    positive, shift that token.  If negative, reduce the rule which
01365    number is the opposite.  If zero, do what YYDEFACT says.
01366    If YYTABLE_NINF, syntax error.  */
01367 #define YYTABLE_NINF -400
01368 static const short int yytable[] =
01369 {
01370      122,   122,   448,   128,    77,   131,   581,   578,   505,   438,
01371      634,   451,   383,   244,   651,   543,   395,   447,   268,   340,
01372      132,   271,   133,   312,   103,   104,   634,   106,   107,   108,
01373      109,   110,   111,   112,   534,   114,   115,   116,   117,   118,
01374      119,   120,   699,   574,   126,   582,   646,   608,   724,   229,
01375      634,   397,  -203,   152,   461,   139,   476,  -206,   476,   777,
01376      778,     3,   147,   149,   157,   153,   832,   156,   160,   617,
01377      637,   888,   411,   488,   312,   361,   634,   645,   634,   565,
01378      489,   490,   491,   492,   493,   494,   495,   121,   176,    33,
01379      212,   213,   922,   690,   232,   889,   638,   684,   685,   656,
01380      565,   860,   634,   634,    -2,   566,   489,   490,   491,   492,
01381      493,   494,   495,   765,   935,   105,   496,   497,   498,   499,
01382      861,   618,   565,   557,   233,   558,   576,   239,   777,   778,
01383      500,   412,   234,   777,   778,   691,   158,   750,   122,  -398,
01384      246,   635,   230,   544,   134,   122,   122,   122,   726,   721,
01385      251,   161,   899,   241,   727,   242,   657,   648,   245,   687,
01386      396,   250,   153,   269,   254,   788,   272,   777,   778,   164,
01387      589,   590,    72,   601,   814,   777,   778,   911,   313,   820,
01388      314,   720,   823,   824,   825,   124,   124,   128,   575,   131,
01389      583,   647,   282,   725,   441,   398,  -203,   304,   462,   391,
01390      477,  -206,   695,   441,   132,   316,   133,   781,   154,   786,
01391      321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
01392      331,   332,   333,   334,   335,   336,   337,   338,   339,   313,
01393      313,   314,   314,   342,   343,   344,   345,   346,   347,   348,
01394      349,   350,   351,   352,   353,   518,   856,   857,   356,   358,
01395      370,   637,   859,   742,   779,   821,   822,   122,   122,   229,
01396      812,   637,   153,   372,   751,   121,   374,    33,   136,   637,
01397      815,   816,   122,   696,   121,   617,    33,   638,   599,   804,
01398      637,   439,   436,    33,   385,   424,   229,   638,   737,   738,
01399      121,   612,    33,   523,   852,   638,   791,   792,   121,   127,
01400       33,    33,   854,   419,    33,   252,   638,   735,   430,   311,
01401      360,    33,    33,   414,  -335,    33,   391,   391,   122,   581,
01402      732,   805,   616,   267,   141,   401,   137,   618,   863,   864,
01403      275,   276,   278,   142,   431,   143,   432,   433,   434,   435,
01404      896,   897,   891,   145,   122,   892,   893,   894,   265,   313,
01405       72,   314,   230,   165,   674,   860,  -189,   910,   313,    72,
01406      314,   370,   818,   909,   440,   166,    72,   704,   912,   370,
01407      705,   790,   122,   153,   861,    72,  -399,   684,   685,   230,
01408      168,   153,   706,    72,    72,   636,   524,   231,   637,   391,
01409      707,   682,   921,   686,    72,    72,   387,   388,    72,   391,
01410      391,   467,   468,   513,   560,   371,   561,   562,  -173,  -173,
01411     -173,   123,   125,   128,   638,   131,   169,   207,   208,   209,
01412      708,   210,   170,    29,    30,   389,   480,   171,   482,   172,
01413      132,   709,   133,    35,   -24,   -24,   -24,   173,   175,   753,
01414      182,   178,   402,   406,  -171,  -171,  -171,   710,   183,   184,
01415      528,   122,   227,   122,   228,   210,   122,   415,   122,   520,
01416      530,   235,   541,   137,   711,   712,   713,   714,   715,   716,
01417      717,  -173,   153,   238,   538,   250,   535,   390,    62,    63,
01418       64,    65,    66,  -335,   549,   552,  -204,   513,   683,   684,
01419      685,   214,   215,   216,   217,   218,   219,   220,   221,   222,
01420      223,   224,   225,   437,   564,   803,   122,  -171,   441,   747,
01421      684,   685,   236,   122,   122,   253,   371,  -183,  -183,  -183,
01422      257,   263,   370,   370,   371,   179,   180,   181,   259,   406,
01423      261,   122,   264,   604,   153,   153,   270,  -385,  -385,   279,
01424      391,   302,   356,   597,   300,   308,   362,   122,   373,   122,
01425      375,   602,   391,   846,   391,   376,   379,   275,  -229,   -56,
01426      384,   382,   391,   853,   655,   394,   489,   490,   491,   492,
01427      493,   494,   441,   399,   285,   628,   400,   408,   630,   409,
01428      423,   426,   428,   429,   286,   122,   287,   288,   874,   289,
01429      290,   291,   880,   445,   449,   452,   881,   453,   454,   762,
01430      458,   764,   459,   885,   460,   887,   122,   469,   465,   656,
01431      663,   470,   471,   475,   776,   531,   489,   490,   491,   492,
01432      493,   494,   495,   473,   484,   680,   485,   487,   902,   514,
01433     -204,   509,   539,   292,   510,   519,   553,   693,   402,   694,
01434      525,   406,   546,   406,   547,   548,   556,   698,   913,   293,
01435      294,   295,   391,   122,   570,   571,   572,   391,   811,   573,
01436      813,   580,   586,   313,   587,   314,   729,   296,   297,   758,
01437      927,   584,   370,   298,   826,   827,   930,   371,   371,   594,
01438      606,   611,   613,   615,   153,   622,   391,   623,   391,   391,
01439      624,   406,   625,   631,   250,   633,   642,   644,   607,   610,
01440      950,   649,   652,   749,   653,   285,   661,   662,   667,   681,
01441      669,   391,   688,   676,   689,   286,   402,   287,   288,   700,
01442      289,   290,   291,   395,   697,   701,   702,   313,   703,   314,
01443      722,   723,   275,   728,   275,   391,   730,   783,   795,   731,
01444      740,   733,   787,   214,   215,   216,   217,   218,   219,   220,
01445      221,   222,   223,   224,   225,   741,   744,   391,   745,   754,
01446      391,   746,   748,   756,   292,   757,   759,   760,   761,   763,
01447      678,   807,   780,   809,   810,   766,   767,   768,   391,   782,
01448      769,   294,   295,   489,   490,   491,   492,   493,   494,  -385,
01449     -385,   406,   770,   285,   771,   784,   830,   391,   296,   297,
01450      772,   305,   773,   286,   298,   287,   288,   789,   289,   290,
01451      291,   391,   774,   839,   204,   205,   206,   207,   208,   209,
01452      850,   210,   796,   800,   775,   785,   794,   371,   797,   806,
01453      817,   828,   829,   831,   833,   834,   836,   837,   610,   838,
01454      878,   847,   867,   848,   849,   869,   851,   855,   868,   858,
01455      865,   866,   292,   778,   870,   873,   871,   875,   882,   884,
01456     -187,   903,   915,   883,   886,   906,   907,   917,   908,   294,
01457      295,   914,     5,     6,     7,     8,     9,   918,   920,   919,
01458      926,    10,   895,   260,   923,   929,   296,   297,   932,   931,
01459      306,   933,   298,   940,   936,   941,   904,   943,   947,   946,
01460      942,   916,   949,   273,   951,   420,   421,   643,   928,   472,
01461      585,    11,    12,   679,   844,   801,   743,    13,   944,    14,
01462       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
01463      755,    25,    26,    27,    28,   386,   654,   503,    29,    30,
01464       31,    32,    33,   924,    34,   626,   819,   504,    35,    36,
01465       37,    38,   664,    39,   872,    40,   266,    41,   596,   627,
01466       42,     0,   555,     0,    43,    44,    45,     0,    46,    47,
01467        0,    48,    49,    50,     0,     0,     0,    51,    52,    53,
01468        0,    54,    55,    56,    57,    58,    59,     0,     0,     0,
01469        0,    60,    61,    62,    63,    64,    65,    66,     5,     6,
01470        7,     8,     9,     0,    67,     0,     0,    10,     0,    68,
01471        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01472       69,     0,    70,    71,     0,    72,    73,    74,    75,     0,
01473        0,     0,     0,     0,     0,     0,     0,    11,    12,     0,
01474        0,     0,     0,    13,     0,    14,    15,    16,    17,    18,
01475       19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
01476       28,     0,     0,     0,    29,    30,    31,    32,    33,     0,
01477       34,     0,     0,     0,    35,    36,    37,    38,     0,    39,
01478        0,    40,     0,    41,     0,     0,    42,     0,     0,     0,
01479       43,    44,    45,     0,    46,    47,     0,    48,    49,    50,
01480        0,     0,     0,    51,    52,    53,     0,    54,    55,    56,
01481      417,    58,    59,     0,     0,     0,     0,    60,    61,    62,
01482       63,    64,    65,    66,     5,     6,     7,     8,     9,     0,
01483       67,     0,     0,    10,     0,     0,     0,     0,     0,     0,
01484        0,     0,     0,     0,     0,     0,    69,   540,    70,    71,
01485        0,    72,    73,    74,    75,     0,     0,     0,     0,     0,
01486        0,     0,     0,    11,    12,     0,     0,     0,     0,    13,
01487        0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
01488       23,    24,     0,    25,    26,    27,    28,     0,     0,     0,
01489       29,    30,    31,    32,    33,     0,    34,     0,     0,     0,
01490       35,    36,    37,    38,     0,    39,     0,    40,     0,    41,
01491        0,     0,    42,     0,     0,     0,    43,    44,     0,     0,
01492       46,    47,     0,    48,    49,    50,     0,     0,     0,     0,
01493        0,    53,     0,    54,    55,    56,     0,     0,     0,     0,
01494        0,     0,     0,    60,    61,    62,    63,    64,    65,    66,
01495        5,     6,     7,     8,     9,     0,    67,     0,     0,    10,
01496        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01497        0,     0,    69,   603,    70,    71,     0,    72,    73,    74,
01498       75,     0,     0,     0,     0,     0,     0,     0,     0,    11,
01499       12,     0,     0,     0,     0,    13,     0,    14,    15,    16,
01500       17,    18,    19,    20,    21,    22,    23,    24,     0,    25,
01501       26,    27,    28,     0,     0,     0,    29,    30,    31,    32,
01502       33,     0,    34,     0,     0,     0,    35,    36,    37,    38,
01503        0,    39,     0,    40,     0,    41,     0,     0,    42,     0,
01504        0,     0,    43,    44,     0,     0,    46,    47,     0,    48,
01505       49,    50,     0,     0,     0,     0,     0,    53,     0,    54,
01506       55,    56,     0,     0,     0,     0,     0,     0,     0,    60,
01507       61,    62,    63,    64,    65,    66,     5,     6,     7,     8,
01508        9,     0,    67,     0,     0,    10,     0,     0,     0,     0,
01509        0,     0,     0,     0,     0,     0,     0,     0,    69,   841,
01510       70,    71,     0,    72,    73,    74,    75,     0,     0,     0,
01511        0,     0,     0,     0,     0,    11,    12,     0,     0,     0,
01512        0,    13,     0,    14,    15,    16,    17,    18,    19,    20,
01513       21,    22,    23,    24,     0,    25,    26,    27,    28,     0,
01514        0,     0,    29,    30,    31,    32,    33,     0,    34,     0,
01515        0,     0,    35,    36,    37,    38,     0,    39,     0,    40,
01516        0,    41,     0,     0,    42,     0,     0,     0,    43,    44,
01517        0,     0,    46,    47,     0,    48,    49,    50,     0,     0,
01518        0,     0,     0,    53,     0,    54,    55,    56,     0,     0,
01519        0,     0,     0,     0,     0,    60,    61,    62,    63,    64,
01520       65,    66,     5,     6,     7,     8,     9,     0,    67,     0,
01521        0,    10,     0,     0,     0,     0,     0,     0,     0,     0,
01522        0,     0,     0,     0,    69,   877,    70,    71,     0,    72,
01523       73,    74,    75,     0,     0,     0,     0,     0,     0,     0,
01524        0,    11,    12,     0,     0,     0,     0,    13,     0,    14,
01525       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
01526        0,    25,    26,    27,    28,     0,     0,     0,    29,    30,
01527       31,    32,    33,     0,    34,     0,     0,     0,    35,    36,
01528       37,    38,     0,    39,     0,    40,     0,    41,     0,     0,
01529       42,     0,     0,     0,    43,    44,     0,     0,    46,    47,
01530        0,    48,    49,    50,     0,     0,     0,     0,     0,    53,
01531        0,    54,    55,    56,     0,     0,     0,     0,     0,     0,
01532        0,    60,    61,    62,    63,    64,    65,    66,     5,     6,
01533        7,     8,     9,     0,    67,     0,     0,    10,  -400,  -400,
01534     -400,  -400,   202,   203,   204,   205,   206,   207,   208,   209,
01535       69,   210,    70,    71,     0,    72,    73,    74,    75,     0,
01536        0,     0,     0,     0,     0,     0,     0,    11,    12,     0,
01537        0,     0,     0,    13,     0,    14,    15,    16,    17,    18,
01538       19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
01539       28,     0,     0,     0,    29,    30,    31,    32,    33,     0,
01540       34,     0,     0,     0,    35,    36,    37,    38,     0,    39,
01541        0,    40,     0,    41,     0,     0,    42,     0,     0,     0,
01542       43,    44,     0,     0,    46,    47,     0,    48,    49,    50,
01543        0,     0,     0,     0,     0,    53,     0,    54,    55,    56,
01544        0,     0,     0,     0,     0,     0,     0,    60,    61,    62,
01545       63,    64,    65,    66,     5,     6,     7,     8,     9,     0,
01546       67,     0,     0,    10,     0,     0,     0,     0,     0,     0,
01547        0,     0,     0,     0,     0,     0,    69,     0,    70,    71,
01548        0,    72,    73,    74,    75,     0,     0,     0,     0,     0,
01549        0,     0,     0,    11,    12,     0,     0,     0,     0,    13,
01550        0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
01551       23,    24,     0,    25,    26,    27,   185,   186,   187,     0,
01552       29,    30,    31,    32,    33,     0,     0,     0,     0,     0,
01553       35,     0,   188,     0,   189,   190,   191,   192,   193,   194,
01554      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01555      205,   206,   207,   208,   209,     0,   210,     0,     0,     0,
01556        0,     0,     0,     0,    55,    56,     0,     0,     0,     0,
01557        0,     0,     0,    60,    61,    62,    63,    64,    65,    66,
01558        5,     6,     7,     8,     9,     0,    67,     0,     0,    10,
01559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01560        0,     0,    69,     0,   146,     0,     0,    72,    73,    74,
01561       75,     0,     0,     0,     0,     0,     0,     0,     0,    11,
01562       12,     0,     0,     0,     0,    13,     0,    14,    15,    16,
01563       17,    18,    19,    20,    21,    22,    23,    24,     0,    25,
01564       26,    27,     0,     0,     0,     0,    29,    30,    31,    32,
01565       33,     0,     0,     0,     0,     0,    35,     0,     0,     0,
01566        0,     0,     0,     0,     0,  -207,     0,   632,     0,     0,
01567      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
01568      224,   225,     0,     0,     0,     0,     0,     0,     0,     0,
01569       55,    56,     0,     0,     0,     0,     0,     0,     0,    60,
01570       61,    62,    63,    64,    65,    66,     5,     6,     7,     8,
01571        9,     0,    67,     0,     0,    10,  -385,  -385,     0,     0,
01572        0,     0,     0,     0,     0,     0,     0,     0,    69,     0,
01573      148,     0,     0,    72,    73,    74,    75,     0,     0,     0,
01574        0,     0,     0,     0,     0,    11,    12,     0,     0,     0,
01575        0,    13,     0,    14,    15,    16,    17,    18,    19,    20,
01576       21,    22,    23,    24,     0,    25,    26,    27,   185,   186,
01577      187,     0,    29,    30,    31,    32,    33,     0,     0,     0,
01578        0,     0,    35,     0,   188,     0,   189,   190,   191,   192,
01579      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
01580      203,   204,   205,   206,   207,   208,   209,     0,   210,  -207,
01581        0,     0,     0,     0,     0,     0,    55,    56,     0,     0,
01582        0,     0,     0,     0,     0,    60,    61,    62,    63,    64,
01583       65,    66,     5,     6,     7,     8,     9,     0,    67,     0,
01584        0,    10,     0,     0,     0,     0,     0,     0,     0,     0,
01585        0,     0,     0,     0,    69,     0,   151,     0,     0,    72,
01586       73,    74,    75,     0,     0,     0,     0,     0,     0,     0,
01587        0,    11,    12,     0,     0,     0,     0,    13,     0,    14,
01588       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
01589        0,    25,    26,    27,     0,     0,     0,     0,    29,    30,
01590       31,    32,    33,     0,     0,     0,     0,     0,    35,     0,
01591        0,     0,     0,     0,   422,   214,   215,   216,   217,   218,
01592      219,   220,   221,   222,   223,   224,   225,     0,     0,   214,
01593      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
01594      225,     0,    55,    56,     0,     0,     0,     0,     0,     0,
01595        0,    60,    61,    62,    63,    64,    65,    66,     0,     0,
01596        0,  -385,  -385,     0,    67,     5,     6,     7,     8,     9,
01597        0,     0,     0,     0,    10,  -385,  -385,     0,     0,     0,
01598       69,   240,     0,     0,     0,    72,    73,    74,    75,     0,
01599        0,     0,   -52,   281,     0,     0,     0,     0,     0,     0,
01600        0,     0,     0,     0,    11,    12,     0,     0,     0,     0,
01601       13,     0,    14,    15,    16,    17,    18,    19,    20,    21,
01602       22,    23,    24,     0,    25,    26,    27,   185,   186,   187,
01603        0,    29,    30,    31,    32,    33,     0,     0,     0,     0,
01604        0,    35,     0,   188,     0,   189,   190,   191,   192,   193,
01605      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
01606      204,   205,   206,   207,   208,   209,     0,   210,     0,     0,
01607        0,     0,     0,     0,     0,    55,    56,     0,     0,     0,
01608        0,     0,     0,     0,    60,    61,    62,    63,    64,    65,
01609       66,     0,     0,     0,     0,     0,     0,    67,     5,     6,
01610        7,     8,     9,     0,     0,     0,     0,    10,     0,     0,
01611        0,     0,     0,    69,     0,     0,     0,     0,    72,    73,
01612       74,    75,     0,     0,     0,     0,   341,     0,     0,     0,
01613        0,     0,     0,     0,     0,     0,     0,    11,    12,     0,
01614        0,     0,     0,    13,     0,    14,    15,    16,    17,    18,
01615       19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
01616      185,   186,   187,     0,    29,    30,    31,    32,    33,     0,
01617        0,     0,     0,   446,    35,     0,   188,     0,   189,   190,
01618      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
01619      201,   202,   203,   204,   205,   206,   207,   208,   209,     0,
01620      210,     0,     0,     0,     0,     0,     0,     0,    55,    56,
01621        0,     0,     0,     0,     0,     0,     0,    60,    61,    62,
01622       63,    64,    65,    66,     0,     0,     0,     0,     0,     0,
01623       67,     5,     6,     7,     8,     9,     0,     0,     0,     0,
01624       10,     0,     0,     0,     0,     0,    69,     0,     0,     0,
01625        0,    72,    73,    74,    75,     0,     0,     0,     0,   367,
01626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01627       11,    12,     0,     0,     0,     0,    13,     0,    14,    15,
01628       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
01629       25,    26,    27,   185,   186,   187,     0,    29,    30,    31,
01630       32,    33,     0,     0,     0,     0,   466,    35,     0,   188,
01631        0,   189,   190,   191,   192,   193,   194,   195,   196,   197,
01632      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
01633      208,   209,     0,   210,     0,     0,     0,     0,     0,     0,
01634        0,    55,    56,     0,     0,     0,     0,     0,     0,     0,
01635       60,    61,    62,    63,    64,    65,    66,     0,     0,     0,
01636        0,     0,     0,    67,     5,     6,     7,     8,     9,     0,
01637        0,     0,     0,    10,     0,     0,     0,     0,     0,    69,
01638        0,     0,     0,     0,    72,    73,    74,    75,     0,     0,
01639        0,     0,   479,     0,     0,     0,     0,     0,     0,     0,
01640        0,     0,     0,    11,    12,     0,     0,     0,     0,    13,
01641        0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
01642       23,    24,     0,    25,    26,    27,   185,   186,   187,     0,
01643       29,    30,    31,    32,    33,     0,     0,     0,     0,   486,
01644       35,     0,   188,     0,   189,   190,   191,   192,   193,   194,
01645      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01646      205,   206,   207,   208,   209,     0,   210,     0,     0,     0,
01647        0,     0,     0,     0,    55,    56,     0,     0,     0,     0,
01648        0,     0,     0,    60,    61,    62,    63,    64,    65,    66,
01649        0,     0,     0,     0,     0,     0,    67,     5,     6,     7,
01650        8,     9,     0,     0,     0,     0,    10,     0,     0,     0,
01651        0,     0,    69,     0,     0,     0,     0,    72,    73,    74,
01652       75,     0,     0,     0,     0,   481,     0,     0,     0,     0,
01653        0,     0,     0,     0,     0,     0,    11,    12,     0,     0,
01654        0,     0,    13,     0,    14,    15,    16,    17,    18,    19,
01655       20,    21,    22,    23,    24,     0,    25,    26,    27,   185,
01656      186,   187,     0,    29,    30,    31,    32,    33,     0,     0,
01657        0,     0,   593,    35,     0,   188,     0,   189,   190,   191,
01658      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
01659      202,   203,   204,   205,   206,   207,   208,   209,     0,   210,
01660        0,     0,     0,     0,     0,     0,     0,    55,    56,     0,
01661        0,     0,     0,     0,     0,     0,    60,    61,    62,    63,
01662       64,    65,    66,     0,     0,     0,     0,     0,     0,    67,
01663        5,     6,     7,     8,     9,     0,     0,     0,     0,    10,
01664        0,     0,     0,     0,     0,    69,     0,     0,     0,     0,
01665       72,    73,    74,    75,     0,     0,     0,     0,   529,     0,
01666        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
01667       12,     0,     0,     0,     0,    13,     0,    14,    15,    16,
01668       17,    18,    19,    20,    21,    22,    23,    24,     0,    25,
01669       26,    27,   185,   186,   187,     0,    29,    30,    31,    32,
01670       33,     0,     0,     0,     0,   668,    35,     0,   188,   750,
01671      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
01672      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
01673      209,     0,   210,     0,     0,     0,     0,     0,     0,     0,
01674       55,    56,     0,     0,     0,     0,     0,     0,     0,    60,
01675       61,    62,    63,    64,    65,    66,     0,     0,     0,     0,
01676        0,     0,    67,     5,     6,     7,     8,     9,     0,     0,
01677        0,     0,    10,     0,     0,     0,     0,     0,    69,     0,
01678        0,     0,     0,    72,    73,    74,    75,     0,     0,     0,
01679        0,   629,     0,     0,     0,     0,     0,     0,     0,     0,
01680        0,     0,    11,    12,     0,     0,     0,     0,    13,     0,
01681       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
01682       24,     0,    25,    26,    27,   185,   186,   187,     0,    29,
01683       30,    31,    32,    33,     0,     0,   751,     0,     0,    35,
01684        0,   188,     0,   189,   190,   191,   192,   193,   194,   195,
01685      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
01686      206,   207,   208,   209,     0,   210,     0,     0,     0,     0,
01687        0,     0,     0,    55,    56,     0,     0,     0,     0,     0,
01688        0,     0,    60,    61,    62,    63,    64,    65,    66,     5,
01689        6,     7,     8,     9,     0,    67,     0,     0,    10,     0,
01690        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01691        0,    69,     0,     0,     0,     0,    72,    73,    74,    75,
01692        0,     0,     0,     0,     0,     0,     0,     0,    11,    12,
01693        0,     0,     0,     0,    13,     0,    14,    15,    16,    17,
01694       18,    19,    20,    21,    22,    23,    24,     0,    25,    26,
01695       27,     0,   185,   186,   187,    29,    30,    31,    32,    33,
01696        0,     0,     0,     0,     0,    35,     0,     0,   188,   211,
01697      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
01698      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
01699      209,     0,   210,     0,     0,     0,     0,     0,     0,    55,
01700       56,     0,     0,     0,     0,     0,     0,     0,    60,    61,
01701       62,    63,    64,    65,    66,     5,     6,     7,     8,     9,
01702        0,    67,     0,     0,    10,     0,     0,     0,     0,     0,
01703        0,     0,     0,     0,     0,     0,     0,    69,     0,     0,
01704        0,     0,    72,    73,    74,    75,     0,     0,     0,     0,
01705        0,     0,     0,     0,    11,    12,     0,     0,     0,     0,
01706       13,     0,    14,    15,    16,    17,    18,    19,    20,    21,
01707       22,    23,    24,     0,    25,    26,    27,     0,     0,     0,
01708        0,    29,    30,    31,   413,    33,   187,     0,     0,     0,
01709        0,    35,     0,     0,     0,     0,   255,     0,     0,     0,
01710      188,     0,   189,   190,   191,   192,   193,   194,   195,   196,
01711      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
01712      207,   208,   209,     0,   210,    55,    56,     0,     0,     0,
01713        0,     0,     0,     0,    60,    61,    62,    63,    64,    65,
01714       66,     0,     0,     0,     0,     0,     0,    67,     0,     0,
01715        0,     0,     0,     0,     0,     0,   185,   186,   187,     0,
01716        0,     0,     0,    69,     0,     0,     0,     0,    72,    73,
01717       74,    75,   188,     0,   189,   190,   191,   192,   193,   194,
01718      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01719      205,   206,   207,   208,   209,     0,   210,   185,   186,   187,
01720        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01721        0,     0,     0,   188,     0,   189,   190,   191,   192,   193,
01722      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
01723      204,   205,   206,   207,   208,   209,     0,   210,   185,   186,
01724      187,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01725        0,     0,     0,     0,   188,     0,   189,   190,   191,   192,
01726      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
01727      203,   204,   205,   206,   207,   208,   209,     0,   210,     0,
01728        0,     0,     0,   185,   186,   187,     0,     0,     0,     0,
01729        0,     0,     0,     0,     0,     0,     0,     0,     0,   188,
01730      256,   189,   190,   191,   192,   193,   194,   195,   196,   197,
01731      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
01732      208,   209,     0,   210,   185,   186,   187,     0,     0,     0,
01733        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01734      188,   262,   189,   190,   191,   192,   193,   194,   195,   196,
01735      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
01736      207,   208,   209,     0,   210,     0,   185,   186,   187,     0,
01737        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01738        0,   301,   188,     0,   189,   190,   191,   192,   193,   194,
01739      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01740      205,   206,   207,   208,   209,     0,   210,     0,     0,   185,
01741      186,   187,     0,     0,     0,     0,     0,     0,     0,     0,
01742        0,     0,     0,     0,     0,   188,   359,   189,   190,   191,
01743      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
01744      202,   203,   204,   205,   206,   207,   208,   209,     0,   210,
01745      185,   186,   187,     0,     0,     0,     0,     0,     0,     0,
01746        0,     0,     0,     0,     0,     0,   188,   365,   189,   190,
01747      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
01748      201,   202,   203,   204,   205,   206,   207,   208,   209,     0,
01749      210,     0,   185,   186,   187,     0,     0,     0,     0,     0,
01750        0,     0,     0,     0,     0,     0,     0,     0,   188,   366,
01751      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
01752      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
01753      209,     0,   210,     0,     0,   185,   186,   187,     0,     0,
01754        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01755        0,   188,   381,   189,   190,   191,   192,   193,   194,   195,
01756      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
01757      206,   207,   208,   209,     0,   210,   185,   186,   187,     0,
01758        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01759        0,     0,   188,   455,   189,   190,   191,   192,   193,   194,
01760      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01761      205,   206,   207,   208,   209,     0,   210,     0,   185,   186,
01762      187,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01763        0,     0,     0,     0,   188,   673,   189,   190,   191,   192,
01764      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
01765      203,   204,   205,   206,   207,   208,   209,   285,   210,     0,
01766        0,   185,   186,   187,     0,     0,     0,   286,     0,   287,
01767      288,     0,   289,   290,   291,     0,     0,   188,   876,   189,
01768      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
01769      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
01770        0,   210,     0,     0,     0,     0,     0,     0,     0,     0,
01771        0,     0,     0,     0,     0,     0,   292,     0,     0,   900,
01772        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01773      407,     0,     0,   294,   295,     0,     0,     0,     0,     0,
01774        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01775      296,   297,     0,     0,     0,   307,   298,     0,   185,   186,
01776      187,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01777        0,     0,     0,   559,   188,   517,   189,   190,   191,   192,
01778      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
01779      203,   204,   205,   206,   207,   208,   209,     0,   210,   185,
01780      186,   187,     0,     0,     0,     0,     0,     0,     0,     0,
01781        0,     0,     0,     0,     0,   188,     0,   189,   190,   191,
01782      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
01783      202,   203,   204,   205,   206,   207,   208,   209,     0,   210,
01784      186,   187,     0,     0,     0,     0,     0,     0,     0,     0,
01785        0,     0,     0,     0,     0,   188,     0,   189,   190,   191,
01786      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
01787      202,   203,   204,   205,   206,   207,   208,   209,   188,   210,
01788      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
01789      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
01790      209,     0,   210,   189,   190,   191,   192,   193,   194,   195,
01791      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
01792      206,   207,   208,   209,     0,   210,   190,   191,   192,   193,
01793      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
01794      204,   205,   206,   207,   208,   209,     0,   210,   191,   192,
01795      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
01796      203,   204,   205,   206,   207,   208,   209,     0,   210,   192,
01797      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
01798      203,   204,   205,   206,   207,   208,   209,     0,   210,   193,
01799      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
01800      204,   205,   206,   207,   208,   209,     0,   210,   194,   195,
01801      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
01802      206,   207,   208,   209,     0,   210,  -400,  -400,  -400,  -400,
01803      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
01804      208,   209,     0,   210
01805 };
01806 
01807 static const short int yycheck[] =
01808 {
01809       23,    24,   364,    26,     4,    26,   506,   504,   416,   354,
01810        8,   367,   261,     8,   580,    26,     8,   362,     8,   210,
01811       26,     8,    26,   184,     5,     6,     8,     8,     9,    10,
01812       11,    12,    13,    14,   456,    16,    17,    18,    19,    20,
01813       21,    22,   634,     8,    25,     8,     8,    31,     8,    61,
01814        8,     8,     8,    46,     8,    36,     8,     8,     8,    27,
01815       28,     0,    43,    44,    79,    46,   785,    48,    73,    71,
01816       45,    45,    61,    98,   235,   236,     8,   574,     8,    45,
01817      105,   106,   107,   108,   109,   110,   111,    71,    69,    73,
01818       59,    60,   910,    31,   100,    69,    71,    93,    94,    98,
01819       45,   120,     8,     8,     0,    71,   105,   106,   107,   108,
01820      109,   110,   111,   705,   932,   151,   141,   142,   143,   144,
01821      139,   123,    45,   479,   105,   481,    71,   133,    27,    28,
01822      155,   120,   113,    27,    28,    73,   151,    26,   161,   151,
01823      140,   139,   154,   154,   151,   168,   169,   170,    71,   646,
01824      143,   156,   871,   134,   651,   136,   155,   139,   153,   155,
01825      152,   142,   143,   153,   145,   731,   153,    27,    28,   116,
01826      515,   516,   156,   529,   766,    27,    28,   152,   184,   771,
01827      184,   139,   774,   775,   152,    23,    24,   210,   153,   210,
01828      153,   153,   173,   153,   355,   152,   152,   178,   152,   270,
01829      152,   152,   152,   364,   210,   186,   210,   139,    46,   139,
01830      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
01831      201,   202,   203,   204,   205,   206,   207,   208,   209,   235,
01832      236,   235,   236,   214,   215,   216,   217,   218,   219,   220,
01833      221,   222,   223,   224,   225,   436,   152,   152,   229,   230,
01834      243,    45,   818,   675,   153,   772,   773,   280,   281,    61,
01835      154,    45,   243,   244,   153,    71,   247,    73,   151,    45,
01836      767,   768,   295,   629,    71,    71,    73,    71,   527,    31,
01837       45,    71,    63,    73,   265,   308,    61,    71,    66,    67,
01838       71,   540,    73,    61,   154,    71,    66,    67,    71,    71,
01839       73,    73,   154,   303,    73,   143,    71,   669,   314,    71,
01840       71,    73,    73,   294,   139,    73,   387,   388,   341,   819,
01841      665,    73,   544,   161,   151,   122,   151,   123,   821,   822,
01842      168,   169,   170,   151,   315,   151,   317,   318,   319,   320,
01843      153,   154,   859,   151,   367,   862,   863,   864,   154,   355,
01844      156,   355,   154,   116,   603,   120,   152,   151,   364,   156,
01845      364,   354,   770,   139,   154,    73,   156,    48,   152,   362,
01846       51,   733,   395,   354,   139,   156,   151,    93,    94,   154,
01847      151,   362,    63,   156,   156,    42,   154,   156,    45,   460,
01848       71,   613,   909,   615,   156,   156,    42,    43,   156,   470,
01849      471,   387,   388,   426,    71,   243,    73,    74,    92,    93,
01850       94,    23,    24,   436,    71,   436,   151,    45,    46,    47,
01851      101,    49,   151,    69,    70,    71,   407,   151,   409,   151,
01852      436,   112,   436,    79,    66,    67,    68,   151,    71,   155,
01853       71,   154,   280,   281,    92,    93,    94,   128,    71,   139,
01854      450,   474,   151,   476,   120,    49,   479,   295,   481,   440,
01855      453,   139,   462,   151,   145,   146,   147,   148,   149,   150,
01856      151,   155,   453,   120,   460,   456,   457,   123,   124,   125,
01857      126,   127,   128,   139,   470,   471,     8,   510,    92,    93,
01858       94,    13,    14,    15,    16,    17,    18,    19,    20,    21,
01859       22,    23,    24,   341,   485,   754,   529,   155,   669,    92,
01860       93,    94,   139,   536,   537,   151,   354,    66,    67,    68,
01861       31,    79,   515,   516,   362,    73,    74,    75,   153,   367,
01862      154,   554,   153,   533,   515,   516,    13,    59,    60,   152,
01863      611,   155,   523,   524,   154,   118,   151,   570,    82,   572,
01864      153,   532,   623,   802,   625,     8,    71,   395,    97,    90,
01865      152,    71,   633,   812,   587,    73,   105,   106,   107,   108,
01866      109,   110,   733,   152,    61,   556,   153,   152,   559,     8,
01867       71,   118,   151,   151,    71,   608,    73,    74,   837,    76,
01868       77,    78,   841,   160,    26,   152,   845,     8,   151,   702,
01869       90,   704,    90,   852,    13,   854,   629,   139,   155,    98,
01870      591,   151,    13,   151,   717,   453,   105,   106,   107,   108,
01871      109,   110,   111,   153,    71,   611,    61,   155,   877,   154,
01872      152,   151,    71,   120,   119,   152,   474,   623,   476,   625,
01873      152,   479,   151,   481,   101,    71,    13,   633,   897,   136,
01874      137,   138,   723,   676,   151,   151,   151,   728,   761,    71,
01875      763,    97,   154,   669,     8,   669,   155,   154,   155,   692,
01876      919,   152,   665,   160,   777,   778,   925,   515,   516,   151,
01877      153,    13,   153,   153,   665,   151,   757,   121,   759,   760,
01878      152,   529,     8,   160,   675,    13,   152,    26,   536,   537,
01879      949,    73,    71,   684,   153,    61,   152,   152,   160,    89,
01880      120,   782,   152,   121,     8,    71,   554,    73,    74,    71,
01881       76,    77,    78,     8,   155,   152,    26,   733,   152,   733,
01882       73,    13,   570,    13,   572,   806,    71,   723,   738,    97,
01883      153,   120,   728,    13,    14,    15,    16,    17,    18,    19,
01884       20,    21,    22,    23,    24,    83,   152,   828,   152,   154,
01885      831,   153,   153,    73,   120,    13,   121,    13,    26,    26,
01886      608,   757,    71,   759,   760,   151,   151,   151,   849,    13,
01887      151,   137,   138,   105,   106,   107,   108,   109,   110,    59,
01888       60,   629,   151,    61,   151,    73,   782,   868,   154,   155,
01889      151,   157,   151,    71,   160,    73,    74,   152,    76,    77,
01890       78,   882,   151,   794,    42,    43,    44,    45,    46,    47,
01891      806,    49,   153,   153,   151,   151,   151,   665,   152,    13,
01892       79,    13,    73,    13,    71,    71,   151,    26,   676,    68,
01893      840,   155,   828,    73,    13,   831,    73,   151,    13,   152,
01894      152,   152,   120,    28,   152,   836,   151,   153,    13,   152,
01895       68,    87,    26,   849,   155,   155,   155,    85,   152,   137,
01896      138,   152,     3,     4,     5,     6,     7,   153,   152,   154,
01897      153,    12,   868,   153,   155,   152,   154,   155,   151,   155,
01898      158,   152,   160,   152,   101,   151,   882,   152,   152,    73,
01899      938,   901,   154,   168,   155,   303,   303,   572,   921,   395,
01900      510,    42,    43,   609,   799,   749,   676,    48,   941,    50,
01901       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
01902      689,    62,    63,    64,    65,   268,   586,   416,    69,    70,
01903       71,    72,    73,   914,    75,   551,   770,   416,    79,    80,
01904       81,    82,   592,    84,   835,    86,   161,    88,   523,   554,
01905       91,    -1,   476,    -1,    95,    96,    97,    -1,    99,   100,
01906       -1,   102,   103,   104,    -1,    -1,    -1,   108,   109,   110,
01907       -1,   112,   113,   114,   115,   116,   117,    -1,    -1,    -1,
01908       -1,   122,   123,   124,   125,   126,   127,   128,     3,     4,
01909        5,     6,     7,    -1,   135,    -1,    -1,    12,    -1,   140,
01910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01911      151,    -1,   153,   154,    -1,   156,   157,   158,   159,    -1,
01912       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
01913       -1,    -1,    -1,    48,    -1,    50,    51,    52,    53,    54,
01914       55,    56,    57,    58,    59,    60,    -1,    62,    63,    64,
01915       65,    -1,    -1,    -1,    69,    70,    71,    72,    73,    -1,
01916       75,    -1,    -1,    -1,    79,    80,    81,    82,    -1,    84,
01917       -1,    86,    -1,    88,    -1,    -1,    91,    -1,    -1,    -1,
01918       95,    96,    97,    -1,    99,   100,    -1,   102,   103,   104,
01919       -1,    -1,    -1,   108,   109,   110,    -1,   112,   113,   114,
01920      115,   116,   117,    -1,    -1,    -1,    -1,   122,   123,   124,
01921      125,   126,   127,   128,     3,     4,     5,     6,     7,    -1,
01922      135,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,
01923       -1,    -1,    -1,    -1,    -1,    -1,   151,    26,   153,   154,
01924       -1,   156,   157,   158,   159,    -1,    -1,    -1,    -1,    -1,
01925       -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    48,
01926       -1,    50,    51,    52,    53,    54,    55,    56,    57,    58,
01927       59,    60,    -1,    62,    63,    64,    65,    -1,    -1,    -1,
01928       69,    70,    71,    72,    73,    -1,    75,    -1,    -1,    -1,
01929       79,    80,    81,    82,    -1,    84,    -1,    86,    -1,    88,
01930       -1,    -1,    91,    -1,    -1,    -1,    95,    96,    -1,    -1,
01931       99,   100,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,
01932       -1,   110,    -1,   112,   113,   114,    -1,    -1,    -1,    -1,
01933       -1,    -1,    -1,   122,   123,   124,   125,   126,   127,   128,
01934        3,     4,     5,     6,     7,    -1,   135,    -1,    -1,    12,
01935       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01936       -1,    -1,   151,    26,   153,   154,    -1,   156,   157,   158,
01937      159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
01938       43,    -1,    -1,    -1,    -1,    48,    -1,    50,    51,    52,
01939       53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
01940       63,    64,    65,    -1,    -1,    -1,    69,    70,    71,    72,
01941       73,    -1,    75,    -1,    -1,    -1,    79,    80,    81,    82,
01942       -1,    84,    -1,    86,    -1,    88,    -1,    -1,    91,    -1,
01943       -1,    -1,    95,    96,    -1,    -1,    99,   100,    -1,   102,
01944      103,   104,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,
01945      113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
01946      123,   124,   125,   126,   127,   128,     3,     4,     5,     6,
01947        7,    -1,   135,    -1,    -1,    12,    -1,    -1,    -1,    -1,
01948       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,    26,
01949      153,   154,    -1,   156,   157,   158,   159,    -1,    -1,    -1,
01950       -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
01951       -1,    48,    -1,    50,    51,    52,    53,    54,    55,    56,
01952       57,    58,    59,    60,    -1,    62,    63,    64,    65,    -1,
01953       -1,    -1,    69,    70,    71,    72,    73,    -1,    75,    -1,
01954       -1,    -1,    79,    80,    81,    82,    -1,    84,    -1,    86,
01955       -1,    88,    -1,    -1,    91,    -1,    -1,    -1,    95,    96,
01956       -1,    -1,    99,   100,    -1,   102,   103,   104,    -1,    -1,
01957       -1,    -1,    -1,   110,    -1,   112,   113,   114,    -1,    -1,
01958       -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
01959      127,   128,     3,     4,     5,     6,     7,    -1,   135,    -1,
01960       -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01961       -1,    -1,    -1,    -1,   151,    26,   153,   154,    -1,   156,
01962      157,   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01963       -1,    42,    43,    -1,    -1,    -1,    -1,    48,    -1,    50,
01964       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
01965       -1,    62,    63,    64,    65,    -1,    -1,    -1,    69,    70,
01966       71,    72,    73,    -1,    75,    -1,    -1,    -1,    79,    80,
01967       81,    82,    -1,    84,    -1,    86,    -1,    88,    -1,    -1,
01968       91,    -1,    -1,    -1,    95,    96,    -1,    -1,    99,   100,
01969       -1,   102,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,
01970       -1,   112,   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,
01971       -1,   122,   123,   124,   125,   126,   127,   128,     3,     4,
01972        5,     6,     7,    -1,   135,    -1,    -1,    12,    36,    37,
01973       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
01974      151,    49,   153,   154,    -1,   156,   157,   158,   159,    -1,
01975       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
01976       -1,    -1,    -1,    48,    -1,    50,    51,    52,    53,    54,
01977       55,    56,    57,    58,    59,    60,    -1,    62,    63,    64,
01978       65,    -1,    -1,    -1,    69,    70,    71,    72,    73,    -1,
01979       75,    -1,    -1,    -1,    79,    80,    81,    82,    -1,    84,
01980       -1,    86,    -1,    88,    -1,    -1,    91,    -1,    -1,    -1,
01981       95,    96,    -1,    -1,    99,   100,    -1,   102,   103,   104,
01982       -1,    -1,    -1,    -1,    -1,   110,    -1,   112,   113,   114,
01983       -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
01984      125,   126,   127,   128,     3,     4,     5,     6,     7,    -1,
01985      135,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,
01986       -1,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,   154,
01987       -1,   156,   157,   158,   159,    -1,    -1,    -1,    -1,    -1,
01988       -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    48,
01989       -1,    50,    51,    52,    53,    54,    55,    56,    57,    58,
01990       59,    60,    -1,    62,    63,    64,     9,    10,    11,    -1,
01991       69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
01992       79,    -1,    25,    -1,    27,    28,    29,    30,    31,    32,
01993       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
01994       43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    -1,
01995       -1,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
01996       -1,    -1,    -1,   122,   123,   124,   125,   126,   127,   128,
01997        3,     4,     5,     6,     7,    -1,   135,    -1,    -1,    12,
01998       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01999       -1,    -1,   151,    -1,   153,    -1,    -1,   156,   157,   158,
02000      159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
02001       43,    -1,    -1,    -1,    -1,    48,    -1,    50,    51,    52,
02002       53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
02003       63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,
02004       73,    -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,
02005       -1,    -1,    -1,    -1,    -1,     8,    -1,   160,    -1,    -1,
02006       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
02007       23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02008      113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
02009      123,   124,   125,   126,   127,   128,     3,     4,     5,     6,
02010        7,    -1,   135,    -1,    -1,    12,    59,    60,    -1,    -1,
02011       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,    -1,
02012      153,    -1,    -1,   156,   157,   158,   159,    -1,    -1,    -1,
02013       -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
02014       -1,    48,    -1,    50,    51,    52,    53,    54,    55,    56,
02015       57,    58,    59,    60,    -1,    62,    63,    64,     9,    10,
02016       11,    -1,    69,    70,    71,    72,    73,    -1,    -1,    -1,
02017       -1,    -1,    79,    -1,    25,    -1,    27,    28,    29,    30,
02018       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
02019       41,    42,    43,    44,    45,    46,    47,    -1,    49,   152,
02020       -1,    -1,    -1,    -1,    -1,    -1,   113,   114,    -1,    -1,
02021       -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
02022      127,   128,     3,     4,     5,     6,     7,    -1,   135,    -1,
02023       -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02024       -1,    -1,    -1,    -1,   151,    -1,   153,    -1,    -1,   156,
02025      157,   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02026       -1,    42,    43,    -1,    -1,    -1,    -1,    48,    -1,    50,
02027       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
02028       -1,    62,    63,    64,    -1,    -1,    -1,    -1,    69,    70,
02029       71,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,    -1,
02030       -1,    -1,    -1,    -1,   155,    13,    14,    15,    16,    17,
02031       18,    19,    20,    21,    22,    23,    24,    -1,    -1,    13,
02032       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
02033       24,    -1,   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,
02034       -1,   122,   123,   124,   125,   126,   127,   128,    -1,    -1,
02035       -1,    59,    60,    -1,   135,     3,     4,     5,     6,     7,
02036       -1,    -1,    -1,    -1,    12,    59,    60,    -1,    -1,    -1,
02037      151,   152,    -1,    -1,    -1,   156,   157,   158,   159,    -1,
02038       -1,    -1,    90,    31,    -1,    -1,    -1,    -1,    -1,    -1,
02039       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
02040       48,    -1,    50,    51,    52,    53,    54,    55,    56,    57,
02041       58,    59,    60,    -1,    62,    63,    64,     9,    10,    11,
02042       -1,    69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,
02043       -1,    79,    -1,    25,    -1,    27,    28,    29,    30,    31,
02044       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
02045       42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
02046       -1,    -1,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,
02047       -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
02048      128,    -1,    -1,    -1,    -1,    -1,    -1,   135,     3,     4,
02049        5,     6,     7,    -1,    -1,    -1,    -1,    12,    -1,    -1,
02050       -1,    -1,    -1,   151,    -1,    -1,    -1,    -1,   156,   157,
02051      158,   159,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
02052       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
02053       -1,    -1,    -1,    48,    -1,    50,    51,    52,    53,    54,
02054       55,    56,    57,    58,    59,    60,    -1,    62,    63,    64,
02055        9,    10,    11,    -1,    69,    70,    71,    72,    73,    -1,
02056       -1,    -1,    -1,   155,    79,    -1,    25,    -1,    27,    28,
02057       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
02058       39,    40,    41,    42,    43,    44,    45,    46,    47,    -1,
02059       49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,   114,
02060       -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
02061      125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,
02062      135,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
02063       12,    -1,    -1,    -1,    -1,    -1,   151,    -1,    -1,    -1,
02064       -1,   156,   157,   158,   159,    -1,    -1,    -1,    -1,    31,
02065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02066       42,    43,    -1,    -1,    -1,    -1,    48,    -1,    50,    51,
02067       52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
02068       62,    63,    64,     9,    10,    11,    -1,    69,    70,    71,
02069       72,    73,    -1,    -1,    -1,    -1,   155,    79,    -1,    25,
02070       -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
02071       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
02072       46,    47,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
02073       -1,   113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02074      122,   123,   124,   125,   126,   127,   128,    -1,    -1,    -1,
02075       -1,    -1,    -1,   135,     3,     4,     5,     6,     7,    -1,
02076       -1,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,   151,
02077       -1,    -1,    -1,    -1,   156,   157,   158,   159,    -1,    -1,
02078       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02079       -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    48,
02080       -1,    50,    51,    52,    53,    54,    55,    56,    57,    58,
02081       59,    60,    -1,    62,    63,    64,     9,    10,    11,    -1,
02082       69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,   155,
02083       79,    -1,    25,    -1,    27,    28,    29,    30,    31,    32,
02084       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
02085       43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    -1,
02086       -1,    -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,
02087       -1,    -1,    -1,   122,   123,   124,   125,   126,   127,   128,
02088       -1,    -1,    -1,    -1,    -1,    -1,   135,     3,     4,     5,
02089        6,     7,    -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,
02090       -1,    -1,   151,    -1,    -1,    -1,    -1,   156,   157,   158,
02091      159,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
02092       -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
02093       -1,    -1,    48,    -1,    50,    51,    52,    53,    54,    55,
02094       56,    57,    58,    59,    60,    -1,    62,    63,    64,     9,
02095       10,    11,    -1,    69,    70,    71,    72,    73,    -1,    -1,
02096       -1,    -1,   155,    79,    -1,    25,    -1,    27,    28,    29,
02097       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
02098       40,    41,    42,    43,    44,    45,    46,    47,    -1,    49,
02099       -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,   114,    -1,
02100       -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
02101      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,   135,
02102        3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
02103       -1,    -1,    -1,    -1,    -1,   151,    -1,    -1,    -1,    -1,
02104      156,   157,   158,   159,    -1,    -1,    -1,    -1,    31,    -1,
02105       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
02106       43,    -1,    -1,    -1,    -1,    48,    -1,    50,    51,    52,
02107       53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
02108       63,    64,     9,    10,    11,    -1,    69,    70,    71,    72,
02109       73,    -1,    -1,    -1,    -1,   155,    79,    -1,    25,    26,
02110       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
02111       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
02112       47,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02113      113,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
02114      123,   124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
02115       -1,    -1,   135,     3,     4,     5,     6,     7,    -1,    -1,
02116       -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,   151,    -1,
02117       -1,    -1,    -1,   156,   157,   158,   159,    -1,    -1,    -1,
02118       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02119       -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    48,    -1,
02120       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
02121       60,    -1,    62,    63,    64,     9,    10,    11,    -1,    69,
02122       70,    71,    72,    73,    -1,    -1,   153,    -1,    -1,    79,
02123       -1,    25,    -1,    27,    28,    29,    30,    31,    32,    33,
02124       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
02125       44,    45,    46,    47,    -1,    49,    -1,    -1,    -1,    -1,
02126       -1,    -1,    -1,   113,   114,    -1,    -1,    -1,    -1,    -1,
02127       -1,    -1,   122,   123,   124,   125,   126,   127,   128,     3,
02128        4,     5,     6,     7,    -1,   135,    -1,    -1,    12,    -1,
02129       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02130       -1,   151,    -1,    -1,    -1,    -1,   156,   157,   158,   159,
02131       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
02132       -1,    -1,    -1,    -1,    48,    -1,    50,    51,    52,    53,
02133       54,    55,    56,    57,    58,    59,    60,    -1,    62,    63,
02134       64,    -1,     9,    10,    11,    69,    70,    71,    72,    73,
02135       -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    25,   153,
02136       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
02137       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
02138       47,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,   113,
02139      114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
02140      124,   125,   126,   127,   128,     3,     4,     5,     6,     7,
02141       -1,   135,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,
02142       -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,    -1,    -1,
02143       -1,    -1,   156,   157,   158,   159,    -1,    -1,    -1,    -1,
02144       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
02145       48,    -1,    50,    51,    52,    53,    54,    55,    56,    57,
02146       58,    59,    60,    -1,    62,    63,    64,    -1,    -1,    -1,
02147       -1,    69,    70,    71,    72,    73,    11,    -1,    -1,    -1,
02148       -1,    79,    -1,    -1,    -1,    -1,   153,    -1,    -1,    -1,
02149       25,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
02150       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
02151       45,    46,    47,    -1,    49,   113,   114,    -1,    -1,    -1,
02152       -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
02153      128,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,
02154       -1,    -1,    -1,    -1,    -1,    -1,     9,    10,    11,    -1,
02155       -1,    -1,    -1,   151,    -1,    -1,    -1,    -1,   156,   157,
02156      158,   159,    25,    -1,    27,    28,    29,    30,    31,    32,
02157       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
02158       43,    44,    45,    46,    47,    -1,    49,     9,    10,    11,
02159       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02160       -1,    -1,    -1,    25,    -1,    27,    28,    29,    30,    31,
02161       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
02162       42,    43,    44,    45,    46,    47,    -1,    49,     9,    10,
02163       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02164       -1,    -1,    -1,    -1,    25,    -1,    27,    28,    29,    30,
02165       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
02166       41,    42,    43,    44,    45,    46,    47,    -1,    49,    -1,
02167       -1,    -1,    -1,     9,    10,    11,    -1,    -1,    -1,    -1,
02168       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,
02169      153,    27,    28,    29,    30,    31,    32,    33,    34,    35,
02170       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
02171       46,    47,    -1,    49,     9,    10,    11,    -1,    -1,    -1,
02172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02173       25,   153,    27,    28,    29,    30,    31,    32,    33,    34,
02174       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
02175       45,    46,    47,    -1,    49,    -1,     9,    10,    11,    -1,
02176       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02177       -1,   152,    25,    -1,    27,    28,    29,    30,    31,    32,
02178       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
02179       43,    44,    45,    46,    47,    -1,    49,    -1,    -1,     9,
02180       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02181       -1,    -1,    -1,    -1,    -1,    25,   152,    27,    28,    29,
02182       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
02183       40,    41,    42,    43,    44,    45,    46,    47,    -1,    49,
02184        9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02185       -1,    -1,    -1,    -1,    -1,    -1,    25,   152,    27,    28,
02186       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
02187       39,    40,    41,    42,    43,    44,    45,    46,    47,    -1,
02188       49,    -1,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
02189       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,   152,
02190       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
02191       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
02192       47,    -1,    49,    -1,    -1,     9,    10,    11,    -1,    -1,
02193       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02194       -1,    25,   152,    27,    28,    29,    30,    31,    32,    33,
02195       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
02196       44,    45,    46,    47,    -1,    49,     9,    10,    11,    -1,
02197       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02198       -1,    -1,    25,   152,    27,    28,    29,    30,    31,    32,
02199       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
02200       43,    44,    45,    46,    47,    -1,    49,    -1,     9,    10,
02201       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02202       -1,    -1,    -1,    -1,    25,   152,    27,    28,    29,    30,
02203       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
02204       41,    42,    43,    44,    45,    46,    47,    61,    49,    -1,
02205       -1,     9,    10,    11,    -1,    -1,    -1,    71,    -1,    73,
02206       74,    -1,    76,    77,    78,    -1,    -1,    25,   152,    27,
02207       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
02208       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
02209       -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02210       -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,   152,
02211       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02212      121,    -1,    -1,   137,   138,    -1,    -1,    -1,    -1,    -1,
02213       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02214      154,   155,    -1,    -1,    -1,   159,   160,    -1,     9,    10,
02215       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02216       -1,    -1,    -1,   121,    25,    26,    27,    28,    29,    30,
02217       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
02218       41,    42,    43,    44,    45,    46,    47,    -1,    49,     9,
02219       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02220       -1,    -1,    -1,    -1,    -1,    25,    -1,    27,    28,    29,
02221       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
02222       40,    41,    42,    43,    44,    45,    46,    47,    -1,    49,
02223       10,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02224       -1,    -1,    -1,    -1,    -1,    25,    -1,    27,    28,    29,
02225       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
02226       40,    41,    42,    43,    44,    45,    46,    47,    25,    49,
02227       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
02228       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
02229       47,    -1,    49,    27,    28,    29,    30,    31,    32,    33,
02230       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
02231       44,    45,    46,    47,    -1,    49,    28,    29,    30,    31,
02232       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
02233       42,    43,    44,    45,    46,    47,    -1,    49,    29,    30,
02234       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
02235       41,    42,    43,    44,    45,    46,    47,    -1,    49,    30,
02236       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
02237       41,    42,    43,    44,    45,    46,    47,    -1,    49,    31,
02238       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
02239       42,    43,    44,    45,    46,    47,    -1,    49,    32,    33,
02240       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
02241       44,    45,    46,    47,    -1,    49,    32,    33,    34,    35,
02242       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
02243       46,    47,    -1,    49
02244 };
02245 
02246 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
02247    symbol of state STATE-NUM.  */
02248 static const unsigned short int yystos[] =
02249 {
02250        0,   162,   163,     0,   164,     3,     4,     5,     6,     7,
02251       12,    42,    43,    48,    50,    51,    52,    53,    54,    55,
02252       56,    57,    58,    59,    60,    62,    63,    64,    65,    69,
02253       70,    71,    72,    73,    75,    79,    80,    81,    82,    84,
02254       86,    88,    91,    95,    96,    97,    99,   100,   102,   103,
02255      104,   108,   109,   110,   112,   113,   114,   115,   116,   117,
02256      122,   123,   124,   125,   126,   127,   128,   135,   140,   151,
02257      153,   154,   156,   157,   158,   159,   165,   169,   170,   203,
02258      204,   206,   209,   225,   227,   271,   282,   287,   296,   299,
02259      303,   304,   307,   309,   317,   318,   319,   320,   321,   322,
02260      328,   338,   341,   303,   303,   151,   303,   303,   303,   303,
02261      303,   303,   303,   281,   303,   303,   303,   303,   303,   303,
02262      303,    71,   287,   307,   309,   307,   303,    71,   287,   288,
02263      289,   320,   321,   328,   151,   294,   151,   151,   267,   303,
02264      177,   151,   151,   151,   189,   151,   153,   303,   153,   303,
02265      207,   153,   271,   303,   309,   190,   303,    79,   151,   202,
02266       73,   156,   254,   255,   116,   116,    73,   256,   151,   151,
02267      151,   151,   151,   151,   334,    71,   303,   166,   154,   334,
02268      334,   334,    71,    71,   139,     9,    10,    11,    25,    27,
02269       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
02270       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
02271       49,   153,    59,    60,    13,    14,    15,    16,    17,    18,
02272       19,    20,    21,    22,    23,    24,   308,   151,   120,    61,
02273      154,   156,   321,   303,   303,   139,   139,   274,   120,   321,
02274      152,   303,   303,   283,     8,   153,   169,   175,   268,   269,
02275      303,   271,   309,   151,   303,   153,   153,    31,   205,   153,
02276      153,   154,   153,    79,   153,   154,   304,   309,     8,   153,
02277       13,     8,   153,   200,   201,   309,   309,   339,   309,   152,
02278      272,    31,   303,   332,   333,    61,    71,    73,    74,    76,
02279       77,    78,   120,   136,   137,   138,   154,   155,   160,   335,
02280      154,   152,   155,   167,   303,   157,   158,   159,   118,   226,
02281      211,    71,   317,   321,   328,   277,   303,   278,   279,   275,
02282      276,   303,   303,   303,   303,   303,   303,   303,   303,   303,
02283      303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
02284      288,    31,   303,   303,   303,   303,   303,   303,   303,   303,
02285      303,   303,   303,   303,   286,   310,   303,   323,   303,   152,
02286       71,   317,   151,   295,   290,   152,   152,    31,   252,   253,
02287      271,   309,   303,    82,   303,   153,     8,   186,   183,    71,
02288      236,   152,    71,   166,   152,   303,   255,    42,    43,    71,
02289      123,   296,   297,   298,    73,     8,   152,     8,   152,   152,
02290      153,   122,   309,   329,   330,   305,   309,   121,   152,     8,
02291      301,    61,   120,    72,   303,   309,   212,   115,   168,   169,
02292      203,   204,   155,    71,   287,   210,   118,   228,   151,   151,
02293      321,   303,   303,   303,   303,   303,    63,   309,   252,    71,
02294      154,   317,   324,   326,   327,   160,   155,   252,   324,    26,
02295      171,   305,   152,     8,   151,   152,   179,   270,    90,    90,
02296       13,     8,   152,   182,   208,   155,   155,   297,   297,   139,
02297      151,    13,   201,   153,   340,   151,     8,   152,   306,    31,
02298      303,    31,   303,   336,    71,    61,   155,   155,    98,   105,
02299      106,   107,   108,   109,   110,   111,   141,   142,   143,   144,
02300      155,   213,   220,   258,   261,   262,   263,   264,   266,   151,
02301      119,   229,   230,   287,   154,   284,   285,    26,   288,   152,
02302      303,   325,   311,    61,   154,   152,   291,   173,   169,    31,
02303      271,   309,   178,   176,   268,   303,   187,   184,   297,    71,
02304       26,   169,   235,    26,   154,   237,   151,   101,    71,   297,
02305      300,   302,   297,   309,   331,   330,    13,   305,   305,   121,
02306       71,    73,    74,   337,   303,    45,    71,   221,   222,   223,
02307      151,   151,   151,    71,     8,   153,    71,   219,   221,   259,
02308       97,   264,     8,   153,   152,   230,   154,     8,   257,   252,
02309      252,   280,   273,   155,   151,   315,   323,   303,   292,   166,
02310      172,   305,   303,    26,   169,   242,   153,   309,    31,   232,
02311      309,    13,   166,   153,   238,   153,   238,    71,   123,   249,
02312      250,   251,   151,   121,   152,     8,   301,   329,   303,    31,
02313      303,   160,   160,    13,     8,   139,    42,    45,    71,   224,
02314      200,   214,   152,   214,    26,   221,     8,   153,   139,    73,
02315      265,   205,    71,   153,   257,   287,    98,   155,   258,   261,
02316      262,   152,   152,   303,   295,   316,   312,   160,   155,   120,
02317      293,   174,   243,   152,   166,   180,   121,   231,   309,   231,
02318      297,    89,   238,    92,    93,    94,   238,   155,   152,     8,
02319       31,    73,   191,   297,   297,   152,   305,   155,   297,   222,
02320       71,   152,    26,   152,    48,    51,    63,    71,   101,   112,
02321      128,   145,   146,   147,   148,   149,   150,   151,   215,   216,
02322      139,   221,    73,    13,     8,   153,    71,   221,    13,   155,
02323       71,    97,   252,   120,   313,   324,   245,    66,    67,   247,
02324      153,    83,   268,   232,   152,   152,   153,    92,   153,   303,
02325       26,   153,   241,   155,   154,   251,    73,    13,   287,   121,
02326       13,    26,   215,    26,   215,   222,   151,   151,   151,   151,
02327      151,   151,   151,   151,   151,   151,   215,    27,    28,   153,
02328       71,   139,    13,   297,    73,   151,   139,   297,   205,   152,
02329      324,    66,    67,   248,   151,   169,   153,   152,   188,   185,
02330      153,   241,   240,   166,    31,    73,    13,   297,   192,   297,
02331      297,   215,   154,   215,   222,   221,   221,    79,   262,   263,
02332      222,   223,   223,   222,   222,   152,   215,   215,    13,    73,
02333      297,    13,   249,    71,    71,   314,   151,    26,    68,   303,
02334      181,    26,   169,   234,   234,   239,   166,   155,    73,    13,
02335      297,    73,   154,   166,   154,   151,   152,   152,   152,   205,
02336      120,   139,   218,   218,   218,   152,   152,   297,    13,   297,
02337      152,   151,   315,   303,   166,   153,   152,    26,   169,   233,
02338      166,   166,    13,   297,   152,   166,   155,   166,    45,    69,
02339      217,   223,   223,   223,   223,   297,   153,   154,   260,   249,
02340      152,   244,   166,    87,   297,   193,   155,   155,   152,   139,
02341      151,   152,   152,   166,   152,    26,   169,    85,   153,   154,
02342      152,   223,   217,   155,   260,   246,   153,   166,   224,   152,
02343      166,   155,   151,   152,   194,   217,   101,   195,   196,   197,
02344      152,   151,   197,   152,   287,   198,    73,   152,   199,   154,
02345      166,   155
02346 };
02347 
02348 #define yyerrok     (yyerrstatus = 0)
02349 #define yyclearin   (yychar = YYEMPTY)
02350 #define YYEMPTY     (-2)
02351 #define YYEOF       0
02352 
02353 #define YYACCEPT    goto yyacceptlab
02354 #define YYABORT     goto yyabortlab
02355 #define YYERROR     goto yyerrorlab
02356 
02357 
02358 /* Like YYERROR except do call yyerror.  This remains here temporarily
02359    to ease the transition to the new meaning of YYERROR, for GCC.
02360    Once GCC version 2 has supplanted version 1, this can go.  */
02361 
02362 #define YYFAIL      goto yyerrlab
02363 
02364 #define YYRECOVERING()  (!!yyerrstatus)
02365 
02366 #define YYBACKUP(Token, Value)                  \
02367 do                              \
02368   if (yychar == YYEMPTY && yylen == 1)              \
02369     {                               \
02370       yychar = (Token);                     \
02371       yylval = (Value);                     \
02372       yytoken = YYTRANSLATE (yychar);               \
02373       YYPOPSTACK;                       \
02374       goto yybackup;                        \
02375     }                               \
02376   else                              \
02377     {                               \
02378       yyerror (YY_("syntax error: cannot back up")); \
02379       YYERROR;                          \
02380     }                               \
02381 while (0)
02382 
02383 
02384 #define YYTERROR    1
02385 #define YYERRCODE   256
02386 
02387 
02388 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
02389    If N is 0, then set CURRENT to the empty location which ends
02390    the previous symbol: RHS[0] (always defined).  */
02391 
02392 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
02393 #ifndef YYLLOC_DEFAULT
02394 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
02395     do                                  \
02396       if (N)                                \
02397     {                               \
02398       (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;    \
02399       (Current).first_column = YYRHSLOC (Rhs, 1).first_column;  \
02400       (Current).last_line    = YYRHSLOC (Rhs, N).last_line;     \
02401       (Current).last_column  = YYRHSLOC (Rhs, N).last_column;   \
02402     }                               \
02403       else                              \
02404     {                               \
02405       (Current).first_line   = (Current).last_line   =      \
02406         YYRHSLOC (Rhs, 0).last_line;                \
02407       (Current).first_column = (Current).last_column =      \
02408         YYRHSLOC (Rhs, 0).last_column;              \
02409     }                               \
02410     while (0)
02411 #endif
02412 
02413 
02414 /* YY_LOCATION_PRINT -- Print the location on the stream.
02415    This macro was not mandated originally: define only if we know
02416    we won't break user code: when these are the locations we know.  */
02417 
02418 #ifndef YY_LOCATION_PRINT
02419 # if YYLTYPE_IS_TRIVIAL
02420 #  define YY_LOCATION_PRINT(File, Loc)          \
02421      fprintf (File, "%d.%d-%d.%d",          \
02422               (Loc).first_line, (Loc).first_column, \
02423               (Loc).last_line,  (Loc).last_column)
02424 # else
02425 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
02426 # endif
02427 #endif
02428 
02429 
02430 /* YYLEX -- calling `yylex' with the right arguments.  */
02431 
02432 #ifdef YYLEX_PARAM
02433 # define YYLEX yylex (&yylval, YYLEX_PARAM)
02434 #else
02435 # define YYLEX yylex (&yylval)
02436 #endif
02437 
02438 /* Enable debugging if requested.  */
02439 #if YYDEBUG
02440 
02441 #  include <stdio.h> 
02442 # ifndef YYFPRINTF
02443 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
02444 #  define YYFPRINTF fprintf
02445 # endif
02446 
02447 # define YYDPRINTF(Args)            \
02448 do {                        \
02449   if (yydebug)                  \
02450     YYFPRINTF Args;             \
02451 } while (0)
02452 
02453 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)      \
02454 do {                                \
02455   if (yydebug)                          \
02456     {                               \
02457       YYFPRINTF (stderr, "%s ", Title);             \
02458       yysymprint (stderr,                   \
02459                   Type, Value); \
02460       YYFPRINTF (stderr, "\n");                 \
02461     }                               \
02462 } while (0)
02463 
02464 /*------------------------------------------------------------------.
02465 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
02466 | TOP (included).                                                   |
02467 `------------------------------------------------------------------*/
02468 
02469 #if defined (__STDC__) || defined (__cplusplus)
02470 static void
02471 yy_stack_print (short int *bottom, short int *top)
02472 #else
02473 static void
02474 yy_stack_print (bottom, top)
02475     short int *bottom;
02476     short int *top;
02477 #endif
02478 {
02479   YYFPRINTF (stderr, "Stack now");
02480   for (/* Nothing. */; bottom <= top; ++bottom)
02481     YYFPRINTF (stderr, " %d", *bottom);
02482   YYFPRINTF (stderr, "\n");
02483 }
02484 
02485 # define YY_STACK_PRINT(Bottom, Top)                \
02486 do {                                \
02487   if (yydebug)                          \
02488     yy_stack_print ((Bottom), (Top));               \
02489 } while (0)
02490 
02491 
02492 /*------------------------------------------------.
02493 | Report that the YYRULE is going to be reduced.  |
02494 `------------------------------------------------*/
02495 
02496 #if defined (__STDC__) || defined (__cplusplus)
02497 static void
02498 yy_reduce_print (int yyrule)
02499 #else
02500 static void
02501 yy_reduce_print (yyrule)
02502     int yyrule;
02503 #endif
02504 {
02505   int yyi;
02506   unsigned long int yylno = yyrline[yyrule];
02507   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
02508              yyrule - 1, yylno);
02509   /* Print the symbols being reduced, and their result.  */
02510   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
02511     YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
02512   YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
02513 }
02514 
02515 # define YY_REDUCE_PRINT(Rule)      \
02516 do {                    \
02517   if (yydebug)              \
02518     yy_reduce_print (Rule);     \
02519 } while (0)
02520 
02521 /* Nonzero means print parse trace.  It is left uninitialized so that
02522    multiple parsers can coexist.  */
02523 int yydebug;
02524 #else /* !YYDEBUG */
02525 # define YYDPRINTF(Args)
02526 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
02527 # define YY_STACK_PRINT(Bottom, Top)
02528 # define YY_REDUCE_PRINT(Rule)
02529 #endif /* !YYDEBUG */
02530 
02531 
02532 /* YYINITDEPTH -- initial size of the parser's stacks.  */
02533 #ifndef YYINITDEPTH
02534 # define YYINITDEPTH 200
02535 #endif
02536 
02537 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
02538    if the built-in stack extension method is used).
02539 
02540    Do not make this value too large; the results are undefined if
02541    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
02542    evaluated with infinite-precision integer arithmetic.  */
02543 
02544 #ifndef YYMAXDEPTH
02545 # define YYMAXDEPTH 10000
02546 #endif
02547 
02548 
02549 
02550 #if YYERROR_VERBOSE
02551 
02552 # ifndef yystrlen
02553 #  if defined (__GLIBC__) && defined (_STRING_H)
02554 #   define yystrlen strlen
02555 #  else
02556 /* Return the length of YYSTR.  */
02557 static YYSIZE_T
02558 #   if defined (__STDC__) || defined (__cplusplus)
02559 yystrlen (const char *yystr)
02560 #   else
02561 yystrlen (yystr)
02562      const char *yystr;
02563 #   endif
02564 {
02565   const char *yys = yystr;
02566 
02567   while (*yys++ != '\0')
02568     continue;
02569 
02570   return yys - yystr - 1;
02571 }
02572 #  endif
02573 # endif
02574 
02575 # ifndef yystpcpy
02576 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
02577 #   define yystpcpy stpcpy
02578 #  else
02579 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
02580    YYDEST.  */
02581 static char *
02582 #   if defined (__STDC__) || defined (__cplusplus)
02583 yystpcpy (char *yydest, const char *yysrc)
02584 #   else
02585 yystpcpy (yydest, yysrc)
02586      char *yydest;
02587      const char *yysrc;
02588 #   endif
02589 {
02590   char *yyd = yydest;
02591   const char *yys = yysrc;
02592 
02593   while ((*yyd++ = *yys++) != '\0')
02594     continue;
02595 
02596   return yyd - 1;
02597 }
02598 #  endif
02599 # endif
02600 
02601 # ifndef yytnamerr
02602 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
02603    quotes and backslashes, so that it's suitable for yyerror.  The
02604    heuristic is that double-quoting is unnecessary unless the string
02605    contains an apostrophe, a comma, or backslash (other than
02606    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
02607    null, do not copy; instead, return the length of what the result
02608    would have been.  */
02609 static YYSIZE_T
02610 yytnamerr (char *yyres, const char *yystr)
02611 {
02612   if (*yystr == '"')
02613     {
02614       YYSIZE_T yyn = 0;
02615       char const *yyp = yystr;
02616 
02617       for (;;)
02618     switch (*++yyp)
02619       {
02620       case '\'':
02621       case ',':
02622         goto do_not_strip_quotes;
02623 
02624       case '\\':
02625         if (*++yyp != '\\')
02626           goto do_not_strip_quotes;
02627         /* Fall through.  */
02628       default:
02629         if (yyres)
02630           yyres[yyn] = *yyp;
02631         yyn++;
02632         break;
02633 
02634       case '"':
02635         if (yyres)
02636           yyres[yyn] = '\0';
02637         return yyn;
02638       }
02639     do_not_strip_quotes: ;
02640     }
02641 
02642   if (! yyres)
02643     return yystrlen (yystr);
02644 
02645   return yystpcpy (yyres, yystr) - yyres;
02646 }
02647 # endif
02648 
02649 #endif /* YYERROR_VERBOSE */
02650 
02651 
02652 
02653 #if YYDEBUG
02654 /*--------------------------------.
02655 | Print this symbol on YYOUTPUT.  |
02656 `--------------------------------*/
02657 
02658 #if defined (__STDC__) || defined (__cplusplus)
02659 static void
02660 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
02661 #else
02662 static void
02663 yysymprint (yyoutput, yytype, yyvaluep)
02664     FILE *yyoutput;
02665     int yytype;
02666     YYSTYPE *yyvaluep;
02667 #endif
02668 {
02669   /* Pacify ``unused variable'' warnings.  */
02670   (void) yyvaluep;
02671 
02672   if (yytype < YYNTOKENS)
02673     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
02674   else
02675     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
02676 
02677 
02678 # ifdef YYPRINT
02679   if (yytype < YYNTOKENS)
02680     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
02681 # endif
02682   switch (yytype)
02683     {
02684       default:
02685         break;
02686     }
02687   YYFPRINTF (yyoutput, ")");
02688 }
02689 
02690 #endif /* ! YYDEBUG */
02691 /*-----------------------------------------------.
02692 | Release the memory associated to this symbol.  |
02693 `-----------------------------------------------*/
02694 
02695 #if defined (__STDC__) || defined (__cplusplus)
02696 static void
02697 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
02698 #else
02699 static void
02700 yydestruct (yymsg, yytype, yyvaluep)
02701     const char *yymsg;
02702     int yytype;
02703     YYSTYPE *yyvaluep;
02704 #endif
02705 {
02706   /* Pacify ``unused variable'' warnings.  */
02707   (void) yyvaluep;
02708 
02709   if (!yymsg)
02710     yymsg = "Deleting";
02711   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
02712 
02713   switch (yytype)
02714     {
02715 
02716       default:
02717         break;
02718     }
02719 }
02720 
02721 
02722 /* Prevent warnings from -Wmissing-prototypes.  */
02723 
02724 #ifdef YYPARSE_PARAM
02725 # if defined (__STDC__) || defined (__cplusplus)
02726 int yyparse (void *YYPARSE_PARAM);
02727 # else
02728 int yyparse ();
02729 # endif
02730 #else /* ! YYPARSE_PARAM */
02731 #if defined (__STDC__) || defined (__cplusplus)
02732 int yyparse (void);
02733 #else
02734 int yyparse ();
02735 #endif
02736 #endif /* ! YYPARSE_PARAM */
02737 
02738 
02739 
02740 
02741 
02742 
02743 // Yijun Yu: utility functions -----------------------------------------------
02744 #include <stdio.h>
02745 /// replace character terminals into symbolic terminals
02746 static char *YYTNAME(int r)
02747 {
02748   static char yytname_buf[8];
02749   if (strlen(yytname[r])==3 && yytname[r][0] == '\'' && yytname[r][2] == '\'') 
02750   { 
02751         sprintf(yytname_buf, "CHAR%d", (int)yytname[r][1]);
02752         return yytname_buf;
02753   } 
02754   else if (strlen(yytname[r])>=2 && yytname[r][0] == 64 )
02755   {
02756     strcpy(yytname_buf,"ACTION");
02757     strcat(yytname_buf,&(yytname[r][1]));
02758     return yytname_buf;
02759   }
02760 
02761   return (char *)yytname[r];
02762 }
02763 #include <stdio.h>
02764 static char *yytext_buf = NULL;
02765 
02766 /// replace a special character in the text into an entity
02767 static
02768 void replace_entity(char c, char *s)
02769 {
02770     char *buf;
02771     char *i;
02772     int len, l;
02773     i = yytext_buf;
02774     do {
02775         i =  (char *)index(i, c);
02776         if (i) {
02777             l = i - yytext_buf;
02778             len = strlen(yytext_buf) + strlen(s) - 1;
02779             //buf = (char*)YYSTACK_ALLOC(1000000);
02780             buf = (char*)YYSTACK_ALLOC(len + 1); // Myo M Thein
02781             if (l>0) {
02782 #if 1 // Myo M Thein
02783         strncpy(buf, yytext_buf, l);
02784 #else
02785         int t = 0;
02786         while (t < l) {
02787             buf[t] = yytext_buf[t]; 
02788             t++;
02789         }
02790                 buf[t] = 0;
02791 #endif
02792             } else {
02793                 buf[0] = 0;
02794             }
02795             strcat(buf, s); 
02796             strncat(buf, yytext_buf + l + 1, strlen(yytext_buf) - l); 
02797             buf[len] = 0;
02798             YYSTACK_FREE(yytext_buf); 
02799             //yytext_buf = buf;
02800         memcpy(yytext_buf,buf,len+1);
02801         i++;
02802         if (*i=='\0')
02803             i=NULL;
02804         }
02805     } while (i);
02806 }
02807 
02808 /// replace the special characters in the text into entities 
02809 static
02810 char* xml_encode( char ch)
02811 {
02812   static char text[2];
02813     switch(ch)
02814     {
02815     case '&':
02816         return ( "&amp;");
02817         break;
02818     case '>':
02819         return ( "&gt;");
02820         break;
02821     case '<' :
02822         return ( "&lt;" );
02823         break;
02824     case  '\"':
02825         return ( "&quot;");
02826         break;
02827     case '\'':
02828         return ( "&apos;");
02829         break;
02830     default:
02831         text[0]=ch;
02832         text[1]=0;
02833         return text;
02834         break;
02835     }
02836 }
02837 
02838 static
02839 void replace_special_entities(char *text,char *text_out)
02840 {
02841   int i,lg;
02842     if (!text) { strcpy(text_out,"??");return ; }
02843     lg = strlen(text);
02844     strcpy(text_out,"");
02845     for (i=0;i<lg;i++)
02846     {
02847        strcat(text_out,xml_encode(text[i]));
02848     }
02849 }
02850 static
02851 void generate_xml_output(char **yyxsp,char **yyxs)
02852 {
02853 #ifndef YYYAXX_XML 
02854 #define YYYAXX_XML  "yaxx.xml"
02855 #endif
02856 #ifndef YYYAXX_DTD
02857 #define YYYAXX_DTD "yaxx.dtd"
02858 #endif
02859        int r, i, j;
02860        char buf[65536];
02861        int old_rule = 0;
02862        char *p = *yyxsp + 6;
02863 #if 0
02864        char *v = strsep(&p, ">");
02865        strcpy(buf, v);
02866 #else
02867        i = 0;
02868        while (p[i]!='>') {
02869         buf[i] = p[i];
02870         i++;
02871        }
02872        buf[i]  = 0;
02873 #endif
02874     /// Generating the XML document 
02875     char out[strlen(yyxs[1]+i+6)+strlen(buf)+69];
02876     sprintf(out, "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<php:start xmlns:php=\"http://php.net/xsl\"%s\n", yyxs[1]+i+6);
02877     _xml_output = out;
02878 }
02879 
02880 //------------------------------------------------------------------------
02881 /*----------.
02882 | yyparse.  |
02883 `----------*/
02884 // Yijun Yu
02885 #include <stdio.h>
02886 char *yytext=NULL;
02887 
02888 #ifdef YYPARSE_PARAM
02889 # if defined (__STDC__) || defined (__cplusplus)
02890 int yyparse (void *YYPARSE_PARAM)
02891 # else
02892 int yyparse (YYPARSE_PARAM)
02893   void *YYPARSE_PARAM;
02894 # endif
02895 #else /* ! YYPARSE_PARAM */
02896 #if defined (__STDC__) || defined (__cplusplus)
02897 int
02898 yyparse (void)
02899 #else
02900 int
02901 yyparse ()
02902     ;
02903 #endif
02904 #endif
02905 {
02906   /* The look-ahead symbol.  */
02907 int yychar;
02908 
02909 /* The semantic value of the look-ahead symbol.  */
02910 YYSTYPE yylval;
02911 
02912 /* Number of syntax errors so far.  */
02913 int yynerrs;
02914 
02915   int yystate;
02916   int yyn;
02917   int yyresult;
02918   /* Number of tokens to shift before error messages enabled.  */
02919   int yyerrstatus;
02920   /* Look-ahead token as an internal (translated) token number.  */
02921   int yytoken = 0;
02922 
02923   /* Three stacks and their tools:
02924      `yyss': related to states,
02925      `yyxs': related to xml tags,
02926      `yyvs': related to semantic values,
02927      `yyls': related to locations.
02928 
02929      Refer to the stacks thru separate pointers, to allow yyoverflow
02930      to reallocate them elsewhere.  */
02931 
02932   /* The state stack.  */
02933   short int yyssa[YYINITDEPTH];
02934   short int *yyss = yyssa;
02935   short int *yyssp;
02936 
02937   // Yijun Yu: for XML
02938   /* The tags stack. */
02939   char *yyxsa[YYINITDEPTH];
02940   char **yyxs = yyxsa;
02941   char **yyxsp;
02942   //-----------------------------------------------
02943 
02944   /* The semantic value stack.  */
02945   YYSTYPE yyvsa[YYINITDEPTH];
02946   YYSTYPE *yyvs = yyvsa;
02947   YYSTYPE *yyvsp;
02948 
02949 
02950 // Yijun Yu: don't forget yyxsp--
02951 #define YYPOPSTACK   (yyvsp--, yyxsp--, yyssp--)
02952 static char * yyxml_string=NULL; // for XML
02953 // for id attribute generation (by William Candillon)
02954 int _id = 0; 
02955 char string[512];
02956 
02957   YYSIZE_T yystacksize = YYINITDEPTH;
02958 
02959   /* The variables used to return semantic value and location from the
02960      action routines.  */
02961   YYSTYPE yyval;
02962 
02963 
02964   /* When reducing, the number of symbols on the RHS of the reduced
02965      rule.  */
02966   int yylen;
02967 
02968   YYDPRINTF ((stderr, "Starting parse\n"));
02969 
02970   yystate = 0;
02971   yyerrstatus = 0;
02972   yynerrs = 0;
02973   yychar = YYEMPTY;     /* Cause a token to be read.  */
02974 
02975   /* Initialize stack pointers.
02976      Waste one element of value and location stack
02977      so that they stay on the same level as the state stack.
02978      The wasted elements are never initialized.  */
02979 
02980   yyssp = yyss;
02981   // Yijun Yu: don't forget yyxsp
02982   yyxsp = yyxs;
02983   yyvsp = yyvs;
02984 
02985   goto yysetstate;
02986 
02987 /*------------------------------------------------------------.
02988 | yynewstate -- Push a new state, which is found in yystate.  |
02989 `------------------------------------------------------------*/
02990  yynewstate:
02991   /* In all cases, when you get here, the value and location stacks
02992      have just been pushed. so pushing a state here evens the stacks.
02993      */
02994   yyssp++;
02995 
02996  yysetstate:
02997   *yyssp = yystate;
02998 
02999   if (yyss + yystacksize - 1 <= yyssp)
03000     {
03001       /* Get the current used size of the three stacks, in elements.  */
03002       YYSIZE_T yysize = yyssp - yyss + 1;
03003 
03004 #ifdef yyoverflow
03005       {
03006     /* Give user a chance to reallocate the stack. Use copies of
03007        these so that the &'s don't force the real ones into
03008        memory.  */
03009     YYSTYPE *yyvs1 = yyvs;
03010     // Yijun Yu: don't forget yyxs
03011     char **yyxs1 = yyxs;
03012     short int *yyss1 = yyss;
03013 
03014 
03015     /* Each stack pointer address is followed by the size of the
03016        data in use in that stack, in bytes.  This used to be a
03017        conditional around just the two extra args, but that might
03018        be undefined if yyoverflow is a macro.  */
03019     yyoverflow (YY_("memory exhausted"),
03020             &yyss1, yysize * sizeof (*yyssp),
03021             // Yijun Yu: don't forget yyxsl
03022             &yyxs1, yysize * sizeof (*yyxsp),
03023             &yyvs1, yysize * sizeof (*yyvsp),
03024  &yystacksize);
03025     yyxs = yyxs1;
03026 
03027     yyss = yyss1;
03028     // Yijun Yu: don't forget yyxsl
03029     yyxs = yyxs1;
03030     yyvs = yyvs1;
03031       }
03032 #else /* no yyoverflow */
03033 # ifndef YYSTACK_RELOCATE
03034       goto yyexhaustedlab;
03035 # else
03036       /* Extend the stack our own way.  */
03037       if (YYMAXDEPTH <= yystacksize)
03038     goto yyexhaustedlab;
03039       yystacksize *= 2;
03040       if (YYMAXDEPTH < yystacksize)
03041     yystacksize = YYMAXDEPTH;
03042 
03043       {
03044     short int *yyss1 = yyss;
03045     union yyalloc *yyptr =
03046       (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
03047     char **yyxs1 = yyxs;
03048     if (! yyptr)
03049       goto yyexhaustedlab;
03050     YYSTACK_RELOCATE (yyss);
03051     YYSTACK_RELOCATE (yyvs);
03052 
03053 #  undef YYSTACK_RELOCATE
03054     if (yyss1 != yyssa)
03055       YYSTACK_FREE (yyss1);
03056       }
03057 # endif
03058 #endif /* no yyoverflow */
03059 
03060       yyssp = yyss + yysize - 1;
03061         // Yijun Yu: yyxsp
03062       yyxsp = yyxs + yysize - 1;
03063       yyvsp = yyvs + yysize - 1;
03064 
03065 
03066       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
03067           (unsigned long int) yystacksize));
03068 
03069       if (yyss + yystacksize - 1 <= yyssp)
03070     YYABORT;
03071     }
03072 
03073   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
03074 
03075   goto yybackup;
03076 
03077 /*-----------.
03078 | yybackup.  |
03079 `-----------*/
03080 yybackup:
03081 
03082 /* Do appropriate processing given the current state.  */
03083 /* Read a look-ahead token if we need one and don't already have one.  */
03084 /* yyresume: */
03085 
03086   /* First try to decide what to do without reference to look-ahead token.  */
03087 
03088   yyn = yypact[yystate];
03089   if (yyn == YYPACT_NINF)
03090     goto yydefault;
03091 
03092   /* Not known => get a look-ahead token if don't already have one.  */
03093 
03094   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
03095   if (yychar == YYEMPTY)
03096     {
03097       YYDPRINTF ((stderr, "Reading a token: "));
03098       yychar = YYLEX;
03099     }
03100 
03101   if (yychar <= YYEOF)
03102     {
03103       yychar = yytoken = YYEOF;
03104       YYDPRINTF ((stderr, "Now at end of input.\n"));
03105     }
03106   else
03107     {
03108       yytoken = YYTRANSLATE (yychar);
03109     { // Yijun Yu: process the terminal
03110       yyxml_string = (char *) XML_ALLOC(1024 + strlen(string));
03111       strcpy(yyxml_string, "<php:");
03112       strcat(yyxml_string, YYTNAME(yytoken));      
03113 #if 1 //William Candillon
03114       strcat(yyxml_string, " id=\"");
03115       sprintf(string, "%d", _id);
03116       strcat(yyxml_string, string);
03117       strcat(yyxml_string, "\"");
03118       _id++;
03119       //printf ("%d: %s\n", yyvsp->u.opline_num, YYTNAME(yytoken));
03120 #endif
03121       strcat(yyxml_string, ">");
03122       if (yytoken < YYNTOKENS) {
03123       if (yytext) {
03124           char *tmp;
03125           tmp=(char *)YYSTACK_ALLOC(6*strlen(yytext)+1); 
03126           replace_special_entities(yytext,tmp);
03127           strcat(yyxml_string, tmp);
03128           YYSTACK_FREE(tmp);
03129       }
03130       }
03131       strcat(yyxml_string, "</php:");
03132       strcat(yyxml_string, YYTNAME(yytoken));
03133       strcat(yyxml_string, ">\n");
03134     }
03135       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
03136     }
03137 
03138   /* If the proper action on seeing token YYTOKEN is to reduce or to
03139      detect an error, take that action.  */
03140   yyn += yytoken;
03141   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
03142     goto yydefault;
03143   yyn = yytable[yyn];
03144   if (yyn <= 0)
03145     {
03146       if (yyn == 0 || yyn == YYTABLE_NINF)
03147     goto yyerrlab;
03148       yyn = -yyn;
03149       goto yyreduce;
03150     }
03151 
03152   if (yyn == YYFINAL)
03153     YYACCEPT;
03154 
03155   /* Shift the look-ahead token.  */
03156   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
03157 
03158   /* Discard the token being shifted unless it is eof.  */
03159   if (yychar != YYEOF)
03160     yychar = YYEMPTY;
03161 
03162     // Yijun Yu: update yyxsp
03163   *++yyxsp = yyxml_string;
03164   yyxml_string = 0;
03165   *++yyvsp = yylval;
03166 
03167 
03168   /* Count tokens shifted since error; after three, turn off error
03169      status.  */
03170   if (yyerrstatus)
03171     yyerrstatus--;
03172 
03173   yystate = yyn;
03174   goto yynewstate;
03175 
03176 
03177 /*-----------------------------------------------------------.
03178 | yydefault -- do the default action for the current state.  |
03179 `-----------------------------------------------------------*/
03180 yydefault:
03181   yyn = yydefact[yystate];
03182   if (yyn == 0)
03183     goto yyerrlab;
03184   goto yyreduce;
03185 
03186 
03187 /*-----------------------------.
03188 | yyreduce -- Do a reduction.  |
03189 `-----------------------------*/
03190 yyreduce:
03191   /* yyn is the number of a rule to reduce with.  */
03192   yylen = yyr2[yyn];
03193 
03194   /* If YYLEN is nonzero, implement the default value of the action:
03195      `$$ = $1'.
03196 
03197      Otherwise, the following line sets YYVAL to garbage.
03198      This behavior is undocumented and Bison
03199      users should not rely upon it.  Assigning to YYVAL
03200      unconditionally makes the parser a bit smaller, and it avoids a
03201      GCC warning that YYVAL may be used uninitialized.  */
03202   yyval = yyvsp[1-yylen];
03203 
03204 
03205   YY_REDUCE_PRINT (yyn);
03206     {
03207       int len = 0;
03208       int alloc_len=0;
03209       int n = 0;
03210       int yyi;
03211       int i;
03212       for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0 ; yyi++, n++) {
03213           int l;
03214           char * yyxml_str = yyxsp[-n];
03215           if (yyxml_str==NULL) {
03216             l = 0;
03217           } else
03218               l = strlen(yyxml_str);
03219           len += l;
03220       }
03221       alloc_len =len+100+2*strlen(YYTNAME(yyr1[yyn]));
03222       yyxml_string = (char *) XML_ALLOC(alloc_len);
03223       strcpy(yyxml_string, "<php:");
03224       strcat(yyxml_string, YYTNAME(yyr1[yyn]));
03225 #if 1 //William Candillon
03226       strcat(yyxml_string, " id=\"");
03227       sprintf(string, "%d", _id);
03228       strcat(yyxml_string, string);
03229       strcat(yyxml_string, "\"");
03230       _id++;
03231 #endif
03232       strcat(yyxml_string, ">\n");
03233       i = n;
03234       for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++, i--) 
03235       {
03236           char * yyxml_str = yyxsp[1-i];
03237           if (yyxml_str) {
03238               strcat(yyxml_string, yyxml_str); 
03239               XML_FREE(yyxml_str);
03240               yyxsp[1-i] = NULL;
03241           } else {
03242             fprintf(stderr, "Warning! the %d-th argument is empty", n-i+1);
03243           }
03244       }
03245       strcat(yyxml_string, "</php:");
03246       strcat(yyxml_string, YYTNAME(yyr1[yyn]));
03247       strcat(yyxml_string, ">\n");
03248       yyxsp -= n;
03249       *++yyxsp = yyxml_string;
03250       yyxml_string = NULL;
03251     }
03252   switch (yyn)
03253     {
03254       /*  case 3:
03255 #line 162 "php_parser.y"
03256     { zend_do_extended_info(TSRMLS_C); ;}
03257     break;
03258 
03259   case 4:
03260 #line 162 "php_parser.y"
03261     { HANDLE_INTERACTIVE(); ;}
03262     break;
03263 
03264   case 7:
03265 #line 169 "php_parser.y"
03266     { zend_do_early_binding(TSRMLS_C); ;}
03267     break;
03268 
03269   case 8:
03270 #line 170 "php_parser.y"
03271     { zend_do_early_binding(TSRMLS_C); ;}
03272     break;
03273 
03274   case 9:
03275 #line 171 "php_parser.y"
03276     { REGISTER_MAIN_LONG_CONSTANT("__COMPILER_HALT_OFFSET__", zend_get_scanned_file_offset(TSRMLS_C), CONST_CS); YYACCEPT; ;}
03277     break;
03278 
03279   case 11:
03280 #line 178 "php_parser.y"
03281     { zend_do_extended_info(TSRMLS_C); ;}
03282     break;
03283 
03284   case 12:
03285 #line 178 "php_parser.y"
03286     { HANDLE_INTERACTIVE(); ;}
03287     break;
03288 
03289   case 17:
03290 #line 187 "php_parser.y"
03291     { zend_error(E_COMPILE_ERROR, "__HALT_COMPILER() can only be used from the outermost scope"); ;}
03292     break;
03293 
03294   case 18:
03295 #line 192 "php_parser.y"
03296     { zend_do_ticks(TSRMLS_C); ;}
03297     break;
03298 
03299   case 20:
03300 #line 197 "php_parser.y"
03301     { zend_do_if_cond(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
03302     break;
03303 
03304   case 21:
03305 #line 197 "php_parser.y"
03306     { zend_do_if_after_statement(&(yyvsp[-2]), 1 TSRMLS_CC); ;}
03307     break;
03308 
03309   case 22:
03310 #line 197 "php_parser.y"
03311     { zend_do_if_end(TSRMLS_C); ;}
03312     break;
03313 
03314   case 23:
03315 #line 198 "php_parser.y"
03316     { zend_do_if_cond(&(yyvsp[-2]), &(yyvsp[-1]) TSRMLS_CC); ;}
03317     break;
03318 
03319   case 24:
03320 #line 198 "php_parser.y"
03321     { zend_do_if_after_statement(&(yyvsp[-3]), 1 TSRMLS_CC); ;}
03322     break;
03323 
03324   case 25:
03325 #line 198 "php_parser.y"
03326     { zend_do_if_end(TSRMLS_C); ;}
03327     break;
03328 
03329   case 26:
03330 #line 199 "php_parser.y"
03331     { (yyvsp[-1]).u.opline_num = get_next_op_number(CG(active_op_array));  ;}
03332     break;
03333 
03334   case 27:
03335 #line 199 "php_parser.y"
03336     { zend_do_while_cond(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
03337     break;
03338 
03339   case 28:
03340 #line 199 "php_parser.y"
03341     { zend_do_while_end(&(yyvsp[-6]), &(yyvsp[-2]) TSRMLS_CC); ;}
03342     break;
03343 
03344   case 29:
03345 #line 200 "php_parser.y"
03346     { (yyvsp[0]).u.opline_num = get_next_op_number(CG(active_op_array));  zend_do_do_while_begin(TSRMLS_C); ;}
03347     break;
03348 
03349   case 30:
03350 #line 200 "php_parser.y"
03351     { (yyvsp[0]).u.opline_num = get_next_op_number(CG(active_op_array)); ;}
03352     break;
03353 
03354   case 31:
03355 #line 200 "php_parser.y"
03356     { zend_do_do_while_end(&(yyvsp[-8]), &(yyvsp[-4]), &(yyvsp[-2]) TSRMLS_CC); ;}
03357     break;
03358 
03359   case 32:
03360 #line 204 "php_parser.y"
03361     { zend_do_free(&(yyvsp[-1]) TSRMLS_CC); (yyvsp[0]).u.opline_num = get_next_op_number(CG(active_op_array)); ;}
03362     break;
03363 
03364   case 33:
03365 #line 206 "php_parser.y"
03366     { zend_do_extended_info(TSRMLS_C); zend_do_for_cond(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
03367     break;
03368 
03369   case 34:
03370 #line 208 "php_parser.y"
03371     { zend_do_free(&(yyvsp[-1]) TSRMLS_CC); zend_do_for_before_statement(&(yyvsp[-6]), &(yyvsp[-3]) TSRMLS_CC); ;}
03372     break;
03373 
03374   case 35:
03375 #line 209 "php_parser.y"
03376     { zend_do_for_end(&(yyvsp[-5]) TSRMLS_CC); ;}
03377     break;
03378 
03379   case 36:
03380 #line 210 "php_parser.y"
03381     { zend_do_switch_cond(&(yyvsp[-1]) TSRMLS_CC); ;}
03382     break;
03383 
03384   case 37:
03385 #line 210 "php_parser.y"
03386     { zend_do_switch_end(&(yyvsp[0]) TSRMLS_CC); ;}
03387     break;
03388 
03389   case 38:
03390 #line 211 "php_parser.y"
03391     { zend_do_brk_cont(ZEND_BRK, NULL TSRMLS_CC); ;}
03392     break;
03393 
03394   case 39:
03395 #line 212 "php_parser.y"
03396     { zend_do_brk_cont(ZEND_BRK, &(yyvsp[-1]) TSRMLS_CC); ;}
03397     break;
03398 
03399   case 40:
03400 #line 213 "php_parser.y"
03401     { zend_do_brk_cont(ZEND_CONT, NULL TSRMLS_CC); ;}
03402     break;
03403 
03404   case 41:
03405 #line 214 "php_parser.y"
03406     { zend_do_brk_cont(ZEND_CONT, &(yyvsp[-1]) TSRMLS_CC); ;}
03407     break;
03408 
03409   case 42:
03410 #line 215 "php_parser.y"
03411     { zend_do_return(NULL, 0 TSRMLS_CC); ;}
03412     break;
03413 
03414   case 43:
03415 #line 216 "php_parser.y"
03416     { zend_do_return(&(yyvsp[-1]), 0 TSRMLS_CC); ;}
03417     break;
03418 
03419   case 44:
03420 #line 217 "php_parser.y"
03421     { zend_do_return(&(yyvsp[-1]), 1 TSRMLS_CC); ;}
03422     break;
03423 
03424   case 48:
03425 #line 221 "php_parser.y"
03426     { zend_do_echo(&(yyvsp[0]) TSRMLS_CC); ;}
03427     break;
03428 
03429   case 49:
03430 #line 222 "php_parser.y"
03431     { zend_do_free(&(yyvsp[-1]) TSRMLS_CC); ;}
03432     break;
03433 
03434   case 50:
03435 #line 223 "php_parser.y"
03436     { zend_error(E_COMPILE_ERROR,"use: Not yet supported. Please use include_once() or require_once()");  zval_dtor(&(yyvsp[-1]).u.constant); ;}
03437     break;
03438 
03439   case 52:
03440 #line 225 "php_parser.y"
03441     { zend_do_foreach_begin(&(yyvsp[-2]), &(yyvsp[-1]), &(yyvsp[0]), 1 TSRMLS_CC); ;}
03442     break;
03443 
03444   case 53:
03445 #line 226 "php_parser.y"
03446     { zend_do_foreach_fetch(&(yyvsp[-4]), &(yyvsp[-3]), &(yyvsp[0]) TSRMLS_CC); ;}
03447     break;
03448 
03449   case 54:
03450 #line 227 "php_parser.y"
03451     { zend_do_foreach_cont(&(yyvsp[-8]), &(yyvsp[-4]), &(yyvsp[-2]), &(yyvsp[-1]) TSRMLS_CC); ;}
03452     break;
03453 
03454   case 55:
03455 #line 228 "php_parser.y"
03456     { zend_do_foreach_end(&(yyvsp[-10]), &(yyvsp[-6]) TSRMLS_CC); ;}
03457     break;
03458 
03459   case 56:
03460 #line 229 "php_parser.y"
03461     { zend_do_foreach_begin(&(yyvsp[-2]), &(yyvsp[-1]), &(yyvsp[0]), 0 TSRMLS_CC); ;}
03462     break;
03463 
03464   case 57:
03465 #line 230 "php_parser.y"
03466     { zend_do_foreach_fetch(&(yyvsp[-4]), &(yyvsp[-3]), &(yyvsp[0]) TSRMLS_CC); ;}
03467     break;
03468 
03469   case 58:
03470 #line 231 "php_parser.y"
03471     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_foreach_cont(&(yyvsp[-8]), &(yyvsp[-4]), &(yyvsp[-2]), &(yyvsp[-1]) TSRMLS_CC); ;}
03472     break;
03473 
03474   case 59:
03475 #line 232 "php_parser.y"
03476     { zend_do_foreach_end(&(yyvsp[-10]), &(yyvsp[-6]) TSRMLS_CC); ;}
03477     break;
03478 
03479   case 60:
03480 #line 233 "php_parser.y"
03481     { (yyvsp[0]).u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); ;}
03482     break;
03483 
03484   case 61:
03485 #line 233 "php_parser.y"
03486     { zend_do_declare_end(&(yyvsp[-5]) TSRMLS_CC); ;}
03487     break;
03488 
03489   case 63:
03490 #line 235 "php_parser.y"
03491     { zend_do_try(&(yyvsp[0]) TSRMLS_CC); ;}
03492     break;
03493 
03494   case 64:
03495 #line 236 "php_parser.y"
03496     { zend_initialize_try_catch_element(&(yyvsp[-6]) TSRMLS_CC); ;}
03497     break;
03498 
03499   case 65:
03500 #line 237 "php_parser.y"
03501     { zend_do_first_catch(&(yyvsp[-2]) TSRMLS_CC); ;}
03502     break;
03503 
03504   case 66:
03505 #line 238 "php_parser.y"
03506     { zend_do_begin_catch(&(yyvsp[-11]), &(yyvsp[-3]), &(yyvsp[-1]), 1 TSRMLS_CC); ;}
03507     break;
03508 
03509   case 67:
03510 #line 239 "php_parser.y"
03511     { zend_do_end_catch(&(yyvsp[-15]) TSRMLS_CC); ;}
03512     break;
03513 
03514   case 68:
03515 #line 240 "php_parser.y"
03516     { zend_do_mark_last_catch(&(yyvsp[-11]), &(yyvsp[0]) TSRMLS_CC); ;}
03517     break;
03518 
03519   case 69:
03520 #line 241 "php_parser.y"
03521     { zend_do_throw(&(yyvsp[-1]) TSRMLS_CC); ;}
03522     break;
03523 
03524   case 70:
03525 #line 246 "php_parser.y"
03526     { (yyval) = (yyvsp[0]); ;}
03527     break;
03528 
03529   case 71:
03530 #line 247 "php_parser.y"
03531     { (yyval).u.opline_num = -1; ;}
03532     break;
03533 
03534   case 72:
03535 #line 251 "php_parser.y"
03536     { (yyval) = (yyvsp[0]); ;}
03537     break;
03538 
03539   case 73:
03540 #line 252 "php_parser.y"
03541     { (yyval) = (yyvsp[0]); ;}
03542     break;
03543 
03544   case 74:
03545 #line 257 "php_parser.y"
03546     { (yyval).u.opline_num = get_next_op_number(CG(active_op_array)); ;}
03547     break;
03548 
03549   case 75:
03550 #line 257 "php_parser.y"
03551     { zend_do_begin_catch(&(yyvsp[-5]), &(yyvsp[-3]), &(yyvsp[-1]), 0 TSRMLS_CC); ;}
03552     break;
03553 
03554   case 76:
03555 #line 257 "php_parser.y"
03556     { zend_do_end_catch(&(yyvsp[-9]) TSRMLS_CC); ;}
03557     break;
03558 
03559   case 79:
03560 #line 267 "php_parser.y"
03561     { zend_do_end_variable_parse(BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&(yyvsp[0]) TSRMLS_CC); ;}
03562     break;
03563 
03564   case 80:
03565 #line 271 "php_parser.y"
03566     { (yyval) = (yyvsp[0]); ;}
03567     break;
03568 
03569   case 81:
03570 #line 272 "php_parser.y"
03571     { (yyval) = (yyvsp[-1]); ;}
03572     break;
03573 
03574   case 82:
03575 #line 277 "php_parser.y"
03576     { zend_do_ticks(TSRMLS_C); ;}
03577     break;
03578 
03579   case 83:
03580 #line 281 "php_parser.y"
03581     { zend_do_ticks(TSRMLS_C); ;}
03582     break;
03583 
03584   case 84:
03585 #line 286 "php_parser.y"
03586     { (yyval).op_type = ZEND_RETURN_VAL; ;}
03587     break;
03588 
03589   case 85:
03590 #line 287 "php_parser.y"
03591     { (yyval).op_type = ZEND_RETURN_REF; ;}
03592     break;
03593 
03594   case 86:
03595 #line 292 "php_parser.y"
03596     { (yyvsp[0]).u.opline_num = CG(zend_lineno); ;}
03597     break;
03598 
03599   case 87:
03600 #line 292 "php_parser.y"
03601     { zend_do_begin_function_declaration(&(yyvsp[-3]), &(yyvsp[0]), 0, (yyvsp[-1]).op_type, NULL TSRMLS_CC); ;}
03602     break;
03603 
03604   case 88:
03605 #line 293 "php_parser.y"
03606     { zend_do_end_function_declaration(&(yyvsp[-10]) TSRMLS_CC); ;}
03607     break;
03608 
03609   case 89:
03610 #line 298 "php_parser.y"
03611     { zend_do_begin_class_declaration(&(yyvsp[-2]), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
03612     break;
03613 
03614   case 90:
03615 #line 302 "php_parser.y"
03616     { zend_do_end_class_declaration(&(yyvsp[-7]), &(yyvsp[-6]) TSRMLS_CC); ;}
03617     break;
03618 
03619   case 91:
03620 #line 304 "php_parser.y"
03621     { zend_do_begin_class_declaration(&(yyvsp[-1]), &(yyvsp[0]), NULL TSRMLS_CC); ;}
03622     break;
03623 
03624   case 92:
03625 #line 308 "php_parser.y"
03626     { zend_do_end_class_declaration(&(yyvsp[-6]), &(yyvsp[-5]) TSRMLS_CC); ;}
03627     break;
03628 
03629   case 141:
03630 #line 413 "php_parser.y"
03631     { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = 0; ;}
03632     break;
03633 
03634   case 142:
03635 #line 414 "php_parser.y"
03636     { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; ;}
03637     break;
03638 
03639   case 143:
03640 #line 415 "php_parser.y"
03641     { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_FINAL_CLASS; ;}
03642     break;
03643 
03644   case 144:
03645 #line 419 "php_parser.y"
03646     { (yyval).op_type = IS_UNUSED; ;}
03647     break;
03648 
03649   case 145:
03650 #line 420 "php_parser.y"
03651     { (yyval) = (yyvsp[0]); ;}
03652     break;
03653 
03654   case 146:
03655 #line 424 "php_parser.y"
03656     { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_INTERFACE; ;}
03657     break;
03658 
03659   case 151:
03660 #line 438 "php_parser.y"
03661     { zend_do_implements_interface(&(yyvsp[0]) TSRMLS_CC); ;}
03662     break;
03663 
03664   case 152:
03665 #line 439 "php_parser.y"
03666     { zend_do_implements_interface(&(yyvsp[0]) TSRMLS_CC); ;}
03667     break;
03668 
03669   case 153:
03670 #line 443 "php_parser.y"
03671     { (yyval).op_type = IS_UNUSED; ;}
03672     break;
03673 
03674   case 154:
03675 #line 444 "php_parser.y"
03676     { (yyval) = (yyvsp[0]); ;}
03677     break;
03678 
03679   case 155:
03680 #line 449 "php_parser.y"
03681     { zend_check_writable_variable(&(yyvsp[0])); (yyval) = (yyvsp[0]); ;}
03682     break;
03683 
03684   case 156:
03685 #line 450 "php_parser.y"
03686     { zend_check_writable_variable(&(yyvsp[0])); (yyval) = (yyvsp[0]);  (yyval).u.EA.type |= ZEND_PARSED_REFERENCE_VARIABLE; ;}
03687     break;
03688 
03689   case 163:
03690 #line 472 "php_parser.y"
03691     { zend_do_declare_stmt(&(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
03692     break;
03693 
03694   case 164:
03695 #line 473 "php_parser.y"
03696     { zend_do_declare_stmt(&(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
03697     break;
03698 
03699   case 165:
03700 #line 478 "php_parser.y"
03701     { (yyval) = (yyvsp[-1]); ;}
03702     break;
03703 
03704   case 166:
03705 #line 479 "php_parser.y"
03706     { (yyval) = (yyvsp[-1]); ;}
03707     break;
03708 
03709   case 167:
03710 #line 480 "php_parser.y"
03711     { (yyval) = (yyvsp[-2]); ;}
03712     break;
03713 
03714   case 168:
03715 #line 481 "php_parser.y"
03716     { (yyval) = (yyvsp[-2]); ;}
03717     break;
03718 
03719   case 169:
03720 #line 486 "php_parser.y"
03721     { (yyval).op_type = IS_UNUSED; ;}
03722     break;
03723 
03724   case 170:
03725 #line 487 "php_parser.y"
03726     { zend_do_extended_info(TSRMLS_C);  zend_do_case_before_statement(&(yyvsp[-3]), &(yyvsp[-2]), &(yyvsp[-1]) TSRMLS_CC); ;}
03727     break;
03728 
03729   case 171:
03730 #line 487 "php_parser.y"
03731     { zend_do_case_after_statement(&(yyval), &(yyvsp[-4]) TSRMLS_CC); (yyval).op_type = IS_CONST; ;}
03732     break;
03733 
03734   case 172:
03735 #line 488 "php_parser.y"
03736     { zend_do_extended_info(TSRMLS_C);  zend_do_default_before_statement(&(yyvsp[-2]), &(yyvsp[-1]) TSRMLS_CC); ;}
03737     break;
03738 
03739   case 173:
03740 #line 488 "php_parser.y"
03741     { zend_do_case_after_statement(&(yyval), &(yyvsp[-3]) TSRMLS_CC); (yyval).op_type = IS_CONST; ;}
03742     break;
03743 
03744   case 179:
03745 #line 507 "php_parser.y"
03746     { zend_do_if_cond(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
03747     break;
03748 
03749   case 180:
03750 #line 507 "php_parser.y"
03751     { zend_do_if_after_statement(&(yyvsp[-2]), 0 TSRMLS_CC); ;}
03752     break;
03753 
03754   case 182:
03755 #line 513 "php_parser.y"
03756     { zend_do_if_cond(&(yyvsp[-2]), &(yyvsp[-1]) TSRMLS_CC); ;}
03757     break;
03758 
03759   case 183:
03760 #line 513 "php_parser.y"
03761     { zend_do_if_after_statement(&(yyvsp[-3]), 0 TSRMLS_CC); ;}
03762     break;
03763 
03764   case 190:
03765 #line 536 "php_parser.y"
03766     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[0]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[-1]), &(yyvsp[0]), 0 TSRMLS_CC); ;}
03767     break;
03768 
03769   case 191:
03770 #line 537 "php_parser.y"
03771     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[0]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[-2]), &(yyvsp[0]), 1 TSRMLS_CC); ;}
03772     break;
03773 
03774   case 192:
03775 #line 538 "php_parser.y"
03776     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[-2]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[0]), &(yyvsp[-4]), &(yyvsp[-2]), 1 TSRMLS_CC); ;}
03777     break;
03778 
03779   case 193:
03780 #line 539 "php_parser.y"
03781     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[-2]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[0]), &(yyvsp[-3]), &(yyvsp[-2]), 0 TSRMLS_CC); ;}
03782     break;
03783 
03784   case 194:
03785 #line 540 "php_parser.y"
03786     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[0]), 0 TSRMLS_CC); (yyval)=(yyvsp[-3]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[-1]), &(yyvsp[0]), 0 TSRMLS_CC); ;}
03787     break;
03788 
03789   case 195:
03790 #line 541 "php_parser.y"
03791     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[0]), 0 TSRMLS_CC); (yyval)=(yyvsp[-4]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[-2]), &(yyvsp[0]), 1 TSRMLS_CC); ;}
03792     break;
03793 
03794   case 196:
03795 #line 542 "php_parser.y"
03796     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[-2]), 0 TSRMLS_CC); (yyval)=(yyvsp[-6]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[0]), &(yyvsp[-4]), &(yyvsp[-2]), 1 TSRMLS_CC); ;}
03797     break;
03798 
03799   case 197:
03800 #line 543 "php_parser.y"
03801     { znode tmp;  fetch_simple_variable(&tmp, &(yyvsp[-2]), 0 TSRMLS_CC); (yyval)=(yyvsp[-5]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[0]), &(yyvsp[-3]), &(yyvsp[-2]), 0 TSRMLS_CC); ;}
03802     break;
03803 
03804   case 198:
03805 #line 548 "php_parser.y"
03806     { (yyval).op_type = IS_UNUSED; ;}
03807     break;
03808 
03809   case 199:
03810 #line 549 "php_parser.y"
03811     { (yyval) = (yyvsp[0]); ;}
03812     break;
03813 
03814   case 200:
03815 #line 550 "php_parser.y"
03816     { (yyval).op_type = IS_CONST; (yyval).u.constant.type=IS_NULL;;}
03817     break;
03818 
03819   case 201:
03820 #line 555 "php_parser.y"
03821     { (yyval) = (yyvsp[0]); ;}
03822     break;
03823 
03824   case 202:
03825 #line 556 "php_parser.y"
03826     { (yyval).u.constant.value.lval = 0; ;}
03827     break;
03828 
03829   case 203:
03830 #line 561 "php_parser.y"
03831     { (yyval).u.constant.value.lval = 1;  zend_do_pass_param(&(yyvsp[0]), ZEND_SEND_VAL, (yyval).u.constant.value.lval TSRMLS_CC); ;}
03832     break;
03833 
03834   case 204:
03835 #line 562 "php_parser.y"
03836     { (yyval).u.constant.value.lval = 1;  zend_do_pass_param(&(yyvsp[0]), ZEND_SEND_VAR, (yyval).u.constant.value.lval TSRMLS_CC); ;}
03837     break;
03838 
03839   case 205:
03840 #line 563 "php_parser.y"
03841     { (yyval).u.constant.value.lval = 1;  zend_do_pass_param(&(yyvsp[0]), ZEND_SEND_REF, (yyval).u.constant.value.lval TSRMLS_CC); ;}
03842     break;
03843 
03844   case 206:
03845 #line 564 "php_parser.y"
03846     { (yyval).u.constant.value.lval=(yyvsp[-2]).u.constant.value.lval+1;  zend_do_pass_param(&(yyvsp[0]), ZEND_SEND_VAL, (yyval).u.constant.value.lval TSRMLS_CC); ;}
03847     break;
03848 
03849   case 207:
03850 #line 565 "php_parser.y"
03851     { (yyval).u.constant.value.lval=(yyvsp[-2]).u.constant.value.lval+1;  zend_do_pass_param(&(yyvsp[0]), ZEND_SEND_VAR, (yyval).u.constant.value.lval TSRMLS_CC); ;}
03852     break;
03853 
03854   case 208:
03855 #line 566 "php_parser.y"
03856     { (yyval).u.constant.value.lval=(yyvsp[-3]).u.constant.value.lval+1;  zend_do_pass_param(&(yyvsp[0]), ZEND_SEND_REF, (yyval).u.constant.value.lval TSRMLS_CC); ;}
03857     break;
03858 
03859   case 209:
03860 #line 570 "php_parser.y"
03861     { zend_do_fetch_global_variable(&(yyvsp[0]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); ;}
03862     break;
03863 
03864   case 210:
03865 #line 571 "php_parser.y"
03866     { zend_do_fetch_global_variable(&(yyvsp[0]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); ;}
03867     break;
03868 
03869   case 211:
03870 #line 576 "php_parser.y"
03871     { (yyval) = (yyvsp[0]); ;}
03872     break;
03873 
03874   case 212:
03875 #line 577 "php_parser.y"
03876     { (yyval) = (yyvsp[0]); ;}
03877     break;
03878 
03879   case 213:
03880 #line 578 "php_parser.y"
03881     { (yyval) = (yyvsp[-1]); ;}
03882     break;
03883 
03884   case 214:
03885 #line 583 "php_parser.y"
03886     { zend_do_fetch_static_variable(&(yyvsp[0]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); ;}
03887     break;
03888 
03889   case 215:
03890 #line 584 "php_parser.y"
03891     { zend_do_fetch_static_variable(&(yyvsp[-2]), &(yyvsp[0]), ZEND_FETCH_STATIC TSRMLS_CC); ;}
03892     break;
03893 
03894   case 216:
03895 #line 585 "php_parser.y"
03896     { zend_do_fetch_static_variable(&(yyvsp[0]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); ;}
03897     break;
03898 
03899   case 217:
03900 #line 586 "php_parser.y"
03901     { zend_do_fetch_static_variable(&(yyvsp[-2]), &(yyvsp[0]), ZEND_FETCH_STATIC TSRMLS_CC); ;}
03902     break;
03903 
03904   case 220:
03905 #line 598 "php_parser.y"
03906     { CG(access_type) = (yyvsp[0]).u.constant.value.lval; ;}
03907     break;
03908 
03909   case 224:
03910 #line 606 "php_parser.y"
03911     { (yyval).u.constant.value.lval = ZEND_ACC_ABSTRACT; ;}
03912     break;
03913 
03914   case 225:
03915 #line 607 "php_parser.y"
03916     { (yyval).u.constant.value.lval = 0;    ;}
03917     break;
03918 
03919   case 226:
03920 #line 611 "php_parser.y"
03921     { (yyval) = (yyvsp[0]); ;}
03922     break;
03923 
03924   case 227:
03925 #line 612 "php_parser.y"
03926     { (yyval).u.constant.value.lval = ZEND_ACC_PUBLIC; ;}
03927     break;
03928 
03929   case 228:
03930 #line 616 "php_parser.y"
03931     { (yyval).u.constant.value.lval = ZEND_ACC_PUBLIC; ;}
03932     break;
03933 
03934   case 229:
03935 #line 617 "php_parser.y"
03936     { (yyval) = (yyvsp[0]);  if (!((yyval).u.constant.value.lval & ZEND_ACC_PPP_MASK)) { (yyval).u.constant.value.lval |= ZEND_ACC_PUBLIC; } ;}
03937     break;
03938 
03939   case 230:
03940 #line 621 "php_parser.y"
03941     { (yyval) = (yyvsp[0]); ;}
03942     break;
03943 
03944   case 231:
03945 #line 622 "php_parser.y"
03946     { (yyval).u.constant.value.lval = zend_do_verify_access_types(&(yyvsp[-1]), &(yyvsp[0])); ;}
03947     break;
03948 
03949   case 232:
03950 #line 626 "php_parser.y"
03951     { (yyval).u.constant.value.lval = ZEND_ACC_PUBLIC; ;}
03952     break;
03953 
03954   case 233:
03955 #line 627 "php_parser.y"
03956     { (yyval).u.constant.value.lval = ZEND_ACC_PROTECTED; ;}
03957     break;
03958 
03959   case 234:
03960 #line 628 "php_parser.y"
03961     { (yyval).u.constant.value.lval = ZEND_ACC_PRIVATE; ;}
03962     break;
03963 
03964   case 235:
03965 #line 629 "php_parser.y"
03966     { (yyval).u.constant.value.lval = ZEND_ACC_STATIC; ;}
03967     break;
03968 
03969   case 236:
03970 #line 630 "php_parser.y"
03971     { (yyval).u.constant.value.lval = ZEND_ACC_ABSTRACT; ;}
03972     break;
03973 
03974   case 237:
03975 #line 631 "php_parser.y"
03976     { (yyval).u.constant.value.lval = ZEND_ACC_FINAL; ;}
03977     break;
03978 
03979   case 238:
03980 #line 635 "php_parser.y"
03981     { zend_do_declare_property(&(yyvsp[0]), NULL, CG(access_type) TSRMLS_CC); ;}
03982     break;
03983 
03984   case 239:
03985 #line 636 "php_parser.y"
03986     { zend_do_declare_property(&(yyvsp[-2]), &(yyvsp[0]), CG(access_type) TSRMLS_CC); ;}
03987     break;
03988 
03989   case 240:
03990 #line 637 "php_parser.y"
03991     { zend_do_declare_property(&(yyvsp[0]), NULL, CG(access_type) TSRMLS_CC); ;}
03992     break;
03993 
03994   case 241:
03995 #line 638 "php_parser.y"
03996     { zend_do_declare_property(&(yyvsp[-2]), &(yyvsp[0]), CG(access_type) TSRMLS_CC); ;}
03997     break;
03998 
03999   case 242:
04000 #line 642 "php_parser.y"
04001     { zend_do_declare_class_constant(&(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04002     break;
04003 
04004   case 243:
04005 #line 643 "php_parser.y"
04006     { zend_do_declare_class_constant(&(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04007     break;
04008 
04009   case 244:
04010 #line 647 "php_parser.y"
04011     { zend_do_echo(&(yyvsp[0]) TSRMLS_CC); ;}
04012     break;
04013 
04014   case 245:
04015 #line 648 "php_parser.y"
04016     { zend_do_echo(&(yyvsp[0]) TSRMLS_CC); ;}
04017     break;
04018 
04019   case 246:
04020 #line 653 "php_parser.y"
04021     { (yyval).op_type = IS_CONST;  (yyval).u.constant.type = IS_BOOL;  (yyval).u.constant.value.lval = 1; ;}
04022     break;
04023 
04024   case 247:
04025 #line 654 "php_parser.y"
04026     { (yyval) = (yyvsp[0]); ;}
04027     break;
04028 
04029   case 248:
04030 #line 658 "php_parser.y"
04031     { zend_do_free(&(yyvsp[-1]) TSRMLS_CC); ;}
04032     break;
04033 
04034   case 249:
04035 #line 658 "php_parser.y"
04036     { (yyval) = (yyvsp[0]); ;}
04037     break;
04038 
04039   case 250:
04040 #line 659 "php_parser.y"
04041     { (yyval) = (yyvsp[0]); ;}
04042     break;
04043 
04044   case 251:
04045 #line 663 "php_parser.y"
04046     { zend_do_list_init(TSRMLS_C); ;}
04047     break;
04048 
04049   case 252:
04050 #line 663 "php_parser.y"
04051     { zend_do_list_end(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04052     break;
04053 
04054   case 253:
04055 #line 664 "php_parser.y"
04056     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04057     break;
04058 
04059   case 254:
04060 #line 665 "php_parser.y"
04061     { zend_check_writable_variable(&(yyvsp[-3])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[-3]), &(yyvsp[0]) TSRMLS_CC); ;}
04062     break;
04063 
04064   case 255:
04065 #line 666 "php_parser.y"
04066     { zend_error(E_STRICT, "Assigning the return value of new by reference is deprecated");  zend_check_writable_variable(&(yyvsp[-4])); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04067     break;
04068 
04069   case 256:
04070 #line 666 "php_parser.y"
04071     { zend_do_end_new_object(&(yyvsp[-4]), &(yyvsp[-3]), &(yyvsp[0]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[-6]), &(yyvsp[-4]) TSRMLS_CC); ;}
04072     break;
04073 
04074   case 257:
04075 #line 667 "php_parser.y"
04076     { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04077     break;
04078 
04079   case 258:
04080 #line 667 "php_parser.y"
04081     { zend_do_end_new_object(&(yyval), &(yyvsp[-3]), &(yyvsp[0]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);;}
04082     break;
04083 
04084   case 259:
04085 #line 668 "php_parser.y"
04086     { zend_do_clone(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04087     break;
04088 
04089   case 260:
04090 #line 669 "php_parser.y"
04091     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04092     break;
04093 
04094   case 261:
04095 #line 670 "php_parser.y"
04096     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04097     break;
04098 
04099   case 262:
04100 #line 671 "php_parser.y"
04101     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04102     break;
04103 
04104   case 263:
04105 #line 672 "php_parser.y"
04106     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04107     break;
04108 
04109   case 264:
04110 #line 673 "php_parser.y"
04111     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04112     break;
04113 
04114   case 265:
04115 #line 674 "php_parser.y"
04116     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04117     break;
04118 
04119   case 266:
04120 #line 675 "php_parser.y"
04121     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04122     break;
04123 
04124   case 267:
04125 #line 676 "php_parser.y"
04126     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04127     break;
04128 
04129   case 268:
04130 #line 677 "php_parser.y"
04131     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04132     break;
04133 
04134   case 269:
04135 #line 678 "php_parser.y"
04136     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04137     break;
04138 
04139   case 270:
04140 #line 679 "php_parser.y"
04141     { zend_check_writable_variable(&(yyvsp[-2])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04142     break;
04143 
04144   case 271:
04145 #line 680 "php_parser.y"
04146     { zend_do_post_incdec(&(yyval), &(yyvsp[-1]), ZEND_POST_INC TSRMLS_CC); ;}
04147     break;
04148 
04149   case 272:
04150 #line 681 "php_parser.y"
04151     { zend_do_pre_incdec(&(yyval), &(yyvsp[0]), ZEND_PRE_INC TSRMLS_CC); ;}
04152     break;
04153 
04154   case 273:
04155 #line 682 "php_parser.y"
04156     { zend_do_post_incdec(&(yyval), &(yyvsp[-1]), ZEND_POST_DEC TSRMLS_CC); ;}
04157     break;
04158 
04159   case 274:
04160 #line 683 "php_parser.y"
04161     { zend_do_pre_incdec(&(yyval), &(yyvsp[0]), ZEND_PRE_DEC TSRMLS_CC); ;}
04162     break;
04163 
04164   case 275:
04165 #line 684 "php_parser.y"
04166     { zend_do_boolean_or_begin(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04167     break;
04168 
04169   case 276:
04170 #line 684 "php_parser.y"
04171     { zend_do_boolean_or_end(&(yyval), &(yyvsp[-3]), &(yyvsp[0]), &(yyvsp[-2]) TSRMLS_CC); ;}
04172     break;
04173 
04174   case 277:
04175 #line 685 "php_parser.y"
04176     { zend_do_boolean_and_begin(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04177     break;
04178 
04179   case 278:
04180 #line 685 "php_parser.y"
04181     { zend_do_boolean_and_end(&(yyval), &(yyvsp[-3]), &(yyvsp[0]), &(yyvsp[-2]) TSRMLS_CC); ;}
04182     break;
04183 
04184   case 279:
04185 #line 686 "php_parser.y"
04186     { zend_do_boolean_or_begin(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04187     break;
04188 
04189   case 280:
04190 #line 686 "php_parser.y"
04191     { zend_do_boolean_or_end(&(yyval), &(yyvsp[-3]), &(yyvsp[0]), &(yyvsp[-2]) TSRMLS_CC); ;}
04192     break;
04193 
04194   case 281:
04195 #line 687 "php_parser.y"
04196     { zend_do_boolean_and_begin(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04197     break;
04198 
04199   case 282:
04200 #line 687 "php_parser.y"
04201     { zend_do_boolean_and_end(&(yyval), &(yyvsp[-3]), &(yyvsp[0]), &(yyvsp[-2]) TSRMLS_CC); ;}
04202     break;
04203 
04204   case 283:
04205 #line 688 "php_parser.y"
04206     { zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04207     break;
04208 
04209   case 284:
04210 #line 689 "php_parser.y"
04211     { zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04212     break;
04213 
04214   case 285:
04215 #line 690 "php_parser.y"
04216     { zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04217     break;
04218 
04219   case 286:
04220 #line 691 "php_parser.y"
04221     { zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04222     break;
04223 
04224   case 287:
04225 #line 692 "php_parser.y"
04226     { zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04227     break;
04228 
04229   case 288:
04230 #line 693 "php_parser.y"
04231     { zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04232     break;
04233 
04234   case 289:
04235 #line 694 "php_parser.y"
04236     { zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04237     break;
04238 
04239   case 290:
04240 #line 695 "php_parser.y"
04241     { zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04242     break;
04243 
04244   case 291:
04245 #line 696 "php_parser.y"
04246     { zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04247     break;
04248 
04249   case 292:
04250 #line 697 "php_parser.y"
04251     { zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04252     break;
04253 
04254   case 293:
04255 #line 698 "php_parser.y"
04256     { zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04257     break;
04258 
04259   case 294:
04260 #line 699 "php_parser.y"
04261     { zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04262     break;
04263 
04264   case 295:
04265 #line 700 "php_parser.y"
04266     { (yyvsp[-1]).u.constant.value.lval=0; (yyvsp[-1]).u.constant.type=IS_LONG; (yyvsp[-1]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[-1]).u.constant); zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04267     break;
04268 
04269   case 296:
04270 #line 701 "php_parser.y"
04271     { (yyvsp[-1]).u.constant.value.lval=0; (yyvsp[-1]).u.constant.type=IS_LONG; (yyvsp[-1]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[-1]).u.constant); zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04272     break;
04273 
04274   case 297:
04275 #line 702 "php_parser.y"
04276     { zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04277     break;
04278 
04279   case 298:
04280 #line 703 "php_parser.y"
04281     { zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04282     break;
04283 
04284   case 299:
04285 #line 704 "php_parser.y"
04286     { zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04287     break;
04288 
04289   case 300:
04290 #line 705 "php_parser.y"
04291     { zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04292     break;
04293 
04294   case 301:
04295 #line 706 "php_parser.y"
04296     { zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04297     break;
04298 
04299   case 302:
04300 #line 707 "php_parser.y"
04301     { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04302     break;
04303 
04304   case 303:
04305 #line 708 "php_parser.y"
04306     { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04307     break;
04308 
04309   case 304:
04310 #line 709 "php_parser.y"
04311     { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[-2]), &(yyvsp[0]) TSRMLS_CC); ;}
04312     break;
04313 
04314   case 305:
04315 #line 710 "php_parser.y"
04316     { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[0]), &(yyvsp[-2]) TSRMLS_CC); ;}
04317     break;
04318 
04319   case 306:
04320 #line 711 "php_parser.y"
04321     { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[0]), &(yyvsp[-2]) TSRMLS_CC); ;}
04322     break;
04323 
04324   case 307:
04325 #line 712 "php_parser.y"
04326     { zend_do_instanceof(&(yyval), &(yyvsp[-2]), &(yyvsp[0]), 0 TSRMLS_CC); ;}
04327     break;
04328 
04329   case 308:
04330 #line 713 "php_parser.y"
04331     { (yyval) = (yyvsp[-1]); ;}
04332     break;
04333 
04334   case 309:
04335 #line 714 "php_parser.y"
04336     { zend_do_begin_qm_op(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04337     break;
04338 
04339   case 310:
04340 #line 715 "php_parser.y"
04341     { zend_do_qm_true(&(yyvsp[-1]), &(yyvsp[-3]), &(yyvsp[0]) TSRMLS_CC); ;}
04342     break;
04343 
04344   case 311:
04345 #line 716 "php_parser.y"
04346     { zend_do_qm_false(&(yyval), &(yyvsp[0]), &(yyvsp[-5]), &(yyvsp[-2]) TSRMLS_CC); ;}
04347     break;
04348 
04349   case 312:
04350 #line 717 "php_parser.y"
04351     { (yyval) = (yyvsp[0]); ;}
04352     break;
04353 
04354   case 313:
04355 #line 718 "php_parser.y"
04356     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_LONG TSRMLS_CC); ;}
04357     break;
04358 
04359   case 314:
04360 #line 719 "php_parser.y"
04361     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_DOUBLE TSRMLS_CC); ;}
04362     break;
04363 
04364   case 315:
04365 #line 720 "php_parser.y"
04366     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_STRING TSRMLS_CC); ;}
04367     break;
04368 
04369   case 316:
04370 #line 721 "php_parser.y"
04371     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_ARRAY TSRMLS_CC); ;}
04372     break;
04373 
04374   case 317:
04375 #line 722 "php_parser.y"
04376     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_OBJECT TSRMLS_CC); ;}
04377     break;
04378 
04379   case 318:
04380 #line 723 "php_parser.y"
04381     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_BOOL TSRMLS_CC); ;}
04382     break;
04383 
04384   case 319:
04385 #line 724 "php_parser.y"
04386     { zend_do_cast(&(yyval), &(yyvsp[0]), IS_NULL TSRMLS_CC); ;}
04387     break;
04388 
04389   case 320:
04390 #line 725 "php_parser.y"
04391     { zend_do_exit(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04392     break;
04393 
04394   case 321:
04395 #line 726 "php_parser.y"
04396     { zend_do_begin_silence(&(yyvsp[0]) TSRMLS_CC); ;}
04397     break;
04398 
04399   case 322:
04400 #line 726 "php_parser.y"
04401     { zend_do_end_silence(&(yyvsp[-2]) TSRMLS_CC); (yyval) = (yyvsp[0]); ;}
04402     break;
04403 
04404   case 323:
04405 #line 727 "php_parser.y"
04406     { (yyval) = (yyvsp[0]); ;}
04407     break;
04408 
04409   case 324:
04410 #line 728 "php_parser.y"
04411     { (yyval) = (yyvsp[-1]); ;}
04412     break;
04413 
04414   case 325:
04415 #line 729 "php_parser.y"
04416     { zend_do_shell_exec(&(yyval), &(yyvsp[-1]) TSRMLS_CC); ;}
04417     break;
04418 
04419   case 326:
04420 #line 730 "php_parser.y"
04421     { zend_do_print(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04422     break;
04423 
04424   case 327:
04425 #line 734 "php_parser.y"
04426     { (yyvsp[0]).u.opline_num = zend_do_begin_function_call(&(yyvsp[-1]) TSRMLS_CC); ;}
04427     break;
04428 
04429   case 328:
04430 #line 736 "php_parser.y"
04431     { zend_do_end_function_call(&(yyvsp[-4]), &(yyval), &(yyvsp[-1]), 0, (yyvsp[-3]).u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); ;}
04432     break;
04433 
04434   case 329:
04435 #line 737 "php_parser.y"
04436     { zend_do_begin_class_member_function_call(&(yyvsp[-3]), &(yyvsp[-1]) TSRMLS_CC); ;}
04437     break;
04438 
04439   case 330:
04440 #line 739 "php_parser.y"
04441     { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[-1]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);;}
04442     break;
04443 
04444   case 331:
04445 #line 740 "php_parser.y"
04446     { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[-3]), &(yyvsp[-1]) TSRMLS_CC); ;}
04447     break;
04448 
04449   case 332:
04450 #line 742 "php_parser.y"
04451     { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[-1]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);;}
04452     break;
04453 
04454   case 333:
04455 #line 743 "php_parser.y"
04456     { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&(yyvsp[-1]) TSRMLS_CC); ;}
04457     break;
04458 
04459   case 334:
04460 #line 745 "php_parser.y"
04461     { zend_do_end_function_call(&(yyvsp[-4]), &(yyval), &(yyvsp[-1]), 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);;}
04462     break;
04463 
04464   case 335:
04465 #line 749 "php_parser.y"
04466     { zend_do_fetch_class(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04467     break;
04468 
04469   case 336:
04470 #line 753 "php_parser.y"
04471     { zend_do_fetch_class(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04472     break;
04473 
04474   case 337:
04475 #line 754 "php_parser.y"
04476     { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_fetch_class(&(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
04477     break;
04478 
04479   case 338:
04480 #line 759 "php_parser.y"
04481     { zend_do_push_object(&(yyvsp[-1]) TSRMLS_CC); ;}
04482     break;
04483 
04484   case 339:
04485 #line 760 "php_parser.y"
04486     { zend_do_push_object(&(yyvsp[0]) TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); ;}
04487     break;
04488 
04489   case 340:
04490 #line 761 "php_parser.y"
04491     { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_MEMBER; ;}
04492     break;
04493 
04494   case 341:
04495 #line 762 "php_parser.y"
04496     { (yyval) = (yyvsp[0]); ;}
04497     break;
04498 
04499   case 344:
04500 #line 773 "php_parser.y"
04501     { zend_do_push_object(&(yyvsp[0]) TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); ;}
04502     break;
04503 
04504   case 345:
04505 #line 777 "php_parser.y"
04506     { memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; ;}
04507     break;
04508 
04509   case 346:
04510 #line 778 "php_parser.y"
04511     { memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; ;}
04512     break;
04513 
04514   case 347:
04515 #line 779 "php_parser.y"
04516     { (yyval) = (yyvsp[-1]); ;}
04517     break;
04518 
04519   case 348:
04520 #line 784 "php_parser.y"
04521     { (yyval).u.constant.value.lval=0; ;}
04522     break;
04523 
04524   case 349:
04525 #line 785 "php_parser.y"
04526     { (yyval) = (yyvsp[-1]); ;}
04527     break;
04528 
04529   case 350:
04530 #line 790 "php_parser.y"
04531     { (yyval) = (yyvsp[0]); ;}
04532     break;
04533 
04534   case 351:
04535 #line 791 "php_parser.y"
04536     { (yyval) = (yyvsp[0]); ;}
04537     break;
04538 
04539   case 352:
04540 #line 792 "php_parser.y"
04541     { (yyval) = (yyvsp[0]); ;}
04542     break;
04543 
04544   case 353:
04545 #line 793 "php_parser.y"
04546     { (yyval) = (yyvsp[0]); ;}
04547     break;
04548 
04549   case 354:
04550 #line 794 "php_parser.y"
04551     { (yyval) = (yyvsp[0]); ;}
04552     break;
04553 
04554   case 355:
04555 #line 795 "php_parser.y"
04556     { (yyval) = (yyvsp[0]); ;}
04557     break;
04558 
04559   case 356:
04560 #line 796 "php_parser.y"
04561     { (yyval) = (yyvsp[0]); ;}
04562     break;
04563 
04564   case 357:
04565 #line 797 "php_parser.y"
04566     { (yyval) = (yyvsp[0]); ;}
04567     break;
04568 
04569   case 358:
04570 #line 802 "php_parser.y"
04571     { (yyval) = (yyvsp[0]); ;}
04572     break;
04573 
04574   case 359:
04575 #line 803 "php_parser.y"
04576     { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[0]), ZEND_CT TSRMLS_CC); ;}
04577     break;
04578 
04579   case 360:
04580 #line 804 "php_parser.y"
04581     { (yyval) = (yyvsp[0]); ;}
04582     break;
04583 
04584   case 361:
04585 #line 805 "php_parser.y"
04586     { zval minus_one;  minus_one.type = IS_LONG; minus_one.value.lval = -1;  mul_function(&(yyvsp[0]).u.constant, &(yyvsp[0]).u.constant, &minus_one TSRMLS_CC);  (yyval) = (yyvsp[0]); ;}
04587     break;
04588 
04589   case 362:
04590 #line 806 "php_parser.y"
04591     { (yyval) = (yyvsp[-1]); (yyval).u.constant.type = IS_CONSTANT_ARRAY; ;}
04592     break;
04593 
04594   case 363:
04595 #line 807 "php_parser.y"
04596     { (yyval) = (yyvsp[0]); ;}
04597     break;
04598 
04599   case 364:
04600 #line 811 "php_parser.y"
04601     { zend_do_fetch_constant(&(yyval), &(yyvsp[-2]), &(yyvsp[0]), ZEND_CT TSRMLS_CC); ;}
04602     break;
04603 
04604   case 365:
04605 #line 815 "php_parser.y"
04606     { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[0]), ZEND_RT TSRMLS_CC); ;}
04607     break;
04608 
04609   case 366:
04610 #line 816 "php_parser.y"
04611     { (yyval) = (yyvsp[0]); ;}
04612     break;
04613 
04614   case 367:
04615 #line 817 "php_parser.y"
04616     { (yyval) = (yyvsp[0]); ;}
04617     break;
04618 
04619   case 368:
04620 #line 818 "php_parser.y"
04621     { (yyval) = (yyvsp[0]); ;}
04622     break;
04623 
04624   case 369:
04625 #line 819 "php_parser.y"
04626     { (yyval) = (yyvsp[-1]); ;}
04627     break;
04628 
04629   case 370:
04630 #line 820 "php_parser.y"
04631     { (yyval) = (yyvsp[-1]); ;}
04632     break;
04633 
04634   case 371:
04635 #line 821 "php_parser.y"
04636     { (yyval) = (yyvsp[-1]); zend_do_end_heredoc(TSRMLS_C); ;}
04637     break;
04638 
04639   case 372:
04640 #line 826 "php_parser.y"
04641     { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); ;}
04642     break;
04643 
04644   case 373:
04645 #line 827 "php_parser.y"
04646     { (yyval) = (yyvsp[-1]); ;}
04647     break;
04648 
04649   case 376:
04650 #line 836 "php_parser.y"
04651     { zend_do_add_static_array_element(&(yyval), &(yyvsp[-2]), &(yyvsp[0])); ;}
04652     break;
04653 
04654   case 377:
04655 #line 837 "php_parser.y"
04656     { zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[0])); ;}
04657     break;
04658 
04659   case 378:
04660 #line 838 "php_parser.y"
04661     { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), &(yyvsp[-2]), &(yyvsp[0])); ;}
04662     break;
04663 
04664   case 379:
04665 #line 839 "php_parser.y"
04666     { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[0])); ;}
04667     break;
04668 
04669   case 380:
04670 #line 843 "php_parser.y"
04671     { (yyval) = (yyvsp[0]); ;}
04672     break;
04673 
04674   case 381:
04675 #line 844 "php_parser.y"
04676     { (yyval) = (yyvsp[0]); ;}
04677     break;
04678 
04679   case 382:
04680 #line 849 "php_parser.y"
04681     { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); (yyval) = (yyvsp[0]); ;}
04682     break;
04683 
04684   case 383:
04685 #line 854 "php_parser.y"
04686     { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[0]); ;}
04687     break;
04688 
04689   case 384:
04690 #line 855 "php_parser.y"
04691     { zend_check_writable_variable(&(yyvsp[-1])); ;}
04692     break;
04693 
04694   case 385:
04695 #line 859 "php_parser.y"
04696     { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[0]); ;}
04697     break;
04698 
04699   case 386:
04700 #line 860 "php_parser.y"
04701     { zend_check_writable_variable(&(yyvsp[-1])); ;}
04702     break;
04703 
04704   case 387:
04705 #line 864 "php_parser.y"
04706     { zend_do_push_object(&(yyvsp[-1]) TSRMLS_CC); ;}
04707     break;
04708 
04709   case 388:
04710 #line 865 "php_parser.y"
04711     { zend_do_push_object(&(yyvsp[0]) TSRMLS_CC); ;}
04712     break;
04713 
04714   case 389:
04715 #line 866 "php_parser.y"
04716     { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = (yyvsp[-6]).u.EA.type | ((yyvsp[0]).u.EA.type ? (yyvsp[0]).u.EA.type : (yyvsp[-1]).u.EA.type); ;}
04717     break;
04718 
04719   case 390:
04720 #line 867 "php_parser.y"
04721     { (yyval) = (yyvsp[0]); ;}
04722     break;
04723 
04724   case 391:
04725 #line 871 "php_parser.y"
04726     { (yyval).u.EA.type = (yyvsp[0]).u.EA.type; ;}
04727     break;
04728 
04729   case 392:
04730 #line 872 "php_parser.y"
04731     { (yyval).u.EA.type = 0; ;}
04732     break;
04733 
04734   case 393:
04735 #line 877 "php_parser.y"
04736     { zend_do_push_object(&(yyvsp[0]) TSRMLS_CC); ;}
04737     break;
04738 
04739   case 394:
04740 #line 877 "php_parser.y"
04741     { (yyval).u.EA.type = (yyvsp[0]).u.EA.type; ;}
04742     break;
04743 
04744   case 395:
04745 #line 881 "php_parser.y"
04746     { zend_do_pop_object(&(yyvsp[0]) TSRMLS_CC); zend_do_begin_method_call(&(yyvsp[0]) TSRMLS_CC); ;}
04747     break;
04748 
04749   case 396:
04750 #line 883 "php_parser.y"
04751     { zend_do_end_function_call(&(yyvsp[-3]), &(yyval), &(yyvsp[-1]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);
04752               zend_do_push_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_METHOD_CALL; ;}
04753     break;
04754 
04755   case 397:
04756 #line 885 "php_parser.y"
04757     { zend_do_declare_implicit_property(TSRMLS_C); (yyval).u.EA.type = ZEND_PARSED_MEMBER; ;}
04758     break;
04759 
04760   case 398:
04761 #line 889 "php_parser.y"
04762     { (yyval) = (yyvsp[0]); ;}
04763     break;
04764 
04765   case 399:
04766 #line 890 "php_parser.y"
04767     { zend_do_indirect_references(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04768     break;
04769 
04770   case 400:
04771 #line 894 "php_parser.y"
04772     { (yyval) = (yyvsp[0]); zend_do_fetch_static_member(&(yyval), &(yyvsp[-2]) TSRMLS_CC); ;}
04773     break;
04774 
04775   case 401:
04776 #line 899 "php_parser.y"
04777     { (yyval) = (yyvsp[0]); ;}
04778     break;
04779 
04780   case 402:
04781 #line 900 "php_parser.y"
04782     { zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[0]); (yyval).u.EA.type = ZEND_PARSED_FUNCTION_CALL; ;}
04783     break;
04784 
04785   case 403:
04786 #line 905 "php_parser.y"
04787     { (yyval) = (yyvsp[0]); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; ;}
04788     break;
04789 
04790   case 404:
04791 #line 906 "php_parser.y"
04792     { zend_do_indirect_references(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; ;}
04793     break;
04794 
04795   case 405:
04796 #line 907 "php_parser.y"
04797     { (yyval) = (yyvsp[0]); (yyval).u.EA.type = ZEND_PARSED_STATIC_MEMBER; ;}
04798     break;
04799 
04800   case 406:
04801 #line 911 "php_parser.y"
04802     { fetch_array_dim(&(yyval), &(yyvsp[-3]), &(yyvsp[-1]) TSRMLS_CC); ;}
04803     break;
04804 
04805   case 407:
04806 #line 912 "php_parser.y"
04807     { fetch_string_offset(&(yyval), &(yyvsp[-3]), &(yyvsp[-1]) TSRMLS_CC); ;}
04808     break;
04809 
04810   case 408:
04811 #line 913 "php_parser.y"
04812     { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[0]), 1 TSRMLS_CC); ;}
04813     break;
04814 
04815   case 409:
04816 #line 918 "php_parser.y"
04817     { (yyval) = (yyvsp[0]); ;}
04818     break;
04819 
04820   case 410:
04821 #line 919 "php_parser.y"
04822     { (yyval) = (yyvsp[-1]); ;}
04823     break;
04824 
04825   case 411:
04826 #line 923 "php_parser.y"
04827     { (yyval).op_type = IS_UNUSED; ;}
04828     break;
04829 
04830   case 412:
04831 #line 924 "php_parser.y"
04832     { (yyval) = (yyvsp[0]); ;}
04833     break;
04834 
04835   case 413:
04836 #line 929 "php_parser.y"
04837     { (yyval) = (yyvsp[0]); ;}
04838     break;
04839 
04840   case 414:
04841 #line 930 "php_parser.y"
04842     { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); ;}
04843     break;
04844 
04845   case 415:
04846 #line 930 "php_parser.y"
04847     { znode tmp_znode;  zend_do_pop_object(&tmp_znode TSRMLS_CC);  zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[-1]) TSRMLS_CC);;}
04848     break;
04849 
04850   case 416:
04851 #line 934 "php_parser.y"
04852     { fetch_array_dim(&(yyval), &(yyvsp[-3]), &(yyvsp[-1]) TSRMLS_CC); ;}
04853     break;
04854 
04855   case 417:
04856 #line 935 "php_parser.y"
04857     { fetch_string_offset(&(yyval), &(yyvsp[-3]), &(yyvsp[-1]) TSRMLS_CC); ;}
04858     break;
04859 
04860   case 418:
04861 #line 936 "php_parser.y"
04862     { znode tmp_znode;  zend_do_pop_object(&tmp_znode TSRMLS_CC);  zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[0]) TSRMLS_CC);;}
04863     break;
04864 
04865   case 419:
04866 #line 940 "php_parser.y"
04867     { (yyval) = (yyvsp[0]); ;}
04868     break;
04869 
04870   case 420:
04871 #line 941 "php_parser.y"
04872     { (yyval) = (yyvsp[-1]); ;}
04873     break;
04874 
04875   case 421:
04876 #line 945 "php_parser.y"
04877     { (yyval).u.constant.value.lval = 1; ;}
04878     break;
04879 
04880   case 422:
04881 #line 946 "php_parser.y"
04882     { (yyval).u.constant.value.lval++; ;}
04883     break;
04884 
04885   case 425:
04886 #line 956 "php_parser.y"
04887     { zend_do_add_list_element(&(yyvsp[0]) TSRMLS_CC); ;}
04888     break;
04889 
04890   case 426:
04891 #line 957 "php_parser.y"
04892     { zend_do_new_list_begin(TSRMLS_C); ;}
04893     break;
04894 
04895   case 427:
04896 #line 957 "php_parser.y"
04897     { zend_do_new_list_end(TSRMLS_C); ;}
04898     break;
04899 
04900   case 428:
04901 #line 958 "php_parser.y"
04902     { zend_do_add_list_element(NULL TSRMLS_CC); ;}
04903     break;
04904 
04905   case 429:
04906 #line 963 "php_parser.y"
04907     { zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); ;}
04908     break;
04909 
04910   case 430:
04911 #line 964 "php_parser.y"
04912     { (yyval) = (yyvsp[-1]); ;}
04913     break;
04914 
04915   case 431:
04916 #line 968 "php_parser.y"
04917     { zend_do_add_array_element(&(yyval), &(yyvsp[0]), &(yyvsp[-2]), 0 TSRMLS_CC); ;}
04918     break;
04919 
04920   case 432:
04921 #line 969 "php_parser.y"
04922     { zend_do_add_array_element(&(yyval), &(yyvsp[0]), NULL, 0 TSRMLS_CC); ;}
04923     break;
04924 
04925   case 433:
04926 #line 970 "php_parser.y"
04927     { zend_do_init_array(&(yyval), &(yyvsp[0]), &(yyvsp[-2]), 0 TSRMLS_CC); ;}
04928     break;
04929 
04930   case 434:
04931 #line 971 "php_parser.y"
04932     { zend_do_init_array(&(yyval), &(yyvsp[0]), NULL, 0 TSRMLS_CC); ;}
04933     break;
04934 
04935   case 435:
04936 #line 972 "php_parser.y"
04937     { zend_do_add_array_element(&(yyval), &(yyvsp[0]), &(yyvsp[-3]), 1 TSRMLS_CC); ;}
04938     break;
04939 
04940   case 436:
04941 #line 973 "php_parser.y"
04942     { zend_do_add_array_element(&(yyval), &(yyvsp[0]), NULL, 1 TSRMLS_CC); ;}
04943     break;
04944 
04945   case 437:
04946 #line 974 "php_parser.y"
04947     { zend_do_init_array(&(yyval), &(yyvsp[0]), &(yyvsp[-3]), 1 TSRMLS_CC); ;}
04948     break;
04949 
04950   case 438:
04951 #line 975 "php_parser.y"
04952     { zend_do_init_array(&(yyval), &(yyvsp[0]), NULL, 1 TSRMLS_CC); ;}
04953     break;
04954 
04955   case 439:
04956 #line 979 "php_parser.y"
04957     { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC);  zend_do_add_variable(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04958     break;
04959 
04960   case 440:
04961 #line 980 "php_parser.y"
04962     { zend_do_add_string(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04963     break;
04964 
04965   case 441:
04966 #line 981 "php_parser.y"
04967     { zend_do_add_string(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04968     break;
04969 
04970   case 442:
04971 #line 982 "php_parser.y"
04972     { zend_do_add_string(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04973     break;
04974 
04975   case 443:
04976 #line 983 "php_parser.y"
04977     { zend_do_add_char(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04978     break;
04979 
04980   case 444:
04981 #line 984 "php_parser.y"
04982     { zend_do_add_string(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04983     break;
04984 
04985   case 445:
04986 #line 985 "php_parser.y"
04987     { (yyvsp[0]).u.constant.value.lval = (long) '['; zend_do_add_char(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04988     break;
04989 
04990   case 446:
04991 #line 986 "php_parser.y"
04992     { (yyvsp[0]).u.constant.value.lval = (long) ']'; zend_do_add_char(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04993     break;
04994 
04995   case 447:
04996 #line 987 "php_parser.y"
04997     { (yyvsp[0]).u.constant.value.lval = (long) '{'; zend_do_add_char(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
04998     break;
04999 
05000   case 448:
05001 #line 988 "php_parser.y"
05002     { (yyvsp[0]).u.constant.value.lval = (long) '}'; zend_do_add_char(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
05003     break;
05004 
05005   case 449:
05006 #line 989 "php_parser.y"
05007     { znode tmp;  (yyvsp[0]).u.constant.value.lval = (long) '-';  zend_do_add_char(&tmp, &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC);  (yyvsp[0]).u.constant.value.lval = (long) '>'; zend_do_add_char(&(yyval), &tmp, &(yyvsp[0]) TSRMLS_CC); ;}
05008     break;
05009 
05010   case 450:
05011 #line 990 "php_parser.y"
05012     { zend_do_init_string(&(yyval) TSRMLS_CC); ;}
05013     break;
05014 
05015   case 451:
05016 #line 997 "php_parser.y"
05017     { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[0]), 1 TSRMLS_CC); ;}
05018     break;
05019 
05020   case 452:
05021 #line 998 "php_parser.y"
05022     { zend_do_begin_variable_parse(TSRMLS_C); ;}
05023     break;
05024 
05025   case 453:
05026 #line 998 "php_parser.y"
05027     { fetch_array_begin(&(yyval), &(yyvsp[-4]), &(yyvsp[-1]) TSRMLS_CC); ;}
05028     break;
05029 
05030   case 454:
05031 #line 999 "php_parser.y"
05032     { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyvsp[-1]), &(yyvsp[-2]), 1 TSRMLS_CC); zend_do_fetch_property(&(yyval), &(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
05033     break;
05034 
05035   case 455:
05036 #line 1000 "php_parser.y"
05037     { zend_do_begin_variable_parse(TSRMLS_C);  fetch_simple_variable(&(yyval), &(yyvsp[-1]), 1 TSRMLS_CC); ;}
05038     break;
05039 
05040   case 456:
05041 #line 1001 "php_parser.y"
05042     { zend_do_begin_variable_parse(TSRMLS_C);  fetch_array_begin(&(yyval), &(yyvsp[-4]), &(yyvsp[-2]) TSRMLS_CC); ;}
05043     break;
05044 
05045   case 457:
05046 #line 1002 "php_parser.y"
05047     { (yyval) = (yyvsp[-1]); ;}
05048     break;
05049 
05050   case 458:
05051 #line 1007 "php_parser.y"
05052     { (yyval) = (yyvsp[0]); ;}
05053     break;
05054 
05055   case 459:
05056 #line 1008 "php_parser.y"
05057     { (yyval) = (yyvsp[0]); ;}
05058     break;
05059 
05060   case 460:
05061 #line 1009 "php_parser.y"
05062     { fetch_simple_variable(&(yyval), &(yyvsp[0]), 1 TSRMLS_CC); ;}
05063     break;
05064 
05065   case 461:
05066 #line 1014 "php_parser.y"
05067     { (yyval) = (yyvsp[-1]); ;}
05068     break;
05069 
05070   case 462:
05071 #line 1015 "php_parser.y"
05072     { zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[-1]) TSRMLS_CC); ;}
05073     break;
05074 
05075   case 463:
05076 #line 1016 "php_parser.y"
05077     { zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
05078     break;
05079 
05080   case 464:
05081 #line 1017 "php_parser.y"
05082     { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
05083     break;
05084 
05085   case 465:
05086 #line 1018 "php_parser.y"
05087     { zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[-1]) TSRMLS_CC); ;}
05088     break;
05089 
05090   case 466:
05091 #line 1019 "php_parser.y"
05092     { zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
05093     break;
05094 
05095   case 467:
05096 #line 1020 "php_parser.y"
05097     { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
05098     break;
05099 
05100   case 468:
05101 #line 1024 "php_parser.y"
05102     { zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[0]) TSRMLS_CC); ;}
05103     break;
05104 
05105   case 469:
05106 #line 1025 "php_parser.y"
05107     { zend_do_boolean_and_begin(&(yyvsp[-1]), &(yyvsp[0]) TSRMLS_CC); ;}
05108     break;
05109 
05110   case 470:
05111 #line 1025 "php_parser.y"
05112     { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &(yyvsp[0]) TSRMLS_CC); zend_do_boolean_and_end(&(yyval), &(yyvsp[-3]), &tmp, &(yyvsp[-2]) TSRMLS_CC); ;}
05113     break;
05114 
05115   case 471:
05116 #line 1029 "php_parser.y"
05117     { zend_do_fetch_constant(&(yyval), &(yyvsp[-2]), &(yyvsp[0]), ZEND_RT TSRMLS_CC); ;}
05118     break;
05119 
05120 */
05121       default: break;
05122     }
05123 
05124 /* Line 1422 of yacc.c.  */
05125 #line 5174 "php_parser.c"
05126 
05127   yyvsp -= yylen;
05128   yyssp -= yylen;
05129 
05130 
05131   YY_STACK_PRINT (yyss, yyssp);
05132 
05133   *++yyvsp = yyval;
05134 
05135 
05136   /* Now `shift' the result of the reduction.  Determine what state
05137      that goes to, based on the state we popped back to and the rule
05138      number reduced by.  */
05139 
05140   yyn = yyr1[yyn];
05141 
05142   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
05143   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
05144     yystate = yytable[yystate];
05145   else
05146     yystate = yydefgoto[yyn - YYNTOKENS];
05147 
05148   goto yynewstate;
05149 
05150 
05151 /*------------------------------------.
05152 | yyerrlab -- here on detecting error |
05153 `------------------------------------*/
05154 yyerrlab:
05155   /* If not already recovering from an error, report this error.  */
05156   if (!yyerrstatus)
05157     {
05158       ++yynerrs;
05159 #if YYERROR_VERBOSE
05160       yyn = yypact[yystate];
05161 
05162       if (YYPACT_NINF < yyn && yyn < YYLAST)
05163     {
05164       int yytype = YYTRANSLATE (yychar);
05165       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
05166       YYSIZE_T yysize = yysize0;
05167       YYSIZE_T yysize1;
05168       int yysize_overflow = 0;
05169       char *yymsg = 0;
05170 #     define YYERROR_VERBOSE_ARGS_MAXIMUM 5
05171       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
05172       int yyx;
05173 
05174 #if 0
05175       /* This is so xgettext sees the translatable formats that are
05176          constructed on the fly.  */
05177       YY_("syntax error, unexpected %s");
05178       YY_("syntax error, unexpected %s, expecting %s");
05179       YY_("syntax error, unexpected %s, expecting %s or %s");
05180       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
05181       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
05182 #endif
05183       char *yyfmt;
05184       char const *yyf;
05185       static char const yyunexpected[] = "syntax error, unexpected %s";
05186       static char const yyexpecting[] = ", expecting %s";
05187       static char const yyor[] = " or %s";
05188       char yyformat[sizeof yyunexpected
05189             + sizeof yyexpecting - 1
05190             + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
05191                * (sizeof yyor - 1))];
05192       char const *yyprefix = yyexpecting;
05193 
05194       /* Start YYX at -YYN if negative to avoid negative indexes in
05195          YYCHECK.  */
05196       int yyxbegin = yyn < 0 ? -yyn : 0;
05197   
05198           /* Stay within bounds of both yycheck and yytname.  */
05199           int yychecklim = YYLAST - yyn;
05200       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
05201       int yycount = 1;
05202 
05203       yyarg[0] = yytname[yytype];
05204       yyfmt = yystpcpy (yyformat, yyunexpected);
05205 
05206       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
05207         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
05208               {
05209         if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
05210           {
05211             yycount = 1;
05212             yysize = yysize0;
05213             yyformat[sizeof yyunexpected - 1] = '\0';
05214             break;
05215           }
05216         yyarg[yycount++] = yytname[yyx];
05217         yysize1 = yysize + yytnamerr (0, yytname[yyx]);
05218         yysize_overflow |= yysize1 < yysize;
05219         yysize = yysize1;
05220         yyfmt = yystpcpy (yyfmt, yyprefix);
05221         yyprefix = yyor;
05222           }
05223 
05224       yyf = YY_(yyformat);
05225       yysize1 = yysize + yystrlen (yyf);
05226       yysize_overflow |= yysize1 < yysize;
05227       yysize = yysize1;
05228 
05229       if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
05230         yymsg = (char *) YYSTACK_ALLOC (yysize);
05231       if (yymsg)
05232         {
05233           /* Avoid sprintf, as that infringes on the user's name space.
05234          Don't have undefined behavior even if the translation
05235          produced a string with the wrong number of "%s"s.  */
05236           char *yyp = yymsg;
05237           int yyi = 0;
05238           while ((*yyp = *yyf))
05239         {
05240           if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
05241             {
05242               yyp += yytnamerr (yyp, yyarg[yyi++]);
05243               yyf += 2;
05244             }
05245           else
05246             {
05247               yyp++;
05248               yyf++;
05249             }
05250         }
05251           yyerror (yymsg);
05252           YYSTACK_FREE (yymsg);
05253         }
05254       else
05255         {
05256           yyerror (YY_("syntax error"));
05257           goto yyexhaustedlab;
05258         }
05259     }
05260       else
05261 #endif /* YYERROR_VERBOSE */
05262     yyerror (YY_("syntax error"));
05263     }
05264 
05265 
05266 
05267   if (yyerrstatus == 3)
05268     {
05269       /* If just tried and failed to reuse look-ahead token after an
05270      error, discard it.  */
05271       if (yychar <= YYEOF)
05272         {
05273           /* Return failure if at end of input.  */
05274       if (yychar == YYEOF)
05275         YYABORT;
05276         }
05277       else
05278     {
05279       yydestruct ("Error: discarding", yytoken, &yylval);
05280       yychar = YYEMPTY;
05281     }
05282     }
05283 
05284   /* Else will try to reuse look-ahead token after shifting the error
05285      token.  */
05286   goto yyerrlab1;
05287 
05288 
05289 /*---------------------------------------------------.
05290 | yyerrorlab -- error raised explicitly by YYERROR.  |
05291 `---------------------------------------------------*/
05292 yyerrorlab:
05293 
05294   /* Pacify compilers like GCC when the user code never invokes
05295      YYERROR and the label yyerrorlab therefore never appears in user
05296      code.  */
05297   if (0)
05298      goto yyerrorlab;
05299 
05300 yyvsp -= yylen;
05301   yyssp -= yylen;
05302   yystate = *yyssp;
05303   goto yyerrlab1;
05304 
05305 
05306 /*-------------------------------------------------------------.
05307 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
05308 `-------------------------------------------------------------*/
05309 yyerrlab1:
05310   yyerrstatus = 3;  /* Each real token shifted decrements this.  */
05311 
05312   for (;;)
05313     {
05314       yyn = yypact[yystate];
05315       if (yyn != YYPACT_NINF)
05316     {
05317       yyn += YYTERROR;
05318       if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
05319         {
05320           yyn = yytable[yyn];
05321           if (0 < yyn)
05322         break;
05323         }
05324     }
05325 
05326       /* Pop the current state because it cannot handle the error token.  */
05327       if (yyssp == yyss)
05328     YYABORT;
05329 
05330 
05331       yydestruct ("Error: popping", yystos[yystate], yyvsp);
05332       YYPOPSTACK;
05333       yystate = *yyssp;
05334       YY_STACK_PRINT (yyss, yyssp);
05335     }
05336 
05337   if (yyn == YYFINAL)
05338     YYACCEPT;
05339 
05340   YYDPRINTF ((stderr, "Shifting error token, "));
05341 
05342     // Yijun Yu: yyxsp
05343   *++yyxsp = yyxml_string;
05344   yyxml_string = NULL;
05345   *++yyvsp = yylval;
05346 
05347 
05348   /* Shift the error token. */
05349   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
05350 
05351   yystate = yyn;
05352   goto yynewstate;
05353 
05354 
05355 /*-------------------------------------.
05356 | yyacceptlab -- YYACCEPT comes here.  |
05357 `-------------------------------------*/
05358 yyacceptlab:
05359   generate_xml_output(yyxsp,yyxs);
05360   yyresult = 0;
05361   goto yyreturn;
05362 
05363 /*-----------------------------------.
05364 | yyabortlab -- YYABORT comes here.  |
05365 `-----------------------------------*/
05366 yyabortlab:
05367   yyresult = 1;
05368   goto yyreturn;
05369 
05370 #ifndef yyoverflow
05371 /*-------------------------------------------------.
05372 | yyexhaustedlab -- memory exhaustion comes here.  |
05373 `-------------------------------------------------*/
05374 yyexhaustedlab:
05375   yyerror (YY_("memory exhausted"));
05376   yyresult = 2;
05377   /* Fall through.  */
05378 #endif
05379 
05380 yyreturn:
05381   if (yychar != YYEOF && yychar != YYEMPTY)
05382      yydestruct ("Cleanup: discarding lookahead",
05383          yytoken, &yylval);
05384   while (yyssp != yyss)
05385     {
05386       yydestruct ("Cleanup: popping",
05387           yystos[*yyssp], yyvsp);
05388       YYPOPSTACK;
05389     }
05390 #ifndef yyoverflow
05391   if (yyss != yyssa)
05392     YYSTACK_FREE (yyss);
05393 #endif
05394   return yyresult;
05395 }
05396 
05397 
05398 #line 1032 "php_parser.y"
05399 
05400 void yyerror(char* s){
05401     _error = 1;
05402     printf("%s line: %d in %s\n", s, getLineno(), file_name);
05403 }

Generated on Wed Feb 27 20:31:06 2008 for php.ast.svn.src. by  doxygen 1.5.3