00001
00002
00003
00004 #define YYBISON 1
00005
00006 #define yyparse kjsyyparse
00007 #define yylex kjsyylex
00008 #define yyerror kjsyyerror
00009 #define yylval kjsyylval
00010 #define yychar kjsyychar
00011 #define yydebug kjsyydebug
00012 #define yynerrs kjsyynerrs
00013 #define YYLSP_NEEDED 1
00014
00015 # define NULLTOKEN 257
00016 # define TRUETOKEN 258
00017 # define FALSETOKEN 259
00018 # define STRING 260
00019 # define NUMBER 261
00020 # define BREAK 262
00021 # define CASE 263
00022 # define DEFAULT 264
00023 # define FOR 265
00024 # define NEW 266
00025 # define VAR 267
00026 # define CONTINUE 268
00027 # define FUNCTION 269
00028 # define RETURN 270
00029 # define VOID 271
00030 # define DELETE 272
00031 # define IF 273
00032 # define THIS 274
00033 # define DO 275
00034 # define WHILE 276
00035 # define ELSE 277
00036 # define IN 278
00037 # define INSTANCEOF 279
00038 # define TYPEOF 280
00039 # define SWITCH 281
00040 # define WITH 282
00041 # define RESERVED 283
00042 # define THROW 284
00043 # define TRY 285
00044 # define CATCH 286
00045 # define FINALLY 287
00046 # define EQEQ 288
00047 # define NE 289
00048 # define STREQ 290
00049 # define STRNEQ 291
00050 # define LE 292
00051 # define GE 293
00052 # define OR 294
00053 # define AND 295
00054 # define PLUSPLUS 296
00055 # define MINUSMINUS 297
00056 # define LSHIFT 298
00057 # define RSHIFT 299
00058 # define URSHIFT 300
00059 # define PLUSEQUAL 301
00060 # define MINUSEQUAL 302
00061 # define MULTEQUAL 303
00062 # define DIVEQUAL 304
00063 # define LSHIFTEQUAL 305
00064 # define RSHIFTEQUAL 306
00065 # define URSHIFTEQUAL 307
00066 # define ANDEQUAL 308
00067 # define MODEQUAL 309
00068 # define XOREQUAL 310
00069 # define OREQUAL 311
00070 # define IDENT 312
00071 # define AUTOPLUSPLUS 313
00072 # define AUTOMINUSMINUS 314
00073
00074 #line 1 "grammar.y"
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 #ifdef HAVE_CONFIG_H
00098 #include <config.h>
00099 #endif
00100 #include <string.h>
00101 #include <stdlib.h>
00102 #include "value.h"
00103 #include "object.h"
00104 #include "types.h"
00105 #include "interpreter.h"
00106 #include "nodes.h"
00107 #include "lexer.h"
00108 #include "internal.h"
00109
00110
00111 #define YYDEBUG 0
00112 #define YYMAXDEPTH 0
00113 #define YYERROR_VERBOSE
00114 #define DBG(l, s, e) { l->setLoc(s.first_line, e.last_line, Parser::source); } // location
00115
00116 extern int yylex();
00117 static int yyerror (const char *);
00118 static bool automatic();
00119
00120 using namespace KJS;
00121
00122
00123 #line 50 "grammar.y"
00124 #ifndef YYSTYPE
00125 typedef union {
00126 int ival;
00127 double dval;
00128 UString *ustr;
00129 Identifier *ident;
00130 Node *node;
00131 StatementNode *stat;
00132 ParameterNode *param;
00133 FunctionBodyNode *body;
00134 FuncDeclNode *func;
00135 FunctionBodyNode *prog;
00136 AssignExprNode *init;
00137 SourceElementsNode *srcs;
00138 StatListNode *slist;
00139 ArgumentsNode *args;
00140 ArgumentListNode *alist;
00141 VarDeclNode *decl;
00142 VarDeclListNode *vlist;
00143 CaseBlockNode *cblk;
00144 ClauseListNode *clist;
00145 CaseClauseNode *ccl;
00146 ElementNode *elm;
00147 Operator op;
00148 PropertyValueNode *plist;
00149 PropertyNode *pnode;
00150 CatchNode *cnode;
00151 FinallyNode *fnode;
00152 } yystype;
00153 # define YYSTYPE yystype
00154 # define YYSTYPE_IS_TRIVIAL 1
00155 #endif
00156
00157 #ifndef YYLTYPE
00158 typedef struct yyltype
00159 {
00160 int first_line;
00161 int first_column;
00162
00163 int last_line;
00164 int last_column;
00165 } yyltype;
00166
00167 # define YYLTYPE yyltype
00168 # define YYLTYPE_IS_TRIVIAL 1
00169 #endif
00170
00171 #ifndef YYDEBUG
00172 # define YYDEBUG 0
00173 #endif
00174
00175
00176
00177 #define YYFINAL 362
00178 #define YYFLAG -32768
00179 #define YYNTBASE 85
00180
00181
00182 #define YYTRANSLATE(x) ((unsigned)(x) <= 314 ? yytranslate[x] : 150)
00183
00184
00185 static const char yytranslate[] =
00186 {
00187 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00190 2, 2, 2, 74, 2, 2, 2, 76, 79, 2,
00191 62, 63, 75, 71, 68, 72, 70, 61, 2, 2,
00192 2, 2, 2, 2, 2, 2, 2, 2, 69, 84,
00193 77, 83, 78, 82, 2, 2, 2, 2, 2, 2,
00194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00196 2, 66, 2, 67, 80, 2, 2, 2, 2, 2,
00197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00199 2, 2, 2, 64, 81, 65, 73, 2, 2, 2,
00200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00212 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
00213 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00214 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
00215 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
00216 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
00217 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
00218 56, 57, 58, 59, 60
00219 };
00220
00221 #if YYDEBUG
00222 static const short yyprhs[] =
00223 {
00224 0, 0, 2, 4, 6, 8, 10, 12, 14, 16,
00225 18, 20, 22, 26, 29, 33, 37, 41, 47, 50,
00226 55, 56, 58, 60, 63, 67, 73, 75, 77, 79,
00227 81, 83, 88, 92, 96, 98, 101, 104, 107, 112,
00228 116, 119, 123, 125, 129, 131, 133, 135, 138, 141,
00229 143, 146, 149, 152, 155, 158, 161, 164, 167, 170,
00230 173, 176, 178, 182, 186, 190, 192, 196, 200, 202,
00231 206, 210, 214, 216, 220, 224, 228, 232, 236, 240,
00232 242, 246, 250, 254, 258, 260, 264, 266, 270, 272,
00233 276, 278, 282, 284, 288, 290, 296, 298, 302, 304,
00234 306, 308, 310, 312, 314, 316, 318, 320, 322, 324,
00235 326, 328, 332, 334, 336, 338, 340, 342, 344, 346,
00236 348, 350, 352, 354, 356, 358, 360, 363, 367, 369,
00237 372, 376, 380, 382, 386, 388, 391, 394, 396, 399,
00238 402, 408, 416, 423, 429, 439, 450, 458, 467, 477,
00239 478, 480, 483, 486, 490, 494, 497, 500, 504, 508,
00240 511, 514, 518, 522, 528, 534, 538, 544, 545, 547,
00241 549, 552, 556, 561, 564, 568, 572, 576, 580, 584,
00242 588, 593, 599, 602, 604, 607, 613, 620, 625, 631,
00243 633, 637, 640, 644, 645, 647, 649, 652, 654
00244 };
00245 static const short yyrhs[] =
00246 {
00247 3, 0, 4, 0, 5, 0, 7, 0, 6, 0,
00248 61, 0, 50, 0, 20, 0, 58, 0, 85, 0,
00249 87, 0, 62, 114, 63, 0, 64, 65, 0, 64,
00250 91, 65, 0, 66, 89, 67, 0, 66, 88, 67,
00251 0, 66, 88, 68, 89, 67, 0, 89, 112, 0,
00252 88, 68, 89, 112, 0, 0, 90, 0, 68, 0,
00253 90, 68, 0, 92, 69, 112, 0, 91, 68, 92,
00254 69, 112, 0, 58, 0, 6, 0, 7, 0, 86,
00255 0, 144, 0, 93, 66, 114, 67, 0, 93, 70,
00256 58, 0, 12, 93, 96, 0, 93, 0, 12, 94,
00257 0, 93, 96, 0, 95, 96, 0, 95, 66, 114,
00258 67, 0, 95, 70, 58, 0, 62, 63, 0, 62,
00259 97, 63, 0, 112, 0, 97, 68, 112, 0, 94,
00260 0, 95, 0, 98, 0, 98, 42, 0, 98, 43,
00261 0, 99, 0, 18, 100, 0, 17, 100, 0, 26,
00262 100, 0, 42, 100, 0, 59, 100, 0, 43, 100,
00263 0, 60, 100, 0, 71, 100, 0, 72, 100, 0,
00264 73, 100, 0, 74, 100, 0, 100, 0, 101, 75,
00265 100, 0, 101, 61, 100, 0, 101, 76, 100, 0,
00266 101, 0, 102, 71, 101, 0, 102, 72, 101, 0,
00267 102, 0, 103, 44, 102, 0, 103, 45, 102, 0,
00268 103, 46, 102, 0, 103, 0, 104, 77, 103, 0,
00269 104, 78, 103, 0, 104, 38, 103, 0, 104, 39,
00270 103, 0, 104, 25, 103, 0, 104, 24, 103, 0,
00271 104, 0, 105, 34, 104, 0, 105, 35, 104, 0,
00272 105, 36, 104, 0, 105, 37, 104, 0, 105, 0,
00273 106, 79, 105, 0, 106, 0, 107, 80, 106, 0,
00274 107, 0, 108, 81, 107, 0, 108, 0, 109, 41,
00275 108, 0, 109, 0, 110, 40, 109, 0, 110, 0,
00276 110, 82, 112, 69, 112, 0, 111, 0, 98, 113,
00277 112, 0, 83, 0, 47, 0, 48, 0, 49, 0,
00278 50, 0, 51, 0, 52, 0, 53, 0, 54, 0,
00279 56, 0, 57, 0, 55, 0, 112, 0, 114, 68,
00280 112, 0, 116, 0, 118, 0, 122, 0, 123, 0,
00281 124, 0, 125, 0, 127, 0, 128, 0, 129, 0,
00282 130, 0, 131, 0, 137, 0, 138, 0, 139, 0,
00283 64, 65, 0, 64, 148, 65, 0, 115, 0, 117,
00284 115, 0, 13, 119, 84, 0, 13, 119, 1, 0,
00285 120, 0, 119, 68, 120, 0, 58, 0, 58, 121,
00286 0, 83, 112, 0, 84, 0, 114, 84, 0, 114,
00287 1, 0, 19, 62, 114, 63, 115, 0, 19, 62,
00288 114, 63, 115, 23, 115, 0, 21, 115, 22, 62,
00289 114, 63, 0, 22, 62, 114, 63, 115, 0, 11,
00290 62, 126, 84, 126, 84, 126, 63, 115, 0, 11,
00291 62, 13, 119, 84, 126, 84, 126, 63, 115, 0,
00292 11, 62, 98, 24, 114, 63, 115, 0, 11, 62,
00293 13, 58, 24, 114, 63, 115, 0, 11, 62, 13,
00294 58, 121, 24, 114, 63, 115, 0, 0, 114, 0,
00295 14, 84, 0, 14, 1, 0, 14, 58, 84, 0,
00296 14, 58, 1, 0, 8, 84, 0, 8, 1, 0,
00297 8, 58, 84, 0, 8, 58, 1, 0, 16, 84,
00298 0, 16, 1, 0, 16, 114, 84, 0, 16, 114,
00299 1, 0, 28, 62, 114, 63, 115, 0, 27, 62,
00300 114, 63, 132, 0, 64, 133, 65, 0, 64, 133,
00301 136, 133, 65, 0, 0, 134, 0, 135, 0, 134,
00302 135, 0, 9, 114, 69, 0, 9, 114, 69, 117,
00303 0, 10, 69, 0, 10, 69, 117, 0, 58, 69,
00304 115, 0, 30, 114, 84, 0, 30, 114, 1, 0,
00305 31, 116, 140, 0, 31, 116, 141, 0, 31, 116,
00306 140, 141, 0, 32, 62, 58, 63, 116, 0, 33,
00307 116, 0, 143, 0, 17, 143, 0, 15, 58, 62,
00308 63, 146, 0, 15, 58, 62, 145, 63, 146, 0,
00309 15, 62, 63, 146, 0, 15, 62, 145, 63, 146,
00310 0, 58, 0, 145, 68, 58, 0, 64, 65, 0,
00311 64, 148, 65, 0, 0, 148, 0, 149, 0, 148,
00312 149, 0, 115, 0, 142, 0
00313 };
00314
00315 #endif
00316
00317 #if YYDEBUG
00318
00319 static const short yyrline[] =
00320 {
00321 0, 165, 167, 168, 169, 170, 171, 174, 180, 182,
00322 183, 184, 185, 186, 187, 190, 192, 193, 196, 198,
00323 202, 204, 207, 209, 212, 214, 218, 220, 221, 224,
00324 226, 227, 228, 229, 232, 234, 237, 239, 240, 241,
00325 244, 246, 249, 251, 254, 256, 259, 261, 262, 265,
00326 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
00327 277, 280, 282, 283, 284, 287, 289, 290, 293, 295,
00328 296, 297, 300, 302, 304, 306, 308, 310, 312, 316,
00329 318, 319, 320, 321, 324, 326, 329, 331, 334, 336,
00330 339, 341, 345, 347, 351, 353, 357, 359, 363, 365,
00331 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
00332 378, 380, 383, 385, 386, 387, 388, 389, 390, 391,
00333 392, 393, 394, 395, 396, 397, 400, 402, 405, 407,
00334 410, 413, 422, 424, 428, 430, 433, 437, 441, 444,
00335 451, 453, 457, 459, 460, 463, 466, 469, 472, 477,
00336 479, 482, 484, 488, 489, 495, 497, 501, 502, 509,
00337 511, 515, 516, 523, 528, 533, 535, 539, 541, 544,
00338 546, 549, 551, 554, 556, 559, 564, 566, 572, 574,
00339 575, 578, 583, 587, 590, 593, 595, 599, 601, 606,
00340 608, 611, 614, 618, 622, 626, 628, 631, 633
00341 };
00342 #endif
00343
00344
00345 #if (YYDEBUG) || defined YYERROR_VERBOSE
00346
00347
00348 static const char *const yytname[] =
00349 {
00350 "$", "error", "$undefined.", "NULLTOKEN", "TRUETOKEN", "FALSETOKEN",
00351 "STRING", "NUMBER", "BREAK", "CASE", "DEFAULT", "FOR", "NEW", "VAR",
00352 "CONTINUE", "FUNCTION", "RETURN", "VOID", "DELETE", "IF", "THIS", "DO",
00353 "WHILE", "ELSE", "IN", "INSTANCEOF", "TYPEOF", "SWITCH", "WITH",
00354 "RESERVED", "THROW", "TRY", "CATCH", "FINALLY", "EQEQ", "NE", "STREQ",
00355 "STRNEQ", "LE", "GE", "OR", "AND", "PLUSPLUS", "MINUSMINUS", "LSHIFT",
00356 "RSHIFT", "URSHIFT", "PLUSEQUAL", "MINUSEQUAL", "MULTEQUAL", "DIVEQUAL",
00357 "LSHIFTEQUAL", "RSHIFTEQUAL", "URSHIFTEQUAL", "ANDEQUAL", "MODEQUAL",
00358 "XOREQUAL", "OREQUAL", "IDENT", "AUTOPLUSPLUS", "AUTOMINUSMINUS", "'/'",
00359 "'('", "')'", "'{'", "'}'", "'['", "']'", "','", "':'", "'.'", "'+'",
00360 "'-'", "'~'", "'!'", "'*'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'",
00361 "'?'", "'='", "';'", "Literal", "PrimaryExpr", "ArrayLiteral",
00362 "ElementList", "ElisionOpt", "Elision", "PropertyNameAndValueList",
00363 "PropertyName", "MemberExpr", "NewExpr", "CallExpr", "Arguments",
00364 "ArgumentList", "LeftHandSideExpr", "PostfixExpr", "UnaryExpr",
00365 "MultiplicativeExpr", "AdditiveExpr", "ShiftExpr", "RelationalExpr",
00366 "EqualityExpr", "BitwiseANDExpr", "BitwiseXORExpr", "BitwiseORExpr",
00367 "LogicalANDExpr", "LogicalORExpr", "ConditionalExpr", "AssignmentExpr",
00368 "AssignmentOperator", "Expr", "Statement", "Block", "StatementList",
00369 "VariableStatement", "VariableDeclarationList", "VariableDeclaration",
00370 "Initializer", "EmptyStatement", "ExprStatement", "IfStatement",
00371 "IterationStatement", "ExprOpt", "ContinueStatement", "BreakStatement",
00372 "ReturnStatement", "WithStatement", "SwitchStatement", "CaseBlock",
00373 "CaseClausesOpt", "CaseClauses", "CaseClause", "DefaultClause",
00374 "LabelledStatement", "ThrowStatement", "TryStatement", "Catch",
00375 "Finally", "FunctionDeclaration", "FunctionDeclarationInternal",
00376 "FunctionExpr", "FormalParameterList", "FunctionBody", "Program",
00377 "SourceElements", "SourceElement", 0
00378 };
00379 #endif
00380
00381
00382 static const short yyr1[] =
00383 {
00384 0, 85, 85, 85, 85, 85, 85, 85, 86, 86,
00385 86, 86, 86, 86, 86, 87, 87, 87, 88, 88,
00386 89, 89, 90, 90, 91, 91, 92, 92, 92, 93,
00387 93, 93, 93, 93, 94, 94, 95, 95, 95, 95,
00388 96, 96, 97, 97, 98, 98, 99, 99, 99, 100,
00389 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
00390 100, 101, 101, 101, 101, 102, 102, 102, 103, 103,
00391 103, 103, 104, 104, 104, 104, 104, 104, 104, 105,
00392 105, 105, 105, 105, 106, 106, 107, 107, 108, 108,
00393 109, 109, 110, 110, 111, 111, 112, 112, 113, 113,
00394 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
00395 114, 114, 115, 115, 115, 115, 115, 115, 115, 115,
00396 115, 115, 115, 115, 115, 115, 116, 116, 117, 117,
00397 118, 118, 119, 119, 120, 120, 121, 122, 123, 123,
00398 124, 124, 125, 125, 125, 125, 125, 125, 125, 126,
00399 126, 127, 127, 127, 127, 128, 128, 128, 128, 129,
00400 129, 129, 129, 130, 131, 132, 132, 133, 133, 134,
00401 134, 135, 135, 136, 136, 137, 138, 138, 139, 139,
00402 139, 140, 141, 142, 142, 143, 143, 144, 144, 145,
00403 145, 146, 146, 147, 147, 148, 148, 149, 149
00404 };
00405
00406
00407 static const short yyr2[] =
00408 {
00409 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00410 1, 1, 3, 2, 3, 3, 3, 5, 2, 4,
00411 0, 1, 1, 2, 3, 5, 1, 1, 1, 1,
00412 1, 4, 3, 3, 1, 2, 2, 2, 4, 3,
00413 2, 3, 1, 3, 1, 1, 1, 2, 2, 1,
00414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00415 2, 1, 3, 3, 3, 1, 3, 3, 1, 3,
00416 3, 3, 1, 3, 3, 3, 3, 3, 3, 1,
00417 3, 3, 3, 3, 1, 3, 1, 3, 1, 3,
00418 1, 3, 1, 3, 1, 5, 1, 3, 1, 1,
00419 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00420 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
00421 1, 1, 1, 1, 1, 1, 2, 3, 1, 2,
00422 3, 3, 1, 3, 1, 2, 2, 1, 2, 2,
00423 5, 7, 6, 5, 9, 10, 7, 8, 9, 0,
00424 1, 2, 2, 3, 3, 2, 2, 3, 3, 2,
00425 2, 3, 3, 5, 5, 3, 5, 0, 1, 1,
00426 2, 3, 4, 2, 3, 3, 3, 3, 3, 3,
00427 4, 5, 2, 1, 2, 5, 6, 4, 5, 1,
00428 3, 2, 3, 0, 1, 1, 2, 1, 1
00429 };
00430
00431
00432
00433
00434 static const short yydefact[] =
00435 {
00436 193, 1, 2, 3, 5, 4, 0, 0, 0, 0,
00437 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
00438 0, 0, 0, 0, 0, 0, 7, 9, 0, 0,
00439 6, 0, 0, 20, 0, 0, 0, 0, 137, 10,
00440 29, 11, 34, 44, 45, 46, 49, 61, 65, 68,
00441 72, 79, 84, 86, 88, 90, 92, 94, 96, 110,
00442 0, 197, 112, 113, 114, 115, 116, 117, 118, 119,
00443 120, 121, 122, 123, 124, 125, 198, 183, 30, 194,
00444 195, 156, 0, 155, 149, 0, 9, 0, 34, 35,
00445 134, 0, 132, 152, 0, 151, 0, 0, 160, 0,
00446 159, 0, 46, 51, 184, 50, 0, 0, 0, 52,
00447 0, 0, 0, 0, 0, 53, 55, 0, 54, 56,
00448 0, 5, 4, 9, 13, 0, 0, 0, 22, 0,
00449 0, 21, 57, 58, 59, 60, 0, 0, 0, 36,
00450 0, 0, 37, 47, 48, 99, 100, 101, 102, 103,
00451 104, 105, 106, 109, 107, 108, 98, 0, 0, 0,
00452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00454 0, 0, 139, 0, 138, 196, 158, 157, 0, 46,
00455 150, 0, 27, 28, 26, 13, 33, 0, 135, 131,
00456 0, 130, 154, 153, 0, 189, 0, 0, 162, 161,
00457 0, 0, 0, 0, 0, 177, 176, 126, 0, 0,
00458 178, 179, 175, 12, 14, 0, 0, 127, 16, 20,
00459 15, 18, 23, 40, 0, 42, 0, 32, 0, 39,
00460 97, 63, 62, 64, 66, 67, 69, 70, 71, 78,
00461 77, 75, 76, 73, 74, 80, 81, 82, 83, 85,
00462 87, 89, 91, 93, 0, 111, 134, 0, 0, 149,
00463 136, 133, 0, 0, 0, 187, 0, 0, 0, 0,
00464 0, 0, 0, 0, 182, 180, 0, 24, 0, 41,
00465 0, 31, 38, 0, 0, 135, 149, 0, 0, 185,
00466 0, 191, 0, 188, 190, 140, 0, 143, 167, 164,
00467 163, 0, 0, 17, 19, 43, 95, 0, 0, 0,
00468 0, 149, 186, 192, 0, 142, 0, 0, 168, 169,
00469 0, 25, 0, 0, 149, 146, 0, 141, 0, 0,
00470 165, 167, 170, 181, 147, 0, 0, 0, 171, 173,
00471 0, 148, 0, 144, 128, 172, 174, 166, 145, 129,
00472 0, 0, 0
00473 };
00474
00475 static const short yydefgoto[] =
00476 {
00477 39, 40, 41, 129, 130, 131, 125, 126, 42, 43,
00478 44, 139, 234, 45, 46, 47, 48, 49, 50, 51,
00479 52, 53, 54, 55, 56, 57, 58, 59, 157, 60,
00480 61, 62, 355, 63, 91, 92, 198, 64, 65, 66,
00481 67, 191, 68, 69, 70, 71, 72, 309, 327, 328,
00482 329, 341, 73, 74, 75, 220, 221, 76, 77, 78,
00483 207, 275, 360, 127, 80
00484 };
00485
00486 static const short yypact[] =
00487 {
00488 707,-32768,-32768,-32768,-32768,-32768, 9, -38, 228, -10,
00489 29, 10, 115, 1180, 1252, -12,-32768, 781, -7, 1252,
00490 100, 106, 1252, 62, 1252, 1252,-32768, 17, 1252, 1252,
00491 -32768, 1252, 337, 20, 1252, 1252, 1252, 1252,-32768,-32768,
00492 -32768,-32768, -27,-32768, -13, 944,-32768,-32768, 73, 157,
00493 138, 86, 158, 99, 90, 72, 149, -26,-32768,-32768,
00494 22,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00495 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 707,
00496 -32768,-32768, 11,-32768, 892, 134,-32768, 38, -27,-32768,
00497 143, 24,-32768,-32768, 31,-32768, 136, -16,-32768, 1252,
00498 -32768, 30, 104,-32768,-32768,-32768, 1252, 208, 1252,-32768,
00499 1252, 1252, 39, 411, 209,-32768,-32768, 781,-32768,-32768,
00500 15, 193, 195, 17, 863, 71, 199, 485,-32768, 177,
00501 964, 201,-32768,-32768,-32768,-32768, 1036, 1252, 213,-32768,
00502 1252, 214,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00503 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1252, 1252, 1252,
00504 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
00505 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
00506 1252, 1252,-32768, 1252,-32768,-32768,-32768,-32768, 215, 1285,
00507 206, 191,-32768,-32768,-32768,-32768,-32768, 1252,-32768,-32768,
00508 -10,-32768,-32768,-32768, 3,-32768, 216, 26,-32768,-32768,
00509 41, 217, 49, 74, 75,-32768,-32768,-32768, 219, 62,
00510 244,-32768,-32768,-32768,-32768, 27, 1252,-32768,-32768, 20,
00511 -32768,-32768,-32768,-32768, 77,-32768, 179,-32768, 188,-32768,
00512 -32768,-32768,-32768,-32768, 73, 73, 157, 157, 157, 138,
00513 138, 138, 138, 138, 138, 86, 86, 86, 86, 158,
00514 99, 90, 72, 149, 222,-32768, -6, -30, 1252, 1252,
00515 -32768,-32768, 216, 91, 559,-32768, 216, 224, 781, 1252,
00516 781, 220, 781, 225,-32768,-32768, 226,-32768, 1108,-32768,
00517 1252,-32768,-32768, 1252, 1252, 264, 1252, 92, 212,-32768,
00518 216,-32768, 633,-32768,-32768, 270, 93,-32768, 288,-32768,
00519 -32768, 235, 1252,-32768,-32768,-32768,-32768, 103, 1252, 218,
00520 781, 1252,-32768,-32768, 781,-32768, 1252, -2, 288,-32768,
00521 62,-32768, 781, 117, 1252,-32768, 236,-32768, 189, 231,
00522 -32768, 288,-32768,-32768,-32768, 781, 238, 781, 781, 781,
00523 239,-32768, 781,-32768,-32768, 781, 781,-32768,-32768,-32768,
00524 305, 306,-32768
00525 };
00526
00527 static const short yypgoto[] =
00528 {
00529 -32768,-32768,-32768,-32768, 81,-32768,-32768, 88, 303, 308,
00530 -32768, -37,-32768, 45,-32768, -8, 105, 37, 83, 64,
00531 142, 137, 141, 144, 140,-32768,-32768, -121,-32768, -9,
00532 -17, -22, -28,-32768, 139, 122, 58,-32768,-32768,-32768,
00533 -32768, -250,-32768,-32768,-32768,-32768,-32768,-32768, -15,-32768,
00534 1,-32768,-32768,-32768,-32768,-32768, 113,-32768, 321,-32768,
00535 132, -235,-32768, 2, -75
00536 };
00537
00538
00539 #define YYLAST 1368
00540
00541
00542 static const short yytable[] =
00543 {
00544 107, 114, 79, 101, 185, 103, 105, 142, 339, 231,
00545 81, 109, 186, 112, 180, 235, 115, 116, 294, 298,
00546 118, 119, 120, 182, 84, 199, 132, 133, 134, 135,
00547 93, 208, 202, 192, 193, 136, 240, 299, 200, 137,
00548 215, 303, 205, 138, 192, 193, 319, 206, 90, 136,
00549 106, 196, 185, 140, 296, 108, 181, 141, 102, 102,
00550 264, 205, 265, 340, 102, 322, 272, 82, 96, 102,
00551 102, 336, 97, 102, 102, 190, 270, 197, 223, 102,
00552 102, 102, 102, 183, 346, 194, 117, 94, 128, 276,
00553 183, 103, 200, 83, 277, 187, 194, 210, 183, 212,
00554 222, 213, 214, 195, 278, 287, 184, 183, 201, 183,
00555 166, 167, 280, 95, 209, 203, 98, 183, 1, 2,
00556 3, 4, 5, 216, 168, 169, 113, 8, 236, 189,
00557 85, 238, 99, 14, 158, 16, 224, 281, 282, 225,
00558 289, 19, 183, 183, 102, 290, 143, 144, 159, 160,
00559 241, 242, 243, 178, 300, 320, 325, 24, 25, 277,
00560 183, 183, 110, 170, 171, 26, 332, 314, 111, 315,
00561 177, 183, 316, 86, 28, 29, 30, 31, 176, 87,
00562 345, 33, 163, 164, 165, 183, 34, 35, 36, 37,
00563 179, 331, 172, 173, 174, 175, 97, 284, 204, 100,
00564 246, 247, 248, 102, 102, 102, 102, 102, 102, 102,
00565 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
00566 102, 102, 102, 102, 102, 102, 197, 185, 161, 162,
00567 211, 1, 2, 3, 4, 5, 255, 256, 257, 258,
00568 8, 218, 219, 85, 228, 229, 291, 183, 16, 249,
00569 250, 251, 252, 253, 254, 292, 183, 183, 348, 297,
00570 190, 305, -27, 307, -28, 310, 244, 245, 226, 232,
00571 306, 237, 239, 266, 183, 269, 302, 219, 26, 279,
00572 274, 283, 304, 311, 308, 317, 86, 190, 318, 30,
00573 31, 293, 87, 324, 33, 312, 321, 326, 330, 347,
00574 349, 352, 334, 335, 357, 361, 362, 337, 343, 333,
00575 288, 88, 190, 286, 260, 344, 89, 338, 259, 261,
00576 263, 356, 271, 262, 295, 190, 350, 267, 351, 342,
00577 353, 354, 354, 285, 104, 358, 273, 0, 359, 359,
00578 1, 2, 3, 121, 122, 6, 0, 0, 7, 8,
00579 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00580 0, 0, 0, 19, 20, 21, 0, 22, 23, 0,
00581 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
00582 25, 0, 0, 0, 0, 0, 0, 26, 0, 0,
00583 0, 0, 0, 0, 0, 123, 28, 29, 30, 31,
00584 0, 32, 124, 33, 0, 0, 0, 0, 34, 35,
00585 36, 37, 0, 0, 1, 2, 3, 4, 5, 6,
00586 0, 38, 7, 8, 9, 10, 11, 12, 13, 14,
00587 15, 16, 17, 18, 0, 0, 0, 19, 20, 21,
00588 0, 22, 23, 0, 0, 0, 0, 0, 0, 0,
00589 0, 0, 0, 24, 25, 0, 0, 0, 0, 0,
00590 0, 26, 0, 0, 0, 0, 0, 0, 0, 27,
00591 28, 29, 30, 31, 0, 32, 217, 33, 0, 0,
00592 0, 0, 34, 35, 36, 37, 0, 0, 1, 2,
00593 3, 4, 5, 6, 0, 38, 7, 8, 9, 10,
00594 11, 12, 13, 14, 15, 16, 17, 18, 0, 0,
00595 0, 19, 20, 21, 0, 22, 23, 0, 0, 0,
00596 0, 0, 0, 0, 0, 0, 0, 24, 25, 0,
00597 0, 0, 0, 0, 0, 26, 0, 0, 0, 0,
00598 0, 0, 0, 27, 28, 29, 30, 31, 0, 32,
00599 227, 33, 0, 0, 0, 0, 34, 35, 36, 37,
00600 0, 0, 1, 2, 3, 4, 5, 6, 0, 38,
00601 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00602 17, 18, 0, 0, 0, 19, 20, 21, 0, 22,
00603 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00604 0, 24, 25, 0, 0, 0, 0, 0, 0, 26,
00605 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
00606 30, 31, 0, 32, 301, 33, 0, 0, 0, 0,
00607 34, 35, 36, 37, 0, 0, 1, 2, 3, 4,
00608 5, 6, 0, 38, 7, 8, 9, 10, 11, 12,
00609 13, 14, 15, 16, 17, 18, 0, 0, 0, 19,
00610 20, 21, 0, 22, 23, 0, 0, 0, 0, 0,
00611 0, 0, 0, 0, 0, 24, 25, 0, 0, 0,
00612 0, 0, 0, 26, 0, 0, 0, 0, 0, 0,
00613 0, 27, 28, 29, 30, 31, 0, 32, 323, 33,
00614 0, 0, 0, 0, 34, 35, 36, 37, 0, 0,
00615 1, 2, 3, 4, 5, 6, 0, 38, 7, 8,
00616 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00617 0, 0, 0, 19, 20, 21, 0, 22, 23, 0,
00618 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
00619 25, 0, 0, 0, 0, 0, 0, 26, 0, 0,
00620 0, 0, 0, 0, 0, 27, 28, 29, 30, 31,
00621 0, 32, 0, 33, 0, 0, 0, 0, 34, 35,
00622 36, 37, 0, 0, 1, 2, 3, 4, 5, 6,
00623 0, 38, 7, 8, 9, 10, 85, 12, 99, 14,
00624 15, 16, 17, 18, 0, 0, 0, 19, 20, 21,
00625 0, 22, 23, 0, 0, 0, 0, 0, 0, 0,
00626 0, 0, 0, 24, 25, 0, 0, 0, 0, 0,
00627 0, 26, 0, 0, 0, 0, 0, 0, 0, 27,
00628 28, 29, 30, 31, 0, 32, 0, 33, 0, 0,
00629 0, 0, 34, 35, 36, 37, 0, 0, 0, 0,
00630 0, 0, 0, -126, 0, 38, -126, -126, -126, -126,
00631 -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
00632 -126, -126, -126, -126, -126, -126, -126, 0, 0, -126,
00633 -126, -126, 0, -126, -126, 1, 2, 3, 4, 5,
00634 0, 0, 0, 0, 8, 188, 0, 85, 0, 99,
00635 14, 0, 16, 0, 0, 0, 0, 0, 19, 0,
00636 0, -126, -126, -126, 0, 0, 0, -126, -126, 0,
00637 0, 0, 0, 0, 24, 25, -126, -126, 0, 0,
00638 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
00639 86, 28, 29, 30, 31, 0, 87, 0, 33, 0,
00640 0, 0, 0, 34, 35, 36, 37, 1, 2, 3,
00641 4, 5, 0, 0, 0, 0, 8, 0, 0, 85,
00642 0, 99, 14, 0, 16, 0, 143, 144, 0, 0,
00643 19, 145, 146, 147, 148, 149, 150, 151, 152, 153,
00644 154, 155, 0, 0, 0, 0, 24, 25, 0, 0,
00645 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
00646 0, 0, 86, 28, 29, 30, 31, 156, 87, 0,
00647 33, 230, 0, 0, 0, 34, 35, 36, 37, 1,
00648 2, 3, 4, 5, 0, 0, 0, 0, 8, 0,
00649 0, 85, 0, 99, 14, 0, 16, 0, 0, 0,
00650 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
00651 0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
00652 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
00653 0, 0, 0, 0, 86, 28, 29, 30, 31, 233,
00654 87, 0, 33, 0, 0, 0, 0, 34, 35, 36,
00655 37, 1, 2, 3, 4, 5, 0, 0, 0, 0,
00656 8, 0, 0, 85, 0, 99, 14, 0, 16, 0,
00657 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
00658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00659 24, 25, 0, 0, 0, 0, 0, 0, 26, 0,
00660 0, 0, 0, 0, 0, 0, 86, 28, 29, 30,
00661 31, 0, 87, 0, 33, 313, 0, 0, 0, 34,
00662 35, 36, 37, 1, 2, 3, 4, 5, 0, 0,
00663 0, 0, 8, 0, 0, 11, 0, 99, 14, 0,
00664 16, 0, 0, 0, 0, 0, 19, 0, 0, 0,
00665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00666 0, 0, 24, 25, 0, 0, 0, 0, 0, 0,
00667 26, 0, 0, 0, 0, 0, 0, 0, 86, 28,
00668 29, 30, 31, 0, 87, 0, 33, 0, 0, 0,
00669 0, 34, 35, 36, 37, 1, 2, 3, 4, 5,
00670 0, 0, 0, 0, 8, 0, 0, 85, 0, 99,
00671 14, 0, 16, 0, 0, 0, 0, 0, 19, 0,
00672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00673 0, 0, 0, 0, 24, 25, 0, 0, 0, 0,
00674 0, 0, 26, 0, 0, 0, 0, 0, 0, 268,
00675 86, 28, 29, 30, 31, 0, 87, 0, 33, 0,
00676 0, 0, 0, 34, 35, 36, 37, 143, 144, 0,
00677 0, 0, 145, 146, 147, 148, 149, 150, 151, 152,
00678 153, 154, 155, 0, 0, 0, 0, 0, 0, 0,
00679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00680 0, 0, 0, 0, 0, 0, 0, 0, 156
00681 };
00682
00683 static const short yycheck[] =
00684 {
00685 17, 23, 0, 12, 79, 13, 14, 44, 10, 130,
00686 1, 19, 1, 22, 40, 136, 24, 25, 24, 269,
00687 28, 29, 31, 1, 62, 1, 34, 35, 36, 37,
00688 1, 1, 1, 6, 7, 62, 157, 272, 68, 66,
00689 1, 276, 58, 70, 6, 7, 296, 63, 58, 62,
00690 62, 88, 127, 66, 84, 62, 82, 70, 13, 14,
00691 181, 58, 183, 65, 19, 300, 63, 58, 58, 24,
00692 25, 321, 62, 28, 29, 84, 197, 83, 63, 34,
00693 35, 36, 37, 68, 334, 58, 69, 58, 68, 63,
00694 68, 99, 68, 84, 68, 84, 58, 106, 68, 108,
00695 117, 110, 111, 65, 63, 226, 84, 68, 84, 68,
00696 24, 25, 63, 84, 84, 84, 1, 68, 3, 4,
00697 5, 6, 7, 84, 38, 39, 64, 12, 137, 84,
00698 15, 140, 17, 18, 61, 20, 65, 63, 63, 68,
00699 63, 26, 68, 68, 99, 68, 42, 43, 75, 76,
00700 158, 159, 160, 81, 63, 63, 63, 42, 43, 68,
00701 68, 68, 62, 77, 78, 50, 63, 288, 62, 290,
00702 80, 68, 293, 58, 59, 60, 61, 62, 79, 64,
00703 63, 66, 44, 45, 46, 68, 71, 72, 73, 74,
00704 41, 312, 34, 35, 36, 37, 62, 219, 62, 84,
00705 163, 164, 165, 158, 159, 160, 161, 162, 163, 164,
00706 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
00707 175, 176, 177, 178, 179, 180, 83, 302, 71, 72,
00708 22, 3, 4, 5, 6, 7, 172, 173, 174, 175,
00709 12, 32, 33, 15, 67, 68, 67, 68, 20, 166,
00710 167, 168, 169, 170, 171, 67, 68, 68, 69, 268,
00711 269, 278, 69, 280, 69, 282, 161, 162, 69, 68,
00712 279, 58, 58, 58, 68, 84, 274, 33, 50, 62,
00713 64, 62, 58, 58, 64, 294, 58, 296, 24, 61,
00714 62, 69, 64, 23, 66, 69, 84, 9, 63, 63,
00715 69, 63, 84, 320, 65, 0, 0, 324, 330, 318,
00716 229, 8, 321, 225, 177, 332, 8, 326, 176, 178,
00717 180, 349, 200, 179, 266, 334, 341, 188, 345, 328,
00718 347, 348, 349, 220, 13, 352, 204, -1, 355, 356,
00719 3, 4, 5, 6, 7, 8, -1, -1, 11, 12,
00720 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
00721 -1, -1, -1, 26, 27, 28, -1, 30, 31, -1,
00722 -1, -1, -1, -1, -1, -1, -1, -1, -1, 42,
00723 43, -1, -1, -1, -1, -1, -1, 50, -1, -1,
00724 -1, -1, -1, -1, -1, 58, 59, 60, 61, 62,
00725 -1, 64, 65, 66, -1, -1, -1, -1, 71, 72,
00726 73, 74, -1, -1, 3, 4, 5, 6, 7, 8,
00727 -1, 84, 11, 12, 13, 14, 15, 16, 17, 18,
00728 19, 20, 21, 22, -1, -1, -1, 26, 27, 28,
00729 -1, 30, 31, -1, -1, -1, -1, -1, -1, -1,
00730 -1, -1, -1, 42, 43, -1, -1, -1, -1, -1,
00731 -1, 50, -1, -1, -1, -1, -1, -1, -1, 58,
00732 59, 60, 61, 62, -1, 64, 65, 66, -1, -1,
00733 -1, -1, 71, 72, 73, 74, -1, -1, 3, 4,
00734 5, 6, 7, 8, -1, 84, 11, 12, 13, 14,
00735 15, 16, 17, 18, 19, 20, 21, 22, -1, -1,
00736 -1, 26, 27, 28, -1, 30, 31, -1, -1, -1,
00737 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1,
00738 -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
00739 -1, -1, -1, 58, 59, 60, 61, 62, -1, 64,
00740 65, 66, -1, -1, -1, -1, 71, 72, 73, 74,
00741 -1, -1, 3, 4, 5, 6, 7, 8, -1, 84,
00742 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
00743 21, 22, -1, -1, -1, 26, 27, 28, -1, 30,
00744 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00745 -1, 42, 43, -1, -1, -1, -1, -1, -1, 50,
00746 -1, -1, -1, -1, -1, -1, -1, 58, 59, 60,
00747 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
00748 71, 72, 73, 74, -1, -1, 3, 4, 5, 6,
00749 7, 8, -1, 84, 11, 12, 13, 14, 15, 16,
00750 17, 18, 19, 20, 21, 22, -1, -1, -1, 26,
00751 27, 28, -1, 30, 31, -1, -1, -1, -1, -1,
00752 -1, -1, -1, -1, -1, 42, 43, -1, -1, -1,
00753 -1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
00754 -1, 58, 59, 60, 61, 62, -1, 64, 65, 66,
00755 -1, -1, -1, -1, 71, 72, 73, 74, -1, -1,
00756 3, 4, 5, 6, 7, 8, -1, 84, 11, 12,
00757 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
00758 -1, -1, -1, 26, 27, 28, -1, 30, 31, -1,
00759 -1, -1, -1, -1, -1, -1, -1, -1, -1, 42,
00760 43, -1, -1, -1, -1, -1, -1, 50, -1, -1,
00761 -1, -1, -1, -1, -1, 58, 59, 60, 61, 62,
00762 -1, 64, -1, 66, -1, -1, -1, -1, 71, 72,
00763 73, 74, -1, -1, 3, 4, 5, 6, 7, 8,
00764 -1, 84, 11, 12, 13, 14, 15, 16, 17, 18,
00765 19, 20, 21, 22, -1, -1, -1, 26, 27, 28,
00766 -1, 30, 31, -1, -1, -1, -1, -1, -1, -1,
00767 -1, -1, -1, 42, 43, -1, -1, -1, -1, -1,
00768 -1, 50, -1, -1, -1, -1, -1, -1, -1, 58,
00769 59, 60, 61, 62, -1, 64, -1, 66, -1, -1,
00770 -1, -1, 71, 72, 73, 74, -1, -1, -1, -1,
00771 -1, -1, -1, 0, -1, 84, 3, 4, 5, 6,
00772 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00773 17, 18, 19, 20, 21, 22, 23, -1, -1, 26,
00774 27, 28, -1, 30, 31, 3, 4, 5, 6, 7,
00775 -1, -1, -1, -1, 12, 13, -1, 15, -1, 17,
00776 18, -1, 20, -1, -1, -1, -1, -1, 26, -1,
00777 -1, 58, 59, 60, -1, -1, -1, 64, 65, -1,
00778 -1, -1, -1, -1, 42, 43, 73, 74, -1, -1,
00779 -1, -1, 50, -1, -1, -1, -1, -1, -1, -1,
00780 58, 59, 60, 61, 62, -1, 64, -1, 66, -1,
00781 -1, -1, -1, 71, 72, 73, 74, 3, 4, 5,
00782 6, 7, -1, -1, -1, -1, 12, -1, -1, 15,
00783 -1, 17, 18, -1, 20, -1, 42, 43, -1, -1,
00784 26, 47, 48, 49, 50, 51, 52, 53, 54, 55,
00785 56, 57, -1, -1, -1, -1, 42, 43, -1, -1,
00786 -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
00787 -1, -1, 58, 59, 60, 61, 62, 83, 64, -1,
00788 66, 67, -1, -1, -1, 71, 72, 73, 74, 3,
00789 4, 5, 6, 7, -1, -1, -1, -1, 12, -1,
00790 -1, 15, -1, 17, 18, -1, 20, -1, -1, -1,
00791 -1, -1, 26, -1, -1, -1, -1, -1, -1, -1,
00792 -1, -1, -1, -1, -1, -1, -1, -1, 42, 43,
00793 -1, -1, -1, -1, -1, -1, 50, -1, -1, -1,
00794 -1, -1, -1, -1, 58, 59, 60, 61, 62, 63,
00795 64, -1, 66, -1, -1, -1, -1, 71, 72, 73,
00796 74, 3, 4, 5, 6, 7, -1, -1, -1, -1,
00797 12, -1, -1, 15, -1, 17, 18, -1, 20, -1,
00798 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
00799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00800 42, 43, -1, -1, -1, -1, -1, -1, 50, -1,
00801 -1, -1, -1, -1, -1, -1, 58, 59, 60, 61,
00802 62, -1, 64, -1, 66, 67, -1, -1, -1, 71,
00803 72, 73, 74, 3, 4, 5, 6, 7, -1, -1,
00804 -1, -1, 12, -1, -1, 15, -1, 17, 18, -1,
00805 20, -1, -1, -1, -1, -1, 26, -1, -1, -1,
00806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00807 -1, -1, 42, 43, -1, -1, -1, -1, -1, -1,
00808 50, -1, -1, -1, -1, -1, -1, -1, 58, 59,
00809 60, 61, 62, -1, 64, -1, 66, -1, -1, -1,
00810 -1, 71, 72, 73, 74, 3, 4, 5, 6, 7,
00811 -1, -1, -1, -1, 12, -1, -1, 15, -1, 17,
00812 18, -1, 20, -1, -1, -1, -1, -1, 26, -1,
00813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00814 -1, -1, -1, -1, 42, 43, -1, -1, -1, -1,
00815 -1, -1, 50, -1, -1, -1, -1, -1, -1, 24,
00816 58, 59, 60, 61, 62, -1, 64, -1, 66, -1,
00817 -1, -1, -1, 71, 72, 73, 74, 42, 43, -1,
00818 -1, -1, 47, 48, 49, 50, 51, 52, 53, 54,
00819 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
00820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00821 -1, -1, -1, -1, -1, -1, -1, -1, 83
00822 };
00823
00824 #line 3 "/usr/share/bison/bison.simple"
00825
00826
00827
00828
00829
00830
00831
00832
00833
00834
00835
00836
00837
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
00864
00865
00866
00867 # if YYSTACK_USE_ALLOCA
00868 # define YYSTACK_ALLOC alloca
00869 # else
00870 # ifndef YYSTACK_USE_ALLOCA
00871 # if defined (alloca) || defined (_ALLOCA_H)
00872 # define YYSTACK_ALLOC alloca
00873 # else
00874 # ifdef __GNUC__
00875 # define YYSTACK_ALLOC __builtin_alloca
00876 # endif
00877 # endif
00878 # endif
00879 # endif
00880
00881 # ifdef YYSTACK_ALLOC
00882
00883 # define YYSTACK_FREE(Ptr) do { ; } while (0)
00884 # else
00885 # if defined (__STDC__) || defined (__cplusplus)
00886 # include <stdlib.h>
00887 # define YYSIZE_T size_t
00888 # endif
00889 # define YYSTACK_ALLOC malloc
00890 # define YYSTACK_FREE free
00891 # endif
00892 #endif
00893
00894
00895 #if (! defined (yyoverflow) \
00896 && (! defined (__cplusplus) \
00897 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00898
00899
00900 union yyalloc
00901 {
00902 short yyss;
00903 YYSTYPE yyvs;
00904 # if YYLSP_NEEDED
00905 YYLTYPE yyls;
00906 # endif
00907 };
00908
00909
00910 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
00911
00912
00913
00914 # if YYLSP_NEEDED
00915 # define YYSTACK_BYTES(N) \
00916 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00917 + 2 * YYSTACK_GAP_MAX)
00918 # else
00919 # define YYSTACK_BYTES(N) \
00920 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
00921 + YYSTACK_GAP_MAX)
00922 # endif
00923
00924
00925
00926 # ifndef YYCOPY
00927 # if 1 < __GNUC__
00928 # define YYCOPY(To, From, Count) \
00929 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00930 # else
00931 # define YYCOPY(To, From, Count) \
00932 do \
00933 { \
00934 register YYSIZE_T yyi; \
00935 for (yyi = 0; yyi < (Count); yyi++) \
00936 (To)[yyi] = (From)[yyi]; \
00937 } \
00938 while (0)
00939 # endif
00940 # endif
00941
00942
00943
00944
00945
00946
00947 # define YYSTACK_RELOCATE(Stack) \
00948 do \
00949 { \
00950 YYSIZE_T yynewbytes; \
00951 YYCOPY (&yyptr->Stack, Stack, yysize); \
00952 Stack = &yyptr->Stack; \
00953 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
00954 yyptr += yynewbytes / sizeof (*yyptr); \
00955 } \
00956 while (0)
00957
00958 #endif
00959
00960
00961 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00962 # define YYSIZE_T __SIZE_TYPE__
00963 #endif
00964 #if ! defined (YYSIZE_T) && defined (size_t)
00965 # define YYSIZE_T size_t
00966 #endif
00967 #if ! defined (YYSIZE_T)
00968 # if defined (__STDC__) || defined (__cplusplus)
00969 # include <stddef.h>
00970 # define YYSIZE_T size_t
00971 # endif
00972 #endif
00973 #if ! defined (YYSIZE_T)
00974 # define YYSIZE_T unsigned int
00975 #endif
00976
00977 #define yyerrok (yyerrstatus = 0)
00978 #define yyclearin (yychar = YYEMPTY)
00979 #define YYEMPTY -2
00980 #define YYEOF 0
00981 #define YYACCEPT goto yyacceptlab
00982 #define YYABORT goto yyabortlab
00983 #define YYERROR goto yyerrlab1
00984
00985
00986
00987 #define YYFAIL goto yyerrlab
00988 #define YYRECOVERING() (!!yyerrstatus)
00989 #define YYBACKUP(Token, Value) \
00990 do \
00991 if (yychar == YYEMPTY && yylen == 1) \
00992 { \
00993 yychar = (Token); \
00994 yylval = (Value); \
00995 yychar1 = YYTRANSLATE (yychar); \
00996 YYPOPSTACK; \
00997 goto yybackup; \
00998 } \
00999 else \
01000 { \
01001 yyerror ("syntax error: cannot back up"); \
01002 YYERROR; \
01003 } \
01004 while (0)
01005
01006 #define YYTERROR 1
01007 #define YYERRCODE 256
01008
01009
01010
01011
01012
01013
01014
01015
01016
01017 #ifndef YYLLOC_DEFAULT
01018 # define YYLLOC_DEFAULT(Current, Rhs, N) \
01019 Current.last_line = Rhs[N].last_line; \
01020 Current.last_column = Rhs[N].last_column;
01021 #endif
01022
01023
01024
01025
01026 #if YYPURE
01027 # if YYLSP_NEEDED
01028 # ifdef YYLEX_PARAM
01029 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
01030 # else
01031 # define YYLEX yylex (&yylval, &yylloc)
01032 # endif
01033 # else
01034 # ifdef YYLEX_PARAM
01035 # define YYLEX yylex (&yylval, YYLEX_PARAM)
01036 # else
01037 # define YYLEX yylex (&yylval)
01038 # endif
01039 # endif
01040 #else
01041 # define YYLEX yylex ()
01042 #endif
01043
01044
01045
01046 #if YYDEBUG
01047
01048 # ifndef YYFPRINTF
01049 # include <stdio.h>
01050 # define YYFPRINTF fprintf
01051 # endif
01052
01053 # define YYDPRINTF(Args) \
01054 do { \
01055 if (yydebug) \
01056 YYFPRINTF Args; \
01057 } while (0)
01058
01059
01060 int yydebug;
01061 #else
01062 # define YYDPRINTF(Args)
01063 #endif
01064
01065
01066 #ifndef YYINITDEPTH
01067 # define YYINITDEPTH 200
01068 #endif
01069
01070
01071
01072
01073
01074
01075
01076
01077 #if YYMAXDEPTH == 0
01078 # undef YYMAXDEPTH
01079 #endif
01080
01081 #ifndef YYMAXDEPTH
01082 # define YYMAXDEPTH 10000
01083 #endif
01084
01085 #ifdef YYERROR_VERBOSE
01086
01087 # ifndef yystrlen
01088 # if defined (__GLIBC__) && defined (_STRING_H)
01089 # define yystrlen strlen
01090 # else
01091
01092 static YYSIZE_T
01093 # if defined (__STDC__) || defined (__cplusplus)
01094 yystrlen (const char *yystr)
01095 # else
01096 yystrlen (yystr)
01097 const char *yystr;
01098 # endif
01099 {
01100 register const char *yys = yystr;
01101
01102 while (*yys++ != '\0')
01103 continue;
01104
01105 return yys - yystr - 1;
01106 }
01107 # endif
01108 # endif
01109
01110 # ifndef yystpcpy
01111 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
01112 # define yystpcpy stpcpy
01113 # else
01114
01115
01116 static char *
01117 # if defined (__STDC__) || defined (__cplusplus)
01118 yystpcpy (char *yydest, const char *yysrc)
01119 # else
01120 yystpcpy (yydest, yysrc)
01121 char *yydest;
01122 const char *yysrc;
01123 # endif
01124 {
01125 register char *yyd = yydest;
01126 register const char *yys = yysrc;
01127
01128 while ((*yyd++ = *yys++) != '\0')
01129 continue;
01130
01131 return yyd - 1;
01132 }
01133 # endif
01134 # endif
01135 #endif
01136
01137 #line 315 "/usr/share/bison/bison.simple"
01138
01139
01140
01141
01142
01143
01144
01145
01146 #ifdef YYPARSE_PARAM
01147 # if defined (__STDC__) || defined (__cplusplus)
01148 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
01149 # define YYPARSE_PARAM_DECL
01150 # else
01151 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
01152 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
01153 # endif
01154 #else
01155 # define YYPARSE_PARAM_ARG
01156 # define YYPARSE_PARAM_DECL
01157 #endif
01158
01159
01160 #ifdef __GNUC__
01161 # ifdef YYPARSE_PARAM
01162 int yyparse (void *);
01163 # else
01164 int yyparse (void);
01165 # endif
01166 #endif
01167
01168
01169
01170
01171 #define YY_DECL_NON_LSP_VARIABLES \
01172 \
01173 int yychar; \
01174 \
01175 \
01176 YYSTYPE yylval; \
01177 \
01178 \
01179 int yynerrs;
01180
01181 #if YYLSP_NEEDED
01182 # define YY_DECL_VARIABLES \
01183 YY_DECL_NON_LSP_VARIABLES \
01184 \
01185 \
01186 YYLTYPE yylloc;
01187 #else
01188 # define YY_DECL_VARIABLES \
01189 YY_DECL_NON_LSP_VARIABLES
01190 #endif
01191
01192
01193
01194
01195 #if !YYPURE
01196 YY_DECL_VARIABLES
01197 #endif
01198
01199 int
01200 yyparse (YYPARSE_PARAM_ARG)
01201 YYPARSE_PARAM_DECL
01202 {
01203
01204 #if YYPURE
01205 YY_DECL_VARIABLES
01206 #endif
01207
01208 register int yystate;
01209 register int yyn;
01210 int yyresult;
01211
01212 int yyerrstatus;
01213
01214 int yychar1 = 0;
01215
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225 short yyssa[YYINITDEPTH];
01226 short *yyss = yyssa;
01227 register short *yyssp;
01228
01229
01230 YYSTYPE yyvsa[YYINITDEPTH];
01231 YYSTYPE *yyvs = yyvsa;
01232 register YYSTYPE *yyvsp;
01233
01234 #if YYLSP_NEEDED
01235
01236 YYLTYPE yylsa[YYINITDEPTH];
01237 YYLTYPE *yyls = yylsa;
01238 YYLTYPE *yylsp;
01239 #endif
01240
01241 #if YYLSP_NEEDED
01242 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
01243 #else
01244 # define YYPOPSTACK (yyvsp--, yyssp--)
01245 #endif
01246
01247 YYSIZE_T yystacksize = YYINITDEPTH;
01248
01249
01250
01251
01252 YYSTYPE yyval;
01253 #if YYLSP_NEEDED
01254 YYLTYPE kjsyyloc;
01255 #endif
01256
01257
01258
01259 int yylen;
01260
01261 YYDPRINTF ((stderr, "Starting parse\n"));
01262
01263 yystate = 0;
01264 yyerrstatus = 0;
01265 yynerrs = 0;
01266 yychar = YYEMPTY;
01267
01268
01269
01270
01271
01272
01273 yyssp = yyss;
01274 yyvsp = yyvs;
01275 #if YYLSP_NEEDED
01276 yylsp = yyls;
01277 #endif
01278 goto yysetstate;
01279
01280
01281
01282
01283 yynewstate:
01284
01285
01286
01287 yyssp++;
01288
01289 yysetstate:
01290 *yyssp = yystate;
01291
01292 if (yyssp >= yyss + yystacksize - 1)
01293 {
01294
01295 YYSIZE_T yysize = yyssp - yyss + 1;
01296
01297 #ifdef yyoverflow
01298 {
01299
01300
01301
01302 YYSTYPE *yyvs1 = yyvs;
01303 short *yyss1 = yyss;
01304
01305
01306
01307 # if YYLSP_NEEDED
01308 YYLTYPE *yyls1 = yyls;
01309
01310
01311 yyoverflow ("parser stack overflow",
01312 &yyss1, yysize * sizeof (*yyssp),
01313 &yyvs1, yysize * sizeof (*yyvsp),
01314 &yyls1, yysize * sizeof (*yylsp),
01315 &yystacksize);
01316 yyls = yyls1;
01317 # else
01318 yyoverflow ("parser stack overflow",
01319 &yyss1, yysize * sizeof (*yyssp),
01320 &yyvs1, yysize * sizeof (*yyvsp),
01321 &yystacksize);
01322 # endif
01323 yyss = yyss1;
01324 yyvs = yyvs1;
01325 }
01326 #else
01327 # ifndef YYSTACK_RELOCATE
01328 goto yyoverflowlab;
01329 # else
01330
01331 if (yystacksize >= YYMAXDEPTH)
01332 goto yyoverflowlab;
01333 yystacksize *= 2;
01334 if (yystacksize > YYMAXDEPTH)
01335 yystacksize = YYMAXDEPTH;
01336
01337 {
01338 short *yyss1 = yyss;
01339 union yyalloc *yyptr =
01340 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01341 if (! yyptr)
01342 goto yyoverflowlab;
01343 YYSTACK_RELOCATE (yyss);
01344 YYSTACK_RELOCATE (yyvs);
01345 # if YYLSP_NEEDED
01346 YYSTACK_RELOCATE (yyls);
01347 # endif
01348 # undef YYSTACK_RELOCATE
01349 if (yyss1 != yyssa)
01350 YYSTACK_FREE (yyss1);
01351 }
01352 # endif
01353 #endif
01354
01355 yyssp = yyss + yysize - 1;
01356 yyvsp = yyvs + yysize - 1;
01357 #if YYLSP_NEEDED
01358 yylsp = yyls + yysize - 1;
01359 #endif
01360
01361 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01362 (unsigned long int) yystacksize));
01363
01364 if (yyssp >= yyss + yystacksize - 1)
01365 YYABORT;
01366 }
01367
01368 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01369
01370 goto yybackup;
01371
01372
01373
01374
01375
01376 yybackup:
01377
01378
01379
01380
01381
01382
01383
01384 yyn = yypact[yystate];
01385 if (yyn == YYFLAG)
01386 goto yydefault;
01387
01388
01389
01390
01391
01392
01393 if (yychar == YYEMPTY)
01394 {
01395 YYDPRINTF ((stderr, "Reading a token: "));
01396 yychar = YYLEX;
01397 }
01398
01399
01400
01401 if (yychar <= 0)
01402 {
01403 yychar1 = 0;
01404 yychar = YYEOF;
01405
01406 YYDPRINTF ((stderr, "Now at end of input.\n"));
01407 }
01408 else
01409 {
01410 yychar1 = YYTRANSLATE (yychar);
01411
01412 #if YYDEBUG
01413
01414
01415 if (yydebug)
01416 {
01417 YYFPRINTF (stderr, "Next token is %d (%s",
01418 yychar, yytname[yychar1]);
01419
01420
01421 # ifdef YYPRINT
01422 YYPRINT (stderr, yychar, yylval);
01423 # endif
01424 YYFPRINTF (stderr, ")\n");
01425 }
01426 #endif
01427 }
01428
01429 yyn += yychar1;
01430 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
01431 goto yydefault;
01432
01433 yyn = yytable[yyn];
01434
01435
01436
01437
01438
01439
01440
01441
01442 if (yyn < 0)
01443 {
01444 if (yyn == YYFLAG)
01445 goto yyerrlab;
01446 yyn = -yyn;
01447 goto yyreduce;
01448 }
01449 else if (yyn == 0)
01450 goto yyerrlab;
01451
01452 if (yyn == YYFINAL)
01453 YYACCEPT;
01454
01455
01456 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
01457 yychar, yytname[yychar1]));
01458
01459
01460 if (yychar != YYEOF)
01461 yychar = YYEMPTY;
01462
01463 *++yyvsp = yylval;
01464 #if YYLSP_NEEDED
01465 *++yylsp = yylloc;
01466 #endif
01467
01468
01469
01470 if (yyerrstatus)
01471 yyerrstatus--;
01472
01473 yystate = yyn;
01474 goto yynewstate;
01475
01476
01477
01478
01479
01480 yydefault:
01481 yyn = yydefact[yystate];
01482 if (yyn == 0)
01483 goto yyerrlab;
01484 goto yyreduce;
01485
01486
01487
01488
01489
01490 yyreduce:
01491
01492 yylen = yyr2[yyn];
01493
01494
01495
01496
01497
01498
01499
01500
01501
01502 yyval = yyvsp[1-yylen];
01503
01504 #if YYLSP_NEEDED
01505
01506
01507 kjsyyloc = yylsp[1-yylen];
01508 YYLLOC_DEFAULT (kjsyyloc, (yylsp - yylen), yylen);
01509 #endif
01510
01511 #if YYDEBUG
01512
01513
01514 if (yydebug)
01515 {
01516 int yyi;
01517
01518 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
01519 yyn, yyrline[yyn]);
01520
01521
01522 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
01523 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
01524 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
01525 }
01526 #endif
01527
01528 switch (yyn) {
01529
01530 case 1:
01531 #line 166 "grammar.y"
01532 { yyval.node = new NullNode(); ;
01533 break;}
01534 case 2:
01535 #line 167 "grammar.y"
01536 { yyval.node = new BooleanNode(true); ;
01537 break;}
01538 case 3:
01539 #line 168 "grammar.y"
01540 { yyval.node = new BooleanNode(false); ;
01541 break;}
01542 case 4:
01543 #line 169 "grammar.y"
01544 { yyval.node = new NumberNode(yyvsp[0].dval); ;
01545 break;}
01546 case 5:
01547 #line 170 "grammar.y"
01548 { yyval.node = new StringNode(yyvsp[0].ustr); ;
01549 break;}
01550 case 6:
01551 #line 171 "grammar.y"
01552 { Lexer *l = Lexer::curr();
01553 if (!l->scanRegExp()) YYABORT;
01554 yyval.node = new RegExpNode(l->pattern,l->flags);;
01555 break;}
01556 case 7:
01557 #line 175 "grammar.y"
01558 { Lexer *l = Lexer::curr();
01559 if (!l->scanRegExp()) YYABORT;
01560 yyval.node = new RegExpNode(UString('=')+l->pattern,l->flags);;
01561 break;}
01562 case 8:
01563 #line 181 "grammar.y"
01564 { yyval.node = new ThisNode(); ;
01565 break;}
01566 case 9:
01567 #line 182 "grammar.y"
01568 { yyval.node = new ResolveNode(*yyvsp[0].ident); ;
01569 break;}
01570 case 12:
01571 #line 185 "grammar.y"
01572 { yyval.node = new GroupNode(yyvsp[-1].node); ;
01573 break;}
01574 case 13:
01575 #line 186 "grammar.y"
01576 { yyval.node = new ObjectLiteralNode(); ;
01577 break;}
01578 case 14:
01579 #line 187 "grammar.y"
01580 { yyval.node = new ObjectLiteralNode(yyvsp[-1].plist); ;
01581 break;}
01582 case 15:
01583 #line 191 "grammar.y"
01584 { yyval.node = new ArrayNode(yyvsp[-1].ival); ;
01585 break;}
01586 case 16:
01587 #line 192 "grammar.y"
01588 { yyval.node = new ArrayNode(yyvsp[-1].elm); ;
01589 break;}
01590 case 17:
01591 #line 193 "grammar.y"
01592 { yyval.node = new ArrayNode(yyvsp[-1].ival, yyvsp[-3].elm); ;
01593 break;}
01594 case 18:
01595 #line 197 "grammar.y"
01596 { yyval.elm = new ElementNode(yyvsp[-1].ival, yyvsp[0].node); ;
01597 break;}
01598 case 19:
01599 #line 199 "grammar.y"
01600 { yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1].ival, yyvsp[0].node); ;
01601 break;}
01602 case 20:
01603 #line 203 "grammar.y"
01604 { yyval.ival = 0; ;
01605 break;}
01606 case 22:
01607 #line 208 "grammar.y"
01608 { yyval.ival = 1; ;
01609 break;}
01610 case 23:
01611 #line 209 "grammar.y"
01612 { yyval.ival = yyvsp[-1].ival + 1; ;
01613 break;}
01614 case 24:
01615 #line 213 "grammar.y"
01616 { yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node); ;
01617 break;}
01618 case 25:
01619 #line 215 "grammar.y"
01620 { yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node, yyvsp[-4].plist); ;
01621 break;}
01622 case 26:
01623 #line 219 "grammar.y"
01624 { yyval.pnode = new PropertyNode(*yyvsp[0].ident); ;
01625 break;}
01626 case 27:
01627 #line 220 "grammar.y"
01628 { yyval.pnode = new PropertyNode(Identifier(*yyvsp[0].ustr)); ;
01629 break;}
01630 case 28:
01631 #line 221 "grammar.y"
01632 { yyval.pnode = new PropertyNode(yyvsp[0].dval); ;
01633 break;}
01634 case 31:
01635 #line 227 "grammar.y"
01636 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
01637 break;}
01638 case 32:
01639 #line 228 "grammar.y"
01640 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); ;
01641 break;}
01642 case 33:
01643 #line 229 "grammar.y"
01644 { yyval.node = new NewExprNode(yyvsp[-1].node, yyvsp[0].args); ;
01645 break;}
01646 case 35:
01647 #line 234 "grammar.y"
01648 { yyval.node = new NewExprNode(yyvsp[0].node); ;
01649 break;}
01650 case 36:
01651 #line 238 "grammar.y"
01652 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
01653 break;}
01654 case 37:
01655 #line 239 "grammar.y"
01656 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
01657 break;}
01658 case 38:
01659 #line 240 "grammar.y"
01660 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
01661 break;}
01662 case 39:
01663 #line 241 "grammar.y"
01664 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); ;
01665 break;}
01666 case 40:
01667 #line 245 "grammar.y"
01668 { yyval.args = new ArgumentsNode(); ;
01669 break;}
01670 case 41:
01671 #line 246 "grammar.y"
01672 { yyval.args = new ArgumentsNode(yyvsp[-1].alist); ;
01673 break;}
01674 case 42:
01675 #line 250 "grammar.y"
01676 { yyval.alist = new ArgumentListNode(yyvsp[0].node); ;
01677 break;}
01678 case 43:
01679 #line 251 "grammar.y"
01680 { yyval.alist = new ArgumentListNode(yyvsp[-2].alist, yyvsp[0].node); ;
01681 break;}
01682 case 47:
01683 #line 261 "grammar.y"
01684 { yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ;
01685 break;}
01686 case 48:
01687 #line 262 "grammar.y"
01688 { yyval.node = new PostfixNode(yyvsp[-1].node, OpMinusMinus); ;
01689 break;}
01690 case 50:
01691 #line 267 "grammar.y"
01692 { yyval.node = new DeleteNode(yyvsp[0].node); ;
01693 break;}
01694 case 51:
01695 #line 268 "grammar.y"
01696 { yyval.node = new VoidNode(yyvsp[0].node); ;
01697 break;}
01698 case 52:
01699 #line 269 "grammar.y"
01700 { yyval.node = new TypeOfNode(yyvsp[0].node); ;
01701 break;}
01702 case 53:
01703 #line 270 "grammar.y"
01704 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
01705 break;}
01706 case 54:
01707 #line 271 "grammar.y"
01708 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
01709 break;}
01710 case 55:
01711 #line 272 "grammar.y"
01712 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
01713 break;}
01714 case 56:
01715 #line 273 "grammar.y"
01716 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
01717 break;}
01718 case 57:
01719 #line 274 "grammar.y"
01720 { yyval.node = new UnaryPlusNode(yyvsp[0].node); ;
01721 break;}
01722 case 58:
01723 #line 275 "grammar.y"
01724 { yyval.node = new NegateNode(yyvsp[0].node); ;
01725 break;}
01726 case 59:
01727 #line 276 "grammar.y"
01728 { yyval.node = new BitwiseNotNode(yyvsp[0].node); ;
01729 break;}
01730 case 60:
01731 #line 277 "grammar.y"
01732 { yyval.node = new LogicalNotNode(yyvsp[0].node); ;
01733 break;}
01734 case 62:
01735 #line 282 "grammar.y"
01736 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ;
01737 break;}
01738 case 63:
01739 #line 283 "grammar.y"
01740 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ;
01741 break;}
01742 case 64:
01743 #line 284 "grammar.y"
01744 { yyval.node = new MultNode(yyvsp[-2].node,yyvsp[0].node,'%'); ;
01745 break;}
01746 case 66:
01747