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