001 /* Generated By:JavaCC: Do not edit this line. SelectorParser.java */ 002 package org.activemq.selector; 003 004 import java.io.*; 005 import java.util.*; 006 007 import javax.jms.InvalidSelectorException; 008 009 import org.activemq.filter.*; 010 011 /** 012 * JMS Selector Parser generated by JavaCC 013 * 014 * Do not edit this .java file directly - it is autogenerated from SelectorParser.jj 015 */ 016 public class SelectorParser implements SelectorParserConstants { 017 018 public SelectorParser() { 019 this(new StringReader("")); 020 } 021 022 public Filter parse(String sql) throws InvalidSelectorException { 023 this.ReInit(new StringReader(sql)); 024 025 try { 026 return this.JmsSelector(); 027 } 028 catch (Throwable e) { 029 throw (InvalidSelectorException)new InvalidSelectorException("test").initCause(e); 030 } 031 032 } 033 034 private BooleanExpression asBooleanExpression(Expression value) throws ParseException { 035 if (value instanceof BooleanExpression) { 036 return (BooleanExpression) value; 037 } 038 if (value instanceof PropertyExpression) { 039 return UnaryExpression.createBooleanCast( value ); 040 } 041 throw new ParseException("Expression will not result in a boolean value: " + value); 042 } 043 044 // ---------------------------------------------------------------------------- 045 // Grammer 046 // ---------------------------------------------------------------------------- 047 final public Filter JmsSelector() throws ParseException { 048 Expression left=null; 049 left = orExpression(); 050 {if (true) return new ExpressionFilter(asBooleanExpression(left));} 051 throw new Error("Missing return statement in function"); 052 } 053 054 final public Expression orExpression() throws ParseException { 055 Expression left; 056 Expression right; 057 left = andExpression(); 058 label_1: 059 while (true) { 060 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 061 case OR: 062 ; 063 break; 064 default: 065 break label_1; 066 } 067 jj_consume_token(OR); 068 right = andExpression(); 069 left = LogicExpression.createOR(asBooleanExpression(left), asBooleanExpression(right)); 070 } 071 {if (true) return left;} 072 throw new Error("Missing return statement in function"); 073 } 074 075 final public Expression andExpression() throws ParseException { 076 Expression left; 077 Expression right; 078 left = equalityExpression(); 079 label_2: 080 while (true) { 081 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 082 case AND: 083 ; 084 break; 085 default: 086 break label_2; 087 } 088 jj_consume_token(AND); 089 right = equalityExpression(); 090 left = LogicExpression.createAND(asBooleanExpression(left), asBooleanExpression(right)); 091 } 092 {if (true) return left;} 093 throw new Error("Missing return statement in function"); 094 } 095 096 final public Expression equalityExpression() throws ParseException { 097 Expression left; 098 Expression right; 099 left = comparisonExpression(); 100 label_3: 101 while (true) { 102 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 103 case IS: 104 case 28: 105 case 29: 106 ; 107 break; 108 default: 109 break label_3; 110 } 111 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 112 case 28: 113 jj_consume_token(28); 114 right = comparisonExpression(); 115 left = ComparisonExpression.createEqual(left, right); 116 break; 117 case 29: 118 jj_consume_token(29); 119 right = comparisonExpression(); 120 left = ComparisonExpression.createNotEqual(left, right); 121 break; 122 default: 123 if (jj_2_1(2)) { 124 jj_consume_token(IS); 125 jj_consume_token(NULL); 126 left = ComparisonExpression.createIsNull(left); 127 } else { 128 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 129 case IS: 130 jj_consume_token(IS); 131 jj_consume_token(NOT); 132 jj_consume_token(NULL); 133 left = ComparisonExpression.createIsNotNull(left); 134 break; 135 default: 136 jj_consume_token(-1); 137 throw new ParseException(); 138 } 139 } 140 } 141 } 142 {if (true) return left;} 143 throw new Error("Missing return statement in function"); 144 } 145 146 final public Expression comparisonExpression() throws ParseException { 147 Expression left; 148 Expression right; 149 Expression low; 150 Expression high; 151 String t, u; 152 boolean not; 153 ArrayList list; 154 left = addExpression(); 155 label_4: 156 while (true) { 157 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 158 case NOT: 159 case BETWEEN: 160 case LIKE: 161 case IN: 162 case 30: 163 case 31: 164 case 32: 165 case 33: 166 ; 167 break; 168 default: 169 break label_4; 170 } 171 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 172 case 30: 173 jj_consume_token(30); 174 right = addExpression(); 175 left = ComparisonExpression.createGreaterThan(left, right); 176 break; 177 case 31: 178 jj_consume_token(31); 179 right = addExpression(); 180 left = ComparisonExpression.createGreaterThanEqual(left, right); 181 break; 182 case 32: 183 jj_consume_token(32); 184 right = addExpression(); 185 left = ComparisonExpression.createLessThan(left, right); 186 break; 187 case 33: 188 jj_consume_token(33); 189 right = addExpression(); 190 left = ComparisonExpression.createLessThanEqual(left, right); 191 break; 192 case LIKE: 193 u=null; 194 jj_consume_token(LIKE); 195 t = stringLitteral(); 196 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 197 case ESCAPE: 198 jj_consume_token(ESCAPE); 199 u = stringLitteral(); 200 break; 201 default: 202 ; 203 } 204 left = ComparisonExpression.createLike(left, t, u); 205 break; 206 default: 207 if (jj_2_2(2)) { 208 u=null; 209 jj_consume_token(NOT); 210 jj_consume_token(LIKE); 211 t = stringLitteral(); 212 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 213 case ESCAPE: 214 jj_consume_token(ESCAPE); 215 u = stringLitteral(); 216 break; 217 default: 218 ; 219 } 220 left = ComparisonExpression.createNotLike(left, t, u); 221 } else { 222 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 223 case BETWEEN: 224 jj_consume_token(BETWEEN); 225 low = addExpression(); 226 jj_consume_token(AND); 227 high = addExpression(); 228 left = ComparisonExpression.createBetween(left, low, high); 229 break; 230 default: 231 if (jj_2_3(2)) { 232 jj_consume_token(NOT); 233 jj_consume_token(BETWEEN); 234 low = addExpression(); 235 jj_consume_token(AND); 236 high = addExpression(); 237 left = ComparisonExpression.createNotBetween(left, low, high); 238 } else { 239 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 240 case IN: 241 jj_consume_token(IN); 242 jj_consume_token(34); 243 t = stringLitteral(); 244 list = new ArrayList(); 245 list.add( t ); 246 label_5: 247 while (true) { 248 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 249 case 35: 250 ; 251 break; 252 default: 253 break label_5; 254 } 255 jj_consume_token(35); 256 t = stringLitteral(); 257 list.add( t ); 258 } 259 jj_consume_token(36); 260 left = ComparisonExpression.createInFilter(left, list); 261 break; 262 default: 263 if (jj_2_4(2)) { 264 jj_consume_token(NOT); 265 jj_consume_token(IN); 266 jj_consume_token(34); 267 t = stringLitteral(); 268 list = new ArrayList(); 269 list.add( t ); 270 label_6: 271 while (true) { 272 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 273 case 35: 274 ; 275 break; 276 default: 277 break label_6; 278 } 279 jj_consume_token(35); 280 t = stringLitteral(); 281 list.add( t ); 282 } 283 jj_consume_token(36); 284 left = ComparisonExpression.createNotInFilter(left, list); 285 } else { 286 jj_consume_token(-1); 287 throw new ParseException(); 288 } 289 } 290 } 291 } 292 } 293 } 294 } 295 {if (true) return left;} 296 throw new Error("Missing return statement in function"); 297 } 298 299 final public Expression addExpression() throws ParseException { 300 Expression left; 301 Expression right; 302 left = multExpr(); 303 label_7: 304 while (true) { 305 if (jj_2_5(2147483647)) { 306 ; 307 } else { 308 break label_7; 309 } 310 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 311 case 37: 312 jj_consume_token(37); 313 right = multExpr(); 314 left = ArithmeticExpression.createPlus(left, right); 315 break; 316 case 38: 317 jj_consume_token(38); 318 right = multExpr(); 319 left = ArithmeticExpression.createMinus(left, right); 320 break; 321 default: 322 jj_consume_token(-1); 323 throw new ParseException(); 324 } 325 } 326 {if (true) return left;} 327 throw new Error("Missing return statement in function"); 328 } 329 330 final public Expression multExpr() throws ParseException { 331 Expression left; 332 Expression right; 333 left = unaryExpr(); 334 label_8: 335 while (true) { 336 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 337 case 39: 338 case 40: 339 case 41: 340 ; 341 break; 342 default: 343 break label_8; 344 } 345 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 346 case 39: 347 jj_consume_token(39); 348 right = unaryExpr(); 349 left = ArithmeticExpression.createMultiply(left, right); 350 break; 351 case 40: 352 jj_consume_token(40); 353 right = unaryExpr(); 354 left = ArithmeticExpression.createDivide(left, right); 355 break; 356 case 41: 357 jj_consume_token(41); 358 right = unaryExpr(); 359 left = ArithmeticExpression.createMod(left, right); 360 break; 361 default: 362 jj_consume_token(-1); 363 throw new ParseException(); 364 } 365 } 366 {if (true) return left;} 367 throw new Error("Missing return statement in function"); 368 } 369 370 final public Expression unaryExpr() throws ParseException { 371 String s=null; 372 Expression left=null; 373 if (jj_2_6(2147483647)) { 374 jj_consume_token(37); 375 left = unaryExpr(); 376 } else { 377 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 378 case 38: 379 jj_consume_token(38); 380 left = unaryExpr(); 381 left = UnaryExpression.createNegate(left); 382 break; 383 case NOT: 384 jj_consume_token(NOT); 385 left = unaryExpr(); 386 left = UnaryExpression.createNOT( asBooleanExpression(left) ); 387 break; 388 case XPATH: 389 jj_consume_token(XPATH); 390 s = stringLitteral(); 391 left = UnaryExpression.createXPath( s ); 392 break; 393 case XQUERY: 394 jj_consume_token(XQUERY); 395 s = stringLitteral(); 396 left = UnaryExpression.createXQuery( s ); 397 break; 398 case TRUE: 399 case FALSE: 400 case NULL: 401 case DECIMAL_LITERAL: 402 case HEX_LITERAL: 403 case OCTAL_LITERAL: 404 case FLOATING_POINT_LITERAL: 405 case STRING_LITERAL: 406 case ID: 407 case 34: 408 left = primaryExpr(); 409 break; 410 default: 411 jj_consume_token(-1); 412 throw new ParseException(); 413 } 414 } 415 {if (true) return left;} 416 throw new Error("Missing return statement in function"); 417 } 418 419 final public Expression primaryExpr() throws ParseException { 420 Expression left=null; 421 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 422 case TRUE: 423 case FALSE: 424 case NULL: 425 case DECIMAL_LITERAL: 426 case HEX_LITERAL: 427 case OCTAL_LITERAL: 428 case FLOATING_POINT_LITERAL: 429 case STRING_LITERAL: 430 left = literal(); 431 break; 432 case ID: 433 left = variable(); 434 break; 435 case 34: 436 jj_consume_token(34); 437 left = orExpression(); 438 jj_consume_token(36); 439 break; 440 default: 441 jj_consume_token(-1); 442 throw new ParseException(); 443 } 444 {if (true) return left;} 445 throw new Error("Missing return statement in function"); 446 } 447 448 final public ConstantExpression literal() throws ParseException { 449 Token t; 450 String s; 451 ConstantExpression left=null; 452 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 453 case STRING_LITERAL: 454 s = stringLitteral(); 455 left = new ConstantExpression(s); 456 break; 457 case DECIMAL_LITERAL: 458 t = jj_consume_token(DECIMAL_LITERAL); 459 left = ConstantExpression.createFromDecimal(t.image); 460 break; 461 case HEX_LITERAL: 462 t = jj_consume_token(HEX_LITERAL); 463 left = ConstantExpression.createFromHex(t.image); 464 break; 465 case OCTAL_LITERAL: 466 t = jj_consume_token(OCTAL_LITERAL); 467 left = ConstantExpression.createFromOctal(t.image); 468 break; 469 case FLOATING_POINT_LITERAL: 470 t = jj_consume_token(FLOATING_POINT_LITERAL); 471 left = ConstantExpression.createFloat(t.image); 472 break; 473 case TRUE: 474 jj_consume_token(TRUE); 475 left = ConstantExpression.TRUE; 476 break; 477 case FALSE: 478 jj_consume_token(FALSE); 479 left = ConstantExpression.FALSE; 480 break; 481 case NULL: 482 jj_consume_token(NULL); 483 left = ConstantExpression.NULL; 484 break; 485 default: 486 jj_consume_token(-1); 487 throw new ParseException(); 488 } 489 {if (true) return left;} 490 throw new Error("Missing return statement in function"); 491 } 492 493 final public String stringLitteral() throws ParseException { 494 Token t; 495 StringBuffer rc = new StringBuffer(); 496 boolean first=true; 497 t = jj_consume_token(STRING_LITERAL); 498 // Decode the sting value. 499 String image = t.image; 500 for( int i=1; i < image.length()-1; i++ ) { 501 char c = image.charAt(i); 502 if( c == '\'' ) 503 i++; 504 rc.append(c); 505 } 506 {if (true) return rc.toString();} 507 throw new Error("Missing return statement in function"); 508 } 509 510 final public PropertyExpression variable() throws ParseException { 511 Token t; 512 PropertyExpression left=null; 513 t = jj_consume_token(ID); 514 left = new PropertyExpression(t.image); 515 {if (true) return left;} 516 throw new Error("Missing return statement in function"); 517 } 518 519 final private boolean jj_2_1(int xla) { 520 jj_la = xla; jj_lastpos = jj_scanpos = token; 521 return !jj_3_1(); 522 } 523 524 final private boolean jj_2_2(int xla) { 525 jj_la = xla; jj_lastpos = jj_scanpos = token; 526 return !jj_3_2(); 527 } 528 529 final private boolean jj_2_3(int xla) { 530 jj_la = xla; jj_lastpos = jj_scanpos = token; 531 return !jj_3_3(); 532 } 533 534 final private boolean jj_2_4(int xla) { 535 jj_la = xla; jj_lastpos = jj_scanpos = token; 536 return !jj_3_4(); 537 } 538 539 final private boolean jj_2_5(int xla) { 540 jj_la = xla; jj_lastpos = jj_scanpos = token; 541 return !jj_3_5(); 542 } 543 544 final private boolean jj_2_6(int xla) { 545 jj_la = xla; jj_lastpos = jj_scanpos = token; 546 return !jj_3_6(); 547 } 548 549 final private boolean jj_3R_53() { 550 if (jj_scan_token(32)) return true; 551 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 552 if (jj_3R_45()) return true; 553 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 554 return false; 555 } 556 557 final private boolean jj_3R_29() { 558 if (jj_scan_token(ID)) return true; 559 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 560 return false; 561 } 562 563 final private boolean jj_3R_63() { 564 if (jj_scan_token(35)) return true; 565 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 566 if (jj_3R_23()) return true; 567 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 568 return false; 569 } 570 571 final private boolean jj_3R_50() { 572 Token xsp; 573 xsp = jj_scanpos; 574 if (jj_3R_58()) { 575 jj_scanpos = xsp; 576 if (jj_3R_59()) return true; 577 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 578 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 579 return false; 580 } 581 582 final private boolean jj_3R_40() { 583 if (jj_scan_token(OR)) return true; 584 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 585 if (jj_3R_39()) return true; 586 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 587 return false; 588 } 589 590 final private boolean jj_3R_52() { 591 if (jj_scan_token(31)) return true; 592 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 593 if (jj_3R_45()) return true; 594 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 595 return false; 596 } 597 598 final private boolean jj_3R_27() { 599 if (jj_scan_token(34)) return true; 600 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 601 if (jj_3R_30()) return true; 602 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 603 if (jj_scan_token(36)) return true; 604 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 605 return false; 606 } 607 608 final private boolean jj_3R_26() { 609 if (jj_3R_29()) return true; 610 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 611 return false; 612 } 613 614 final private boolean jj_3R_51() { 615 if (jj_scan_token(30)) return true; 616 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 617 if (jj_3R_45()) return true; 618 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 619 return false; 620 } 621 622 final private boolean jj_3R_46() { 623 Token xsp; 624 xsp = jj_scanpos; 625 if (jj_3R_51()) { 626 jj_scanpos = xsp; 627 if (jj_3R_52()) { 628 jj_scanpos = xsp; 629 if (jj_3R_53()) { 630 jj_scanpos = xsp; 631 if (jj_3R_54()) { 632 jj_scanpos = xsp; 633 if (jj_3R_55()) { 634 jj_scanpos = xsp; 635 if (jj_3_2()) { 636 jj_scanpos = xsp; 637 if (jj_3R_56()) { 638 jj_scanpos = xsp; 639 if (jj_3_3()) { 640 jj_scanpos = xsp; 641 if (jj_3R_57()) { 642 jj_scanpos = xsp; 643 if (jj_3_4()) return true; 644 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 645 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 646 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 647 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 648 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 649 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 650 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 651 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 652 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 653 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 654 return false; 655 } 656 657 final private boolean jj_3R_25() { 658 if (jj_3R_28()) return true; 659 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 660 return false; 661 } 662 663 final private boolean jj_3R_45() { 664 if (jj_3R_11()) return true; 665 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 666 Token xsp; 667 while (true) { 668 xsp = jj_scanpos; 669 if (jj_3R_50()) { jj_scanpos = xsp; break; } 670 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 671 } 672 return false; 673 } 674 675 final private boolean jj_3R_30() { 676 if (jj_3R_39()) return true; 677 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 678 Token xsp; 679 while (true) { 680 xsp = jj_scanpos; 681 if (jj_3R_40()) { jj_scanpos = xsp; break; } 682 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 683 } 684 return false; 685 } 686 687 final private boolean jj_3R_24() { 688 Token xsp; 689 xsp = jj_scanpos; 690 if (jj_3R_25()) { 691 jj_scanpos = xsp; 692 if (jj_3R_26()) { 693 jj_scanpos = xsp; 694 if (jj_3R_27()) return true; 695 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 696 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 697 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 698 return false; 699 } 700 701 final private boolean jj_3R_19() { 702 if (jj_3R_24()) return true; 703 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 704 return false; 705 } 706 707 final private boolean jj_3R_23() { 708 if (jj_scan_token(STRING_LITERAL)) return true; 709 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 710 return false; 711 } 712 713 final private boolean jj_3R_62() { 714 if (jj_scan_token(35)) return true; 715 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 716 if (jj_3R_23()) return true; 717 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 718 return false; 719 } 720 721 final private boolean jj_3R_18() { 722 if (jj_scan_token(XQUERY)) return true; 723 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 724 if (jj_3R_23()) return true; 725 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 726 return false; 727 } 728 729 final private boolean jj_3R_43() { 730 if (jj_3R_45()) return true; 731 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 732 Token xsp; 733 while (true) { 734 xsp = jj_scanpos; 735 if (jj_3R_46()) { jj_scanpos = xsp; break; } 736 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 737 } 738 return false; 739 } 740 741 final private boolean jj_3R_61() { 742 if (jj_scan_token(ESCAPE)) return true; 743 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 744 if (jj_3R_23()) return true; 745 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 746 return false; 747 } 748 749 final private boolean jj_3_4() { 750 if (jj_scan_token(NOT)) return true; 751 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 752 if (jj_scan_token(IN)) return true; 753 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 754 if (jj_scan_token(34)) return true; 755 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 756 if (jj_3R_23()) return true; 757 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 758 Token xsp; 759 while (true) { 760 xsp = jj_scanpos; 761 if (jj_3R_63()) { jj_scanpos = xsp; break; } 762 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 763 } 764 if (jj_scan_token(36)) return true; 765 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 766 return false; 767 } 768 769 final private boolean jj_3_6() { 770 if (jj_scan_token(37)) return true; 771 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 772 if (jj_3R_12()) return true; 773 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 774 return false; 775 } 776 777 final private boolean jj_3R_17() { 778 if (jj_scan_token(XPATH)) return true; 779 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 780 if (jj_3R_23()) return true; 781 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 782 return false; 783 } 784 785 final private boolean jj_3R_38() { 786 if (jj_scan_token(NULL)) return true; 787 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 788 return false; 789 } 790 791 final private boolean jj_3R_16() { 792 if (jj_scan_token(NOT)) return true; 793 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 794 if (jj_3R_12()) return true; 795 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 796 return false; 797 } 798 799 final private boolean jj_3R_14() { 800 if (jj_scan_token(37)) return true; 801 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 802 if (jj_3R_12()) return true; 803 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 804 return false; 805 } 806 807 final private boolean jj_3R_57() { 808 if (jj_scan_token(IN)) return true; 809 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 810 if (jj_scan_token(34)) return true; 811 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 812 if (jj_3R_23()) return true; 813 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 814 Token xsp; 815 while (true) { 816 xsp = jj_scanpos; 817 if (jj_3R_62()) { jj_scanpos = xsp; break; } 818 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 819 } 820 if (jj_scan_token(36)) return true; 821 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 822 return false; 823 } 824 825 final private boolean jj_3R_49() { 826 if (jj_scan_token(IS)) return true; 827 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 828 if (jj_scan_token(NOT)) return true; 829 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 830 if (jj_scan_token(NULL)) return true; 831 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 832 return false; 833 } 834 835 final private boolean jj_3R_15() { 836 if (jj_scan_token(38)) return true; 837 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 838 if (jj_3R_12()) return true; 839 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 840 return false; 841 } 842 843 final private boolean jj_3R_37() { 844 if (jj_scan_token(FALSE)) return true; 845 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 846 return false; 847 } 848 849 final private boolean jj_3_1() { 850 if (jj_scan_token(IS)) return true; 851 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 852 if (jj_scan_token(NULL)) return true; 853 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 854 return false; 855 } 856 857 final private boolean jj_3R_12() { 858 Token xsp; 859 xsp = jj_scanpos; 860 if (jj_3R_14()) { 861 jj_scanpos = xsp; 862 if (jj_3R_15()) { 863 jj_scanpos = xsp; 864 if (jj_3R_16()) { 865 jj_scanpos = xsp; 866 if (jj_3R_17()) { 867 jj_scanpos = xsp; 868 if (jj_3R_18()) { 869 jj_scanpos = xsp; 870 if (jj_3R_19()) return true; 871 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 872 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 873 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 874 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 875 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 876 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 877 return false; 878 } 879 880 final private boolean jj_3R_36() { 881 if (jj_scan_token(TRUE)) return true; 882 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 883 return false; 884 } 885 886 final private boolean jj_3R_48() { 887 if (jj_scan_token(29)) return true; 888 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 889 if (jj_3R_43()) return true; 890 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 891 return false; 892 } 893 894 final private boolean jj_3_3() { 895 if (jj_scan_token(NOT)) return true; 896 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 897 if (jj_scan_token(BETWEEN)) return true; 898 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 899 if (jj_3R_45()) return true; 900 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 901 if (jj_scan_token(AND)) return true; 902 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 903 if (jj_3R_45()) return true; 904 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 905 return false; 906 } 907 908 final private boolean jj_3R_47() { 909 if (jj_scan_token(28)) return true; 910 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 911 if (jj_3R_43()) return true; 912 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 913 return false; 914 } 915 916 final private boolean jj_3R_44() { 917 Token xsp; 918 xsp = jj_scanpos; 919 if (jj_3R_47()) { 920 jj_scanpos = xsp; 921 if (jj_3R_48()) { 922 jj_scanpos = xsp; 923 if (jj_3_1()) { 924 jj_scanpos = xsp; 925 if (jj_3R_49()) return true; 926 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 927 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 928 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 929 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 930 return false; 931 } 932 933 final private boolean jj_3R_35() { 934 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; 935 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 936 return false; 937 } 938 939 final private boolean jj_3R_56() { 940 if (jj_scan_token(BETWEEN)) return true; 941 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 942 if (jj_3R_45()) return true; 943 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 944 if (jj_scan_token(AND)) return true; 945 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 946 if (jj_3R_45()) return true; 947 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 948 return false; 949 } 950 951 final private boolean jj_3R_60() { 952 if (jj_scan_token(ESCAPE)) return true; 953 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 954 if (jj_3R_23()) return true; 955 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 956 return false; 957 } 958 959 final private boolean jj_3R_34() { 960 if (jj_scan_token(OCTAL_LITERAL)) return true; 961 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 962 return false; 963 } 964 965 final private boolean jj_3R_22() { 966 if (jj_scan_token(41)) return true; 967 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 968 if (jj_3R_12()) return true; 969 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 970 return false; 971 } 972 973 final private boolean jj_3R_41() { 974 if (jj_3R_43()) return true; 975 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 976 Token xsp; 977 while (true) { 978 xsp = jj_scanpos; 979 if (jj_3R_44()) { jj_scanpos = xsp; break; } 980 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 981 } 982 return false; 983 } 984 985 final private boolean jj_3_2() { 986 if (jj_scan_token(NOT)) return true; 987 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 988 if (jj_scan_token(LIKE)) return true; 989 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 990 if (jj_3R_23()) return true; 991 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 992 Token xsp; 993 xsp = jj_scanpos; 994 if (jj_3R_61()) jj_scanpos = xsp; 995 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 996 return false; 997 } 998 999 final private boolean jj_3R_55() { 1000 if (jj_scan_token(LIKE)) return true; 1001 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1002 if (jj_3R_23()) return true; 1003 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1004 Token xsp; 1005 xsp = jj_scanpos; 1006 if (jj_3R_60()) jj_scanpos = xsp; 1007 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1008 return false; 1009 } 1010 1011 final private boolean jj_3R_33() { 1012 if (jj_scan_token(HEX_LITERAL)) return true; 1013 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1014 return false; 1015 } 1016 1017 final private boolean jj_3R_21() { 1018 if (jj_scan_token(40)) return true; 1019 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1020 if (jj_3R_12()) return true; 1021 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1022 return false; 1023 } 1024 1025 final private boolean jj_3R_13() { 1026 Token xsp; 1027 xsp = jj_scanpos; 1028 if (jj_3R_20()) { 1029 jj_scanpos = xsp; 1030 if (jj_3R_21()) { 1031 jj_scanpos = xsp; 1032 if (jj_3R_22()) return true; 1033 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1034 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1035 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1036 return false; 1037 } 1038 1039 final private boolean jj_3R_20() { 1040 if (jj_scan_token(39)) return true; 1041 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1042 if (jj_3R_12()) return true; 1043 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1044 return false; 1045 } 1046 1047 final private boolean jj_3R_42() { 1048 if (jj_scan_token(AND)) return true; 1049 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1050 if (jj_3R_41()) return true; 1051 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1052 return false; 1053 } 1054 1055 final private boolean jj_3R_32() { 1056 if (jj_scan_token(DECIMAL_LITERAL)) return true; 1057 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1058 return false; 1059 } 1060 1061 final private boolean jj_3R_11() { 1062 if (jj_3R_12()) return true; 1063 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1064 Token xsp; 1065 while (true) { 1066 xsp = jj_scanpos; 1067 if (jj_3R_13()) { jj_scanpos = xsp; break; } 1068 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1069 } 1070 return false; 1071 } 1072 1073 final private boolean jj_3R_10() { 1074 if (jj_scan_token(38)) return true; 1075 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1076 return false; 1077 } 1078 1079 final private boolean jj_3R_31() { 1080 if (jj_3R_23()) return true; 1081 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1082 return false; 1083 } 1084 1085 final private boolean jj_3R_9() { 1086 if (jj_scan_token(37)) return true; 1087 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1088 return false; 1089 } 1090 1091 final private boolean jj_3R_59() { 1092 if (jj_scan_token(38)) return true; 1093 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1094 if (jj_3R_11()) return true; 1095 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1096 return false; 1097 } 1098 1099 final private boolean jj_3R_39() { 1100 if (jj_3R_41()) return true; 1101 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1102 Token xsp; 1103 while (true) { 1104 xsp = jj_scanpos; 1105 if (jj_3R_42()) { jj_scanpos = xsp; break; } 1106 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1107 } 1108 return false; 1109 } 1110 1111 final private boolean jj_3_5() { 1112 Token xsp; 1113 xsp = jj_scanpos; 1114 if (jj_3R_9()) { 1115 jj_scanpos = xsp; 1116 if (jj_3R_10()) return true; 1117 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1118 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1119 if (jj_3R_11()) return true; 1120 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1121 return false; 1122 } 1123 1124 final private boolean jj_3R_28() { 1125 Token xsp; 1126 xsp = jj_scanpos; 1127 if (jj_3R_31()) { 1128 jj_scanpos = xsp; 1129 if (jj_3R_32()) { 1130 jj_scanpos = xsp; 1131 if (jj_3R_33()) { 1132 jj_scanpos = xsp; 1133 if (jj_3R_34()) { 1134 jj_scanpos = xsp; 1135 if (jj_3R_35()) { 1136 jj_scanpos = xsp; 1137 if (jj_3R_36()) { 1138 jj_scanpos = xsp; 1139 if (jj_3R_37()) { 1140 jj_scanpos = xsp; 1141 if (jj_3R_38()) return true; 1142 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1143 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1144 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1145 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1146 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1147 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1148 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1149 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1150 return false; 1151 } 1152 1153 final private boolean jj_3R_54() { 1154 if (jj_scan_token(33)) return true; 1155 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1156 if (jj_3R_45()) return true; 1157 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1158 return false; 1159 } 1160 1161 final private boolean jj_3R_58() { 1162 if (jj_scan_token(37)) return true; 1163 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1164 if (jj_3R_11()) return true; 1165 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 1166 return false; 1167 } 1168 1169 public SelectorParserTokenManager token_source; 1170 SimpleCharStream jj_input_stream; 1171 public Token token, jj_nt; 1172 private int jj_ntk; 1173 private Token jj_scanpos, jj_lastpos; 1174 private int jj_la; 1175 public boolean lookingAhead = false; 1176 private boolean jj_semLA; 1177 1178 public SelectorParser(java.io.InputStream stream) { 1179 jj_input_stream = new SimpleCharStream(stream, 1, 1); 1180 token_source = new SelectorParserTokenManager(jj_input_stream); 1181 token = new Token(); 1182 jj_ntk = -1; 1183 } 1184 1185 public void ReInit(java.io.InputStream stream) { 1186 jj_input_stream.ReInit(stream, 1, 1); 1187 token_source.ReInit(jj_input_stream); 1188 token = new Token(); 1189 jj_ntk = -1; 1190 } 1191 1192 public SelectorParser(java.io.Reader stream) { 1193 jj_input_stream = new SimpleCharStream(stream, 1, 1); 1194 token_source = new SelectorParserTokenManager(jj_input_stream); 1195 token = new Token(); 1196 jj_ntk = -1; 1197 } 1198 1199 public void ReInit(java.io.Reader stream) { 1200 jj_input_stream.ReInit(stream, 1, 1); 1201 token_source.ReInit(jj_input_stream); 1202 token = new Token(); 1203 jj_ntk = -1; 1204 } 1205 1206 public SelectorParser(SelectorParserTokenManager tm) { 1207 token_source = tm; 1208 token = new Token(); 1209 jj_ntk = -1; 1210 } 1211 1212 public void ReInit(SelectorParserTokenManager tm) { 1213 token_source = tm; 1214 token = new Token(); 1215 jj_ntk = -1; 1216 } 1217 1218 final private Token jj_consume_token(int kind) throws ParseException { 1219 Token oldToken; 1220 if ((oldToken = token).next != null) token = token.next; 1221 else token = token.next = token_source.getNextToken(); 1222 jj_ntk = -1; 1223 if (token.kind == kind) { 1224 return token; 1225 } 1226 token = oldToken; 1227 throw generateParseException(); 1228 } 1229 1230 final private boolean jj_scan_token(int kind) { 1231 if (jj_scanpos == jj_lastpos) { 1232 jj_la--; 1233 if (jj_scanpos.next == null) { 1234 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); 1235 } else { 1236 jj_lastpos = jj_scanpos = jj_scanpos.next; 1237 } 1238 } else { 1239 jj_scanpos = jj_scanpos.next; 1240 } 1241 return (jj_scanpos.kind != kind); 1242 } 1243 1244 final public Token getNextToken() { 1245 if (token.next != null) token = token.next; 1246 else token = token.next = token_source.getNextToken(); 1247 jj_ntk = -1; 1248 return token; 1249 } 1250 1251 final public Token getToken(int index) { 1252 Token t = lookingAhead ? jj_scanpos : token; 1253 for (int i = 0; i < index; i++) { 1254 if (t.next != null) t = t.next; 1255 else t = t.next = token_source.getNextToken(); 1256 } 1257 return t; 1258 } 1259 1260 final private int jj_ntk() { 1261 if ((jj_nt=token.next) == null) 1262 return (jj_ntk = (token.next=token_source.getNextToken()).kind); 1263 else 1264 return (jj_ntk = jj_nt.kind); 1265 } 1266 1267 final public ParseException generateParseException() { 1268 Token errortok = token.next; 1269 int line = errortok.beginLine, column = errortok.beginColumn; 1270 String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image; 1271 return new ParseException("Parse error at line " + line + ", column " + column + ". Encountered: " + mess); 1272 } 1273 1274 final public void enable_tracing() { 1275 } 1276 1277 final public void disable_tracing() { 1278 } 1279 1280 }