00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #define YYBISON 1
00038
00039
00040 #define YYBISON_VERSION "2.1"
00041
00042
00043 #define YYSKELETON_NAME "yacc.c"
00044
00045
00046 #define YYPURE 0
00047
00048
00049 #define YYLSP_NEEDED 1
00050
00051
00052 #define yyparse kjsyyparse
00053 #define yylex kjsyylex
00054 #define yyerror kjsyyerror
00055 #define yylval kjsyylval
00056 #define yychar kjsyychar
00057 #define yydebug kjsyydebug
00058 #define yynerrs kjsyynerrs
00059 #define yylloc kjsyylloc
00060
00061
00062 #ifndef YYTOKENTYPE
00063 # define YYTOKENTYPE
00064
00065
00066 enum yytokentype {
00067 NULLTOKEN = 258,
00068 TRUETOKEN = 259,
00069 FALSETOKEN = 260,
00070 STRING = 261,
00071 NUMBER = 262,
00072 BREAK = 263,
00073 CASE = 264,
00074 DEFAULT = 265,
00075 FOR = 266,
00076 NEW = 267,
00077 VAR = 268,
00078 CONST = 269,
00079 CONTINUE = 270,
00080 FUNCTION = 271,
00081 RETURN = 272,
00082 VOID = 273,
00083 DELETE = 274,
00084 IF = 275,
00085 THIS = 276,
00086 DO = 277,
00087 WHILE = 278,
00088 ELSE = 279,
00089 IN = 280,
00090 INSTANCEOF = 281,
00091 TYPEOF = 282,
00092 SWITCH = 283,
00093 WITH = 284,
00094 RESERVED = 285,
00095 THROW = 286,
00096 TRY = 287,
00097 CATCH = 288,
00098 FINALLY = 289,
00099 DEBUGGER = 290,
00100 EQEQ = 291,
00101 NE = 292,
00102 STREQ = 293,
00103 STRNEQ = 294,
00104 LE = 295,
00105 GE = 296,
00106 OR = 297,
00107 AND = 298,
00108 PLUSPLUS = 299,
00109 MINUSMINUS = 300,
00110 LSHIFT = 301,
00111 RSHIFT = 302,
00112 URSHIFT = 303,
00113 PLUSEQUAL = 304,
00114 MINUSEQUAL = 305,
00115 MULTEQUAL = 306,
00116 DIVEQUAL = 307,
00117 LSHIFTEQUAL = 308,
00118 RSHIFTEQUAL = 309,
00119 URSHIFTEQUAL = 310,
00120 ANDEQUAL = 311,
00121 MODEQUAL = 312,
00122 XOREQUAL = 313,
00123 OREQUAL = 314,
00124 IDENT = 315,
00125 AUTOPLUSPLUS = 316,
00126 AUTOMINUSMINUS = 317
00127 };
00128 #endif
00129
00130 #define NULLTOKEN 258
00131 #define TRUETOKEN 259
00132 #define FALSETOKEN 260
00133 #define STRING 261
00134 #define NUMBER 262
00135 #define BREAK 263
00136 #define CASE 264
00137 #define DEFAULT 265
00138 #define FOR 266
00139 #define NEW 267
00140 #define VAR 268
00141 #define CONST 269
00142 #define CONTINUE 270
00143 #define FUNCTION 271
00144 #define RETURN 272
00145 #define VOID 273
00146 #define DELETE 274
00147 #define IF 275
00148 #define THIS 276
00149 #define DO 277
00150 #define WHILE 278
00151 #define ELSE 279
00152 #define IN 280
00153 #define INSTANCEOF 281
00154 #define TYPEOF 282
00155 #define SWITCH 283
00156 #define WITH 284
00157 #define RESERVED 285
00158 #define THROW 286
00159 #define TRY 287
00160 #define CATCH 288
00161 #define FINALLY 289
00162 #define DEBUGGER 290
00163 #define EQEQ 291
00164 #define NE 292
00165 #define STREQ 293
00166 #define STRNEQ 294
00167 #define LE 295
00168 #define GE 296
00169 #define OR 297
00170 #define AND 298
00171 #define PLUSPLUS 299
00172 #define MINUSMINUS 300
00173 #define LSHIFT 301
00174 #define RSHIFT 302
00175 #define URSHIFT 303
00176 #define PLUSEQUAL 304
00177 #define MINUSEQUAL 305
00178 #define MULTEQUAL 306
00179 #define DIVEQUAL 307
00180 #define LSHIFTEQUAL 308
00181 #define RSHIFTEQUAL 309
00182 #define URSHIFTEQUAL 310
00183 #define ANDEQUAL 311
00184 #define MODEQUAL 312
00185 #define XOREQUAL 313
00186 #define OREQUAL 314
00187 #define IDENT 315
00188 #define AUTOPLUSPLUS 316
00189 #define AUTOMINUSMINUS 317
00190
00191
00192
00193
00194
00195 #line 1 "grammar.y"
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218 #ifdef HAVE_CONFIG_H
00219 #include <config.h>
00220 #endif
00221 #include <string.h>
00222 #include <stdlib.h>
00223 #include "value.h"
00224 #include "object.h"
00225 #include "types.h"
00226 #include "interpreter.h"
00227 #include "nodes.h"
00228 #include "lexer.h"
00229 #include "internal.h"
00230
00231
00232 #define YYDEBUG 0
00233 #ifdef YYMAXDEPTH
00234 #undef YYMAXDEPTH
00235 #endif
00236 #define YYERROR_VERBOSE
00237 #define DBG(l, s, e) { l->setLoc(s.first_line, e.last_line, Parser::source); } // location
00238
00239 extern int yylex();
00240 static int yyerror (const char *);
00241 static bool automatic();
00242
00243 using namespace KJS;
00244
00245
00246
00247
00248 #ifndef YYDEBUG
00249 # define YYDEBUG 0
00250 #endif
00251
00252
00253 #ifdef YYERROR_VERBOSE
00254 # undef YYERROR_VERBOSE
00255 # define YYERROR_VERBOSE 1
00256 #else
00257 # define YYERROR_VERBOSE 0
00258 #endif
00259
00260
00261 #ifndef YYTOKEN_TABLE
00262 # define YYTOKEN_TABLE 0
00263 #endif
00264
00265 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
00266 #line 52 "grammar.y"
00267 typedef union YYSTYPE {
00268 int ival;
00269 double dval;
00270 UString *ustr;
00271 Identifier *ident;
00272 Node *node;
00273 StatementNode *stat;
00274 ParameterNode *param;
00275 FunctionBodyNode *body;
00276 FuncDeclNode *func;
00277 FunctionBodyNode *prog;
00278 AssignExprNode *init;
00279 SourceElementsNode *srcs;
00280 StatListNode *slist;
00281 ArgumentsNode *args;
00282 ArgumentListNode *alist;
00283 VarDeclNode *decl;
00284 VarDeclListNode *vlist;
00285 CaseBlockNode *cblk;
00286 ClauseListNode *clist;
00287 CaseClauseNode *ccl;
00288 ElementNode *elm;
00289 Operator op;
00290 PropertyValueNode *plist;
00291 PropertyNode *pnode;
00292 CatchNode *cnode;
00293 FinallyNode *fnode;
00294 } YYSTYPE;
00295
00296 #line 297 "grammar.tab.c"
00297 # define yystype YYSTYPE
00298 # define YYSTYPE_IS_DECLARED 1
00299 # define YYSTYPE_IS_TRIVIAL 1
00300 #endif
00301
00302 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
00303 typedef struct YYLTYPE
00304 {
00305 int first_line;
00306 int first_column;
00307 int last_line;
00308 int last_column;
00309 } YYLTYPE;
00310 # define yyltype YYLTYPE
00311 # define YYLTYPE_IS_DECLARED 1
00312 # define YYLTYPE_IS_TRIVIAL 1
00313 #endif
00314
00315
00316
00317
00318
00319
00320 #line 321 "grammar.tab.c"
00321
00322 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00323 # define YYSIZE_T __SIZE_TYPE__
00324 #endif
00325 #if ! defined (YYSIZE_T) && defined (size_t)
00326 # define YYSIZE_T size_t
00327 #endif
00328 #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
00329 # include <stddef.h>
00330 # define YYSIZE_T size_t
00331 #endif
00332 #if ! defined (YYSIZE_T)
00333 # define YYSIZE_T unsigned int
00334 #endif
00335
00336 #ifndef YY_
00337 # if YYENABLE_NLS
00338 # if ENABLE_NLS
00339 # include <libintl.h>
00340 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00341 # endif
00342 # endif
00343 # ifndef YY_
00344 # define YY_(msgid) msgid
00345 # endif
00346 #endif
00347
00348 #if ! defined (yyoverflow) || YYERROR_VERBOSE
00349
00350
00351
00352 # ifdef YYSTACK_USE_ALLOCA
00353 # if YYSTACK_USE_ALLOCA
00354 # ifdef __GNUC__
00355 # define YYSTACK_ALLOC __builtin_alloca
00356 # else
00357 # define YYSTACK_ALLOC alloca
00358 # if defined (__STDC__) || defined (__cplusplus)
00359 # include <stdlib.h>
00360 # define YYINCLUDED_STDLIB_H
00361 # endif
00362 # endif
00363 # endif
00364 # endif
00365
00366 # ifdef YYSTACK_ALLOC
00367
00368 # define YYSTACK_FREE(Ptr) do { ; } while (0)
00369 # ifndef YYSTACK_ALLOC_MAXIMUM
00370
00371
00372
00373
00374 # define YYSTACK_ALLOC_MAXIMUM 4032
00375 # endif
00376 # else
00377 # define YYSTACK_ALLOC YYMALLOC
00378 # define YYSTACK_FREE YYFREE
00379 # ifndef YYSTACK_ALLOC_MAXIMUM
00380 # define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
00381 # endif
00382 # ifdef __cplusplus
00383 extern "C" {
00384 # endif
00385 # ifndef YYMALLOC
00386 # define YYMALLOC malloc
00387 # if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
00388 && (defined (__STDC__) || defined (__cplusplus)))
00389 void *malloc (YYSIZE_T);
00390 # endif
00391 # endif
00392 # ifndef YYFREE
00393 # define YYFREE free
00394 # if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
00395 && (defined (__STDC__) || defined (__cplusplus)))
00396 void free (void *);
00397 # endif
00398 # endif
00399 # ifdef __cplusplus
00400 }
00401 # endif
00402 # endif
00403 #endif
00404
00405
00406 #if (! defined (yyoverflow) \
00407 && (! defined (__cplusplus) \
00408 || (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
00409 && defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
00410
00411
00412 union yyalloc
00413 {
00414 short int yyss;
00415 YYSTYPE yyvs;
00416 YYLTYPE yyls;
00417 };
00418
00419
00420 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00421
00422
00423
00424 # define YYSTACK_BYTES(N) \
00425 ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00426 + 2 * YYSTACK_GAP_MAXIMUM)
00427
00428
00429
00430 # ifndef YYCOPY
00431 # if defined (__GNUC__) && 1 < __GNUC__
00432 # define YYCOPY(To, From, Count) \
00433 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00434 # else
00435 # define YYCOPY(To, From, Count) \
00436 do \
00437 { \
00438 YYSIZE_T yyi; \
00439 for (yyi = 0; yyi < (Count); yyi++) \
00440 (To)[yyi] = (From)[yyi]; \
00441 } \
00442 while (0)
00443 # endif
00444 # endif
00445
00446
00447
00448
00449
00450
00451 # define YYSTACK_RELOCATE(Stack) \
00452 do \
00453 { \
00454 YYSIZE_T yynewbytes; \
00455 YYCOPY (&yyptr->Stack, Stack, yysize); \
00456 Stack = &yyptr->Stack; \
00457 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00458 yyptr += yynewbytes / sizeof (*yyptr); \
00459 } \
00460 while (0)
00461
00462 #endif
00463
00464 #if defined (__STDC__) || defined (__cplusplus)
00465 typedef signed char yysigned_char;
00466 #else
00467 typedef short int yysigned_char;
00468 #endif
00469
00470
00471 #define YYFINAL 195
00472
00473 #define YYLAST 1398
00474
00475
00476 #define YYNTOKENS 87
00477
00478 #define YYNNTS 70
00479
00480 #define YYNRULES 210
00481
00482 #define YYNSTATES 377
00483
00484
00485 #define YYUNDEFTOK 2
00486 #define YYMAXUTOK 317
00487
00488 #define YYTRANSLATE(YYX) \
00489 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00490
00491
00492 static const unsigned char yytranslate[] =
00493 {
00494 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00495 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00496 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00497 2, 2, 2, 76, 2, 2, 2, 78, 81, 2,
00498 64, 65, 77, 73, 68, 74, 72, 63, 2, 2,
00499 2, 2, 2, 2, 2, 2, 2, 2, 71, 86,
00500 79, 85, 80, 84, 2, 2, 2, 2, 2, 2,
00501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00502 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00503 2, 69, 2, 70, 82, 2, 2, 2, 2, 2,
00504 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00505 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00506 2, 2, 2, 66, 83, 67, 75, 2, 2, 2,
00507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00508 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00509 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00510 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00511 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00519 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00520 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00521 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00522 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00523 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00524 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
00525 55, 56, 57, 58, 59, 60, 61, 62
00526 };
00527
00528 #if YYDEBUG
00529
00530
00531 static const unsigned short int yyprhs[] =
00532 {
00533 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
00534 19, 21, 23, 25, 29, 32, 36, 41, 45, 49,
00535 55, 58, 63, 64, 66, 68, 71, 75, 81, 83,
00536 85, 87, 89, 91, 96, 100, 104, 106, 109, 112,
00537 115, 120, 124, 127, 131, 133, 137, 139, 141, 143,
00538 146, 149, 151, 154, 157, 160, 163, 166, 169, 172,
00539 175, 178, 181, 184, 186, 190, 194, 198, 200, 204,
00540 208, 210, 214, 218, 222, 224, 228, 232, 236, 240,
00541 244, 248, 250, 254, 258, 262, 266, 268, 272, 274,
00542 278, 280, 284, 286, 290, 292, 296, 298, 304, 306,
00543 310, 312, 314, 316, 318, 320, 322, 324, 326, 328,
00544 330, 332, 334, 336, 340, 342, 344, 346, 348, 350,
00545 352, 354, 356, 358, 360, 362, 364, 366, 368, 370,
00546 372, 375, 379, 381, 384, 388, 392, 394, 398, 400,
00547 403, 407, 411, 413, 417, 419, 422, 425, 427, 430,
00548 433, 439, 447, 454, 460, 470, 481, 489, 498, 508,
00549 509, 511, 514, 517, 521, 525, 528, 531, 535, 539,
00550 542, 545, 549, 553, 559, 565, 569, 575, 576, 578,
00551 580, 583, 587, 592, 595, 599, 603, 607, 611, 615,
00552 619, 624, 627, 630, 636, 639, 641, 644, 650, 657,
00553 662, 668, 670, 674, 677, 681, 682, 684, 686, 689,
00554 691
00555 };
00556
00557
00558 static const short int yyrhs[] =
00559 {
00560 154, 0, -1, 3, -1, 4, -1, 5, -1, 7,
00561 -1, 6, -1, 63, -1, 52, -1, 21, -1, 60,
00562 -1, 88, -1, 90, -1, 64, 117, 65, -1, 66,
00563 67, -1, 66, 94, 67, -1, 66, 94, 68, 67,
00564 -1, 69, 92, 70, -1, 69, 91, 70, -1, 69,
00565 91, 68, 92, 70, -1, 92, 115, -1, 91, 68,
00566 92, 115, -1, -1, 93, -1, 68, -1, 93, 68,
00567 -1, 95, 71, 115, -1, 94, 68, 95, 71, 115,
00568 -1, 60, -1, 6, -1, 7, -1, 89, -1, 151,
00569 -1, 96, 69, 117, 70, -1, 96, 72, 60, -1,
00570 12, 96, 99, -1, 96, -1, 12, 97, -1, 96,
00571 99, -1, 98, 99, -1, 98, 69, 117, 70, -1,
00572 98, 72, 60, -1, 64, 65, -1, 64, 100, 65,
00573 -1, 115, -1, 100, 68, 115, -1, 97, -1, 98,
00574 -1, 101, -1, 101, 44, -1, 101, 45, -1, 102,
00575 -1, 19, 103, -1, 18, 103, -1, 27, 103, -1,
00576 44, 103, -1, 61, 103, -1, 45, 103, -1, 62,
00577 103, -1, 73, 103, -1, 74, 103, -1, 75, 103,
00578 -1, 76, 103, -1, 103, -1, 104, 77, 103, -1,
00579 104, 63, 103, -1, 104, 78, 103, -1, 104, -1,
00580 105, 73, 104, -1, 105, 74, 104, -1, 105, -1,
00581 106, 46, 105, -1, 106, 47, 105, -1, 106, 48,
00582 105, -1, 106, -1, 107, 79, 106, -1, 107, 80,
00583 106, -1, 107, 40, 106, -1, 107, 41, 106, -1,
00584 107, 26, 106, -1, 107, 25, 106, -1, 107, -1,
00585 108, 36, 107, -1, 108, 37, 107, -1, 108, 38,
00586 107, -1, 108, 39, 107, -1, 108, -1, 109, 81,
00587 108, -1, 109, -1, 110, 82, 109, -1, 110, -1,
00588 111, 83, 110, -1, 111, -1, 112, 43, 111, -1,
00589 112, -1, 113, 42, 112, -1, 113, -1, 113, 84,
00590 115, 71, 115, -1, 114, -1, 101, 116, 115, -1,
00591 85, -1, 49, -1, 50, -1, 51, -1, 52, -1,
00592 53, -1, 54, -1, 55, -1, 56, -1, 58, -1,
00593 59, -1, 57, -1, 115, -1, 117, 68, 115, -1,
00594 119, -1, 121, -1, 124, -1, 128, -1, 129, -1,
00595 130, -1, 131, -1, 133, -1, 134, -1, 135, -1,
00596 136, -1, 137, -1, 143, -1, 144, -1, 145, -1,
00597 146, -1, 66, 67, -1, 66, 155, 67, -1, 118,
00598 -1, 120, 118, -1, 13, 122, 86, -1, 13, 122,
00599 1, -1, 123, -1, 122, 68, 123, -1, 60, -1,
00600 60, 127, -1, 14, 125, 86, -1, 14, 125, 1,
00601 -1, 126, -1, 125, 68, 123, -1, 60, -1, 60,
00602 127, -1, 85, 115, -1, 86, -1, 117, 86, -1,
00603 117, 1, -1, 20, 64, 117, 65, 118, -1, 20,
00604 64, 117, 65, 118, 24, 118, -1, 22, 118, 23,
00605 64, 117, 65, -1, 23, 64, 117, 65, 118, -1,
00606 11, 64, 132, 86, 132, 86, 132, 65, 118, -1,
00607 11, 64, 13, 122, 86, 132, 86, 132, 65, 118,
00608 -1, 11, 64, 101, 25, 117, 65, 118, -1, 11,
00609 64, 13, 60, 25, 117, 65, 118, -1, 11, 64,
00610 13, 60, 127, 25, 117, 65, 118, -1, -1, 117,
00611 -1, 15, 86, -1, 15, 1, -1, 15, 60, 86,
00612 -1, 15, 60, 1, -1, 8, 86, -1, 8, 1,
00613 -1, 8, 60, 86, -1, 8, 60, 1, -1, 17,
00614 86, -1, 17, 1, -1, 17, 117, 86, -1, 17,
00615 117, 1, -1, 29, 64, 117, 65, 118, -1, 28,
00616 64, 117, 65, 138, -1, 66, 139, 67, -1, 66,
00617 139, 142, 139, 67, -1, -1, 140, -1, 141, -1,
00618 140, 141, -1, 9, 117, 71, -1, 9, 117, 71,
00619 120, -1, 10, 71, -1, 10, 71, 120, -1, 60,
00620 71, 118, -1, 31, 117, 86, -1, 31, 117, 1,
00621 -1, 32, 119, 147, -1, 32, 119, 148, -1, 32,
00622 119, 147, 148, -1, 35, 86, -1, 35, 1, -1,
00623 33, 64, 60, 65, 119, -1, 34, 119, -1, 150,
00624 -1, 18, 150, -1, 16, 60, 64, 65, 153, -1,
00625 16, 60, 64, 152, 65, 153, -1, 16, 64, 65,
00626 153, -1, 16, 64, 152, 65, 153, -1, 60, -1,
00627 152, 68, 60, -1, 66, 67, -1, 66, 155, 67,
00628 -1, -1, 155, -1, 156, -1, 155, 156, -1, 118,
00629 -1, 149, -1
00630 };
00631
00632
00633 static const unsigned short int yyrline[] =
00634 {
00635 0, 169, 169, 170, 171, 172, 173, 174, 177, 184,
00636 185, 186, 187, 188, 189, 190, 191, 195, 196, 197,
00637 201, 202, 207, 208, 212, 213, 217, 218, 223, 224,
00638 225, 229, 230, 231, 232, 233, 237, 238, 242, 243,
00639 244, 245, 249, 250, 254, 255, 259, 260, 264, 265,
00640 266, 270, 271, 272, 273, 274, 275, 276, 277, 278,
00641 279, 280, 281, 285, 286, 287, 288, 292, 293, 294,
00642 298, 299, 300, 301, 305, 306, 308, 310, 312, 314,
00643 316, 321, 322, 323, 324, 325, 329, 330, 334, 335,
00644 339, 340, 344, 345, 350, 351, 356, 357, 362, 363,
00645 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
00646 378, 379, 383, 384, 388, 389, 390, 391, 392, 393,
00647 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
00648 407, 408, 412, 413, 417, 419, 429, 430, 435, 436,
00649 440, 442, 452, 453, 458, 459, 463, 467, 471, 473,
00650 481, 482, 487, 488, 489, 492, 495, 498, 501, 507,
00651 508, 512, 513, 517, 518, 525, 526, 530, 531, 539,
00652 540, 544, 545, 553, 558, 563, 564, 569, 570, 574,
00653 575, 579, 580, 584, 585, 589, 594, 595, 602, 603,
00654 604, 608, 609, 618, 623, 627, 629, 633, 634, 639,
00655 640, 646, 647, 651, 653, 658, 661, 666, 667, 671,
00656 672
00657 };
00658 #endif
00659
00660 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00661
00662
00663 static const char *const yytname[] =
00664 {
00665 "$end", "error", "$undefined", "NULLTOKEN", "TRUETOKEN", "FALSETOKEN",
00666 "STRING", "NUMBER", "BREAK", "CASE", "DEFAULT", "FOR", "NEW", "VAR",
00667 "CONST", "CONTINUE", "FUNCTION", "RETURN", "VOID", "DELETE", "IF",
00668 "THIS", "DO", "WHILE", "ELSE", "IN", "INSTANCEOF", "TYPEOF", "SWITCH",
00669 "WITH", "RESERVED", "THROW", "TRY", "CATCH", "FINALLY", "DEBUGGER",
00670 "EQEQ", "NE", "STREQ", "STRNEQ", "LE", "GE", "OR", "AND", "PLUSPLUS",
00671 "MINUSMINUS", "LSHIFT", "RSHIFT", "URSHIFT", "PLUSEQUAL", "MINUSEQUAL",
00672 "MULTEQUAL", "DIVEQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL", "URSHIFTEQUAL",
00673 "ANDEQUAL", "MODEQUAL", "XOREQUAL", "OREQUAL", "IDENT", "AUTOPLUSPLUS",
00674 "AUTOMINUSMINUS", "'/'", "'('", "')'", "'{'", "'}'", "','", "'['", "']'",
00675 "':'", "'.'", "'+'", "'-'", "'~'", "'!'", "'*'", "'%'", "'<'", "'>'",
00676 "'&'", "'^'", "'|'", "'?'", "'='", "';'", "$accept", "Literal",
00677 "PrimaryExpr", "ArrayLiteral", "ElementList", "ElisionOpt", "Elision",
00678 "PropertyNameAndValueList", "PropertyName", "MemberExpr", "NewExpr",
00679 "CallExpr", "Arguments", "ArgumentList", "LeftHandSideExpr",
00680 "PostfixExpr", "UnaryExpr", "MultiplicativeExpr", "AdditiveExpr",
00681 "ShiftExpr", "RelationalExpr", "EqualityExpr", "BitwiseANDExpr",
00682 "BitwiseXORExpr", "BitwiseORExpr", "LogicalANDExpr", "LogicalORExpr",
00683 "ConditionalExpr", "AssignmentExpr", "AssignmentOperator", "Expr",
00684 "Statement", "Block", "StatementList", "VariableStatement",
00685 "VariableDeclarationList", "VariableDeclaration", "ConstStatement",
00686 "ConstDeclarationList", "ConstDeclaration", "Initializer",
00687 "EmptyStatement", "ExprStatement", "IfStatement", "IterationStatement",
00688 "ExprOpt", "ContinueStatement", "BreakStatement", "ReturnStatement",
00689 "WithStatement", "SwitchStatement", "CaseBlock", "CaseClausesOpt",
00690 "CaseClauses", "CaseClause", "DefaultClause", "LabelledStatement",
00691 "ThrowStatement", "TryStatement", "DebuggerStatement", "Catch",
00692 "Finally", "FunctionDeclaration", "FunctionDeclarationInternal",
00693 "FunctionExpr", "FormalParameterList", "FunctionBody", "Program",
00694 "SourceElements", "SourceElement", 0
00695 };
00696 #endif
00697
00698 # ifdef YYPRINT
00699
00700
00701 static const unsigned short int yytoknum[] =
00702 {
00703 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00704 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
00705 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
00706 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
00707 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
00708 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
00709 315, 316, 317, 47, 40, 41, 123, 125, 44, 91,
00710 93, 58, 46, 43, 45, 126, 33, 42, 37, 60,
00711 62, 38, 94, 124, 63, 61, 59
00712 };
00713 # endif
00714
00715
00716 static const unsigned char yyr1[] =
00717 {
00718 0, 87, 88, 88, 88, 88, 88, 88, 88, 89,
00719 89, 89, 89, 89, 89, 89, 89, 90, 90, 90,
00720 91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
00721 95, 96, 96, 96, 96, 96, 97, 97, 98, 98,
00722 98, 98, 99, 99, 100, 100, 101, 101, 102, 102,
00723 102, 103, 103, 103, 103, 103, 103, 103, 103, 103,
00724 103, 103, 103, 104, 104, 104, 104, 105, 105, 105,
00725 106, 106, 106, 106, 107, 107, 107, 107, 107, 107,
00726 107, 108, 108, 108, 108, 108, 109, 109, 110, 110,
00727 111, 111, 112, 112, 113, 113, 114, 114, 115, 115,
00728 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
00729 116, 116, 117, 117, 118, 118, 118, 118, 118, 118,
00730 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
00731 119, 119, 120, 120, 121, 121, 122, 122, 123, 123,
00732 124, 124, 125, 125, 126, 126, 127, 128, 129, 129,
00733 130, 130, 131, 131, 131, 131, 131, 131, 131, 132,
00734 132, 133, 133, 133, 133, 134, 134, 134, 134, 135,
00735 135, 135, 135, 136, 137, 138, 138, 139, 139, 140,
00736 140, 141, 141, 142, 142, 143, 144, 144, 145, 145,
00737 145, 146, 146, 147, 148, 149, 149, 150, 150, 151,
00738 151, 152, 152, 153, 153, 154, 154, 155, 155, 156,
00739 156
00740 };
00741
00742
00743 static const unsigned char yyr2[] =
00744 {
00745 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
00746 1, 1, 1, 3, 2, 3, 4, 3, 3, 5,
00747 2, 4, 0, 1, 1, 2, 3, 5, 1, 1,
00748 1, 1, 1, 4, 3, 3, 1, 2, 2, 2,
00749 4, 3, 2, 3, 1, 3, 1, 1, 1, 2,
00750 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
00751 2, 2, 2, 1, 3, 3, 3, 1, 3, 3,
00752 1, 3, 3, 3, 1, 3, 3, 3, 3, 3,
00753 3, 1, 3, 3, 3, 3, 1, 3, 1, 3,
00754 1, 3, 1, 3, 1, 3, 1, 5, 1, 3,
00755 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00756 1, 1, 1, 3, 1, 1, 1, 1, 1, 1,
00757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00758 2, 3, 1, 2, 3, 3, 1, 3, 1, 2,
00759 3, 3, 1, 3, 1, 2, 2, 1, 2, 2,
00760 5, 7, 6, 5, 9, 10, 7, 8, 9, 0,
00761 1, 2, 2, 3, 3, 2, 2, 3, 3, 2,
00762 2, 3, 3, 5, 5, 3, 5, 0, 1, 1,
00763 2, 3, 4, 2, 3, 3, 3, 3, 3, 3,
00764 4, 2, 2, 5, 2, 1, 2, 5, 6, 4,
00765 5, 1, 3, 2, 3, 0, 1, 1, 2, 1,
00766 1
00767 };
00768
00769
00770
00771
00772 static const unsigned char yydefact[] =
00773 {
00774 205, 2, 3, 4, 6, 5, 0, 0, 0, 0,
00775 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
00776 0, 0, 0, 0, 0, 0, 0, 0, 8, 10,
00777 0, 0, 7, 0, 0, 22, 0, 0, 0, 0,
00778 147, 11, 31, 12, 36, 46, 47, 48, 51, 63,
00779 67, 70, 74, 81, 86, 88, 90, 92, 94, 96,
00780 98, 112, 0, 209, 114, 115, 116, 117, 118, 119,
00781 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
00782 210, 195, 32, 0, 206, 207, 166, 0, 165, 159,
00783 0, 10, 0, 36, 37, 138, 0, 136, 144, 0,
00784 142, 162, 0, 161, 0, 0, 170, 0, 169, 0,
00785 48, 53, 196, 52, 0, 0, 0, 54, 0, 0,
00786 0, 0, 0, 192, 191, 55, 57, 0, 56, 58,
00787 0, 6, 5, 10, 14, 0, 0, 0, 24, 0,
00788 0, 23, 59, 60, 61, 62, 0, 0, 0, 38,
00789 0, 0, 39, 49, 50, 101, 102, 103, 104, 105,
00790 106, 107, 108, 111, 109, 110, 100, 0, 0, 0,
00791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00793 0, 0, 149, 0, 148, 1, 208, 168, 167, 0,
00794 48, 160, 0, 29, 30, 28, 14, 35, 0, 139,
00795 135, 0, 134, 145, 141, 0, 140, 164, 163, 0,
00796 201, 0, 0, 172, 171, 0, 0, 0, 0, 0,
00797 187, 186, 130, 0, 0, 188, 189, 185, 13, 15,
00798 0, 0, 131, 22, 18, 17, 20, 25, 42, 0,
00799 44, 0, 34, 0, 41, 99, 65, 64, 66, 68,
00800 69, 71, 72, 73, 80, 79, 77, 78, 75, 76,
00801 82, 83, 84, 85, 87, 89, 91, 93, 95, 0,
00802 113, 138, 0, 0, 159, 146, 137, 143, 0, 0,
00803 0, 199, 0, 0, 0, 0, 0, 0, 0, 0,
00804 194, 190, 16, 0, 26, 0, 43, 0, 33, 40,
00805 0, 0, 139, 159, 0, 0, 197, 0, 203, 0,
00806 200, 202, 150, 0, 153, 177, 174, 173, 0, 0,
00807 19, 21, 45, 97, 0, 0, 0, 0, 159, 198,
00808 204, 0, 152, 0, 0, 178, 179, 0, 27, 0,
00809 0, 159, 156, 0, 151, 0, 0, 175, 177, 180,
00810 193, 157, 0, 0, 0, 181, 183, 0, 158, 0,
00811 154, 132, 182, 184, 176, 155, 133
00812 };
00813
00814
00815 static const short int yydefgoto[] =
00816 {
00817 -1, 41, 42, 43, 139, 140, 141, 135, 136, 44,
00818 45, 46, 149, 249, 47, 48, 49, 50, 51, 52,
00819 53, 54, 55, 56, 57, 58, 59, 60, 61, 167,
00820 62, 63, 64, 372, 65, 96, 97, 66, 99, 100,
00821 209, 67, 68, 69, 70, 202, 71, 72, 73, 74,
00822 75, 326, 344, 345, 346, 358, 76, 77, 78, 79,
00823 235, 236, 80, 81, 82, 222, 291, 83, 137, 85
00824 };
00825
00826
00827
00828 #define YYPACT_NINF -271
00829 static const short int yypact[] =
00830 {
00831 756, -271, -271, -271, -271, -271, 6, 21, 180, -19,
00832 -7, 7, -9, 83, 1248, 1322, 84, -271, 832, 110,
00833 1322, 117, 135, 1322, 165, 26, 1322, 1322, -271, 3,
00834 1322, 1322, -271, 1322, 376, 51, 1322, 1322, 1322, 1322,
00835 -271, -271, -271, -271, -10, -271, 53, 254, -271, -271,
00836 -14, 143, 107, 125, 94, 126, 163, 167, 208, -32,
00837 -271, -271, 8, -271, -271, -271, -271, -271, -271, -271,
00838 -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
00839 -271, -271, -271, 263, 756, -271, -271, 27, -271, 952,
00840 200, -271, 10, -10, -271, 181, 12, -271, 181, 14,
00841 -271, -271, 32, -271, 201, -23, -271, 1322, -271, 29,
00842 176, -271, -271, -271, 1322, 244, 1322, -271, 1322, 1322,
00843 43, 452, 189, -271, -271, -271, -271, 832, -271, -271,
00844 -34, 197, 198, 3, 916, 162, 199, 528, -271, 56,
00845 1026, 206, -271, -271, -271, -271, 1100, 1322, 211, -271,
00846 1322, 215, -271, -271, -271, -271, -271, -271, -271, -271,
00847 -271, -271, -271, -271, -271, -271, -271, 1322, 1322, 1322,
00848 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
00849 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
00850 1322, 1322, -271, 1322, -271, -271, -271, -271, -271, 219,
00851 203, 213, 196, -271, -271, -271, -271, -271, 1322, -271,
00852 -271, -19, -271, -271, -271, -19, -271, -271, -271, 31,
00853 -271, 217, 4, -271, -271, 55, 221, 69, 73, 99,
00854 -271, -271, -271, 222, 165, 253, -271, -271, -271, -271,
00855 54, 1322, -271, 51, -271, -271, -271, -271, -271, 103,
00856 -271, 72, -271, 112, -271, -271, -271, -271, -271, -14,
00857 -14, 143, 143, 143, 107, 107, 107, 107, 107, 107,
00858 125, 125, 125, 125, 94, 126, 163, 167, 208, 218,
00859 -271, -6, -48, 1322, 1322, -271, -271, -271, 217, 108,
00860 604, -271, 217, 230, 832, 1322, 832, 226, 832, 233,
00861 -271, -271, -271, 223, -271, 1174, -271, 1322, -271, -271,
00862 1322, 1322, 271, 1322, 123, 228, -271, 217, -271, 680,
00863 -271, -271, 273, 130, -271, 292, -271, -271, 250, 1322,
00864 -271, -271, -271, -271, 132, 1322, 231, 832, 1322, -271,
00865 -271, 832, -271, 1322, 16, 292, -271, 165, -271, 832,
00866 141, 1322, -271, 251, -271, 122, 247, -271, 292, -271,
00867 -271, -271, 832, 255, 832, 832, 832, 258, -271, 832,
00868 -271, -271, 832, 832, -271, -271, -271
00869 };
00870
00871
00872 static const short int yypgoto[] =
00873 {
00874 -271, -271, -271, -271, -271, 78, -271, -271, 82, 320,
00875 321, -271, -28, -271, 188, -271, 9, 70, 37, 57,
00876 -22, 144, 146, 147, 145, 148, -271, -271, -135, -271,
00877 -11, -18, -21, -30, -271, 138, -140, -271, -271, -271,
00878 -92, -271, -271, -271, -271, -270, -271, -271, -271, -271,
00879 -271, -271, -17, -271, -3, -271, -271, -271, -271, -271,
00880 -271, 114, -271, 329, -271, 131, -267, -271, 1, -80
00881 };
00882
00883
00884
00885
00886
00887 #define YYTABLE_NINF -131
00888 static const short int yytable[] =
00889 {
00890 115, 84, 109, 122, 196, 246, 213, 86, 101, 192,
00891 190, 250, 120, 210, 315, 214, 203, 204, 152, 311,
00892 211, 316, 130, 111, 113, 320, 356, 123, 197, 117,
00893 223, 238, 255, 217, 193, 125, 126, 220, 313, 128,
00894 129, 95, 221, 336, 230, 142, 143, 144, 145, 168,
00895 339, 104, 191, 98, 146, 105, 279, 196, 280, 147,
00896 203, 204, 148, 169, 170, 207, 87, 102, 353, 292,
00897 205, 286, 293, 285, 127, 287, 193, 206, 201, 208,
00898 211, 363, 215, 357, 106, 89, 1, 2, 3, 4,
00899 5, 220, 88, 103, 194, 8, 288, 193, 212, 90,
00900 216, 107, 15, 225, 17, 227, 304, 228, 229, 237,
00901 20, 193, 124, 198, 205, 224, 111, 146, 218, 138,
00902 294, 302, 150, 193, 243, 151, 244, 26, 27, 231,
00903 182, 183, 184, 185, 296, 28, 251, 193, 297, 253,
00904 193, 193, 308, 91, 30, 31, 32, 33, 114, 92,
00905 176, 177, 35, 173, 174, 175, 36, 37, 38, 39,
00906 270, 271, 272, 273, 298, 178, 179, 193, 306, 108,
00907 331, 307, 332, 317, 116, 333, 293, 256, 257, 258,
00908 193, 118, 309, 1, 2, 3, 4, 5, 337, 312,
00909 193, 193, 8, 365, 348, 342, 90, 349, 193, 119,
00910 193, 17, 110, 110, 180, 181, 362, 186, 110, 193,
00911 261, 262, 263, 300, 110, 110, 171, 172, 110, 110,
00912 153, 154, 233, 234, 110, 110, 110, 110, 283, 239,
00913 240, 121, 28, 264, 265, 266, 267, 268, 269, 196,
00914 91, 259, 260, 32, 33, 187, 92, 153, 154, 35,
00915 188, 189, 155, 156, 157, 158, 159, 160, 161, 162,
00916 163, 164, 165, 195, 105, 219, 208, 226, -29, -30,
00917 241, 252, 314, 201, 247, 254, 322, 200, 324, 281,
00918 327, 193, 284, 290, 323, 295, 299, 234, 166, 310,
00919 321, 319, 325, 328, 329, 110, 335, 341, 153, 154,
00920 334, 343, 201, 155, 156, 157, 158, 159, 160, 161,
00921 162, 163, 164, 165, 338, 347, 364, 351, 366, 352,
00922 369, 305, 303, 354, 350, 374, 360, 201, 93, 94,
00923 274, 361, 355, 275, 277, 276, 373, 282, 278, 166,
00924 201, 367, 359, 112, 368, 0, 370, 371, 371, 301,
00925 289, 375, 0, 0, 376, 376, 110, 110, 110, 110,
00926 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
00927 110, 110, 110, 110, 110, 110, 110, 110, 110, 1,
00928 2, 3, 131, 132, 6, 0, 0, 7, 8, 9,
00929 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
00930 0, 0, 0, 20, 21, 22, 0, 23, 24, 0,
00931 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
00932 26, 27, 0, 0, 0, 0, 0, 0, 28, 0,
00933 0, 0, 0, 0, 0, 0, 133, 30, 31, 32,
00934 33, 0, 34, 134, 0, 35, 0, 0, 0, 36,
00935 37, 38, 39, 0, 0, 1, 2, 3, 4, 5,
00936 6, 0, 40, 7, 8, 9, 10, 11, 12, 13,
00937 14, 15, 16, 17, 18, 19, 0, 0, 0, 20,
00938 21, 22, 0, 23, 24, 0, 0, 25, 0, 0,
00939 0, 0, 0, 0, 0, 0, 26, 27, 0, 0,
00940 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
00941 0, 0, 29, 30, 31, 32, 33, 0, 34, 232,
00942 0, 35, 0, 0, 0, 36, 37, 38, 39, 0,
00943 0, 1, 2, 3, 4, 5, 6, 0, 40, 7,
00944 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
00945 18, 19, 0, 0, 0, 20, 21, 22, 0, 23,
00946 24, 0, 0, 25, 0, 0, 0, 0, 0, 0,
00947 0, 0, 26, 27, 0, 0, 0, 0, 0, 0,
00948 28, 0, 0, 0, 0, 0, 0, 0, 29, 30,
00949 31, 32, 33, 0, 34, 242, 0, 35, 0, 0,
00950 0, 36, 37, 38, 39, 0, 0, 1, 2, 3,
00951 4, 5, 6, 0, 40, 7, 8, 9, 10, 11,
00952 12, 13, 14, 15, 16, 17, 18, 19, 0, 0,
00953 0, 20, 21, 22, 0, 23, 24, 0, 0, 25,
00954 0, 0, 0, 0, 0, 0, 0, 0, 26, 27,
00955 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
00956 0, 0, 0, 0, 29, 30, 31, 32, 33, 0,
00957 34, 318, 0, 35, 0, 0, 0, 36, 37, 38,
00958 39, 0, 0, 1, 2, 3, 4, 5, 6, 0,
00959 40, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00960 16, 17, 18, 19, 0, 0, 0, 20, 21, 22,
00961 0, 23, 24, 0, 0, 25, 0, 0, 0, 0,
00962 0, 0, 0, 0, 26, 27, 0, 0, 0, 0,
00963 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
00964 29, 30, 31, 32, 33, 0, 34, 340, 0, 35,
00965 0, 0, 0, 36, 37, 38, 39, 0, 0, 1,
00966 2, 3, 4, 5, 6, 0, 40, 7, 8, 9,
00967 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
00968 0, 0, 0, 20, 21, 22, 0, 23, 24, 0,
00969 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
00970 26, 27, 0, 0, 0, 0, 0, 0, 28, 0,
00971 0, 0, 0, 0, 0, 0, 29, 30, 31, 32,
00972 33, 0, 34, 0, 0, 35, 0, 0, 0, 36,
00973 37, 38, 39, 0, 0, 1, 2, 3, 4, 5,
00974 6, 0, 40, 7, 8, 9, 10, 11, 90, 13,
00975 107, 15, 16, 17, 18, 19, 0, 0, 0, 20,
00976 21, 22, 0, 23, 24, 0, 0, 25, 0, 0,
00977 0, 0, 0, 0, 0, 0, 26, 27, 0, 0,
00978 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
00979 0, 0, 29, 30, 31, 32, 33, 0, 34, 0,
00980 0, 35, 0, 0, 0, 36, 37, 38, 39, 0,
00981 0, 0, 0, 0, 0, 0, -130, 0, 40, -130,
00982 -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
00983 -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
00984 -130, 0, 0, -130, -130, -130, 0, -130, -130, 0,
00985 0, -130, 0, 0, 0, 1, 2, 3, 4, 5,
00986 0, 0, 0, 0, 8, 199, 0, 0, 90, 0,
00987 107, 15, 0, 17, 0, 0, -130, -130, -130, 20,
00988 0, 0, -130, -130, 0, 0, 0, 0, 0, 0,
00989 0, -130, -130, 0, 0, 0, 26, 27, 0, 0,
00990 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
00991 0, 0, 91, 30, 31, 32, 33, 0, 92, 0,
00992 0, 35, 0, 0, 0, 36, 37, 38, 39, 1,
00993 2, 3, 4, 5, 0, 0, 0, 0, 8, 0,
00994 0, 0, 90, 0, 107, 15, 0, 17, 0, 0,
00995 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
00996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00997 26, 27, 0, 0, 0, 0, 0, 0, 28, 0,
00998 0, 0, 0, 0, 0, 0, 91, 30, 31, 32,
00999 33, 0, 92, 0, 0, 35, 245, 0, 0, 36,
01000 37, 38, 39, 1, 2, 3, 4, 5, 0, 0,
01001 0, 0, 8, 0, 0, 0, 90, 0, 107, 15,
01002 0, 17, 0, 0, 0, 0, 0, 20, 0, 0,
01003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01004 0, 0, 0, 0, 26, 27, 0, 0, 0, 0,
01005 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
01006 91, 30, 31, 32, 33, 248, 92, 0, 0, 35,
01007 0, 0, 0, 36, 37, 38, 39, 1, 2, 3,
01008 4, 5, 0, 0, 0, 0, 8, 0, 0, 0,
01009 90, 0, 107, 15, 0, 17, 0, 0, 0, 0,
01010 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
01011 0, 0, 0, 0, 0, 0, 0, 0, 26, 27,
01012 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
01013 0, 0, 0, 0, 91, 30, 31, 32, 33, 0,
01014 92, 0, 0, 35, 330, 0, 0, 36, 37, 38,
01015 39, 1, 2, 3, 4, 5, 0, 0, 0, 0,
01016 8, 0, 0, 0, 12, 0, 107, 15, 0, 17,
01017 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
01018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01019 0, 0, 26, 27, 0, 0, 0, 0, 0, 0,
01020 28, 0, 0, 0, 0, 0, 0, 0, 91, 30,
01021 31, 32, 33, 0, 92, 0, 0, 35, 0, 0,
01022 0, 36, 37, 38, 39, 1, 2, 3, 4, 5,
01023 0, 0, 0, 0, 8, 0, 0, 0, 90, 0,
01024 107, 15, 0, 17, 0, 0, 0, 0, 0, 20,
01025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01026 0, 0, 0, 0, 0, 0, 26, 27, 0, 0,
01027 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
01028 0, 0, 91, 30, 31, 32, 33, 0, 92, 0,
01029 0, 35, 0, 0, 0, 36, 37, 38, 39
01030 };
01031
01032 static const short int yycheck[] =
01033 {
01034 18, 0, 13, 24, 84, 140, 98, 1, 1, 1,
01035 42, 146, 23, 1, 284, 1, 6, 7, 46, 25,
01036 68, 288, 33, 14, 15, 292, 10, 1, 1, 20,
01037 1, 65, 167, 1, 68, 26, 27, 60, 86, 30,
01038 31, 60, 65, 313, 1, 36, 37, 38, 39, 63,
01039 317, 60, 84, 60, 64, 64, 191, 137, 193, 69,
01040 6, 7, 72, 77, 78, 93, 60, 60, 338, 65,
01041 60, 211, 68, 208, 71, 215, 68, 67, 89, 85,
01042 68, 351, 68, 67, 1, 64, 3, 4, 5, 6,
01043 7, 60, 86, 86, 86, 12, 65, 68, 86, 16,
01044 86, 18, 19, 114, 21, 116, 241, 118, 119, 127,
01045 27, 68, 86, 86, 60, 86, 107, 64, 86, 68,
01046 65, 67, 69, 68, 68, 72, 70, 44, 45, 86,
01047 36, 37, 38, 39, 65, 52, 147, 68, 65, 150,
01048 68, 68, 70, 60, 61, 62, 63, 64, 64, 66,
01049 25, 26, 69, 46, 47, 48, 73, 74, 75, 76,
01050 182, 183, 184, 185, 65, 40, 41, 68, 65, 86,
01051 305, 68, 307, 65, 64, 310, 68, 168, 169, 170,
01052 68, 64, 70, 3, 4, 5, 6, 7, 65, 281,
01053 68, 68, 12, 71, 329, 65, 16, 65, 68, 64,
01054 68, 21, 14, 15, 79, 80, 65, 81, 20, 68,
01055 173, 174, 175, 234, 26, 27, 73, 74, 30, 31,
01056 44, 45, 33, 34, 36, 37, 38, 39, 25, 67,
01057 68, 66, 52, 176, 177, 178, 179, 180, 181, 319,
01058 60, 171, 172, 63, 64, 82, 66, 44, 45, 69,
01059 83, 43, 49, 50, 51, 52, 53, 54, 55, 56,
01060 57, 58, 59, 0, 64, 64, 85, 23, 71, 71,
01061 71, 60, 283, 284, 68, 60, 294, 89, 296, 60,
01062 298, 68, 86, 66, 295, 64, 64, 34, 85, 71,
01063 60, 290, 66, 60, 71, 107, 25, 24, 44, 45,
01064 311, 9, 313, 49, 50, 51, 52, 53, 54, 55,
01065 56, 57, 58, 59, 86, 65, 65, 86, 71, 337,
01066 65, 243, 240, 341, 335, 67, 347, 338, 8, 8,
01067 186, 349, 343, 187, 189, 188, 366, 199, 190, 85,
01068 351, 358, 345, 14, 362, -1, 364, 365, 366, 235,
01069 219, 369, -1, -1, 372, 373, 168, 169, 170, 171,
01070 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
01071 182, 183, 184, 185, 186, 187, 188, 189, 190, 3,
01072 4, 5, 6, 7, 8, -1, -1, 11, 12, 13,
01073 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
01074 -1, -1, -1, 27, 28, 29, -1, 31, 32, -1,
01075 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
01076 44, 45, -1, -1, -1, -1, -1, -1, 52, -1,
01077 -1, -1, -1, -1, -1, -1, 60, 61, 62, 63,
01078 64, -1, 66, 67, -1, 69, -1, -1, -1, 73,
01079 74, 75, 76, -1, -1, 3, 4, 5, 6, 7,
01080 8, -1, 86, 11, 12, 13, 14, 15, 16, 17,
01081 18, 19, 20, 21, 22, 23, -1, -1, -1, 27,
01082 28, 29, -1, 31, 32, -1, -1, 35, -1, -1,
01083 -1, -1, -1, -1, -1, -1, 44, 45, -1, -1,
01084 -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
01085 -1, -1, 60, 61, 62, 63, 64, -1, 66, 67,
01086 -1, 69, -1, -1, -1, 73, 74, 75, 76, -1,
01087 -1, 3, 4, 5, 6, 7, 8, -1, 86, 11,
01088 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
01089 22, 23, -1, -1, -1, 27, 28, 29, -1, 31,
01090 32, -1, -1, 35, -1, -1, -1, -1, -1, -1,
01091 -1, -1, 44, 45, -1, -1, -1, -1, -1, -1,
01092 52, -1, -1, -1, -1, -1, -1, -1, 60, 61,
01093 62, 63, 64, -1, 66, 67, -1, 69, -1, -1,
01094 -1, 73, 74, 75, 76, -1, -1, 3, 4, 5,
01095 6, 7, 8, -1, 86, 11, 12, 13, 14, 15,
01096 16, 17, 18, 19, 20, 21, 22, 23, -1, -1,
01097 -1, 27, 28, 29, -1, 31, 32, -1, -1, 35,
01098 -1, -1, -1, -1, -1, -1, -1, -1, 44, 45,
01099 -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
01100 -1, -1, -1, -1, 60, 61, 62, 63, 64, -1,
01101 66, 67, -1, 69, -1, -1, -1, 73, 74, 75,
01102 76, -1, -1, 3, 4, 5, 6, 7, 8, -1,
01103 86, 11, 12, 13, 14, 15, 16, 17, 18, 19,
01104 20, 21, 22, 23, -1, -1, -1, 27, 28, 29,
01105 -1, 31, 32, -1, -1, 35, -1, -1, -1, -1,
01106 -1, -1, -1, -1, 44, 45, -1, -1, -1, -1,
01107 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
01108 60, 61, 62, 63, 64, -1, 66, 67, -1, 69,
01109 -1, -1, -1, 73, 74, 75, 76, -1, -1, 3,
01110 4, 5, 6, 7, 8, -1, 86, 11, 12, 13,
01111 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
01112 -1, -1, -1, 27, 28, 29, -1, 31, 32, -1,
01113 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
01114 44, 45, -1, -1, -1, -1, -1, -1, 52, -1,
01115 -1, -1, -1, -1, -1, -1, 60, 61, 62, 63,
01116 64, -1, 66, -1, -1, 69, -1, -1, -1, 73,
01117 74, 75, 76, -1, -1, 3, 4, 5, 6, 7,
01118 8, -1, 86, 11, 12, 13, 14, 15, 16, 17,
01119 18, 19, 20, 21, 22, 23, -1, -1, -1, 27,
01120 28, 29, -1, 31, 32, -1, -1, 35, -1, -1,
01121 -1, -1, -1, -1, -1, -1, 44, 45, -1, -1,
01122 -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
01123 -1, -1, 60, 61, 62, 63, 64, -1, 66, -1,
01124 -1, 69, -1, -1, -1, 73, 74, 75, 76, -1,
01125 -1, -1, -1, -1, -1, -1, 0, -1, 86, 3,
01126 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
01127 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
01128 24, -1, -1, 27, 28, 29, -1, 31, 32, -1,
01129 -1, 35, -1, -1, -1, 3, 4, 5, 6, 7,
01130 -1, -1, -1, -1, 12, 13, -1, -1, 16, -1,
01131 18, 19, -1, 21, -1, -1, 60, 61, 62, 27,
01132 -1, -1, 66, 67, -1, -1, -1, -1, -1, -1,
01133 -1, 75, 76, -1, -1, -1, 44, 45, -1, -1,
01134 -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
01135 -1, -1, 60, 61, 62, 63, 64, -1, 66, -1,
01136 -1, 69, -1, -1, -1, 73, 74, 75, 76, 3,
01137 4, 5, 6, 7, -1, -1, -1, -1, 12, -1,
01138 -1, -1, 16, -1, 18, 19, -1, 21, -1, -1,
01139 -1, -1, -1, 27, -1, -1, -1, -1, -1, -1,
01140 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01141 44, 45, -1, -1, -1, -1, -1, -1, 52, -1,
01142 -1, -1, -1, -1, -1, -1, 60, 61, 62, 63,
01143 64, -1, 66, -1, -1, 69, 70, -1, -1, 73,
01144 74, 75, 76, 3, 4, 5, 6, 7, -1, -1,
01145 -1, -1, 12, -1, -1, -1, 16, -1, 18, 19,
01146 -1, 21, -1, -1, -1, -1, -1, 27, -1, -1,
01147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01148 -1, -1, -1, -1, 44, 45, -1, -1, -1, -1,
01149 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
01150 60, 61, 62, 63, 64, 65, 66, -1, -1, 69,
01151 -1, -1, -1, 73, 74, 75, 76, 3, 4, 5,
01152 6, 7, -1, -1, -1, -1, 12, -1, -1, -1,
01153 16, -1, 18, 19, -1, 21, -1, -1, -1, -1,
01154 -1, 27, -1, -1, -1, -1, -1, -1, -1, -1,
01155 -1, -1, -1, -1, -1, -1, -1, -1, 44, 45,
01156 -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
01157 -1, -1, -1, -1, 60, 61, 62, 63, 64, -1,
01158 66, -1, -1, 69, 70, -1, -1, 73, 74, 75,
01159 76, 3, 4, 5, 6, 7, -1, -1, -1, -1,
01160 12, -1, -1, -1, 16, -1, 18, 19, -1, 21,
01161 -1, -1, -1, -1, -1, 27, -1, -1, -1, -1,
01162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01163 -1, -1, 44, 45, -1, -1, -1, -1, -1, -1,
01164 52, -1, -1, -1, -1, -1, -1, -1, 60, 61,
01165 62, 63, 64, -1, 66, -1, -1, 69, -1, -1,
01166 -1, 73, 74, 75, 76, 3, 4, 5, 6, 7,
01167 -1, -1, -1, -1, 12, -1, -1, -1, 16, -1,
01168 18, 19, -1, 21, -1, -1, -1, -1, -1, 27,
01169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01170 -1, -1, -1, -1, -1, -1, 44, 45, -1, -1,
01171 -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
01172 -1, -1, 60, 61, 62, 63, 64, -1, 66, -1,
01173 -1, 69, -1, -1, -1, 73, 74, 75, 76
01174 };
01175
01176
01177
01178 static const unsigned char yystos[] =
01179 {
01180 0, 3, 4, 5, 6, 7, 8, 11, 12, 13,
01181 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
01182 27, 28, 29, 31, 32, 35, 44, 45, 52, 60,
01183 61, 62, 63, 64, 66, 69, 73, 74, 75, 76,
01184 86, 88, 89, 90, 96, 97, 98, 101, 102, 103,
01185 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
01186 114, 115, 117, 118, 119, 121, 124, 128, 129, 130,
01187 131, 133, 134, 135, 136, 137, 143, 144, 145, 146,
01188 149, 150, 151, 154, 155, 156, 1, 60, 86, 64,
01189 16, 60, 66, 96, 97, 60, 122, 123, 60, 125,
01190 126, 1, 60, 86, 60, 64, 1, 18, 86, 117,
01191 101, 103, 150, 103, 64, 118, 64, 103, 64, 64,
01192 117, 66, 119, 1, 86, 103, 103, 71, 103, 103,
01193 117, 6, 7, 60, 67, 94, 95, 155, 68, 91,
01194 92, 93, 103, 103, 103, 103, 64, 69, 72, 99,
01195 69, 72, 99, 44, 45, 49, 50, 51, 52, 53,
01196 54, 55, 56, 57, 58, 59, 85, 116, 63, 77,
01197 78, 73, 74, 46, 47, 48, 25, 26, 40, 41,
01198 79, 80, 36, 37, 38, 39, 81, 82, 83, 43,
01199 42, 84, 1, 68, 86, 0, 156, 1, 86, 13,
01200 101, 117, 132, 6, 7, 60, 67, 99, 85, 127,
01201 1, 68, 86, 127, 1, 68, 86, 1, 86, 64,
01202 60, 65, 152, 1, 86, 117, 23, 117, 117, 117,
01203 1, 86, 67, 33, 34, 147, 148, 118, 65, 67,
01204 68, 71, 67, 68, 70, 70, 115, 68, 65, 100,
01205 115, 117, 60, 117, 60, 115, 103, 103, 103, 104,
01206 104, 105, 105, 105, 106, 106, 106, 106, 106, 106,
01207 107, 107, 107, 107, 108, 109, 110, 111, 112, 115,
01208 115, 60, 122, 25, 86, 115, 123, 123, 65, 152,
01209 66, 153, 65, 68, 65, 64, 65, 65, 65, 64,
01210 119, 148, 67, 95, 115, 92, 65, 68, 70, 70,
01211 71, 25, 127, 86, 117, 132, 153, 65, 67, 155,
01212 153, 60, 118, 117, 118, 66, 138, 118, 60, 71,
01213 70, 115, 115, 115, 117, 25, 132, 65, 86, 153,
01214 67, 24, 65, 9, 139, 140, 141, 65, 115, 65,
01215 117, 86, 118, 132, 118, 117, 10, 67, 142, 141,
01216 119, 118, 65, 132, 65, 71, 71, 139, 118, 65,
01217 118, 118, 120, 120, 67, 118, 118
01218 };
01219
01220 #define yyerrok (yyerrstatus = 0)
01221 #define yyclearin (yychar = YYEMPTY)
01222 #define YYEMPTY (-2)
01223 #define YYEOF 0
01224
01225 #define YYACCEPT goto yyacceptlab
01226 #define YYABORT goto yyabortlab
01227 #define YYERROR goto yyerrorlab
01228
01229
01230
01231
01232
01233
01234 #define YYFAIL goto yyerrlab
01235
01236 #define YYRECOVERING() (!!yyerrstatus)
01237
01238 #define YYBACKUP(Token, Value) \
01239 do \
01240 if (yychar == YYEMPTY && yylen == 1) \
01241 { \
01242 yychar = (Token); \
01243 yylval = (Value); \
01244 yytoken = YYTRANSLATE (yychar); \
01245 YYPOPSTACK; \
01246 goto yybackup; \
01247 } \
01248 else \
01249 { \
01250 yyerror (YY_("syntax error: cannot back up")); \
01251 YYERROR; \
01252 } \
01253 while (0)
01254
01255
01256 #define YYTERROR 1
01257 #define YYERRCODE 256
01258
01259
01260
01261
01262
01263
01264 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
01265 #ifndef YYLLOC_DEFAULT
01266 # define YYLLOC_DEFAULT(Current, Rhs, N) \
01267 do \
01268 if (N) \
01269 { \
01270 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
01271 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
01272 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
01273 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
01274 } \
01275 else \
01276 { \
01277 (Current).first_line = (Current).last_line = \
01278 YYRHSLOC (Rhs, 0).last_line; \
01279