1 12 13 14 package org.netbeans.lib.java.parser; 15 16 17 18 37 40 import java.io.*; 41 43 44 45 46 50 public class Parser 51 implements ASTreeTypes,JParser,ParserTokens 52 { 53 54 boolean yydebug; int yynerrs; int yyerrflag; int yychar; 59 void debug(String msg) 64 { 65 if (yydebug) 66 System.out.println(msg); 67 } 68 69 final static int YYSTACKSIZE = 500; int statestk[],stateptr; int stateptrmax; int statemax; void state_push(int state) 78 { 79 if (stateptr>=YYSTACKSIZE) return; 81 statestk[++stateptr]=state; 82 if (stateptr>statemax) 83 { 84 statemax=state; 85 stateptrmax=stateptr; 86 } 87 } 88 int state_pop() 89 { 90 if (stateptr<0) return -1; 92 return statestk[stateptr--]; 93 } 94 void state_drop(int cnt) 95 { 96 int ptr; 97 ptr=stateptr-cnt; 98 if (ptr<0) 99 return; 100 stateptr = ptr; 101 } 102 int state_peek(int relative) 103 { 104 int ptr; 105 ptr=stateptr-relative; 106 if (ptr<0) 107 return -1; 108 return statestk[ptr]; 109 } 110 boolean init_stacks() 114 { 115 statestk = new int[YYSTACKSIZE]; 116 stateptr = -1; 117 statemax = -1; 118 stateptrmax = -1; 119 val_init(); 120 return true; 121 } 122 void dump_stacks(int count) 126 { 127 int i; 128 System.out.println("=index==state====value= s:"+stateptr+" v:"+valptr); 129 for (i=0;i<count;i++) 130 System.out.println(" "+i+" "+statestk[i]+" "+valstk[i]); 131 System.out.println("======================"); 132 } 133 134 135 String yytext;ASTClass yyval; ASTClass yylval;ASTClass valstk[]; 141 int valptr; 142 void val_init() 146 { 147 valstk=new ASTClass[YYSTACKSIZE]; 148 yyval=new ASTClass(); 149 yylval=new ASTClass(); 150 valptr=-1; 151 } 152 void val_push(ASTClass val) 153 { 154 if (valptr>=YYSTACKSIZE) 155 return; 156 valstk[++valptr]=val; 157 } 158 ASTClass val_pop() 159 { 160 if (valptr<0) 161 return null; 162 return valstk[valptr--]; 163 } 164 void val_drop(int cnt) 165 { 166 int ptr; 167 ptr=valptr-cnt; 168 if (ptr<0) 169 return; 170 valptr = ptr; 171 } 172 ASTClass val_peek(int relative) 173 { 174 int ptr; 175 ptr=valptr-relative; 176 if (ptr<0) 177 return null; 178 return valstk[ptr]; 179 } 180 public final static short YYERRCODE=256; 182 final static short yylhs[] = { -1, 183 1, 1, 2, 2, 2, 4, 4, 5, 5, 5, 184 5, 5, 6, 6, 3, 3, 3, 0, 10, 10, 185 11, 11, 9, 9, 12, 12, 14, 15, 16, 16, 186 13, 13, 13, 17, 17, 20, 20, 21, 21, 23, 187 23, 22, 24, 24, 25, 25, 25, 25, 26, 26, 188 26, 26, 26, 30, 30, 32, 32, 33, 34, 34, 189 35, 35, 36, 36, 31, 39, 39, 41, 41, 43, 190 44, 44, 45, 45, 46, 48, 48, 47, 47, 42, 191 42, 40, 40, 27, 28, 29, 29, 50, 51, 52, 192 52, 53, 53, 53, 53, 53, 18, 18, 57, 57, 193 58, 59, 59, 60, 60, 60, 60, 60, 61, 61, 194 38, 62, 62, 62, 63, 63, 49, 64, 64, 65, 195 65, 54, 54, 54, 66, 68, 68, 67, 67, 67, 196 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 197 67, 67, 67, 67, 74, 69, 75, 85, 85, 85, 198 85, 85, 85, 85, 70, 70, 76, 93, 94, 94, 199 96, 95, 95, 97, 97, 98, 98, 71, 77, 72, 200 73, 100, 100, 100, 101, 101, 102, 102, 103, 103, 201 78, 104, 104, 79, 80, 82, 81, 83, 83, 106, 202 106, 105, 105, 108, 107, 84, 84, 56, 56, 109, 203 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 204 109, 111, 111, 111, 111, 111, 111, 92, 92, 92, 205 55, 55, 115, 115, 114, 114, 110, 110, 110, 110, 206 110, 110, 116, 116, 117, 8, 8, 112, 112, 112, 207 91, 91, 91, 91, 91, 113, 113, 118, 118, 118, 208 118, 89, 90, 119, 119, 119, 119, 119, 87, 88, 209 120, 120, 120, 120, 121, 121, 121, 121, 122, 122, 210 122, 122, 123, 123, 123, 124, 124, 124, 124, 125, 211 125, 125, 125, 125, 125, 126, 126, 126, 127, 127, 212 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 213 133, 133, 86, 134, 134, 134, 135, 135, 135, 135, 214 135, 135, 135, 135, 135, 135, 135, 135, 37, 99, 215 19, 19, 136, 136, 136, 136, 136, 136, 136, 136, 216 136, 136, 136, 7, 7, 217 }; 218 final static short yylen[] = { 2, 219 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 220 1, 1, 1, 1, 1, 2, 2, 3, 0, 2, 221 0, 2, 0, 3, 1, 1, 4, 6, 0, 1, 222 1, 1, 1, 6, 5, 0, 2, 0, 2, 1, 223 3, 3, 0, 2, 1, 1, 1, 1, 1, 1, 224 1, 1, 1, 4, 3, 1, 3, 2, 1, 2, 225 0, 2, 1, 1, 2, 4, 3, 1, 2, 4, 226 0, 1, 1, 3, 4, 0, 1, 0, 1, 0, 227 2, 1, 1, 1, 2, 4, 3, 4, 3, 0, 228 2, 1, 5, 5, 7, 7, 5, 4, 0, 2, 229 3, 0, 2, 1, 1, 1, 1, 1, 5, 4, 230 3, 0, 1, 2, 1, 3, 3, 0, 1, 1, 231 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 232 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 233 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 234 1, 1, 1, 1, 5, 7, 5, 4, 0, 2, 235 2, 0, 1, 1, 2, 3, 2, 5, 7, 7, 236 9, 0, 1, 1, 0, 1, 0, 1, 1, 3, 237 3, 0, 1, 3, 3, 3, 5, 3, 4, 0, 238 1, 1, 2, 5, 2, 3, 5, 1, 1, 1, 239 3, 4, 3, 4, 1, 3, 3, 1, 1, 1, 240 1, 1, 1, 1, 1, 1, 1, 6, 8, 8, 241 0, 1, 1, 3, 0, 1, 4, 3, 4, 3, 242 4, 4, 1, 2, 3, 2, 3, 3, 3, 5, 243 6, 4, 6, 6, 8, 4, 4, 1, 1, 1, 244 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 245 1, 2, 2, 1, 5, 4, 4, 5, 1, 3, 246 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 247 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 248 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 249 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 250 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 251 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 252 1, 1, 1, 1, 3, 253 }; 254 final static short yydefred[] = { 0, 255 0, 0, 19, 334, 0, 0, 24, 0, 0, 0, 256 20, 25, 26, 335, 30, 0, 326, 0, 328, 0, 257 330, 325, 324, 323, 327, 331, 329, 332, 333, 33, 258 22, 31, 32, 0, 321, 0, 0, 0, 0, 0, 259 322, 27, 0, 0, 0, 0, 0, 0, 0, 0, 260 0, 0, 0, 0, 0, 102, 98, 0, 0, 28, 261 0, 43, 35, 0, 0, 0, 97, 0, 0, 4, 262 8, 12, 14, 13, 10, 11, 9, 5, 101, 108, 263 0, 0, 2, 3, 6, 7, 0, 106, 107, 0, 264 104, 103, 105, 34, 0, 42, 53, 0, 0, 51, 265 52, 0, 44, 45, 46, 47, 48, 49, 50, 0, 266 84, 0, 0, 0, 56, 0, 0, 0, 0, 0, 267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268 0, 0, 0, 0, 205, 0, 0, 0, 0, 145, 269 0, 0, 214, 212, 213, 215, 216, 217, 0, 0, 270 0, 0, 123, 0, 133, 120, 0, 0, 0, 122, 271 124, 0, 128, 129, 130, 131, 132, 134, 135, 136, 272 137, 138, 139, 140, 141, 142, 143, 144, 0, 148, 273 149, 150, 0, 0, 0, 0, 0, 199, 200, 0, 274 0, 0, 0, 0, 0, 0, 85, 0, 83, 65, 275 82, 0, 0, 0, 0, 55, 0, 0, 58, 0, 276 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 277 0, 0, 0, 0, 302, 254, 255, 250, 251, 210, 278 208, 0, 269, 258, 264, 0, 0, 0, 0, 0, 279 0, 0, 0, 0, 0, 301, 319, 183, 0, 0, 280 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 281 0, 0, 0, 0, 0, 0, 0, 209, 211, 259, 282 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283 0, 117, 121, 125, 147, 0, 252, 253, 307, 308, 284 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 285 0, 79, 0, 0, 73, 0, 67, 0, 0, 0, 286 90, 87, 0, 57, 0, 62, 63, 64, 110, 237, 287 54, 0, 0, 0, 0, 263, 262, 256, 257, 0, 288 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290 0, 0, 0, 0, 181, 184, 0, 0, 0, 174, 291 179, 0, 0, 0, 0, 0, 0, 233, 0, 0, 292 0, 185, 0, 0, 0, 186, 0, 0, 0, 192, 293 0, 207, 223, 0, 0, 146, 203, 0, 0, 201, 294 0, 0, 206, 0, 0, 0, 0, 0, 303, 88, 295 0, 0, 66, 86, 0, 70, 115, 0, 0, 109, 296 0, 0, 0, 0, 0, 270, 271, 272, 0, 0, 297 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, 298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299 0, 0, 0, 231, 0, 234, 0, 232, 0, 0, 300 0, 0, 0, 193, 0, 189, 0, 242, 0, 204, 301 246, 0, 0, 0, 202, 0, 0, 247, 74, 77, 302 0, 0, 0, 89, 0, 91, 92, 0, 111, 0, 303 266, 0, 0, 267, 197, 0, 0, 0, 0, 180, 304 0, 235, 0, 0, 159, 157, 187, 0, 195, 168, 305 224, 0, 0, 0, 0, 0, 75, 0, 0, 0, 306 0, 116, 265, 268, 300, 0, 0, 0, 0, 226, 307 218, 244, 0, 0, 0, 0, 241, 0, 243, 0, 308 0, 0, 0, 169, 0, 0, 170, 156, 0, 0, 309 0, 160, 0, 164, 194, 0, 0, 0, 0, 0, 310 0, 0, 0, 320, 0, 167, 158, 0, 165, 220, 311 245, 219, 94, 93, 0, 0, 171, 166, 0, 0, 312 96, 95, 313 }; 314 final static short yydgoto[] = { 2, 315 150, 222, 83, 84, 85, 86, 223, 120, 3, 6, 316 10, 11, 31, 12, 13, 16, 153, 33, 154, 45, 317 53, 520, 55, 68, 103, 104, 105, 106, 107, 91, 318 109, 114, 115, 116, 209, 316, 383, 318, 110, 200, 319 117, 203, 118, 303, 304, 305, 306, 471, 155, 112, 320 312, 405, 476, 156, 384, 157, 47, 57, 65, 92, 321 93, 408, 409, 158, 159, 160, 161, 162, 163, 164, 322 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 323 175, 176, 177, 178, 179, 225, 226, 227, 228, 229, 324 230, 231, 496, 523, 541, 542, 543, 544, 555, 362, 325 259, 535, 363, 249, 378, 379, 456, 380, 187, 188, 326 189, 190, 191, 521, 385, 367, 368, 232, 233, 234, 327 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 328 245, 246, 247, 193, 301, 35, 329 }; 330 final static short yysindex[] = { -238, 331 -290, 0, 0, 0, -91, -205, 0, -243, -141, 3370, 332 0, 0, 0, 0, 0, -290, 0, -195, 0, -187, 333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334 0, 0, 0, 577, 0, -24, -85, -69, -129, -106, 335 0, 0, -286, -290, 8, -290, -7, -85, -69, -2, 336 -51, -290, 9, -51, 10, 0, 0, 8, -7, 0, 337 10, 0, 0, -290, 1195, 9, 0, 1153, -51, 0, 338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339 -48, 44, 0, 0, 0, 0, -109, 0, 0, 1279, 340 0, 0, 0, 0, 1048, 0, 0, 79, -48, 0, 341 0, 1237, 0, 0, 0, 0, 0, 0, 0, -34, 342 0, 29, -66, -186, 0, 84, 29, 44, 77, 98, 343 98, -48, 1578, 51, 51, 1330, 2, 114, 118, 2, 344 1578, 126, 122, 133, 0, 1578, 137, 141, 1578, 0, 345 1578, 1578, 0, 0, 0, 0, 0, 0, -285, 88, 346 -61, 4, 0, 1555, 0, 0, 135, 142, 1048, 0, 347 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 348 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 349 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 350 0, -171, 345, 194, 29, -48, 0, 29, 0, 0, 351 0, -290, 161, 194, 98, 0, 88, 1433, 0, 162, 352 98, 0, 165, -168, 29, 1578, 1578, 1578, 1578, 1578, 353 176, -61, 4, -190, 0, 0, 0, 0, 0, 0, 354 0, -171, 0, 0, 0, -107, 63, 23, -149, -63, 355 149, 148, 155, 159, -226, 0, 0, 0, 182, 185, 356 133, 183, 88, 1620, 1578, 188, -198, 0, 187, 145, 357 1578, 1578, 197, 255, 1578, 212, 4, 0, 0, 0, 358 0, 1578, 1330, 44, 211, 262, 5, 1475, -239, 14, 359 -278, 0, 0, 0, 0, 1578, 0, 0, 0, 0, 360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 361 1578, 0, 221, 223, 0, 2, 0, 29, 161, 10, 362 0, 0, 236, 0, 1433, 0, 0, 0, 0, 0, 363 0, 232, -73, 4, 238, 0, 0, 0, 0, 5, 364 14, 0, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 365 1578, 2, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 366 1578, 1578, 1578, 1578, 0, 0, 240, 211, 2, 0, 367 0, -151, 234, 243, 1475, 43, 188, 0, 1578, 43, 368 188, 0, 245, 247, 248, 0, 251, 255, 278, 0, 369 254, 0, 0, 256, 249, 0, 0, 289, 257, 0, 370 198, 253, 0, 264, 311, 216, 274, 272, 0, 0, 371 194, 268, 0, 0, 943, 0, 0, 276, 273, 0, 372 1578, -68, -59, 1723, 275, 0, 0, 0, -107, -107, 373 63, 63, 63, 44, 0, 23, 23, 23, 23, -149, 374 -149, -63, 149, 148, 155, 270, 159, 1578, 1578, 1578, 375 1756, 1330, 284, 0, 98, 0, 292, 0, 98, 1578, 376 288, 137, 194, 0, 137, 0, 1330, 0, 1578, 0, 377 0, 294, 242, 1578, 0, 298, 1578, 0, 0, 0, 378 88, -280, 299, 0, 46, 0, 0, 295, 0, 1433, 379 0, 1578, 1723, 0, 0, 1578, 301, 306, 312, 0, 380 336, 0, 9, 313, 0, 0, 0, 314, 0, 0, 381 0, 1578, 307, 316, 1578, 321, 0, 1578, 1578, -196, 382 -273, 0, 0, 0, 0, 318, 1756, 1330, 1330, 0, 383 0, 0, -137, 137, 324, 1578, 0, 326, 0, 327, 384 328, -245, 330, 0, 332, 234, 0, 0, 1578, 317, 385 337, 0, 838, 0, 0, 9, 338, 9, 325, 335, 386 1578, 1578, 1330, 0, 329, 0, 0, 1048, 0, 0, 387 0, 0, 0, 0, 341, 342, 0, 0, 343, 344, 388 0, 0, 389 }; 390 final static short yyrindex[] = { 505, 391 0, 0, 0, 0, 0, 541, 0, 0, 297, 655, 392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394 0, 0, 0, 0, 0, 0, -250, 350, 0, 0, 395 0, 0, 0, 0, 351, 0, 0, -250, 350, 0, 396 -248, 0, 0, -276, 355, 0, 0, 351, 0, 0, 397 356, 0, 0, 0, 0, 0, 0, 0, -40, 0, 398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399 0, -305, 0, 0, 0, 0, 1956, 0, 0, 0, 400 0, 0, 0, 0, 357, 0, 0, -219, 0, 0, 401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402 0, 360, -6, 0, 0, -177, 358, -150, 0, 1995, 403 2034, 0, 0, 359, 359, 0, 1800, 0, 0, 0, 404 361, 0, 0, 3405, 0, 0, 0, 0, 0, 0, 405 0, 0, 0, 0, 0, 0, 0, 0, 1320, 0, 406 309, 618, 0, 0, 0, 0, 2836, 0, 365, 0, 407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 409 0, 0, -101, -10, 92, 509, 2656, 0, 0, 2073, 410 2146, 0, 0, 369, 71, 0, 0, 360, 0, 0, 411 0, 0, 0, 369, -194, 0, 0, 0, 0, 0, 412 -145, 0, 0, 0, 358, 0, 0, 0, 0, 0, 413 1810, 0, 2438, 0, 0, 0, 0, 0, 0, 0, 414 0, 2908, 0, 0, 0, 2944, 3052, 1635, 443, 947, 415 1933, 2486, 143, 1491, 209, 0, 0, 0, 0, 0, 416 0, 0, 0, -127, 0, 0, 0, 0, 0, 0, 417 0, 0, 0, 401, 0, 0, 2872, 0, 0, 0, 418 0, 371, 0, -32, -124, 0, 320, 0, 0, 339, 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421 0, 0, 0, 374, 0, 0, 0, 71, 0, 78, 422 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 423 0, 0, 0, 2511, 0, 0, 0, 0, 0, 0, 424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426 0, 0, 0, 0, 0, 0, 0, -115, 0, 0, 427 0, 0, -103, 0, 0, 0, 2692, 0, 371, 0, 428 2728, 0, 2219, 0, 0, 0, 0, 628, 0, 0, 429 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 430 0, 0, 0, 1883, 0, 0, 2292, 0, 0, 0, 431 319, 340, 0, 0, 0, 0, 0, 0, 392, 0, 432 0, 0, 0, 2584, 0, 0, 0, 0, 2980, 3016, 433 3088, 3124, 3160, 0, 0, 3196, 3229, 3262, 3295, 743, 434 848, 1052, 2415, 3328, 1398, 0, 1688, 0, 361, 0, 435 0, 0, 0, 0, 2764, 0, 0, 0, 2800, 371, 436 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 437 0, 0, 0, 371, 0, 0, 371, 0, 0, 0, 438 0, 0, -136, 0, 618, 0, 0, 100, 0, 393, 439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440 733, 0, 2620, 0, 0, 0, 0, 0, 0, 0, 441 0, 371, 2365, 0, 371, 0, 0, 371, 371, 0, 442 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 443 0, 0, 405, 0, 0, 371, 0, 0, 0, 0, 444 0, 0, 0, 0, 0, 420, 0, 0, 0, 0, 445 0, 0, 419, 0, 0, 2620, 0, 2620, 0, 0, 446 371, 371, 0, 0, 0, 0, 0, -237, 0, 0, 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448 0, 0, 449 }; 450 final static short yygindex[] = { 0, 451 -62, -49, 364, 0, 0, 0, -1, 3, 0, 0, 452 0, 0, 0, 0, 0, 0, 19, 215, 37, 683, 453 682, -11, -45, 0, 0, 0, 0, 0, 0, 686, 454 0, -114, 551, 290, 0, -311, 246, 22, 0, 0, 455 -88, -100, 0, 555, 0, -381, 0, 0, -44, 658, 456 454, 0, 0, -157, -315, 370, 715, 706, 0, 0, 457 0, 0, 0, 0, 226, 0, -125, 520, 0, 0, 458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459 0, 0, 0, 0, -249, -82, -74, -27, -15, 17, 460 55, 108, 0, 0, 0, 0, 0, 233, 0, 0, 461 349, 0, 260, 653, 0, 0, 0, 412, 0, 0, 462 0, 373, 398, -252, 0, 526, 28, 125, -35, -404, 463 0, 96, 32, 74, 91, 444, 442, 446, 449, 448, 464 0, 322, 503, 0, 0, -16, 465 }; 466 final static int YYTABLESIZE=3710; 467 static short yytable[]; 468 static { yytable();} 469 470 static void yytable(){ 471 yytable = new short[]{ 5, 472 252, 283, 81, 407, 361, 99, 61, 214, 396, 484, 473 195, 1, 180, 396, 36, 82, 210, 41, 82, 469, 474 181, 272, 533, 111, 161, 390, 508, 122, 32, 36, 475 161, 37, 40, 215, 260, 275, 40, 40, 273, 196, 476 82, 63, 51, 180, 54, 151, 34, 391, 50, 1, 477 54, 181, 82, 447, 94, 1, 392, 197, 36, 393, 478 37, 551, 69, 87, 253, 201, 87, 182, 390, 463, 479 4, 498, 161, 41, 14, 9, 180, 82, 514, 183, 480 256, 214, 397, 88, 181, 41, 100, 397, 87, 121, 481 391, 334, 264, 152, 307, 334, 353, 309, 182, 532, 482 87, 90, 393, 354, 102, 270, 271, 308, 369, 151, 483 183, 184, 365, 60, 322, 205, 8, 14, 60, 60, 484 211, 394, 332, 60, 539, 87, 206, 207, 257, 60, 485 540, 182, 342, 333, 494, 61, 61, 41, 358, 267, 486 267, 334, 184, 183, 321, 207, 61, 386, 504, 185, 487 68, 506, 15, 277, 280, 69, 310, 152, 68, 287, 488 288, 439, 68, 69, 394, 37, 323, 69, 512, 343, 489 344, 180, 440, 38, 205, 184, 345, 346, 205, 181, 490 185, 326, 327, 328, 329, 172, 525, 44, 127, 528, 491 180, 490, 530, 531, 205, 205, 172, 126, 181, 127, 492 54, 119, 186, 46, 151, 8, 151, 403, 126, 173, 493 547, 151, 151, 185, 324, 267, 267, 267, 267, 192, 494 173, 7, 151, 8, 330, 331, 182, 334, 335, 250, 495 250, 48, 336, 186, 411, 565, 566, 119, 183, 482, 496 204, 276, 213, 402, 119, 182, 388, 477, 483, 119, 497 192, 213, 152, 276, 49, 395, 82, 183, 366, 370, 498 70, 347, 71, 8, 348, 72, 186, 361, 41, 331, 499 184, 73, 41, 41, 95, 59, 205, 74, 199, 89, 500 59, 59, 101, 192, 75, 59, 76, 52, 42, 184, 501 43, 59, 424, 560, 77, 562, 253, 152, 416, 417, 502 418, 56, 152, 152, 87, 78, 59, 59, 185, 82, 503 60, 59, 113, 152, 278, 213, 491, 62, 279, 388, 504 251, 251, 180, 64, 213, 412, 413, 185, 395, 202, 505 181, 500, 267, 267, 267, 267, 267, 267, 267, 267, 506 87, 267, 267, 267, 267, 267, 267, 267, 267, 267, 507 267, 315, 267, 213, 119, 151, 278, 87, 180, 180, 508 510, 186, 4, 339, 340, 341, 181, 181, 224, 445, 509 421, 422, 423, 449, 180, 481, 258, 182, 192, 80, 510 186, 263, 181, 80, 266, 194, 81, 444, 212, 183, 511 81, 448, 537, 538, 446, 337, 338, 192, 446, 153, 512 283, 208, 210, 475, 153, 153, 210, 497, 213, 267, 513 499, 248, 267, 182, 182, 153, 426, 427, 428, 429, 514 254, 184, 210, 210, 255, 183, 183, 567, 261, 182, 515 248, 248, 419, 420, 180, 180, 180, 430, 431, 262, 516 260, 183, 181, 181, 181, 95, 513, 265, 274, 281, 517 295, 282, 295, 317, 295, 295, 295, 184, 184, 185, 518 180, 325, 284, 285, 286, 295, 295, 302, 181, 311, 519 180, 295, 295, 184, 319, 180, 320, 280, 181, 545, 520 267, 267, 272, 181, 267, 349, 350, 352, 357, 182, 521 182, 182, 351, 151, 355, 185, 185, 356, 365, 372, 522 364, 183, 183, 183, 23, 373, 374, 375, 151, 376, 523 381, 185, 186, 268, 268, 182, 299, 377, 299, 382, 524 299, 299, 299, 389, 207, 182, 387, 183, 400, 192, 525 182, 398, 299, 184, 184, 184, 401, 183, 269, 269, 526 21, 152, 183, 406, 410, 414, 438, 441, 186, 186, 527 442, 450, 455, 460, 451, 452, 152, 453, 462, 184, 528 317, 457, 459, 458, 186, 192, 192, 463, 461, 184, 529 464, 185, 185, 185, 184, 465, 466, 78, 415, 78, 530 467, 192, 78, 468, 470, 479, 480, 485, 78, 268, 531 268, 268, 268, 486, 78, 492, 495, 185, 436, 493, 532 502, 78, 503, 78, 505, 509, 519, 185, 516, 511, 533 443, 78, 185, 526, 269, 269, 269, 269, 517, 518, 534 522, 524, 78, 527, 186, 186, 186, 78, 529, 78, 535 534, 546, 78, 548, 549, 550, 552, 563, 78, 553, 536 556, 192, 192, 192, 78, 561, 557, 564, 569, 570, 537 186, 78, 568, 78, 18, 571, 572, 29, 99, 38, 538 186, 78, 289, 100, 39, 186, 118, 192, 80, 1, 539 80, 182, 78, 175, 119, 190, 71, 192, 221, 78, 540 17, 72, 192, 487, 258, 489, 112, 222, 290, 291, 541 292, 293, 294, 295, 296, 297, 298, 299, 300, 16, 542 76, 113, 114, 177, 501, 425, 268, 268, 268, 268, 543 268, 268, 268, 268, 162, 268, 268, 268, 268, 268, 544 268, 268, 268, 268, 268, 317, 268, 178, 163, 78, 545 58, 269, 269, 269, 269, 269, 269, 269, 269, 66, 546 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 547 286, 269, 286, 108, 286, 286, 286, 314, 313, 198, 548 507, 23, 404, 59, 67, 286, 286, 286, 558, 23, 549 286, 286, 286, 360, 478, 559, 536, 250, 23, 286, 550 286, 286, 371, 268, 554, 23, 268, 488, 23, 454, 551 23, 433, 432, 23, 23, 23, 434, 21, 23, 23, 552 435, 437, 23, 399, 0, 21, 23, 515, 269, 23, 553 0, 269, 0, 0, 21, 0, 154, 23, 0, 208, 554 0, 154, 154, 208, 21, 0, 21, 0, 0, 21, 555 21, 21, 154, 17, 21, 21, 0, 0, 21, 208, 556 208, 39, 21, 0, 0, 21, 0, 0, 0, 0, 557 19, 0, 0, 21, 268, 268, 0, 0, 268, 0, 558 40, 0, 21, 0, 0, 22, 23, 24, 0, 0, 559 25, 26, 0, 0, 27, 0, 0, 0, 28, 269, 560 269, 29, 0, 269, 188, 188, 188, 188, 188, 188, 561 0, 188, 188, 0, 188, 188, 188, 188, 188, 0, 562 0, 188, 191, 188, 188, 0, 188, 0, 0, 0, 563 188, 0, 188, 188, 188, 0, 188, 188, 188, 188, 564 188, 188, 188, 188, 188, 188, 188, 188, 0, 188, 565 188, 188, 188, 188, 188, 304, 188, 188, 0, 0, 566 188, 0, 0, 0, 0, 0, 0, 0, 249, 249, 567 0, 0, 0, 0, 0, 0, 0, 0, 188, 188, 568 0, 304, 304, 304, 304, 304, 304, 304, 304, 304, 569 304, 304, 0, 0, 0, 0, 0, 0, 15, 0, 570 0, 0, 188, 188, 188, 188, 188, 188, 188, 155, 571 155, 155, 155, 155, 155, 0, 155, 155, 0, 155, 572 155, 155, 155, 0, 0, 0, 155, 0, 155, 155, 573 0, 155, 0, 0, 0, 155, 0, 155, 155, 155, 574 0, 155, 155, 155, 155, 155, 155, 155, 155, 155, 575 155, 155, 155, 0, 155, 155, 155, 155, 155, 155, 576 0, 155, 155, 0, 0, 155, 0, 0, 0, 0, 577 287, 0, 287, 0, 287, 287, 287, 0, 0, 0, 578 0, 0, 0, 155, 155, 287, 287, 287, 0, 0, 579 287, 287, 287, 0, 0, 0, 0, 0, 0, 287, 580 287, 287, 0, 0, 0, 0, 0, 155, 155, 155, 581 155, 155, 155, 155, 17, 123, 70, 124, 71, 539, 582 0, 72, 18, 0, 125, 540, 126, 73, 0, 0, 583 0, 127, 0, 74, 128, 0, 129, 0, 0, 0, 584 75, 0, 76, 21, 130, 0, 22, 23, 24, 131, 585 77, 25, 26, 132, 133, 134, 135, 136, 0, 28, 586 137, 78, 29, 138, 139, 0, 95, 0, 0, 0, 587 140, 0, 0, 0, 0, 288, 0, 288, 0, 288, 588 288, 288, 0, 0, 0, 0, 0, 0, 141, 142, 589 288, 288, 288, 0, 0, 288, 288, 288, 0, 0, 590 0, 0, 0, 0, 288, 288, 288, 0, 0, 0, 591 0, 0, 143, 144, 145, 146, 147, 148, 149, 17, 592 123, 70, 124, 71, 0, 0, 72, 18, 0, 125, 593 0, 126, 73, 0, 0, 0, 127, 0, 74, 128, 594 0, 129, 0, 0, 0, 75, 0, 76, 21, 130, 595 0, 22, 23, 24, 131, 77, 25, 26, 472, 133, 596 134, 473, 136, 0, 28, 137, 78, 29, 138, 139, 597 0, 95, 474, 0, 289, 140, 289, 0, 289, 289, 598 289, 0, 0, 0, 0, 0, 0, 0, 0, 289, 599 289, 0, 0, 141, 142, 289, 289, 0, 0, 0, 600 0, 0, 0, 289, 289, 289, 0, 0, 0, 0, 601 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 602 146, 147, 148, 149, 17, 123, 70, 124, 71, 0, 603 0, 72, 18, 0, 125, 0, 126, 73, 0, 0, 604 0, 127, 0, 74, 128, 0, 129, 0, 0, 0, 605 75, 0, 76, 21, 130, 0, 22, 23, 24, 131, 606 77, 25, 26, 132, 133, 134, 135, 136, 0, 28, 607 137, 78, 29, 138, 139, 0, 95, 0, 0, 290, 608 140, 290, 0, 290, 290, 290, 0, 0, 0, 0, 609 0, 0, 0, 0, 290, 290, 0, 0, 141, 142, 610 290, 290, 0, 0, 0, 0, 0, 0, 290, 290, 611 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 612 0, 0, 143, 144, 145, 146, 147, 148, 149, 17, 613 0, 70, 0, 71, 0, 0, 72, 18, 0, 0, 614 0, 0, 73, 0, 0, 0, 19, 0, 74, 0, 615 0, 0, 0, 0, 0, 75, 20, 76, 21, 0, 616 0, 22, 23, 24, 0, 77, 25, 26, 0, 0, 617 27, 17, 0, 70, 28, 71, 78, 29, 72, 18, 618 0, 95, 96, 0, 73, 97, 0, 0, 19, 0, 619 74, 0, 0, 0, 0, 0, 0, 75, 20, 76, 620 21, 0, 0, 22, 23, 24, 0, 77, 25, 26, 621 0, 0, 27, 17, 0, 70, 28, 71, 78, 29, 622 72, 39, 0, 0, 79, 0, 73, 80, 0, 0, 623 19, 0, 74, 98, 0, 0, 0, 0, 0, 75, 624 40, 76, 21, 0, 0, 22, 23, 24, 0, 77, 625 25, 26, 0, 0, 27, 17, 0, 70, 28, 71, 626 78, 29, 72, 39, 0, 95, 0, 0, 73, 0, 627 0, 0, 19, 0, 74, 4, 0, 0, 0, 0, 628 0, 75, 40, 76, 21, 0, 0, 22, 23, 24, 629 0, 77, 25, 26, 0, 0, 27, 0, 0, 0, 630 28, 0, 78, 29, 0, 0, 0, 123, 70, 124, 631 71, 0, 0, 72, 0, 0, 125, 98, 126, 73, 632 0, 0, 0, 0, 0, 74, 128, 0, 129, 0, 633 0, 0, 75, 0, 76, 0, 130, 0, 0, 0, 634 0, 131, 77, 0, 0, 132, 133, 251, 135, 136, 635 334, 0, 137, 78, 334, 138, 139, 334, 95, 4, 636 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 637 334, 334, 0, 0, 0, 0, 0, 0, 0, 0, 638 141, 142, 0, 334, 334, 334, 334, 334, 334, 334, 639 334, 334, 334, 334, 0, 0, 0, 0, 0, 0, 640 334, 0, 0, 0, 143, 144, 145, 146, 147, 148, 641 149, 70, 0, 71, 0, 0, 72, 0, 0, 0, 642 0, 0, 73, 0, 0, 296, 0, 296, 74, 296, 643 296, 296, 0, 0, 0, 75, 0, 76, 0, 130, 644 296, 296, 0, 0, 0, 77, 296, 296, 132, 0, 645 0, 135, 0, 70, 0, 71, 78, 0, 72, 216, 646 0, 315, 0, 0, 73, 0, 0, 0, 0, 0, 647 74, 0, 0, 217, 218, 0, 0, 75, 0, 76, 648 0, 130, 0, 141, 142, 219, 220, 77, 0, 0, 649 132, 0, 0, 135, 0, 0, 0, 0, 78, 0, 650 0, 216, 0, 0, 0, 0, 212, 143, 144, 145, 651 146, 147, 148, 221, 0, 217, 218, 0, 297, 0, 652 297, 0, 297, 297, 297, 141, 142, 219, 220, 0, 653 0, 17, 0, 297, 297, 0, 0, 0, 0, 39, 654 297, 0, 0, 0, 0, 0, 0, 0, 19, 143, 655 144, 145, 146, 147, 148, 221, 70, 0, 71, 0, 656 21, 72, 0, 22, 23, 24, 0, 73, 25, 26, 657 0, 0, 27, 74, 0, 0, 28, 0, 0, 29, 658 75, 0, 76, 0, 130, 0, 0, 0, 0, 0, 659 77, 0, 0, 132, 0, 0, 135, 0, 70, 0, 660 71, 78, 0, 72, 216, 0, 0, 0, 0, 73, 661 0, 0, 0, 359, 0, 74, 0, 0, 217, 218, 662 0, 0, 75, 0, 76, 0, 130, 0, 141, 142, 663 219, 220, 77, 0, 0, 132, 280, 0, 135, 0, 664 0, 0, 0, 78, 0, 0, 139, 0, 0, 0, 665 0, 0, 143, 144, 145, 146, 147, 148, 221, 0, 666 0, 0, 280, 0, 280, 0, 280, 280, 280, 0, 667 141, 142, 0, 280, 280, 0, 0, 280, 280, 280, 668 280, 280, 280, 280, 280, 0, 0, 0, 0, 0, 669 0, 280, 280, 280, 143, 144, 145, 146, 147, 148, 670 221, 70, 0, 71, 0, 0, 72, 0, 0, 0, 671 0, 0, 73, 0, 0, 298, 0, 298, 74, 298, 672 298, 298, 0, 0, 0, 75, 0, 76, 0, 130, 673 298, 298, 0, 0, 70, 77, 71, 298, 132, 72, 674 0, 135, 0, 0, 0, 73, 78, 0, 0, 216, 675 0, 74, 0, 0, 0, 0, 0, 0, 75, 0, 676 76, 0, 130, 217, 218, 0, 0, 0, 77, 0, 677 0, 132, 0, 0, 135, 0, 328, 0, 0, 78, 678 0, 0, 139, 0, 328, 0, 0, 0, 0, 0, 679 0, 0, 0, 328, 0, 0, 0, 143, 144, 145, 680 146, 147, 148, 221, 0, 328, 141, 142, 328, 328, 681 328, 334, 0, 328, 328, 0, 0, 328, 0, 0, 682 0, 328, 0, 0, 328, 0, 0, 0, 0, 0, 683 143, 144, 145, 146, 147, 148, 221, 334, 0, 334, 684 334, 334, 334, 334, 334, 0, 0, 334, 334, 334, 685 0, 0, 334, 334, 334, 334, 334, 334, 334, 334, 686 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 687 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 688 334, 334, 334, 334, 335, 0, 0, 0, 0, 0, 689 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 691 335, 0, 335, 335, 335, 335, 335, 335, 0, 0, 692 335, 335, 335, 0, 0, 335, 335, 335, 335, 335, 693 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 694 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 695 335, 335, 335, 335, 335, 335, 335, 15, 0, 0, 696 291, 0, 291, 335, 291, 291, 291, 0, 0, 0, 697 0, 0, 0, 0, 0, 291, 291, 0, 0, 0, 698 0, 291, 291, 15, 0, 15, 0, 15, 15, 15, 699 291, 291, 15, 0, 15, 15, 17, 0, 15, 15, 700 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 701 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 702 0, 0, 17, 0, 17, 0, 17, 17, 17, 0, 703 0, 17, 0, 17, 17, 16, 15, 17, 17, 17, 704 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 705 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 706 0, 16, 0, 16, 0, 16, 16, 16, 0, 0, 707 16, 0, 16, 16, 209, 17, 16, 16, 16, 16, 708 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 709 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 710 209, 0, 209, 209, 209, 209, 209, 209, 0, 0, 711 305, 209, 209, 0, 16, 209, 209, 209, 209, 209, 712 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 713 209, 209, 209, 209, 209, 209, 305, 305, 305, 305, 714 305, 305, 305, 305, 305, 305, 305, 211, 0, 0, 715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 717 0, 0, 0, 211, 0, 211, 211, 211, 211, 211, 718 211, 0, 0, 306, 211, 211, 0, 0, 211, 211, 719 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 720 211, 211, 211, 211, 211, 211, 211, 211, 211, 306, 721 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 722 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 724 0, 0, 0, 0, 0, 0, 239, 0, 239, 239, 725 239, 239, 239, 239, 0, 0, 239, 239, 239, 0, 726 0, 239, 239, 239, 239, 239, 239, 239, 239, 239, 727 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 728 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 729 239, 239, 239, 238, 0, 0, 0, 0, 0, 0, 730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 731 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 732 0, 238, 238, 238, 238, 238, 238, 0, 0, 238, 733 238, 238, 0, 0, 238, 238, 238, 238, 238, 238, 734 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 735 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 736 238, 238, 238, 238, 238, 238, 240, 0, 0, 0, 737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739 0, 0, 240, 0, 240, 240, 240, 240, 240, 240, 740 0, 0, 240, 240, 240, 0, 0, 240, 240, 240, 741 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 742 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 743 240, 240, 240, 240, 240, 240, 240, 240, 240, 249, 744 0, 0, 292, 0, 292, 0, 292, 292, 292, 0, 745 0, 0, 0, 0, 0, 0, 0, 292, 292, 0, 746 0, 0, 0, 292, 292, 249, 0, 249, 0, 249, 747 249, 249, 292, 292, 0, 304, 249, 249, 0, 0, 748 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 749 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 750 249, 304, 304, 304, 304, 304, 304, 304, 304, 304, 751 304, 304, 249, 293, 0, 293, 0, 293, 293, 293, 752 0, 0, 0, 0, 0, 0, 0, 0, 293, 293, 753 0, 0, 0, 0, 293, 293, 0, 0, 249, 0, 754 0, 0, 0, 293, 0, 0, 0, 0, 304, 249, 755 249, 0, 0, 249, 0, 249, 249, 249, 249, 249, 756 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 757 249, 249, 249, 249, 304, 304, 304, 304, 304, 304, 758 304, 304, 304, 304, 304, 207, 0, 0, 0, 0, 759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 761 0, 207, 0, 207, 207, 207, 207, 207, 207, 0, 762 0, 225, 207, 207, 0, 0, 207, 207, 207, 207, 763 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 764 207, 207, 207, 207, 207, 207, 207, 225, 0, 225, 765 225, 225, 225, 225, 225, 0, 0, 198, 225, 225, 766 0, 0, 225, 225, 225, 225, 225, 225, 225, 225, 767 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 768 225, 225, 225, 198, 0, 198, 0, 198, 198, 198, 769 198, 0, 0, 228, 198, 198, 0, 0, 198, 198, 770 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 771 198, 198, 198, 198, 198, 198, 198, 198, 198, 228, 772 0, 228, 0, 228, 228, 228, 228, 0, 0, 230, 773 228, 228, 0, 0, 228, 228, 228, 228, 228, 228, 774 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 775 228, 228, 228, 228, 228, 230, 0, 230, 0, 230, 776 230, 230, 230, 0, 0, 227, 230, 230, 0, 0, 777 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 778 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 779 230, 227, 0, 227, 0, 227, 227, 227, 227, 0, 780 0, 229, 227, 227, 0, 0, 227, 227, 227, 227, 781 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 782 227, 227, 227, 227, 227, 227, 227, 229, 0, 229, 783 0, 229, 229, 229, 229, 0, 0, 248, 229, 229, 784 0, 0, 229, 229, 229, 229, 229, 229, 229, 229, 785 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 786 229, 229, 229, 248, 0, 248, 0, 248, 248, 248, 787 0, 0, 0, 249, 248, 248, 0, 0, 248, 248, 788 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 789 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 790 0, 249, 0, 249, 249, 249, 0, 0, 0, 261, 791 249, 249, 0, 0, 249, 249, 249, 249, 249, 249, 792 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 793 249, 249, 249, 249, 249, 261, 0, 261, 0, 261, 794 261, 261, 0, 0, 0, 273, 261, 261, 0, 0, 795 261, 261, 261, 261, 261, 261, 261, 261, 0, 0, 796 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 797 261, 273, 0, 273, 0, 273, 273, 273, 0, 0, 798 0, 274, 273, 273, 0, 0, 273, 273, 273, 273, 799 273, 273, 273, 273, 0, 0, 273, 273, 0, 0, 800 273, 273, 273, 0, 273, 273, 273, 274, 0, 274, 801 0, 274, 274, 274, 0, 0, 0, 275, 274, 274, 802 0, 0, 274, 274, 274, 274, 274, 274, 274, 274, 803 0, 0, 274, 274, 0, 0, 274, 274, 274, 0, 804 274, 274, 274, 275, 0, 275, 0, 275, 275, 275, 805 0, 0, 0, 276, 275, 275, 0, 0, 275, 275, 806 275, 275, 275, 275, 275, 275, 0, 0, 275, 275, 807 0, 0, 275, 275, 275, 0, 275, 275, 275, 276, 808 0, 276, 0, 276, 276, 276, 0, 0, 0, 277, 809 276, 276, 0, 0, 276, 276, 276, 276, 276, 276, 810 276, 276, 0, 0, 0, 0, 0, 0, 276, 276, 811 276, 0, 276, 276, 276, 277, 0, 277, 0, 277, 812 277, 277, 0, 0, 0, 278, 277, 277, 0, 0, 813 277, 277, 277, 277, 277, 277, 277, 277, 0, 0, 814 0, 0, 0, 0, 277, 277, 277, 0, 277, 277, 815 277, 278, 0, 278, 0, 278, 278, 278, 0, 0, 816 0, 279, 278, 278, 0, 0, 278, 278, 278, 278, 817 278, 278, 278, 278, 0, 0, 0, 0, 0, 0, 818 278, 278, 278, 0, 278, 278, 278, 279, 0, 279, 819 0, 279, 279, 279, 0, 0, 0, 282, 279, 279, 820 0, 0, 279, 279, 279, 279, 279, 279, 279, 279, 821 0, 0, 0, 0, 0, 0, 279, 279, 279, 0, 822 279, 279, 279, 282, 0, 282, 0, 282, 282, 282, 823 281, 0, 0, 0, 282, 282, 0, 0, 282, 282, 824 282, 282, 282, 282, 282, 282, 0, 0, 0, 0, 825 0, 0, 282, 282, 282, 0, 281, 0, 281, 0, 826 281, 281, 281, 283, 0, 0, 0, 281, 281, 0, 827 0, 281, 281, 281, 281, 281, 281, 281, 281, 0, 828 0, 0, 0, 0, 0, 281, 281, 281, 0, 283, 829 0, 283, 0, 283, 283, 283, 284, 0, 0, 0, 830 283, 283, 0, 0, 283, 283, 283, 283, 283, 283, 831 283, 283, 0, 0, 0, 0, 0, 0, 283, 283, 832 283, 0, 284, 0, 284, 0, 284, 284, 284, 0, 833 0, 0, 0, 284, 284, 0, 0, 284, 284, 284, 834 284, 284, 284, 284, 284, 0, 17, 0, 0, 0, 835 0, 284, 284, 284, 18, 294, 0, 294, 0, 294, 836 294, 294, 0, 19, 0, 0, 0, 0, 0, 0, 837 294, 294, 0, 20, 0, 21, 294, 294, 22, 23, 838 24, 329, 0, 25, 26, 294, 0, 27, 0, 329, 839 0, 28, 0, 0, 29, 0, 0, 0, 329, 0, 840 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 841 329, 0, 0, 329, 329, 329, 0, 0, 329, 329, 842 0, 0, 329, 0, 0, 0, 329, 0, 0, 329, 843 }; 844 } 845 static short yycheck[]; 846 static { yycheck(); } 847 static void yycheck() { 848 yycheck = new short[] { 1, 849 126, 159, 65, 315, 254, 68, 52, 122, 287, 414, 850 99, 317, 95, 287, 16, 65, 117, 34, 68, 401, 851 95, 307, 296, 68, 262, 265, 307, 90, 10, 280, 852 268, 280, 309, 122, 315, 150, 313, 314, 324, 102, 853 90, 53, 44, 126, 46, 95, 10, 287, 335, 288, 854 52, 126, 102, 369, 66, 361, 296, 102, 309, 299, 855 309, 307, 64, 65, 127, 110, 68, 95, 265, 315, 856 361, 453, 310, 90, 361, 281, 159, 127, 483, 95, 857 130, 196, 361, 65, 159, 102, 68, 361, 90, 87, 858 287, 311, 137, 95, 195, 315, 323, 198, 126, 296, 859 102, 65, 299, 330, 68, 141, 142, 196, 307, 159, 860 126, 95, 311, 308, 215, 113, 315, 361, 313, 314, 861 118, 361, 313, 318, 262, 127, 313, 314, 130, 324, 862 268, 159, 282, 324, 450, 313, 314, 154, 253, 141, 863 142, 361, 126, 159, 313, 314, 324, 273, 464, 95, 864 301, 467, 294, 151, 152, 301, 202, 159, 309, 331, 865 332, 313, 313, 309, 361, 361, 216, 313, 480, 319, 866 320, 254, 324, 361, 311, 159, 326, 327, 315, 254, 867 126, 217, 218, 219, 220, 313, 502, 273, 313, 505, 868 273, 441, 508, 509, 331, 332, 324, 313, 273, 324, 869 202, 311, 95, 273, 254, 315, 308, 308, 324, 313, 870 526, 313, 314, 159, 216, 217, 218, 219, 220, 95, 871 324, 313, 324, 315, 222, 223, 254, 335, 336, 331, 872 332, 361, 340, 126, 308, 551, 552, 311, 254, 308, 873 307, 315, 311, 306, 311, 273, 315, 405, 308, 311, 874 126, 311, 254, 315, 361, 315, 306, 273, 256, 257, 875 259, 325, 261, 315, 328, 264, 159, 517, 309, 267, 876 254, 270, 313, 314, 309, 308, 274, 276, 313, 65, 877 313, 314, 68, 159, 283, 318, 285, 280, 313, 273, 878 315, 324, 342, 546, 293, 548, 359, 308, 334, 335, 879 336, 309, 313, 314, 306, 304, 313, 314, 254, 359, 880 313, 318, 361, 324, 311, 311, 442, 309, 315, 315, 881 331, 332, 405, 314, 311, 323, 324, 273, 315, 301, 882 405, 457, 334, 335, 336, 337, 338, 339, 340, 341, 883 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 884 352, 309, 354, 311, 311, 405, 311, 359, 441, 442, 885 315, 254, 361, 341, 342, 343, 441, 442, 123, 367, 886 339, 340, 341, 371, 457, 411, 131, 405, 254, 309, 887 273, 136, 457, 313, 139, 307, 309, 366, 312, 405, 888 313, 370, 518, 519, 367, 333, 334, 273, 371, 308, 889 558, 318, 311, 405, 313, 314, 315, 452, 311, 411, 890 455, 361, 414, 441, 442, 324, 343, 344, 345, 346, 891 307, 405, 331, 332, 307, 441, 442, 553, 307, 457, 892 331, 332, 337, 338, 517, 518, 519, 347, 348, 307, 893 315, 457, 517, 518, 519, 309, 482, 307, 361, 315, 894 308, 310, 310, 208, 312, 313, 314, 441, 442, 405, 895 543, 216, 313, 313, 311, 323, 324, 274, 543, 309, 896 553, 329, 330, 457, 313, 558, 312, 475, 553, 524, 897 482, 483, 307, 558, 486, 337, 339, 329, 306, 517, 898 518, 519, 338, 543, 313, 441, 442, 313, 311, 313, 899 255, 517, 518, 519, 0, 361, 261, 262, 558, 313, 900 265, 457, 405, 141, 142, 543, 308, 263, 310, 308, 901 312, 313, 314, 278, 314, 553, 265, 543, 308, 405, 902 558, 286, 324, 517, 518, 519, 314, 553, 141, 142, 903 0, 543, 558, 308, 313, 308, 307, 314, 441, 442, 904 308, 307, 275, 265, 308, 308, 558, 307, 361, 543, 905 315, 308, 314, 308, 457, 441, 442, 315, 312, 553, 906 307, 517, 518, 519, 558, 265, 361, 259, 333, 261, 907 307, 457, 264, 312, 317, 310, 314, 313, 270, 217, 908 218, 219, 220, 324, 276, 312, 309, 543, 353, 308, 909 307, 283, 361, 285, 307, 307, 271, 553, 308, 315, 910 365, 293, 558, 307, 217, 218, 219, 220, 313, 308, 911 308, 308, 304, 308, 517, 518, 519, 259, 308, 261, 912 313, 308, 264, 308, 308, 308, 307, 313, 270, 308, 913 324, 517, 518, 519, 276, 308, 310, 313, 308, 308, 914 543, 283, 324, 285, 0, 313, 313, 361, 309, 309, 915 553, 293, 318, 309, 309, 558, 310, 543, 309, 361, 916 313, 313, 304, 313, 310, 275, 308, 553, 308, 361, 917 361, 308, 558, 438, 439, 440, 310, 308, 344, 345, 918 346, 347, 348, 349, 350, 351, 352, 353, 354, 361, 919 361, 310, 310, 308, 459, 342, 334, 335, 336, 337, 920 338, 339, 340, 341, 310, 343, 344, 345, 346, 347, 921 348, 349, 350, 351, 352, 480, 354, 308, 310, 361, 922 48, 334, 335, 336, 337, 338, 339, 340, 341, 58, 923 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 924 308, 354, 310, 68, 312, 313, 314, 207, 204, 102, 925 471, 257, 309, 49, 59, 323, 324, 325, 543, 265, 926 328, 329, 330, 254, 405, 543, 517, 125, 274, 337, 927 338, 339, 257, 411, 539, 281, 414, 439, 284, 378, 928 286, 350, 349, 289, 290, 291, 351, 257, 294, 295, 929 352, 354, 298, 301, -1, 265, 302, 486, 411, 305, 930 -1, 414, -1, -1, 274, -1, 308, 313, -1, 311, 931 -1, 313, 314, 315, 284, -1, 286, -1, -1, 289, 932 290, 291, 324, 257, 294, 295, -1, -1, 298, 331, 933 332, 265, 302, -1, -1, 305, -1, -1, -1, -1, 934 274, -1, -1, 313, 482, 483, -1, -1, 486, -1, 935 284, -1, 286, -1, -1, 289, 290, 291, -1, -1, 936 294, 295, -1, -1, 298, -1, -1, -1, 302, 482, 937 483, 305, -1, 486, 257, 258, 259, 260, 261, 262, 938 -1, 264, 265, -1, 267, 268, 269, 270, 271, -1, 939 -1, 274, 275, 276, 277, -1, 279, -1, -1, -1, 940 283, -1, 285, 286, 287, -1, 289, 290, 291, 292, 941 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 942 303, 304, 305, 306, 307, 318, 309, 310, -1, -1, 943 313, -1, -1, -1, -1, -1, -1, -1, 331, 332, 944 -1, -1, -1, -1, -1, -1, -1, -1, 331, 332, 945 -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, 946 353, 354, -1, -1, -1, -1, -1, -1, 361, -1, 947 -1, -1, 355, 356, 357, 358, 359, 360, 361, 257, 948 258, 259, 260, 261, 262, -1, 264, 265, -1, 267, 949 268, 269, 270, -1, -1, -1, 274, -1, 276, 277, 950 -1, 279, -1, -1, -1, 283, -1, 285, 286, 287, 951 -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, 952 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 953 -1, 309, 310, -1, -1, 313, -1, -1, -1, -1, 954 308, -1, 310, -1, 312, 313, 314, -1, -1, -1, 955 -1, -1, -1, 331, 332, 323, 324, 325, -1, -1, 956 328, 329, 330, -1, -1, -1, -1, -1, -1, 337, 957 338, 339, -1, -1, -1, -1, -1, 355, 356, 357, 958 358, 359, 360, 361, 257, 258, 259, 260, 261, 262, 959 -1, 264, 265, -1, 267, 268, 269, 270, -1, -1, 960 -1, 274, -1, 276, 277, -1, 279, -1, -1, -1, 961 283, -1, 285, 286, 287, -1, 289, 290, 291, 292, 962 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 963 303, 304, 305, 306, 307, -1, 309, -1, -1, -1, 964 313, -1, -1, -1, -1, 308, -1, 310, -1, 312, 965 313, 314, -1, -1, -1, -1, -1, -1, 331, 332, 966 323, 324, 325, -1, -1, 328, 329, 330, -1, -1, 967 -1, -1, -1, -1, 337, 338, 339, -1, -1, -1, 968 -1, -1, 355, 356, 357, 358, 359, 360, 361, 257, 969 258, 259, 260, 261, -1, -1, 264, 265, -1, 267, 970 -1, 269, 270, -1, -1, -1, 274, -1, 276, 277, 971 -1, 279, -1, -1, -1, 283, -1, 285, 286, 287, 972 -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, 973 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 974 -1, 309, 310, -1, 308, 313, 310, -1, 312, 313, 975 314, -1, -1, -1, -1, -1, -1, -1, -1, 323, 976 324, -1, -1, 331, 332, 329, 330, -1, -1, -1, 977 -1, -1, -1, 337, 338, 339, -1, -1, -1, -1, 978 -1, -1, -1, -1, -1, -1, -1, 355, 356, 357, 979 358, 359, 360, 361, 257, 258, 259, 260, 261, -1, 980 -1, 264, 265, -1, 267, -1, 269, 270, -1, -1, 981 -1, 274, -1, 276, 277, -1, 279, -1, -1, -1, 982 283, -1, 285, 286, 287, -1, 289, 290, 291, 292, 983 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 984 303, 304, 305, 306, 307, -1, 309, -1, -1, 308, 985 313, 310, -1, 312, 313, 314, -1, -1, -1, -1, 986 -1, -1, -1, -1, 323, 324, -1, -1, 331, 332, 987 329, 330, -1, -1, -1, -1, -1, -1, 337, 338, 988 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, 989 -1, -1, 355, 356, 357, 358, 359, 360, 361, 257, 990 -1, 259, -1, 261, -1, -1, 264, 265, -1, -1, 991 -1, -1, 270, -1, -1, -1, 274, -1, 276, -1, 992 -1, -1, -1, -1, -1, 283, 284, 285, 286, -1, 993 -1, 289, 290, 291, -1, 293, 294, 295, -1, -1, 994 298, 257, -1, 259, 302, 261, 304, 305, 264, 265, 995 -1, 309, 310, -1, 270, 313, -1, -1, 274, -1, 996 276, -1, -1, -1, -1, -1, -1, 283, 284, 285, 997 286, -1, -1, 289, 290, 291, -1, 293, 294, 295, 998 -1, -1, 298, 257, -1, 259, 302, 261, 304, 305, 999 264, 265, -1, -1, 310, -1, 270, 313, -1, -1, 1000 274, -1, 276, 361, -1, -1, -1, -1, -1, 283, 1001 284, 285, 286, -1, -1, 289, 290, 291, -1, 293, 1002 294, 295, -1, -1, 298, 257, -1, 259, 302, 261, 1003 304, 305, 264, 265, -1, 309, -1, -1, 270, -1, 1004 -1, -1, 274, -1, 276, 361, -1, -1, -1, -1, 1005 -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 1006 -1, 293, 294, 295, -1, -1, 298, -1, -1, -1, 1007 302, -1, 304, 305, -1, -1, -1, 258, 259, 260, 1008 261, -1, -1, 264, -1, -1, 267, 361, 269, 270, 1009 -1, -1, -1, -1, -1, 276, 277, -1, 279, -1, 1010 -1, -1, 283, -1, 285, -1, 287, -1, -1, -1, 1011 -1, 292, 293, -1, -1, 296, 297, 298, 299, 300, 1012 311, -1, 303, 304, 315, 306, 307, 318, 309, 361, 1013 -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, 1014 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, 1015 331, 332, -1, 344, 345, 346, 347, 348, 349, 350, 1016 351, 352, 353, 354, -1, -1, -1, -1, -1, -1, 1017 361, -1, -1, -1, 355, 356, 357, 358, 359, 360, 1018 361, 259, -1, 261, -1, -1, 264, -1, -1, -1, 1019 -1, -1, 270, -1, -1, 308, -1, 310, 276, 312, 1020 313, 314, -1, -1, -1, 283, -1, 285, -1, 287, 1021 323, 324, -1, -1, -1, 293, 329, 330, 296, -1, 1022 -1, 299, -1, 259, -1, 261, 304, -1, 264, 307, 1023 -1, 309, -1, -1, 270, -1, -1, -1, -1, -1, 1024 276, -1, -1, 321, 322, -1, -1, 283, -1, 285, 1025 -1, 287, -1, 331, 332, 333, 334, 293, -1, -1, 1026 296, -1, -1, 299, -1, -1, -1, -1, 304, -1, 1027 -1, 307, -1, -1, -1, -1, 312, 355, 356, 357, 1028 358, 359, 360, 361, -1, 321, 322, -1, 308, -1, 1029 310, -1, 312, 313, 314, 331, 332, 333, 334, -1, 1030 -1, 257, -1, 323, 324, -1, -1, -1, -1, 265, 1031 330, -1, -1, -1, -1, -1, -1, -1, 274, 355, 1032 356, 357, 358, 359, 360, 361, 259, -1, 261, -1, 1033 286, 264, -1, 289, 290, 291, -1, 270, 294, 295, 1034 -1, -1, 298, 276, -1, -1, 302, -1, -1, 305, 1035 283, -1, 285, -1, 287, -1, -1, -1, -1, -1, 1036 293, -1, -1, 296, -1, -1, 299, -1, 259, -1, 1037 261, 304, -1, 264, 307, -1, -1, -1, -1, 270, 1038 -1, -1, -1, 274, -1, 276, -1, -1, 321, 322, 1039 -1, -1, 283, -1, 285, -1, 287, -1, 331, 332, 1040 333, 334, 293, -1, -1, 296, 282, -1, 299, -1, 1041 -1, -1, -1, 304, -1, -1, 307, -1, -1, -1, 1042 -1, -1, 355, 356, 357, 358, 359, 360, 361, -1, 1043 -1, -1, 308, -1, 310, -1, 312, 313, 314, -1, 1044 331, 332, -1, 319, 320, -1, -1, 323, 324, 325, 1045 326, 327, 328, 329, 330, -1, -1, -1, -1, -1, 1046 -1, 337, 338, 339, 355, 356, 357, 358, 359, 360, 1047 361, 259, -1, 261, -1, -1, 264, -1, -1, -1, 1048 -1, -1, 270, -1, -1, 308, -1, 310, 276, 312, 1049 313, 314, -1, -1, -1, 283, -1, 285, -1, 287, 1050 323, 324, -1, -1, 259, 293, 261, 330, 296, 264, 1051 -1, 299, -1, -1, -1, 270, 304, -1, -1, 307, 1052 -1, 276, -1, -1, -1, -1, -1, -1, 283, -1, 1053 285, -1, 287, 321, 322, -1, -1, -1, 293, -1, 1054 -1, 296, -1, -1, 299, -1, 257, -1, -1, 304, 1055 -1, -1, 307, -1, 265, -1, -1, -1, -1, -1, 1056 -1, -1, -1, 274, -1, -1, -1, 355, 356, 357, 1057 358, 359, 360, 361, -1, 286, 331, 332, 289, 290, 1058 291, 282, -1, 294, 295, -1, -1, 298, -1, -1, 1059 -1, 302, -1, -1, 305, -1, -1, -1, -1, -1, 1060 355, 356, 357, 358, 359, 360, 361, 308, -1, 310, 1061 311, 312, 313, 314, 315, -1, -1, 318, 319, 320, 1062 -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 1063 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 1064 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1065 351, 352, 353, 354, 282, -1, -1, -1, -1, -1, 1066 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1068 308, -1, 310, 311, 312, 313, 314, 315, -1, -1, 1069 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 1070 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 1071 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 1072 348, 349, 350, 351, 352, 353, 354, 282, -1, -1, 1073 308, -1, 310, 361, 312, 313, 314, -1, -1, -1, 1074 -1, -1, -1, -1, -1, 323, 324, -1, -1, -1, 1075 -1, 329, 330, 308, -1, 310, -1, 312, 313, 314, 1076 338, 339, 317, -1, 319, 320, 282, -1, 323, 324, 1077 325, 326, 327, 328, 329, 330, -1, -1, -1, -1, 1078 -1, -1, 337, 338, 339, -1, -1, -1, -1, -1, 1079 -1, -1, 308, -1, 310, -1, 312, 313, 314, -1, 1080 -1, 317, -1, 319, 320, 282, 361, 323, 324, 325, 1081 326, 327, 328, 329, 330, -1, -1, -1, -1, -1, 1082 -1, 337, 338, 339, -1, -1, -1, -1, -1, -1, 1083 -1, 308, -1, 310, -1, 312, 313, 314, -1, -1, 1084 317, -1, 319, 320, 282, 361, 323, 324, 325, 326, 1085 327, 328, 329, 330, -1, -1, -1, -1, -1, -1, 1086 337, 338, 339, -1, -1, -1, -1, -1, -1, -1, 1087 308, -1, 310, 311, 312, 313, 314, 315, -1, -1, 1088 318, 319, 320, -1, 361, 323, 324, 325, 326, 327, 1089 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 1090 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 1091 348, 349, 350, 351, 352, 353, 354, 282, -1, -1, 1092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1094 -1, -1, -1, 308, -1, 310, 311, 312, 313, 314, 1095 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 1096 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 1097 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 1098 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1099 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1100 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1101 -1, -1, -1, -1, -1, -1, 308, -1, 310, 311, 1102 312, 313, 314, 315, -1, -1, 318, 319, 320, -1, 1103 -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 1104 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 1105 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 1106 352, 353, 354, 282, -1, -1, -1, -1, -1, -1, 1107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1108 -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, 1109 -1, 310, 311, 312, 313, 314, 315, -1, -1, 318, 1110 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 1111 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 1112 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 1113 349, 350, 351, 352, 353, 354, 282, -1, -1, -1, 1114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1116 -1, -1, 308, -1, 310, 311, 312, 313, 314, 315, 1117 -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 1118 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 1119 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1120 346, 347, 348, 349, 350, 351, 352, 353, 354, 282, 1121 -1, -1, 308, -1, 310, -1, 312, 313, 314, -1, 1122 -1, -1, -1, -1, -1, -1, -1, 323, 324, -1, 1123 -1, -1, -1, 329, 330, 308, -1, 310, -1, 312, 1124 313, 314, 338, 339, -1, 318, 319, 320, -1, -1, 1125 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 1126 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1127 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 1128 353, 354, 282, 308, -1, 310, -1, 312, 313, 314, 1129 -1, -1, -1, -1, -1, -1, -1, -1, 323, 324, 1130 -1, -1, -1, -1, 329, 330, -1, -1, 308, -1, 1131 -1, -1, -1, 338, -1, -1, -1, -1, 318, 319, 1132 320, -1, -1, 323, -1, 325, 326, 327, 328, 329, 1133 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 1134 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 1135 350, 351, 352, 353, 354, 282, -1, -1, -1, -1, 1136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1137 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1138 -1, 308, -1, 310, 311, 312, 313, 314, 315, -1, 1139 -1, 282, 319, 320, -1, -1, 323, 324, 325, 326, 1140 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 1141 337, 338, 339, 340, 341, 342, 343, 308, -1, 310, 1142 311, 312, 313, 314, 315, -1, -1, 282, 319, 320, 1143 -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 1144 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 1145 341, 342, 343, 308, -1, 310, -1, 312, 313, 314, 1146 315, -1, -1, 282, 319, 320, -1, -1, 323, 324, 1147 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 1148 335, 336, 337, 338, 339, 340, 341, 342, 343, 308, 1149 -1, 310, -1, 312, 313, 314, 315, -1, -1, 282, 1150 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 1151 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 1152 339, 340, 341, 342, 343, 308, -1, 310, -1, 312, 1153 313, 314, 315, -1, -1, 282, 319, 320, -1, -1, 1154 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 1155 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1156 343, 308, -1, 310, -1, 312, 313, 314, 315, -1, 1157 -1, 282, 319, 320, -1, -1, 323, 324, 325, 326, 1158 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 1159 337, 338, 339, 340, 341, 342, 343, 308, -1, 310, 1160 -1, 312, 313, 314, 315, -1, -1, 282, 319, 320, 1161 -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 1162 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 1163 341, 342, 343, 308, -1, 310, -1, 312, 313, 314, 1164 -1, -1, -1, 282, 319, 320, -1, -1, 323, 324, 1165 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 1166 335, 336, 337, 338, 339, 340, 341, 342, 343, 308, 1167 -1, 310, -1, 312, 313, 314, -1, -1, -1, 282, 1168 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 1169 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 1170 339, 340, 341, 342, 343, 308, -1, 310, -1, 312, 1171 313, 314, -1, -1, -1, 282, 319, 320, -1, -1, 1172 323, 324, 325, 326, 327, 328, 329, 330, -1, -1, 1173 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1174 343, 308, -1, 310, -1, 312, 313, 314, -1, -1, 1175 -1, 282, 319, 320, -1, -1, 323, 324, 325, 326, 1176 327, 328, 329, 330, -1, -1, 333, 334, -1, -1, 1177 337, 338, 339, -1, 341, 342, 343, 308, -1, 310, 1178 -1, 312, 313, 314, -1, -1, -1, 282, 319, 320, 1179 -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 1180 -1, -1, 333, 334, -1, -1, 337, 338, 339, -1, 1181 341, 342, 343, 308, -1, 310, -1, 312, 313, 314, 1182 -1, -1, -1, 282, 319, 320, -1, -1, 323, 324, 1183 325, 326, 327, 328, 329, 330, -1, -1, 333, 334, 1184 -1, -1, 337, 338, 339, -1, 341, 342, 343, 308, 1185 -1, 310, -1, 312, 313, 314, -1, -1, -1, 282, 1186 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 1187 329, 330, -1, -1, -1, -1, -1, -1, 337, 338, 1188 339, -1, 341, 342, 343, 308, -1, 310, -1, 312, 1189 313, 314, -1, -1, -1, 282, 319, 320, -1, -1, 1190 323, 324, 325, 326, 327, 328, 329, 330, -1, -1, 1191 -1, -1, -1, -1, 337, 338, 339, -1, 341, 342, 1192 343, 308, -1, 310, -1, 312, 313, 314, -1, -1, 1193 -1, 282, 319, 320, -1, -1, 323, 324, 325, 326, 1194 327, 328, 329, 330, -1, -1, -1, -1, -1, -1, 1195 337, 338, 339, -1, 341, 342, 343, 308, -1, 310, 1196 -1, 312, 313, 314, -1, -1, -1, 282, 319, 320, 1197 -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 1198 -1, -1, -1, -1, -1, -1, 337, 338, 339, -1, 1199 341, 342, 343, 308, -1, 310, -1, 312, 313, 314, 1200 282, -1, -1, -1, 319, 320, -1, -1, 323, 324, 1201 325, 326, 327, 328, 329, 330, -1, -1, -1, -1, 1202 -1, -1, 337, 338, 339, -1, 308, -1, 310, -1, 1203 312, 313, 314, 282, -1, -1, -1, 319, 320, -1, 1204 -1, 323, 324, 325, 326, 327, 328, 329, 330, -1, 1205 -1, -1, -1, -1, -1, 337, 338, 339, -1, 308, 1206 -1, 310, -1, 312, 313, 314, 282, -1, -1, -1, 1207 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 1208 329, 330, -1, -1, -1, -1, -1, -1, 337, 338, 1209 339, -1, 308, -1, 310, -1, 312, 313, 314, -1, 1210 -1, -1, -1, 319, 320, -1, -1, 323, 324, 325, 1211 326, 327, 328, 329, 330, -1, 257, -1, -1, -1, 1212 -1, 337, 338, 339, 265, 308, -1, 310, -1, 312, 1213 313, 314, -1, 274, -1, -1, -1, -1, -1, -1, 1214 323, 324, -1, 284, -1, 286, 329, 330, 289, 290, 1215 291, 257, -1, 294, 295, 338, -1, 298, -1, 265, 1216 -1, 302, -1, -1, 305, -1, -1, -1, 274, -1, 1217 -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, 1218 286, -1, -1, 289, 290, 291, -1, -1, 294, 295, 1219 -1, -1, 298, -1, -1, -1, 302, -1, -1, 305, 1220}; 1221} 1222final static short YYFINAL=2; 1223final static short YYMAXTOKEN=368; 1224final static String yyname[] = { 1225"end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null, 1226null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1227null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1228null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1229null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1230null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1231null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1232null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1233null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1234null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1235null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1236null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1237null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1238null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1239null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1240null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, 1241null,null,null,"ABSTRACT","ASSERT","BOOLEAN","BREAK","BYTE","CASE","CATCH", 1242"CHAR","CLASS","CONST","CONTINUE","DEFAULT","DO","DOUBLE","ELSE","ENUM", 1243"EXTENDS","FINAL","FINALLY","FLOAT","FOR","GOTO","IF","IMPLEMENTS","IMPORT", 1244"INSTANCEOF","INT","INTERFACE","LONG","NATIVE","NEW","PACKAGE","PRIVATE", 1245"PROTECTED","PUBLIC","RETURN","SHORT","STATIC","STRICTFP","SUPER","SWITCH", 1246"SYNCHRONIZED","THIS","THROW","THROWS","TRANSIENT","TRY","VOID","VOLATILE", 1247"WHILE","L_PAR","R_PAR","L_CURLY","R_CURLY","L_BRACKET","R_BRACKET","SEMICOLON", 1248"COMMA","DOT","MONKEYS_AT","ELLIPSIS","ASSIGN","GT","LT","NOT","COMP", 1249"QUESTION","COLON","EQ","LTE","GTE","NEQ","BOOL_AND","BOOL_OR","INCREMENT", 1250"DECREMENT","PLUS","MINUS","MULTI","DIV","AND","OR","XOR","MOD","L_SHIFT", 1251"R_SHIFT","UR_SHIFT","PLUS_ASSIGN","MINUS_ASSIGN","MULTI_ASSIGN","DIV_ASSIGN", 1252"AND_ASSIGN","OR_ASSIGN","XOR_ASSIGN","MOD_ASSIGN","L_SHIFT_ASSIGN", 1253"R_SHIFT_ASSIGN","UR_SHIFT_ASSIGN","BOOL_LIT","INT_LIT","FLOAT_LIT","CHAR_LIT", 1254"STRING_LIT","NULL_LIT","IDENTIFIER","COMMENT","EOL_COMMENT","DOC_COMMENT", 1255"WHITESPACE","EOL","EOF","ERROR", 1256}; 1257final static String yyrule[] = { 1258"$accept : compilation_unit", 1259"type : primitive_type", 1260"type : reference_type", 1261"primitive_type : numeric_type", 1262"primitive_type : BOOLEAN", 1263"primitive_type : VOID", 1264"numeric_type : integer_type", 1265"numeric_type : floating_point_type", 1266"integer_type : BYTE", 1267"integer_type : SHORT", 1268"integer_type : INT", 1269"integer_type : LONG", 1270"integer_type : CHAR", 1271"floating_point_type : FLOAT", 1272"floating_point_type : DOUBLE", 1273"reference_type : multi_part_id", 1274"reference_type : multi_part_id dims", 1275"reference_type : primitive_type dims", 1276"compilation_unit : package_declaration import_declarations type_declarations", 1277"import_declarations :", 1278"import_declarations : import_declarations import_declaration", 1279"type_declarations :", 1280"type_declarations : type_declarations type_declaration", 1281"package_declaration :", 1282"package_declaration : PACKAGE multi_part_id SEMICOLON", 1283"import_declaration : single_type_import_declaration", 1284"import_declaration : type_import_on_demand_declaration", 1285"single_type_import_declaration : IMPORT static_opt multi_part_id SEMICOLON", 1286"type_import_on_demand_declaration : IMPORT static_opt multi_part_id DOT MULTI SEMICOLON", 1287"static_opt :", 1288"static_opt : STATIC", 1289"type_declaration : class_declaration", 1290"type_declaration : interface_declaration", 1291"type_declaration : SEMICOLON", 1292"class_declaration : modifiers CLASS IDENTIFIER super interfaces class_body", 1293"class_declaration : CLASS IDENTIFIER super interfaces class_body", 1294"super :", 1295"super : EXTENDS multi_part_id", 1296"interfaces :", 1297"interfaces : IMPLEMENTS id_type_list", 1298"id_type_list : multi_part_id", 1299"id_type_list : id_type_list COMMA multi_part_id", 1300"class_body : L_CURLY class_body_declarations R_CURLY", 1301"class_body_declarations :", 1302"class_body_declarations : class_body_declarations class_body_declaration", 1303"class_body_declaration : class_member_declaration", 1304"class_body_declaration : instance_initializer", 1305"class_body_declaration : static_initializer", 1306"class_body_declaration : constructor_declaration", 1307"class_member_declaration : field_declaration", 1308"class_member_declaration : method_declaration", 1309"class_member_declaration : class_declaration", 1310"class_member_declaration : interface_declaration", 1311"class_member_declaration : SEMICOLON", 1312"field_declaration : modifiers type variable_declarators SEMICOLON", 1313"field_declaration : type variable_declarators SEMICOLON", 1314"variable_declarators : variable_declarator", 1315"variable_declarators : variable_declarators COMMA variable_declarator", 1316"variable_declarator : variable_declarator_id variable_initializer_opt", 1317"variable_declarator_id : IDENTIFIER", 1318"variable_declarator_id : IDENTIFIER dims", 1319"variable_initializer_opt :", 1320"variable_initializer_opt : ASSIGN variable_initializer", 1321"variable_initializer : expression", 1322"variable_initializer : array_initializer", 1323"method_declaration : method_header method_body", 1324"method_header : modifiers type method_declarator throws", 1325"method_header : type method_declarator throws", 1326"method_declarator : modern_method_declarator", 1327"method_declarator : modern_method_declarator dims", 1328"modern_method_declarator : IDENTIFIER L_PAR formal_parameter_list_opt R_PAR", 1329"formal_parameter_list_opt :", 1330"formal_parameter_list_opt : formal_parameter_list", 1331"formal_parameter_list : formal_parameter", 1332"formal_parameter_list : formal_parameter_list COMMA formal_parameter", 1333"formal_parameter : final_opt type ellipsis_opt variable_declarator_id", 1334"ellipsis_opt :", 1335"ellipsis_opt : ELLIPSIS", 1336"final_opt :", 1337"final_opt : FINAL", 1338"throws :", 1339"throws : THROWS id_type_list", 1340"method_body : block", 1341"method_body : SEMICOLON", 1342"instance_initializer : block", 1343"static_initializer : modifiers block", 1344"constructor_declaration : modifiers constructor_declarator throws constructor_body", 1345"constructor_declaration : constructor_declarator throws constructor_body", 1346"constructor_declarator : IDENTIFIER L_PAR formal_parameter_list_opt R_PAR", 1347"constructor_body : L_CURLY constructor_block_statements R_CURLY", 1348"constructor_block_statements :", 1349"constructor_block_statements : constructor_block_statements constructor_block_statement", 1350"constructor_block_statement : block_statement", 1351"constructor_block_statement : THIS L_PAR argument_list_opt R_PAR SEMICOLON", 1352"constructor_block_statement : SUPER L_PAR argument_list_opt R_PAR SEMICOLON", 1353"constructor_block_statement : primary DOT SUPER L_PAR argument_list_opt R_PAR SEMICOLON", 1354"constructor_block_statement : multi_part_id DOT SUPER L_PAR argument_list_opt R_PAR SEMICOLON", 1355"interface_declaration : modifiers INTERFACE IDENTIFIER extends_interfaces interface_body", 1356"interface_declaration : INTERFACE IDENTIFIER extends_interfaces interface_body", 1357"extends_interfaces :", 1358"extends_interfaces : EXTENDS id_type_list", 1359"interface_body : L_CURLY interface_member_declarations R_CURLY", 1360"interface_member_declarations :", 1361"interface_member_declarations : interface_member_declarations interface_member_declaration", 1362"interface_member_declaration : field_declaration", 1363"interface_member_declaration : abstract_method_declaration", 1364"interface_member_declaration : class_declaration", 1365"interface_member_declaration : interface_declaration", 1366"interface_member_declaration : SEMICOLON", 1367"abstract_method_declaration : modifiers type method_declarator throws SEMICOLON", 1368"abstract_method_declaration : type method_declarator throws SEMICOLON", 1369"array_initializer : L_CURLY variable_initializers_opt R_CURLY", 1370"variable_initializers_opt :", 1371"variable_initializers_opt : variable_initializers", 1372"variable_initializers_opt : variable_initializers COMMA", 1373"variable_initializers : variable_initializer", 1374"variable_initializers : variable_initializers COMMA variable_initializer", 1375"block : L_CURLY block_statements_opt R_CURLY", 1376"block_statements_opt :", 1377"block_statements_opt : block_statements", 1378"block_statements : block_statement", 1379"block_statements : block_statements block_statement", 1380"block_statement : local_variable_declaration_statement", 1381"block_statement : class_declaration", 1382"block_statement : statement", 1383"local_variable_declaration_statement : local_variable_declaration SEMICOLON", 1384"local_variable_declaration : FINAL type variable_declarators", 1385"local_variable_declaration : type variable_declarators", 1386"statement : labeled_statement", 1387"statement : if_statement", 1388"statement : while_statement", 1389"statement : for_each_statement", 1390"statement : for_statement", 1391"statement : block", 1392"statement : empty_statement", 1393"statement : expression_statement", 1394"statement : switch_statement", 1395"statement : do_statement", 1396"statement : break_statement", 1397"statement : continue_statement", 1398"statement : return_statement", 1399"statement : synchronized_statement", 1400"statement : throw_statement", 1401"statement : try_statement", 1402"statement : assert_statement", 1403"empty_statement : SEMICOLON", 1404"labeled_statement : IDENTIFIER COLON statement", 1405"expression_statement : statement_expression SEMICOLON", 1406"statement_expression : assignment", 1407"statement_expression : pre_increment_expression", 1408"statement_expression : pre_decrement_expression", 1409"statement_expression : post_increment_expression", 1410"statement_expression : post_decrement_expression", 1411"statement_expression : method_invocation", 1412"statement_expression : class_instance_creation_expression", 1413"if_statement : IF L_PAR expression R_PAR statement", 1414"if_statement : IF L_PAR expression R_PAR statement ELSE statement", 1415"switch_statement : SWITCH L_PAR expression R_PAR switch_block", 1416"switch_block : L_CURLY switch_block_statement_groups switch_labels_opt R_CURLY", 1417"switch_block_statement_groups :", 1418"switch_block_statement_groups : switch_block_statement_groups switch_block_statement_group", 1419"switch_block_statement_group : switch_labels block_statements", 1420"switch_labels_opt :", 1421"switch_labels_opt : switch_labels", 1422"switch_labels : switch_label", 1423"switch_labels : switch_labels switch_label", 1424"switch_label : CASE constant_expression COLON", 1425"switch_label : DEFAULT COLON", 1426"while_statement : WHILE L_PAR expression R_PAR statement", 1427"do_statement : DO statement WHILE L_PAR expression R_PAR SEMICOLON", 1428"for_each_statement : FOR L_PAR for_init COLON expression R_PAR statement", 1429"for_statement : FOR L_PAR for_init SEMICOLON expression_opt SEMICOLON for_update R_PAR statement", 1430"for_init :", 1431"for_init : statement_expression_list", 1432"for_init : local_variable_declaration", 1433"expression_opt :", 1434"expression_opt : expression", 1435"for_update :", 1436"for_update : statement_expression_list", 1437"statement_expression_list : statement_expression", 1438"statement_expression_list : statement_expression_list COMMA statement_expression", 1439"break_statement : BREAK identifier_opt SEMICOLON", 1440"identifier_opt :", 1441"identifier_opt : IDENTIFIER", 1442"continue_statement : CONTINUE identifier_opt SEMICOLON", 1443"return_statement : RETURN expression_opt SEMICOLON", 1444"throw_statement : THROW expression SEMICOLON", 1445"synchronized_statement : SYNCHRONIZED L_PAR expression R_PAR block", 1446"try_statement : TRY block catches", 1447"try_statement : TRY block catches_opt finally", 1448"catches_opt :", 1449"catches_opt : catches", 1450"catches : catch_clause", 1451"catches : catches catch_clause", 1452"catch_clause : CATCH L_PAR formal_parameter R_PAR block", 1453"finally : FINALLY block", 1454"assert_statement : ASSERT expression SEMICOLON", 1455"assert_statement : ASSERT expression COLON expression SEMICOLON", 1456"primary : primary_no_new_array", 1457"primary : array_creation_expression", 1458"primary_no_new_array : literal", 1459"primary_no_new_array : multi_part_id DOT CLASS", 1460"primary_no_new_array : multi_part_id dims DOT CLASS", 1461"primary_no_new_array : primitive_type DOT CLASS", 1462"primary_no_new_array : primitive_type dims DOT CLASS", 1463"primary_no_new_array : THIS", 1464"primary_no_new_array : multi_part_id DOT THIS", 1465"primary_no_new_array : L_PAR expression R_PAR", 1466"primary_no_new_array : class_instance_creation_expression", 1467"primary_no_new_array : field_access", 1468"primary_no_new_array : method_invocation", 1469"primary_no_new_array : array_access", 1470"literal : INT_LIT", 1471"literal : FLOAT_LIT", 1472"literal : BOOL_LIT", 1473"literal : CHAR_LIT", 1474"literal : STRING_LIT", 1475"literal : NULL_LIT", 1476"class_instance_creation_expression : NEW multi_part_id L_PAR argument_list_opt R_PAR class_body_opt", 1477"class_instance_creation_expression : primary DOT NEW IDENTIFIER L_PAR argument_list_opt R_PAR class_body_opt", 1478"class_instance_creation_expression : multi_part_id DOT NEW IDENTIFIER L_PAR argument_list_opt R_PAR class_body_opt", 1479"argument_list_opt :", 1480"argument_list_opt : argument_list", 1481"argument_list : expression", 1482"argument_list : argument_list COMMA expression", 1483"class_body_opt :", 1484"class_body_opt : class_body", 1485"array_creation_expression : NEW primitive_type dim_exprs dims", 1486"array_creation_expression : NEW primitive_type dim_exprs", 1487"array_creation_expression : NEW multi_part_id dim_exprs dims", 1488"array_creation_expression : NEW multi_part_id dim_exprs", 1489"array_creation_expression : NEW primitive_type dims array_initializer", 1490"array_creation_expression : NEW multi_part_id dims array_initializer", 1491"dim_exprs : dim_expr", 1492"dim_exprs : dim_exprs dim_expr", 1493"dim_expr : L_BRACKET expression R_BRACKET", 1494"dims : L_BRACKET R_BRACKET", 1495"dims : dims L_BRACKET R_BRACKET", 1496"field_access : primary DOT IDENTIFIER", 1497"field_access : SUPER DOT IDENTIFIER", 1498"field_access : multi_part_id DOT SUPER DOT IDENTIFIER", 1499"method_invocation : multi_part_id DOT IDENTIFIER L_PAR argument_list_opt R_PAR", 1500"method_invocation : IDENTIFIER L_PAR argument_list_opt R_PAR", 1501"method_invocation : primary DOT IDENTIFIER L_PAR argument_list_opt R_PAR", 1502"method_invocation : SUPER DOT IDENTIFIER L_PAR argument_list_opt R_PAR", 1503"method_invocation : multi_part_id DOT SUPER DOT IDENTIFIER L_PAR argument_list_opt R_PAR", 1504"array_access : multi_part_id L_BRACKET expression R_BRACKET", 1505"array_access : primary_no_new_array L_BRACKET expression R_BRACKET", 1506"postfix_expression : primary", 1507"postfix_expression : multi_part_id", 1508"postfix_expression : post_increment_expression", 1509"postfix_expression : post_decrement_expression", 1510"post_increment_expression : postfix_expression INCREMENT", 1511"post_decrement_expression : postfix_expression DECREMENT", 1512"unary_expression : pre_increment_expression", 1513"unary_expression : pre_decrement_expression", 1514"unary_expression : PLUS unary_expression", 1515"unary_expression : MINUS unary_expression", 1516"unary_expression : unary_expression_not_plus_minus", 1517"pre_increment_expression : INCREMENT unary_expression", 1518"pre_decrement_expression : DECREMENT unary_expression", 1519"unary_expression_not_plus_minus : postfix_expression", 1520"unary_expression_not_plus_minus : COMP unary_expression", 1521"unary_expression_not_plus_minus : NOT unary_expression", 1522"unary_expression_not_plus_minus : cast_expression", 1523"cast_expression : L_PAR primitive_type dims R_PAR unary_expression", 1524"cast_expression : L_PAR primitive_type R_PAR unary_expression", 1525"cast_expression : L_PAR expression R_PAR unary_expression_not_plus_minus", 1526"cast_expression : L_PAR multi_part_id dims R_PAR unary_expression_not_plus_minus", 1527"multicaptive_expression : unary_expression", 1528"multicaptive_expression : multicaptive_expression MULTI unary_expression", 1529"multicaptive_expression : multicaptive_expression DIV unary_expression", 1530"multicaptive_expression : multicaptive_expression MOD unary_expression", 1531"additive_expression : multicaptive_expression", 1532"additive_expression : additive_expression PLUS multicaptive_expression", 1533"additive_expression : additive_expression MINUS multicaptive_expression", 1534"shift_expression : additive_expression", 1535"shift_expression : shift_expression L_SHIFT additive_expression", 1536"shift_expression : shift_expression R_SHIFT additive_expression", 1537"shift_expression : shift_expression UR_SHIFT additive_expression", 1538"relational_expression : shift_expression", 1539"relational_expression : relational_expression LT shift_expression", 1540"relational_expression : relational_expression GT shift_expression", 1541"relational_expression : relational_expression LTE shift_expression", 1542"relational_expression : relational_expression GTE shift_expression", 1543"relational_expression : relational_expression INSTANCEOF reference_type", 1544"equality_expression : relational_expression", 1545"equality_expression : equality_expression EQ relational_expression", 1546"equality_expression : equality_expression NEQ relational_expression", 1547"and_expression : equality_expression", 1548"and_expression : and_expression AND equality_expression", 1549"exclusive_or_expression : and_expression", 1550"exclusive_or_expression : exclusive_or_expression XOR and_expression", 1551"inclusive_or_expression : exclusive_or_expression", 1552"inclusive_or_expression : inclusive_or_expression OR exclusive_or_expression", 1553"conditional_and_expression : inclusive_or_expression", 1554"conditional_and_expression : conditional_and_expression BOOL_AND inclusive_or_expression", 1555"conditional_or_expression : conditional_and_expression", 1556"conditional_or_expression : conditional_or_expression BOOL_OR conditional_and_expression", 1557"conditional_expression : conditional_or_expression", 1558"conditional_expression : conditional_or_expression QUESTION expression COLON conditional_expression", 1559"assignment_expression : conditional_expression", 1560"assignment_expression : assignment", 1561"assignment : left_hand_side assignment_operator assignment_expression", 1562"left_hand_side : multi_part_id", 1563"left_hand_side : field_access", 1564"left_hand_side : array_access", 1565"assignment_operator : ASSIGN", 1566"assignment_operator : PLUS_ASSIGN", 1567"assignment_operator : MINUS_ASSIGN", 1568"assignment_operator : MULTI_ASSIGN", 1569"assignment_operator : DIV_ASSIGN", 1570"assignment_operator : AND_ASSIGN", 1571"assignment_operator : OR_ASSIGN", 1572"assignment_operator : XOR_ASSIGN", 1573"assignment_operator : MOD_ASSIGN", 1574"assignment_operator : L_SHIFT_ASSIGN", 1575"assignment_operator : R_SHIFT_ASSIGN", 1576"assignment_operator : UR_SHIFT_ASSIGN", 1577"expression : assignment_expression", 1578"constant_expression : expression", 1579"modifiers : modifier", 1580"modifiers : modifiers modifier", 1581"modifier : PUBLIC", 1582"modifier : PROTECTED", 1583"modifier : PRIVATE", 1584"modifier : ABSTRACT", 1585"modifier : STATIC", 1586"modifier : FINAL", 1587"modifier : SYNCHRONIZED", 1588"modifier : NATIVE", 1589"modifier : STRICTFP", 1590"modifier : TRANSIENT", 1591"modifier : VOLATILE", 1592"multi_part_id : IDENTIFIER", 1593"multi_part_id : multi_part_id DOT IDENTIFIER", 1594}; 1595 1596 1598private Scanner scanner; 1599private ASTContext astContext; 1600 1601private int yylex() { 1602 try { 1603 int type=scanner.yylex(); 1604 ((ScannerToken)yylval).setContext(astContext); 1605 return type; 1606 } 1607 catch (IOException e) { 1608 } 1610 return -1; 1611} 1612 1613private void yyerror(String s) { 1614 System.err.println("YYError: "+s); 1615} 1616 1617public Parser(ASTContext context, Reader in, String filename) { 1618 scanner = new Scanner(in); 1619 scanner.setParser(this); 1620 astContext=context; 1621} 1622 1623public Parser(InputStream in) { 1624 scanner = new Scanner(in); 1625 scanner.setParser(this); 1626} 1627 1628public static void main(String argv[]) { 1629 if (argv.length == 0) { 1630 System.out.println("Usage : java Scanner <inputfile>"); 1631 } 1632 else { 1633 for (int i = 0; i < argv.length; i++) { 1634 Parser parser = null; 1635 try { 1636 int status; 1637 1638 System.out.println("File: "+argv[i]); 1639 parser = new Parser(null, new FileReader(argv[i]), argv[i] ); 1640 status=parser.yyparse(); 1642 if (status!=0) 1643 System.exit(status); 1644 } 1645 catch (FileNotFoundException e) { 1646 System.out.println("File not found : \""+argv[i]+"\""); 1647 } 1648 catch (IOException e) { 1649 System.out.println("IO error scanning file \""+argv[i]+"\""); 1650 System.out.println(e); 1651 } 1652 catch (Exception e) { 1653 System.out.println("Unexpected exception:"); 1654 e.printStackTrace(); 1655 } 1656 } 1657 } 1658} 1659 1660public ASTree getASTree() { 1661 return yyval; 1662} 1663 1664public Token[] getTokens() { 1665 return scanner.getTokens(); 1666} 1667 1668public int parse(boolean doAttribution) throws CompilerException { 1669 return yyparse(); 1670} 1671 1672void yylexdebug(int state,int ch) 1677{ 1678String s=null; 1679 if (ch < 0) ch=0; 1680 if (ch <= YYMAXTOKEN) s = yyname[ch]; if (s==null) 1683 s = "illegal-symbol"; 1684 debug("state "+state+", reading "+ch+" ("+s+")"); 1685} 1686 1687 1688 1689 1690 1691int yyn; int yym; int yystate; String yys; 1697 1698int yyparse() 1702{ 1703boolean doaction; 1704 init_stacks(); 1705 yynerrs = 0; 1706 yyerrflag = 0; 1707 yychar = -1; yystate=0; state_push(yystate); while (true) { 1712 doaction=true; 1713 if (yydebug) debug("loop"); 1714 for (yyn=yydefred[yystate];yyn==0;yyn=yydefred[yystate]) 1716 { 1717 if (yydebug) debug("yyn:"+yyn+" state:"+yystate+" yychar:"+yychar); 1718 if (yychar < 0) { 1720 yychar = yylex(); if (yydebug) debug(" next yychar:"+yychar); 1722 if (yychar < 0) { 1725 yychar = 0; if (yydebug) 1727 yylexdebug(yystate,yychar); 1728 } 1729 } yyn = yysindex[yystate]; if ((yyn != 0) && (yyn += yychar) >= 0 && 1732 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 1733 { 1734 if (yydebug) 1735 debug("state "+yystate+", shifting to state "+yytable[yyn]); 1736 yystate = yytable[yyn]; state_push(yystate); val_push(yylval); yychar = -1; if (yyerrflag > 0) --yyerrflag; doaction=false; break; } 1746 1747 yyn = yyrindex[yystate]; if ((yyn !=0 ) && (yyn += yychar) >= 0 && 1749 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 1750 { if (yydebug) debug("reduce"); 1752 yyn = yytable[yyn]; 1753 doaction=true; break; } 1756 else { 1758 if (yyerrflag==0) 1759 { 1760 yyerror("syntax error"); 1761 yynerrs++; 1762 } 1763 if (yyerrflag < 3) { 1765 yyerrflag = 3; 1766 while (true) { 1768 if (stateptr<0) { 1770 yyerror("stack underflow. aborting..."); return 1; 1772 } 1773 yyn = yysindex[state_peek(0)]; 1774 if ((yyn != 0) && (yyn += YYERRCODE) >= 0 && 1775 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) 1776 { 1777 if (yydebug) 1778 debug("state "+state_peek(0)+", error recovery shifting to state "+yytable[yyn]+" "); 1779 yystate = yytable[yyn]; 1780 state_push(yystate); 1781 val_push(yylval); 1782 doaction=false; 1783 break; 1784 } 1785 else 1786 { 1787 if (yydebug) 1788 debug("error recovery discarding state "+state_peek(0)+" "); 1789 if (stateptr<0) { 1791 yyerror("Stack underflow. aborting..."); return 1; 1793 } 1794 state_pop(); 1795 val_pop(); 1796 } 1797 } 1798 } 1799 else { 1801 if (yychar == 0) 1802 return 1; if (yydebug) 1804 { 1805 yys = null; 1806 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 1807 if (yys == null) yys = "illegal-symbol"; 1808 if (yydebug) 1809 debug("state "+yystate+", error recovery discards token "+yychar+" ("+yys+")"); 1810 } 1811 yychar = -1; } 1813 } } if (!doaction) continue; yym = yylen[yyn]; if (yydebug) 1819 debug("state "+yystate+", reducing "+yym+" by rule "+yyn+" ("+yyrule[yyn]+")"); 1820 if (yym>0) yyval = val_peek(yym-1); switch(yyn) 1823 { 1824case 3: 1826{ yyval=new ASTreeNode(astContext,PRIMITIVE_TYPE,val_peek(0)); } 1828break; 1829case 4: 1830{ yyval=new ASTreeNode(astContext,PRIMITIVE_TYPE,val_peek(0)); } 1832break; 1833case 5: 1834{ yyval=new ASTreeNode(astContext,PRIMITIVE_TYPE,val_peek(0)); } 1836break; 1837case 16: 1838{ yyval = new ASTreeNode(astContext,REFERENCE_TYPE,val_peek(1),val_peek(0)); } 1840break; 1841case 17: 1842{ yyval = new ASTreeNode(astContext,REFERENCE_TYPE,val_peek(1),val_peek(0)); } 1844break; 1845case 18: 1846{ yyval = new ASTreeNode(astContext,COMPILATION_UNIT,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 1848break; 1849case 19: 1850{ yyval = null; } 1852break; 1853case 20: 1854{ if (val_peek(1)==null) yyval=new ASTreeNode(astContext,IMPORT_DECLARATIONS,val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 1856break; 1857case 21: 1858{ yyval = null; } 1860break; 1861case 22: 1862{ if (val_peek(1)==null) yyval=new ASTreeNode(astContext,TYPE_DECLARATIONS,val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 1864break; 1865case 23: 1866{ yyval = null; } 1868break; 1869case 24: 1870{ yyval = new ASTreeNode(astContext,PACKAGE_DECLARATION,val_peek(2),val_peek(0),val_peek(1)); } 1872break; 1873case 27: 1874{ yyval = new ASTreeNode(astContext,SINGLE_TYPE_IMPORT,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(1)}); } 1876break; 1877case 28: 1878{ yyval = new ASTreeNode(astContext,TYPE_IMPORT_ON_DEMAND,val_peek(5),val_peek(0),new ASTree[]{val_peek(4),val_peek(3)}); } 1880break; 1881case 29: 1882{ yyval=null; } 1884break; 1885case 34: 1886{ yyval = new ASTreeNode(astContext,CLASS_DECLARATION,val_peek(5),val_peek(0),new ASTree[]{val_peek(5),val_peek(3),null,val_peek(2),val_peek(1),val_peek(0)}); } 1888break; 1889case 35: 1890{ yyval = new ASTreeNode(astContext,CLASS_DECLARATION,val_peek(4),val_peek(0),new ASTree[]{null,val_peek(3),null,val_peek(2),val_peek(1),val_peek(0)}); } 1892break; 1893case 36: 1894{ yyval=null; } 1896break; 1897case 37: 1898{ yyval=new ASTreeNode(astContext,SUPER_,val_peek(1),val_peek(0),val_peek(0)); } 1900break; 1901case 38: 1902{ yyval=null; } 1904break; 1905case 39: 1906{ yyval = val_peek(0).setFirstToken(val_peek(1)); } 1908break; 1909case 40: 1910{ yyval = new ASTreeNode(astContext,TYPE_LIST,val_peek(0),val_peek(0),val_peek(0)); } 1912break; 1913case 41: 1914{ yyval=val_peek(2).addSubTree(val_peek(0)); } 1916break; 1917case 42: 1918{ if (val_peek(1)!=null) yyval=val_peek(1).setFirstAndLastToken(val_peek(2),val_peek(0)); 1920 else yyval=new ASTreeNode(astContext,CLASS_BODY_DECLARATIONS,val_peek(2),val_peek(0),new ASTree[0]); } 1921break; 1922case 43: 1923{yyval=null; } 1925break; 1926case 44: 1927{ if (val_peek(1)==null) yyval=new ASTreeNode(astContext,CLASS_BODY_DECLARATIONS,val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 1929break; 1930case 54: 1931{ yyval = new ASTreeNode(astContext,FIELD_DECLARATION,val_peek(3),val_peek(0),new ASTree[]{val_peek(3),val_peek(2),val_peek(1)}); } 1933break; 1934case 55: 1935{ yyval = new ASTreeNode(astContext,FIELD_DECLARATION,val_peek(2),val_peek(0),new ASTree[]{null,val_peek(2),val_peek(1)}); } 1937break; 1938case 57: 1939{ if (val_peek(2).getType()!=VARIABLE_DECLARATORS) yyval=new ASTreeNode(astContext,VARIABLE_DECLARATORS,val_peek(2),val_peek(0)); 1941 else yyval=val_peek(2).addSubTree(val_peek(0)); } 1942break; 1943case 58: 1944{ yyval=val_peek(1).addSubTree(val_peek(0)); } 1946break; 1947case 59: 1948{ yyval=new ASTreeNode(astContext,VARIABLE_DECLARATOR,val_peek(0),val_peek(0),new ASTree[]{val_peek(0),null}); } 1950break; 1951case 60: 1952{ yyval=new ASTreeNode(astContext,VARIABLE_DECLARATOR,val_peek(1),val_peek(0),new ASTree[]{val_peek(1),val_peek(0)}); } 1954break; 1955case 61: 1956{ yyval=null; } 1958break; 1959case 62: 1960{ yyval=val_peek(0); } 1962break; 1963case 65: 1964{ yyval=val_peek(1).addSubTree(val_peek(0)); } 1966break; 1967case 66: 1968{ yyval=new ASTreeNode(astContext,METHOD_DECLARATION,new ASTree[]{val_peek(3),null,val_peek(2),val_peek(1),val_peek(0)}); } 1970break; 1971case 67: 1972{ yyval=new ASTreeNode(astContext,METHOD_DECLARATION,new ASTree[]{null,null,val_peek(2),val_peek(1),val_peek(0)}); } 1974break; 1975case 68: 1976{ yyval=val_peek(0).addSubTree(null); } 1978break; 1979case 69: 1980{ yyval=val_peek(1).addSubTree(val_peek(0)); } 1982break; 1983case 70: 1984{ yyval=new ASTreeNode(astContext,METHOD_DECLARATOR,val_peek(3),val_peek(0),new ASTree[]{val_peek(3),val_peek(1)}); } 1986break; 1987case 71: 1988{ yyval=null; } 1990break; 1991case 73: 1992{ yyval=new ASTreeNode(astContext,FORMAL_PARAMETER_LIST,val_peek(0)); } 1994break; 1995case 74: 1996{ yyval=val_peek(2).addSubTree(val_peek(0)); } 1998break; 1999case 75: 2000{ yyval=new ASTreeNode(astContext,FORMAL_PARAMETER,new ASTree[]{val_peek(3),val_peek(2),val_peek(1),val_peek(0)}); } 2002break; 2003case 76: 2004{ yyval=null;} 2006break; 2007case 78: 2008{ yyval=null; } 2010break; 2011case 80: 2012{ yyval=null; } 2014break; 2015case 81: 2016{ yyval=val_peek(0).setFirstToken(val_peek(1)); } 2018break; 2019case 84: 2020{ yyval=new ASTreeNode(astContext,INSTANCE_INITIALIZER,val_peek(0),val_peek(0),new ASTree[]{null,val_peek(0)}); } 2022break; 2023case 85: 2024{ yyval=new ASTreeNode(astContext,STATIC_INITIALIZER,val_peek(1),val_peek(0)); } 2026break; 2027case 86: 2028{ yyval=new ASTreeNode(astContext,CONSTRUCTOR_DECLARATION,new ASTree[]{val_peek(3),null,null,val_peek(2),val_peek(1),val_peek(0)}); } 2030break; 2031case 87: 2032{ yyval=new ASTreeNode(astContext,CONSTRUCTOR_DECLARATION,val_peek(2),val_peek(0),new ASTree[]{null,null,null,val_peek(2),val_peek(1),val_peek(0)}); } 2034break; 2035case 88: 2036{ yyval=new ASTreeNode(astContext,CONSTRUCTOR_DECLARATOR,val_peek(3),val_peek(0),new ASTree[]{val_peek(3),val_peek(1)}); } 2038break; 2039case 89: 2040{ if (val_peek(1)!=null) yyval=val_peek(1).setFirstAndLastToken(val_peek(2),val_peek(0)); 2042 else yyval=new ASTreeNode(astContext,BLOCK_STATEMENTS,val_peek(2),val_peek(0),(ASTree[])null); } 2043break; 2044case 90: 2045{ yyval=null; } 2047break; 2048case 91: 2049{ if (val_peek(1)==null) yyval=new ASTreeNode(astContext,BLOCK_STATEMENTS,val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 2051break; 2052case 93: 2053{ yyval=new ASTreeNode(astContext,EXPLICIT_CONSTRUCTOR_INVOCATION,val_peek(4),val_peek(0),new ASTree[]{null,null,val_peek(4),val_peek(2)}); } 2055break; 2056case 94: 2057{ yyval=new ASTreeNode(astContext,EXPLICIT_CONSTRUCTOR_INVOCATION,val_peek(4),val_peek(0),new ASTree[]{null,null,val_peek(4),val_peek(2)}); } 2059break; 2060case 95: 2061{ yyval=new ASTreeNode(astContext,EXPLICIT_CONSTRUCTOR_INVOCATION,val_peek(6),val_peek(0),new ASTree[]{val_peek(6),null,val_peek(4),val_peek(2)}); } 2063break; 2064case 96: 2065{ yyval=new ASTreeNode(astContext,EXPLICIT_CONSTRUCTOR_INVOCATION,val_peek(6),val_peek(0),new ASTree[]{val_peek(6),null,val_peek(4),val_peek(2)}); } 2067break; 2068case 97: 2069{ yyval=new ASTreeNode(astContext,INTERFACE_DECLARATION,val_peek(4),val_peek(0),new ASTree[]{val_peek(4),val_peek(2),null,null,val_peek(1),val_peek(0)}); } 2071break; 2072case 98: 2073{ yyval=new ASTreeNode(astContext,INTERFACE_DECLARATION,val_peek(3),val_peek(0),new ASTree[]{null,val_peek(2),null,null,val_peek(1),val_peek(0)}); } 2075break; 2076case 99: 2077{ yyval=null; } 2079break; 2080case 100: 2081{ yyval=val_peek(0).setFirstToken(val_peek(1)); } 2083break; 2084case 101: 2085{ if (val_peek(1)!=null) yyval=val_peek(1).setFirstAndLastToken(val_peek(2),val_peek(0)); 2087 else yyval=new ASTreeNode(astContext,INTERFACE_MEMBER_DECLARATIONS,val_peek(2),val_peek(0),new ASTree[0]); } 2088break; 2089case 102: 2090{ yyval=null; } 2092break; 2093case 103: 2094{ if (val_peek(1)==null) yyval=new ASTreeNode(astContext,INTERFACE_MEMBER_DECLARATIONS,val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 2096break; 2097case 109: 2098{ yyval=new ASTreeNode(astContext,METHOD_DECLARATION,val_peek(4),val_peek(0),new ASTree[]{val_peek(4),null,val_peek(3),val_peek(2),val_peek(1),val_peek(0)}); } 2100break; 2101case 110: 2102{ yyval=new ASTreeNode(astContext,METHOD_DECLARATION,val_peek(3),val_peek(0),new ASTree[]{null,null,val_peek(3),val_peek(2),val_peek(1),val_peek(0)}); } 2104break; 2105case 111: 2106{ yyval=new ASTreeNode(astContext,ARRAY_INITIALIZER,val_peek(2),val_peek(0),val_peek(1)); } 2108break; 2109case 112: 2110{ yyval=null; } 2112break; 2113case 114: 2114{ yyval=val_peek(1); } 2116break; 2117case 116: 2118{ if (val_peek(2).getType()!=VARIABLE_INITIALIZERS) yyval=new ASTreeNode(astContext,VARIABLE_INITIALIZERS,val_peek(2),val_peek(0)); 2120 else yyval=val_peek(2).addSubTree(val_peek(0)); } 2121break; 2122case 117: 2123{ if (val_peek(1)!=null) yyval=val_peek(1).setFirstAndLastToken(val_peek(2),val_peek(0)); 2125 else yyval=new ASTreeNode(astContext,BLOCK_STATEMENTS,val_peek(2),val_peek(0),(ASTree[])null); } 2126break; 2127case 118: 2128{ yyval=null; } 2130break; 2131case 120: 2132{ yyval=new ASTreeNode(astContext,BLOCK_STATEMENTS,val_peek(0)); } 2134break; 2135case 121: 2136{ yyval=val_peek(1).addSubTree(val_peek(0)); } 2138break; 2139case 125: 2140{ yyval=val_peek(1).setLastToken(val_peek(0)); } 2142break; 2143case 126: 2144{ yyval=new ASTreeNode(astContext,LOCAL_VARIABLE_DECLARATION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2146break; 2147case 127: 2148{ yyval=new ASTreeNode(astContext,LOCAL_VARIABLE_DECLARATION,new ASTree[]{null,val_peek(1),val_peek(0)}); } 2150break; 2151case 145: 2152{ yyval=new ASTreeNode(astContext,EMPTY_STATEMENT,val_peek(0),val_peek(0),(ASTree[])null); } 2154break; 2155case 146: 2156{ yyval=new ASTreeNode(astContext,LABELED_STATEMENT,val_peek(2),val_peek(0)); } 2158break; 2159case 147: 2160{ yyval=new ASTreeNode(astContext,EXPRESSION_STATEMENT,val_peek(1),val_peek(0),val_peek(1)); } 2162break; 2163case 155: 2164{ yyval=new ASTreeNode(astContext,IF_STATEMENT,val_peek(4),val_peek(0),new ASTree[]{val_peek(2),val_peek(0),null}); } 2166break; 2167case 156: 2168{ yyval=new ASTreeNode(astContext,IF_STATEMENT,val_peek(6),val_peek(0),new ASTree[]{val_peek(4),val_peek(2),val_peek(0)}); } 2170break; 2171case 157: 2172{ yyval=new ASTreeNode(astContext,SWITCH_STATEMENT,val_peek(4),val_peek(0),new ASTree[]{val_peek(2),val_peek(0)}); } 2174break; 2175case 158: 2176{ yyval=new ASTreeNode(astContext,SWITCH_BLOCK,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(1)}); } 2178break; 2179case 159: 2180{ yyval=null; } 2182break; 2183case 160: 2184{ if (val_peek(1)==null) yyval=new ASTreeNode(astContext,SWITCH_BLOCK_STATEMENT_GROUPS,val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 2186break; 2187case 161: 2188{ yyval=new ASTreeNode(astContext,SWITCH_BLOCK_STATEMENT_GROUP,val_peek(1),val_peek(0)); } 2190break; 2191case 162: 2192{ yyval=null; } 2194break; 2195case 165: 2196{ if (val_peek(1).getType()!=SWITCH_LABELS) yyval=new ASTreeNode(astContext,SWITCH_LABELS,val_peek(1),val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 2198break; 2199case 166: 2200{ yyval=new ASTreeNode(astContext,SWITCH_LABEL,val_peek(2),val_peek(0),new ASTree[]{val_peek(1)}); } 2202break; 2203case 167: 2204{ yyval=new ASTreeNode(astContext,SWITCH_LABEL,val_peek(1),val_peek(0),new ASTree[]{null}); } 2206break; 2207case 168: 2208{ yyval=new ASTreeNode(astContext,WHILE_STATEMENT,val_peek(4),val_peek(0),new ASTree[]{val_peek(2),val_peek(0)}); } 2210break; 2211case 169: 2212{ yyval=new ASTreeNode(astContext,DO_STATEMENT,val_peek(6),val_peek(0),new ASTree[]{val_peek(5),val_peek(2)}); } 2214break; 2215case 170: 2216{ 2218 ASTree[] fparts=val_peek(4).getSubTrees(); 2219 ASTree fpar=new ASTreeNode(astContext,FORMAL_PARAMETER,new ASTree[]{fparts[0],fparts[1],null,fparts[2]}); 2220 yyval=new ASTreeNode(astContext,FOR_EACH_STATEMENT,val_peek(6),val_peek(0),new ASTree[]{fpar,val_peek(2),val_peek(0)}); } 2221break; 2222case 171: 2223{ yyval=new ASTreeNode(astContext,FOR_STATEMENT,val_peek(8),val_peek(0),new ASTree[]{val_peek(6),val_peek(4),val_peek(2),val_peek(0)}); } 2225break; 2226case 172: 2227{ yyval=null; } 2229break; 2230case 175: 2231{ yyval=null; } 2233break; 2234case 177: 2235{ yyval=null; } 2237break; 2238case 180: 2239{ if (val_peek(2).getType()!=STATEMENT_EXPRESSION_LIST) yyval=new ASTreeNode(astContext,STATEMENT_EXPRESSION_LIST,val_peek(2),val_peek(0)); 2241 else yyval=val_peek(2).addSubTree(val_peek(0)); } 2242break; 2243case 181: 2244{ yyval=new ASTreeNode(astContext,BREAK_STATEMENT,val_peek(2),val_peek(0),new ASTree[]{val_peek(1)}); } 2246break; 2247case 182: 2248{ yyval=null; } 2250break; 2251case 184: 2252{ yyval=new ASTreeNode(astContext,CONTINUE_STATEMENT,val_peek(2),val_peek(0),new ASTree[]{val_peek(1)}); } 2254break; 2255case 185: 2256{ yyval=new ASTreeNode(astContext,RETURN_STATEMENT,val_peek(2),val_peek(0),new ASTree[]{val_peek(1)}); } 2258break; 2259case 186: 2260{ yyval=new ASTreeNode(astContext,THROW_STATEMENT,val_peek(2),val_peek(0),new ASTree[]{val_peek(1)}); } 2262break; 2263case 187: 2264{ yyval=new ASTreeNode(astContext,SYNCHRONIZE_STATEMENT,val_peek(4),val_peek(0),new ASTree[]{val_peek(2),val_peek(0)}); } 2266break; 2267case 188: 2268{ yyval=new ASTreeNode(astContext,TRY_STATEMENT,val_peek(2),val_peek(0),new ASTree[]{val_peek(1),val_peek(0),null}); } 2270break; 2271case 189: 2272{ yyval=new ASTreeNode(astContext,TRY_STATEMENT,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2274break; 2275case 190: 2276{ yyval=null; } 2278break; 2279case 193: 2280{ if (val_peek(1).getType()!=CATCHES) yyval=new ASTreeNode(astContext,CATCHES,val_peek(1),val_peek(0)); else yyval=val_peek(1).addSubTree(val_peek(0)); } 2282break; 2283case 194: 2284{ yyval=new ASTreeNode(astContext,CATCH_CLAUSE,val_peek(4),val_peek(0),new ASTree[]{val_peek(2),val_peek(0)}); } 2286break; 2287case 195: 2288{ yyval=val_peek(0); } 2290break; 2291case 196: 2292{ yyval=new ASTreeNode(astContext,ASSERT_STATEMENT,val_peek(2),val_peek(0),new ASTree[]{val_peek(1),null}); } 2294break; 2295case 197: 2296{ yyval=new ASTreeNode(astContext,ASSERT_STATEMENT,val_peek(4),val_peek(0),new ASTree[]{val_peek(3),val_peek(1)}); } 2298break; 2299case 201: 2300{ yyval = new ASTreeNode(astContext,PRIMARY_CLASS,val_peek(2),val_peek(0),new ASTree[]{val_peek(2)}); } 2302break; 2303case 202: 2304{ yyval = new ASTreeNode(astContext,PRIMARY_CLASS,val_peek(3),val_peek(0),new ASTree[]{new ASTreeNode(astContext,REFERENCE_TYPE,val_peek(3),val_peek(2))}); } 2306break; 2307case 203: 2308{ yyval = new ASTreeNode(astContext,PRIMARY_CLASS,val_peek(2),val_peek(0),new ASTree[]{val_peek(2)}); } 2310break; 2311case 204: 2312{ yyval = new ASTreeNode(astContext,PRIMARY_CLASS,val_peek(3),val_peek(0),new ASTree[]{new ASTreeNode(astContext,REFERENCE_TYPE,val_peek(3),val_peek(2))}); } 2314break; 2315case 205: 2316{ yyval = new ASTreeNode(astContext,PRIMARY_THIS,val_peek(0),val_peek(0),(ASTree[])null); } 2318break; 2319case 206: 2320{ yyval = new ASTreeNode(astContext,PRIMARY_THIS,val_peek(2),val_peek(0),val_peek(2)); } 2322break; 2323case 207: 2324{ yyval = new ASTreeNode(astContext,COMPLEX_EXPRESSION,val_peek(2),val_peek(0),val_peek(1)); } 2326break; 2327case 218: 2328{ yyval=new ASTreeNode(astContext,CLASS_INSTANCE_CREATION_EXPRESSION,val_peek(5),val_peek(0)==null?val_peek(1):val_peek(0),new ASTree[]{null,null,val_peek(4),val_peek(2),val_peek(0)}); } 2330break; 2331case 219: 2332{ yyval=new ASTreeNode(astContext,CLASS_INSTANCE_CREATION_EXPRESSION,val_peek(7),val_peek(0)==null?val_peek(1):val_peek(0),new ASTree[]{val_peek(7),null,val_peek(4),val_peek(2),val_peek(0)}); } 2334break; 2335case 220: 2336{ yyval=new ASTreeNode(astContext,CLASS_INSTANCE_CREATION_EXPRESSION,val_peek(7),val_peek(0)==null?val_peek(1):val_peek(0),new ASTree[]{val_peek(7),null,val_peek(4),val_peek(2),val_peek(0)}); } 2338break; 2339case 221: 2340{ yyval=null; } 2342break; 2343case 224: 2344{ if (val_peek(2).getType()!=ARGUMENT_LIST) yyval=new ASTreeNode(astContext,ARGUMENT_LIST,val_peek(2),val_peek(0)); else yyval=val_peek(2).addSubTree(val_peek(0)); } 2346break; 2347case 225: 2348{ yyval=null; } 2350break; 2351case 227: 2352{ yyval=new ASTreeNode(astContext,ARRAY_CREATION_EXPRESSION,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(1),val_peek(0),null}); } 2354break; 2355case 228: 2356{ yyval=new ASTreeNode(astContext,ARRAY_CREATION_EXPRESSION,val_peek(2),val_peek(0),new ASTree[]{val_peek(1),val_peek(0),null,null}); } 2358break; 2359case 229: 2360{ yyval=new ASTreeNode(astContext,ARRAY_CREATION_EXPRESSION,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(1),val_peek(0),null}); } 2362break; 2363case 230: 2364{ yyval=new ASTreeNode(astContext,ARRAY_CREATION_EXPRESSION,val_peek(2),val_peek(0),new ASTree[]{val_peek(1),val_peek(0),null,null}); } 2366break; 2367case 231: 2368{ yyval=new ASTreeNode(astContext,ARRAY_CREATION_EXPRESSION,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),null,val_peek(1),val_peek(0)}); } 2370break; 2371case 232: 2372{ yyval=new ASTreeNode(astContext,ARRAY_CREATION_EXPRESSION,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),null,val_peek(1),val_peek(0)}); } 2374break; 2375case 233: 2376{ yyval=new ASTreeNode(astContext,DIM_EXPRS,val_peek(0)); yyval.setFirstToken(val_peek(0).getFirstToken()-1); yyval.setLastToken(val_peek(0).getLastToken()+1); } 2378break; 2379case 234: 2380{ yyval=val_peek(1).addSubTree(val_peek(0)); yyval.setLastToken(val_peek(0).getLastToken()+1); } 2382break; 2383case 235: 2384{ yyval = val_peek(1); } 2386break; 2387case 236: 2388{ yyval=new ASTreeNode(astContext,DIMS,val_peek(1),val_peek(0),(ASTree[])null); } 2390break; 2391case 237: 2392{ yyval=val_peek(2).setLastToken(val_peek(0)); } 2394break; 2395case 238: 2396{ yyval= new ASTreeNode(astContext,FIELD_ACCESS,val_peek(2),val_peek(0),new ASTree[]{val_peek(2),null,val_peek(0)}); } 2398break; 2399case 239: 2400{ yyval= new ASTreeNode(astContext,FIELD_ACCESS,val_peek(2),val_peek(0),new ASTree[]{null,val_peek(2),val_peek(0)}); } 2402break; 2403case 240: 2404{ yyval= new ASTreeNode(astContext,FIELD_ACCESS,val_peek(4),val_peek(0),new ASTree[]{val_peek(4),val_peek(2),val_peek(0)}); } 2406break; 2407case 241: 2408{ yyval = new ASTreeNode(astContext,METHOD_INVOCATION,val_peek(5),val_peek(0),new ASTree[]{val_peek(5),null,null,val_peek(3),val_peek(1)}); } 2410break; 2411case 242: 2412{ yyval = new ASTreeNode(astContext,METHOD_INVOCATION,val_peek(3),val_peek(0),new ASTree[]{null,null,null,val_peek(3),val_peek(1)}); } 2414break; 2415case 243: 2416{ yyval = new ASTreeNode(astContext,METHOD_INVOCATION,val_peek(5),val_peek(0),new ASTree[]{val_peek(5),null,null,val_peek(3),val_peek(1)}); } 2418break; 2419case 244: 2420{ yyval = new ASTreeNode(astContext,METHOD_INVOCATION,val_peek(5),val_peek(0),new ASTree[]{null,val_peek(5),null,val_peek(3),val_peek(1)}); } 2422break; 2423case 245: 2424{ yyval = new ASTreeNode(astContext,METHOD_INVOCATION,val_peek(7),val_peek(0),new ASTree[]{val_peek(7),val_peek(5),null,val_peek(3),val_peek(1)}); } 2426break; 2427case 246: 2428{ yyval=new ASTreeNode(astContext,ARRAY_ACCESS,val_peek(3),val_peek(0),new ASTree[]{val_peek(3),val_peek(1)}); } 2430break; 2431case 247: 2432{ yyval=new ASTreeNode(astContext,ARRAY_ACCESS,val_peek(3),val_peek(0),new ASTree[]{val_peek(3),val_peek(1)}); } 2434break; 2435case 252: 2436{ yyval=new ASTreeNode(astContext,POSTFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2438break; 2439case 253: 2440{ yyval=new ASTreeNode(astContext,POSTFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2442break; 2443case 256: 2444{ yyval=new ASTreeNode(astContext,PREFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2446break; 2447case 257: 2448{ yyval=new ASTreeNode(astContext,PREFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2450break; 2451case 259: 2452{ yyval=new ASTreeNode(astContext,PREFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2454break; 2455case 260: 2456{ yyval=new ASTreeNode(astContext,PREFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2458break; 2459case 262: 2460{ yyval=new ASTreeNode(astContext,PREFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2462break; 2463case 263: 2464{ yyval=new ASTreeNode(astContext,PREFIX_EXPRESSION,val_peek(1),val_peek(0)); } 2466break; 2467case 265: 2468{ yyval=new ASTreeNode(astContext,CAST_EXPRESSION,val_peek(4),val_peek(0),new ASTree[]{new ASTreeNode(astContext,REFERENCE_TYPE,val_peek(3),val_peek(2)),val_peek(0)}); } 2470break; 2471case 266: 2472{ yyval=new ASTreeNode(astContext,CAST_EXPRESSION,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(0)}); } 2474break; 2475case 267: 2476{ yyval=new ASTreeNode(astContext,CAST_EXPRESSION,val_peek(3),val_peek(0),new ASTree[]{val_peek(2),val_peek(0)}); } 2478break; 2479case 268: 2480{ yyval=new ASTreeNode(astContext,CAST_EXPRESSION,val_peek(4),val_peek(0),new ASTree[]{new ASTreeNode(astContext,REFERENCE_TYPE,val_peek(3),val_peek(2)),val_peek(0)}); } 2482break; 2483case 270: 2484{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2486break; 2487case 271: 2488{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2490break; 2491case 272: 2492{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2494break; 2495case 274: 2496{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2498break; 2499case 275: 2500{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2502break; 2503case 277: 2504{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2506break; 2507case 278: 2508{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2510break; 2511case 279: 2512{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2514break; 2515case 281: 2516{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2518break; 2519case 282: 2520{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2522break; 2523case 283: 2524{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2526break; 2527case 284: 2528{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2530break; 2531case 285: 2532{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2534break; 2535case 287: 2536{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2538break; 2539case 288: 2540{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2542break; 2543case 290: 2544{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2546break; 2547case 292: 2548{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2550break; 2551case 294: 2552{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2554break; 2555case 296: 2556{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2558break; 2559case 298: 2560{ yyval=new ASTreeNode(astContext,INFIX_EXPRESSION,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2562break; 2563case 300: 2564{ yyval=new ASTreeNode(astContext,CONDITIONAL_EXPRESSION,val_peek(4),val_peek(0),new ASTree[]{val_peek(4),val_peek(2),val_peek(0)}); } 2566break; 2567case 303: 2568{ yyval = new ASTreeNode(astContext,ASSIGNMENT,new ASTree[]{val_peek(2),val_peek(1),val_peek(0)}); } 2570break; 2571case 321: 2572{ yyval=new ASTreeNode(astContext,MODIFIERS,val_peek(0)); } 2574break; 2575case 322: 2576{ yyval=val_peek(1).addSubTree(val_peek(0)); } 2578break; 2579case 335: 2580{ yyval=new ASTreeNode(astContext,MULTI_PART_ID,val_peek(2),val_peek(0),new ASTree[]{val_peek(2),val_peek(0),null}); } 2582break; 2583 } if (yydebug) debug("reduce"); 2588 state_drop(yym); yystate = state_peek(0); val_drop(yym); yym = yylhs[yyn]; if (yystate == 0 && yym == 0) { 2594 if (yydebug) 2595 debug("After reduction, shifting from state 0 to state "+YYFINAL+""); 2596 yystate = YYFINAL; state_push(YYFINAL); val_push(yyval); if (yychar < 0) { 2601 yychar = yylex(); if (yychar<0) yychar=0; if (yydebug) 2604 yylexdebug(yystate,yychar); 2605 } 2606 if (yychar == 0) break; } else { yyn = yygindex[yym]; if ((yyn != 0) && (yyn += yystate) >= 0 && 2613 yyn <= YYTABLESIZE && yycheck[yyn] == yystate) 2614 yystate = yytable[yyn]; else 2616 yystate = yydgoto[yym]; if (yydebug) 2618 debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+""); 2619 state_push(yystate); val_push(yyval); } 2622 } return 0;} 2625 2627 2628 2629 2635public void run() 2636{ 2637 yyparse(); 2638} 2639 2641 2642 2643 2648public Parser() 2649{ 2650 } 2652 2653 2654 2658public Parser(boolean debugMe) 2659{ 2660 yydebug=debugMe; 2661} 2662 2664 2665 2666} 2667 | Popular Tags |