View Javadoc

    1   /* Generated By:JavaCC: Do not edit this line. SelectorParser.java */
    2   package org.codehaus.activemq.selector;
    3
    4   import org.codehaus.activemq.filter.ArithmeticExpression;
    5   import org.codehaus.activemq.filter.BooleanExpression;
    6   import org.codehaus.activemq.filter.ComparisonExpression;
    7   import org.codehaus.activemq.filter.ConstantExpression;
    8   import org.codehaus.activemq.filter.Expression;
    9   import org.codehaus.activemq.filter.ExpressionFilter;
    10  import org.codehaus.activemq.filter.Filter;
    11  import org.codehaus.activemq.filter.LogicExpression;
    12  import org.codehaus.activemq.filter.PropertyExpression;
    13  import org.codehaus.activemq.filter.UnaryExpression;
    14
    15  import javax.jms.InvalidSelectorException;
    16  import java.io.StringReader;
    17  import java.util.ArrayList;
    18
    19  /***
    20   * JMS Selector Parser generated by JavaCC
    21   * <p/>
    22   * Do not edit this .java file directly - it is autogenerated from SelectorParser.jj
    23   */
    24  public class SelectorParser implements SelectorParserConstants {
    25
    26      public SelectorParser() {
    27          this(new StringReader(""));
    28      }
    29
    30      public Filter parse(String sql) throws InvalidSelectorException {
    31          this.ReInit(new StringReader(sql));
    32
    33          try {
    34              return this.JmsSelector();
    35          }
    36          catch (TokenMgrError e) {
    37              throw new InvalidSelectorException(e.getMessage());
    38          }
    39          catch (ParseException e) {
    40              throw new InvalidSelectorException(e.getMessage());
    41          }
    42      }
    43
    44      private BooleanExpression asBooleanExpression(Expression value) throws ParseException {
    45          if (value instanceof BooleanExpression) {
    46              return (BooleanExpression) value;
    47          }
    48          throw new ParseException("Expression will not result in a boolean value: " + value);
    49      }
    50
    51  // ----------------------------------------------------------------------------
    52  // Grammer
    53  // ----------------------------------------------------------------------------
    54      final public Filter JmsSelector() throws ParseException {
    55          Expression left = null;
    56          left = orExpression();
    57          if (left instanceof BooleanExpression) {
    58              if (true) {
    59                  return new ExpressionFilter(left);
    60              }
    61          }
    62          else {
    63              if (true) {
    64                  throw new ParseException("Selector does not result in a boolean value: " + left);
    65              }
    66          }
    67          throw new Error("Missing return statement in function");
    68      }
    69
    70      final public Expression orExpression() throws ParseException {
    71          Expression left;
    72          Expression right;
    73          left = andExpression();
    74          label_1:
    75          while (true) {
    76              switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    77                  case OR:
    78                      ;
    79                      break;
    80                  default:
    81                      break label_1;
    82              }
    83              jj_consume_token(OR);
    84              right = andExpression();
    85              left = LogicExpression.createOR(asBooleanExpression(left), asBooleanExpression(right));
    86          }
    87          {
    88              if (true) {
    89                  return left;
    90              }
    91          }
    92          throw new Error("Missing return statement in function");
    93      }
    94
    95      final public Expression andExpression() throws ParseException {
    96          Expression left;
    97          Expression right;
    98          left = equalityExpression();
    99          label_2:
    100         while (true) {
    101             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    102                 case AND:
    103                     ;
    104                     break;
    105                 default:
    106                     break label_2;
    107             }
    108             jj_consume_token(AND);
    109             right = equalityExpression();
    110             left = LogicExpression.createAND(asBooleanExpression(left), asBooleanExpression(right));
    111         }
    112         {
    113             if (true) {
    114                 return left;
    115             }
    116         }
    117         throw new Error("Missing return statement in function");
    118     }
    119
    120     final public Expression equalityExpression() throws ParseException {
    121         Expression left;
    122         Expression right;
    123         left = comparisonExpression();
    124         label_3:
    125         while (true) {
    126             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    127                 case IS:
    128                 case 24:
    129                 case 25:
    130                     ;
    131                     break;
    132                 default:
    133                     break label_3;
    134             }
    135             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    136                 case 24:
    137                     jj_consume_token(24);
    138                     right = comparisonExpression();
    139                     left = ComparisonExpression.createEqual(left, right);
    140                     break;
    141                 case 25:
    142                     jj_consume_token(25);
    143                     right = comparisonExpression();
    144                     left = ComparisonExpression.createNotEqual(left, right);
    145                     break;
    146                 default:
    147                     if (jj_2_1(2)) {
    148                         jj_consume_token(IS);
    149                         jj_consume_token(NULL);
    150                         left = ComparisonExpression.createIsNull(left);
    151                     }
    152                     else {
    153                         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    154                             case IS:
    155                                 jj_consume_token(IS);
    156                                 jj_consume_token(NOT);
    157                                 jj_consume_token(NULL);
    158                                 left = ComparisonExpression.createIsNotNull(left);
    159                                 break;
    160                             default:
    161                                 jj_consume_token(-1);
    162                                 throw new ParseException();
    163                         }
    164                     }
    165             }
    166         }
    167         {
    168             if (true) {
    169                 return left;
    170             }
    171         }
    172         throw new Error("Missing return statement in function");
    173     }
    174
    175     final public Expression comparisonExpression() throws ParseException {
    176         Expression left;
    177         Expression right;
    178         Expression low;
    179         Expression high;
    180         String t, u;
    181         boolean not;
    182         ArrayList list;
    183         left = addExpression();
    184         label_4:
    185         while (true) {
    186             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    187                 case NOT:
    188                 case BETWEEN:
    189                 case LIKE:
    190                 case IN:
    191                 case 26:
    192                 case 27:
    193                 case 28:
    194                 case 29:
    195                     ;
    196                     break;
    197                 default:
    198                     break label_4;
    199             }
    200             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    201                 case 26:
    202                     jj_consume_token(26);
    203                     right = addExpression();
    204                     left = ComparisonExpression.createGreaterThan(left, right);
    205                     break;
    206                 case 27:
    207                     jj_consume_token(27);
    208                     right = addExpression();
    209                     left = ComparisonExpression.createGreaterThanEqual(left, right);
    210                     break;
    211                 case 28:
    212                     jj_consume_token(28);
    213                     right = addExpression();
    214                     left = ComparisonExpression.createLessThan(left, right);
    215                     break;
    216                 case 29:
    217                     jj_consume_token(29);
    218                     right = addExpression();
    219                     left = ComparisonExpression.createLessThanEqual(left, right);
    220                     break;
    221                 case LIKE:
    222                     u = null;
    223                     jj_consume_token(LIKE);
    224                     t = stringLitteral();
    225                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    226                         case ESCAPE:
    227                             jj_consume_token(ESCAPE);
    228                             u = stringLitteral();
    229                             break;
    230                         default:
    231                             ;
    232                     }
    233                     left = ComparisonExpression.createLike(left, t, u);
    234                     break;
    235                 default:
    236                     if (jj_2_2(2)) {
    237                         u = null;
    238                         jj_consume_token(NOT);
    239                         jj_consume_token(LIKE);
    240                         t = stringLitteral();
    241                         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    242                             case ESCAPE:
    243                                 jj_consume_token(ESCAPE);
    244                                 u = stringLitteral();
    245                                 break;
    246                             default:
    247                                 ;
    248                         }
    249                         left = ComparisonExpression.createNotLike(left, t, u);
    250                     }
    251                     else {
    252                         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    253                             case BETWEEN:
    254                                 jj_consume_token(BETWEEN);
    255                                 low = addExpression();
    256                                 jj_consume_token(AND);
    257                                 high = addExpression();
    258                                 left = ComparisonExpression.createBetween(left, low, high);
    259                                 break;
    260                             default:
    261                                 if (jj_2_3(2)) {
    262                                     jj_consume_token(NOT);
    263                                     jj_consume_token(BETWEEN);
    264                                     low = addExpression();
    265                                     jj_consume_token(AND);
    266                                     high = addExpression();
    267                                     left = ComparisonExpression.createNotBetween(left, low, high);
    268                                 }
    269                                 else {
    270                                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    271                                         case IN:
    272                                             jj_consume_token(IN);
    273                                             jj_consume_token(30);
    274                                             right = literal();
    275                                             list = new ArrayList();
    276                                             list.add(right);
    277                                             label_5:
    278                                             while (true) {
    279                                                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    280                                                     case 31:
    281                                                         ;
    282                                                         break;
    283                                                     default:
    284                                                         break label_5;
    285                                                 }
    286                                                 jj_consume_token(31);
    287                                                 right = literal();
    288                                                 list.add(right);
    289                                             }
    290                                             jj_consume_token(32);
    291                                             left = ComparisonExpression.createInFilter(left, list);
    292                                             break;
    293                                         default:
    294                                             if (jj_2_4(2)) {
    295                                                 jj_consume_token(NOT);
    296                                                 jj_consume_token(IN);
    297                                                 jj_consume_token(30);
    298                                                 right = literal();
    299                                                 list = new ArrayList();
    300                                                 list.add(right);
    301                                                 label_6:
    302                                                 while (true) {
    303                                                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    304                                                         case 31:
    305                                                             ;
    306                                                             break;
    307                                                         default:
    308                                                             break label_6;
    309                                                     }
    310                                                     jj_consume_token(31);
    311                                                     right = literal();
    312                                                     list.add(right);
    313                                                 }
    314                                                 jj_consume_token(32);
    315                                                 left = ComparisonExpression.createNotInFilter(left, list);
    316                                             }
    317                                             else {
    318                                                 jj_consume_token(-1);
    319                                                 throw new ParseException();
    320                                             }
    321                                     }
    322                                 }
    323                         }
    324                     }
    325             }
    326         }
    327         {
    328             if (true) {
    329                 return left;
    330             }
    331         }
    332         throw new Error("Missing return statement in function");
    333     }
    334
    335     final public Expression addExpression() throws ParseException {
    336         Expression left;
    337         Expression right;
    338         left = multExpr();
    339         label_7:
    340         while (true) {
    341             if (jj_2_5(2147483647)) {
    342                 ;
    343             }
    344             else {
    345                 break label_7;
    346             }
    347             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    348                 case 33:
    349                     jj_consume_token(33);
    350                     right = multExpr();
    351                     left = ArithmeticExpression.createPlus(left, right);
    352                     break;
    353                 case 34:
    354                     jj_consume_token(34);
    355                     right = multExpr();
    356                     left = ArithmeticExpression.createMinus(left, right);
    357                     break;
    358                 default:
    359                     jj_consume_token(-1);
    360                     throw new ParseException();
    361             }
    362         }
    363         {
    364             if (true) {
    365                 return left;
    366             }
    367         }
    368         throw new Error("Missing return statement in function");
    369     }
    370
    371     final public Expression multExpr() throws ParseException {
    372         Expression left;
    373         Expression right;
    374         left = unaryExpr();
    375         label_8:
    376         while (true) {
    377             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    378                 case 35:
    379                 case 36:
    380                 case 37:
    381                     ;
    382                     break;
    383                 default:
    384                     break label_8;
    385             }
    386             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    387                 case 35:
    388                     jj_consume_token(35);
    389                     right = unaryExpr();
    390                     left = ArithmeticExpression.createMultiply(left, right);
    391                     break;
    392                 case 36:
    393                     jj_consume_token(36);
    394                     right = unaryExpr();
    395                     left = ArithmeticExpression.createDivide(left, right);
    396                     break;
    397                 case 37:
    398                     jj_consume_token(37);
    399                     right = unaryExpr();
    400                     left = ArithmeticExpression.createMod(left, right);
    401                     break;
    402                 default:
    403                     jj_consume_token(-1);
    404                     throw new ParseException();
    405             }
    406         }
    407         {
    408             if (true) {
    409                 return left;
    410             }
    411         }
    412         throw new Error("Missing return statement in function");
    413     }
    414
    415     final public Expression unaryExpr() throws ParseException {
    416         Expression left = null;
    417         if (jj_2_6(2147483647)) {
    418             jj_consume_token(33);
    419             left = unaryExpr();
    420         }
    421         else {
    422             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    423                 case 34:
    424                     jj_consume_token(34);
    425                     left = unaryExpr();
    426                     left = UnaryExpression.createNegate(left);
    427                     break;
    428                 case NOT:
    429                     jj_consume_token(NOT);
    430                     left = unaryExpr();
    431                     left = UnaryExpression.createNOT(asBooleanExpression(left));
    432                     break;
    433                 case TRUE:
    434                 case FALSE:
    435                 case NULL:
    436                 case INTEGER_LITERAL:
    437                 case FLOATING_POINT_LITERAL:
    438                 case STRING_LITERAL:
    439                 case ID:
    440                 case 30:
    441                     left = primaryExpr();
    442                     break;
    443                 default:
    444                     jj_consume_token(-1);
    445                     throw new ParseException();
    446             }
    447         }
    448         {
    449             if (true) {
    450                 return left;
    451             }
    452         }
    453         throw new Error("Missing return statement in function");
    454     }
    455
    456     final public Expression primaryExpr() throws ParseException {
    457         Expression left = null;
    458         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    459             case TRUE:
    460             case FALSE:
    461             case NULL:
    462             case INTEGER_LITERAL:
    463             case FLOATING_POINT_LITERAL:
    464             case STRING_LITERAL:
    465                 left = literal();
    466                 break;
    467             case ID:
    468                 left = variable();
    469                 break;
    470             case 30:
    471                 jj_consume_token(30);
    472                 left = orExpression();
    473                 jj_consume_token(32);
    474                 break;
    475             default:
    476                 jj_consume_token(-1);
    477                 throw new ParseException();
    478         }
    479         {
    480             if (true) {
    481                 return left;
    482             }
    483         }
    484         throw new Error("Missing return statement in function");
    485     }
    486
    487     final public ConstantExpression literal() throws ParseException {
    488         Token t;
    489         String s;
    490         ConstantExpression left = null;
    491         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
    492             case STRING_LITERAL:
    493                 s = stringLitteral();
    494                 left = new ConstantExpression(s);
    495                 break;
    496             case INTEGER_LITERAL:
    497                 t = jj_consume_token(INTEGER_LITERAL);
    498                 left = ConstantExpression.createInteger(t.image);
    499                 break;
    500             case FLOATING_POINT_LITERAL:
    501                 t = jj_consume_token(FLOATING_POINT_LITERAL);
    502                 left = ConstantExpression.createFloat(t.image);
    503                 break;
    504             case TRUE:
    505                 jj_consume_token(TRUE);
    506                 left = ConstantExpression.TRUE;
    507                 break;
    508             case FALSE:
    509                 jj_consume_token(FALSE);
    510                 left = ConstantExpression.FALSE;
    511                 break;
    512             case NULL:
    513                 jj_consume_token(NULL);
    514                 left = ConstantExpression.NULL;
    515                 break;
    516             default:
    517                 jj_consume_token(-1);
    518                 throw new ParseException();
    519         }
    520         {
    521             if (true) {
    522                 return left;
    523             }
    524         }
    525         throw new Error("Missing return statement in function");
    526     }
    527
    528     final public String stringLitteral() throws ParseException {
    529         Token t;
    530         StringBuffer rc = new StringBuffer();
    531         boolean first = true;
    532         t = jj_consume_token(STRING_LITERAL);
    533         // Decode the sting value.
    534         String image = t.image;
    535         for (int i = 1; i < image.length() - 1; i++) {
    536             char c = image.charAt(i);
    537             if (c == '\'') {
    538                 i++;
    539             }
    540             rc.append(c);
    541         }
    542         {
    543             if (true) {
    544                 return rc.toString();
    545             }
    546         }
    547         throw new Error("Missing return statement in function");
    548     }
    549
    550     final public PropertyExpression variable() throws ParseException {
    551         Token t;
    552         PropertyExpression left = null;
    553         t = jj_consume_token(ID);
    554         left = new PropertyExpression(t.image);
    555         {
    556             if (true) {
    557                 return left;
    558             }
    559         }
    560         throw new Error("Missing return statement in function");
    561     }
    562
    563     final private boolean jj_2_1(int xla) {
    564         jj_la = xla;
    565         jj_lastpos = jj_scanpos = token;
    566         return !jj_3_1();
    567     }
    568
    569     final private boolean jj_2_2(int xla) {
    570         jj_la = xla;
    571         jj_lastpos = jj_scanpos = token;
    572         return !jj_3_2();
    573     }
    574
    575     final private boolean jj_2_3(int xla) {
    576         jj_la = xla;
    577         jj_lastpos = jj_scanpos = token;
    578         return !jj_3_3();
    579     }
    580
    581     final private boolean jj_2_4(int xla) {
    582         jj_la = xla;
    583         jj_lastpos = jj_scanpos = token;
    584         return !jj_3_4();
    585     }
    586
    587     final private boolean jj_2_5(int xla) {
    588         jj_la = xla;
    589         jj_lastpos = jj_scanpos = token;
    590         return !jj_3_5();
    591     }
    592
    593     final private boolean jj_2_6(int xla) {
    594         jj_la = xla;
    595         jj_lastpos = jj_scanpos = token;
    596         return !jj_3_6();
    597     }
    598
    599     final private boolean jj_3R_54() {
    600         if (jj_scan_token(33)) {
    601             return true;
    602         }
    603         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    604             return false;
    605         }
    606         if (jj_3R_11()) {
    607             return true;
    608         }
    609         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    610             return false;
    611         }
    612         return false;
    613     }
    614
    615     final private boolean jj_3R_49() {
    616         if (jj_scan_token(28)) {
    617             return true;
    618         }
    619         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    620             return false;
    621         }
    622         if (jj_3R_41()) {
    623             return true;
    624         }
    625         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    626             return false;
    627         }
    628         return false;
    629     }
    630
    631     final private boolean jj_3R_28() {
    632         if (jj_3R_36()) {
    633             return true;
    634         }
    635         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    636             return false;
    637         }
    638         return false;
    639     }
    640
    641     final private boolean jj_3R_59() {
    642         if (jj_scan_token(31)) {
    643             return true;
    644         }
    645         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    646             return false;
    647         }
    648         if (jj_3R_25()) {
    649             return true;
    650         }
    651         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    652             return false;
    653         }
    654         return false;
    655     }
    656
    657     final private boolean jj_3R_46() {
    658         Token xsp;
    659         xsp = jj_scanpos;
    660         if (jj_3R_54()) {
    661             jj_scanpos = xsp;
    662             if (jj_3R_55()) {
    663                 return true;
    664             }
    665             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    666                 return false;
    667             }
    668         }
    669         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    670             return false;
    671         }
    672         return false;
    673     }
    674
    675     final private boolean jj_3R_35() {
    676         if (jj_scan_token(OR)) {
    677             return true;
    678         }
    679         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    680             return false;
    681         }
    682         if (jj_3R_34()) {
    683             return true;
    684         }
    685         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    686             return false;
    687         }
    688         return false;
    689     }
    690
    691     final private boolean jj_3R_48() {
    692         if (jj_scan_token(27)) {
    693             return true;
    694         }
    695         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    696             return false;
    697         }
    698         if (jj_3R_41()) {
    699             return true;
    700         }
    701         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    702             return false;
    703         }
    704         return false;
    705     }
    706
    707     final private boolean jj_3R_25() {
    708         Token xsp;
    709         xsp = jj_scanpos;
    710         if (jj_3R_28()) {
    711             jj_scanpos = xsp;
    712             if (jj_3R_29()) {
    713                 jj_scanpos = xsp;
    714                 if (jj_3R_30()) {
    715                     jj_scanpos = xsp;
    716                     if (jj_3R_31()) {
    717                         jj_scanpos = xsp;
    718                         if (jj_3R_32()) {
    719                             jj_scanpos = xsp;
    720                             if (jj_3R_33()) {
    721                                 return true;
    722                             }
    723                             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    724                                 return false;
    725                             }
    726                         }
    727                         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    728                             return false;
    729                         }
    730                     }
    731                     else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    732                         return false;
    733                     }
    734                 }
    735                 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    736                     return false;
    737                 }
    738             }
    739             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    740                 return false;
    741             }
    742         }
    743         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    744             return false;
    745         }
    746         return false;
    747     }
    748
    749     final private boolean jj_3R_47() {
    750         if (jj_scan_token(26)) {
    751             return true;
    752         }
    753         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    754             return false;
    755         }
    756         if (jj_3R_41()) {
    757             return true;
    758         }
    759         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    760             return false;
    761         }
    762         return false;
    763     }
    764
    765     final private boolean jj_3R_42() {
    766         Token xsp;
    767         xsp = jj_scanpos;
    768         if (jj_3R_47()) {
    769             jj_scanpos = xsp;
    770             if (jj_3R_48()) {
    771                 jj_scanpos = xsp;
    772                 if (jj_3R_49()) {
    773                     jj_scanpos = xsp;
    774                     if (jj_3R_50()) {
    775                         jj_scanpos = xsp;
    776                         if (jj_3R_51()) {
    777                             jj_scanpos = xsp;
    778                             if (jj_3_2()) {
    779                                 jj_scanpos = xsp;
    780                                 if (jj_3R_52()) {
    781                                     jj_scanpos = xsp;
    782                                     if (jj_3_3()) {
    783                                         jj_scanpos = xsp;
    784                                         if (jj_3R_53()) {
    785                                             jj_scanpos = xsp;
    786                                             if (jj_3_4()) {
    787                                                 return true;
    788                                             }
    789                                             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    790                                                 return false;
    791                                             }
    792                                         }
    793                                         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    794                                             return false;
    795                                         }
    796                                     }
    797                                     else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    798                                         return false;
    799                                     }
    800                                 }
    801                                 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    802                                     return false;
    803                                 }
    804                             }
    805                             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    806                                 return false;
    807                             }
    808                         }
    809                         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    810                             return false;
    811                         }
    812                     }
    813                     else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    814                         return false;
    815                     }
    816                 }
    817                 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    818                     return false;
    819                 }
    820             }
    821             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    822                 return false;
    823             }
    824         }
    825         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    826             return false;
    827         }
    828         return false;
    829     }
    830
    831     final private boolean jj_3R_41() {
    832         if (jj_3R_11()) {
    833             return true;
    834         }
    835         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    836             return false;
    837         }
    838         Token xsp;
    839         while (true) {
    840             xsp = jj_scanpos;
    841             if (jj_3R_46()) {
    842                 jj_scanpos = xsp;
    843                 break;
    844             }
    845             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    846                 return false;
    847             }
    848         }
    849         return false;
    850     }
    851
    852     final private boolean jj_3R_27() {
    853         if (jj_3R_34()) {
    854             return true;
    855         }
    856         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    857             return false;
    858         }
    859         Token xsp;
    860         while (true) {
    861             xsp = jj_scanpos;
    862             if (jj_3R_35()) {
    863                 jj_scanpos = xsp;
    864                 break;
    865             }
    866             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    867                 return false;
    868             }
    869         }
    870         return false;
    871     }
    872
    873     final private boolean jj_3R_24() {
    874         if (jj_scan_token(30)) {
    875             return true;
    876         }
    877         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    878             return false;
    879         }
    880         if (jj_3R_27()) {
    881             return true;
    882         }
    883         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    884             return false;
    885         }
    886         if (jj_scan_token(32)) {
    887             return true;
    888         }
    889         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    890             return false;
    891         }
    892         return false;
    893     }
    894
    895     final private boolean jj_3R_23() {
    896         if (jj_3R_26()) {
    897             return true;
    898         }
    899         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    900             return false;
    901         }
    902         return false;
    903     }
    904
    905     final private boolean jj_3R_22() {
    906         if (jj_3R_25()) {
    907             return true;
    908         }
    909         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    910             return false;
    911         }
    912         return false;
    913     }
    914
    915     final private boolean jj_3R_58() {
    916         if (jj_scan_token(31)) {
    917             return true;
    918         }
    919         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    920             return false;
    921         }
    922         if (jj_3R_25()) {
    923             return true;
    924         }
    925         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    926             return false;
    927         }
    928         return false;
    929     }
    930
    931     final private boolean jj_3R_26() {
    932         if (jj_scan_token(ID)) {
    933             return true;
    934         }
    935         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    936             return false;
    937         }
    938         return false;
    939     }
    940
    941     final private boolean jj_3R_39() {
    942         if (jj_3R_41()) {
    943             return true;
    944         }
    945         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    946             return false;
    947         }
    948         Token xsp;
    949         while (true) {
    950             xsp = jj_scanpos;
    951             if (jj_3R_42()) {
    952                 jj_scanpos = xsp;
    953                 break;
    954             }
    955             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    956                 return false;
    957             }
    958         }
    959         return false;
    960     }
    961
    962     final private boolean jj_3R_21() {
    963         Token xsp;
    964         xsp = jj_scanpos;
    965         if (jj_3R_22()) {
    966             jj_scanpos = xsp;
    967             if (jj_3R_23()) {
    968                 jj_scanpos = xsp;
    969                 if (jj_3R_24()) {
    970                     return true;
    971                 }
    972                 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    973                     return false;
    974                 }
    975             }
    976             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    977                 return false;
    978             }
    979         }
    980         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    981             return false;
    982         }
    983         return false;
    984     }
    985
    986     final private boolean jj_3R_57() {
    987         if (jj_scan_token(ESCAPE)) {
    988             return true;
    989         }
    990         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    991             return false;
    992         }
    993         if (jj_3R_36()) {
    994             return true;
    995         }
    996         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    997             return false;
    998         }
    999         return false;
    1000     }
    1001
    1002     final private boolean jj_3_4() {
    1003         if (jj_scan_token(NOT)) {
    1004             return true;
    1005         }
    1006         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1007             return false;
    1008         }
    1009         if (jj_scan_token(IN)) {
    1010             return true;
    1011         }
    1012         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1013             return false;
    1014         }
    1015         if (jj_scan_token(30)) {
    1016             return true;
    1017         }
    1018         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1019             return false;
    1020         }
    1021         if (jj_3R_25()) {
    1022             return true;
    1023         }
    1024         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1025             return false;
    1026         }
    1027         Token xsp;
    1028         while (true) {
    1029             xsp = jj_scanpos;
    1030             if (jj_3R_59()) {
    1031                 jj_scanpos = xsp;
    1032                 break;
    1033             }
    1034             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1035                 return false;
    1036             }
    1037         }
    1038         if (jj_scan_token(32)) {
    1039             return true;
    1040         }
    1041         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1042             return false;
    1043         }
    1044         return false;
    1045     }
    1046
    1047     final private boolean jj_3_6() {
    1048         if (jj_scan_token(33)) {
    1049             return true;
    1050         }
    1051         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1052             return false;
    1053         }
    1054         if (jj_3R_12()) {
    1055             return true;
    1056         }
    1057         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1058             return false;
    1059         }
    1060         return false;
    1061     }
    1062
    1063     final private boolean jj_3R_17() {
    1064         if (jj_3R_21()) {
    1065             return true;
    1066         }
    1067         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1068             return false;
    1069         }
    1070         return false;
    1071     }
    1072
    1073     final private boolean jj_3R_16() {
    1074         if (jj_scan_token(NOT)) {
    1075             return true;
    1076         }
    1077         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1078             return false;
    1079         }
    1080         if (jj_3R_12()) {
    1081             return true;
    1082         }
    1083         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1084             return false;
    1085         }
    1086         return false;
    1087     }
    1088
    1089     final private boolean jj_3R_53() {
    1090         if (jj_scan_token(IN)) {
    1091             return true;
    1092         }
    1093         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1094             return false;
    1095         }
    1096         if (jj_scan_token(30)) {
    1097             return true;
    1098         }
    1099         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1100             return false;
    1101         }
    1102         if (jj_3R_25()) {
    1103             return true;
    1104         }
    1105         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1106             return false;
    1107         }
    1108         Token xsp;
    1109         while (true) {
    1110             xsp = jj_scanpos;
    1111             if (jj_3R_58()) {
    1112                 jj_scanpos = xsp;
    1113                 break;
    1114             }
    1115             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1116                 return false;
    1117             }
    1118         }
    1119         if (jj_scan_token(32)) {
    1120             return true;
    1121         }
    1122         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1123             return false;
    1124         }
    1125         return false;
    1126     }
    1127
    1128     final private boolean jj_3R_45() {
    1129         if (jj_scan_token(IS)) {
    1130             return true;
    1131         }
    1132         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1133             return false;
    1134         }
    1135         if (jj_scan_token(NOT)) {
    1136             return true;
    1137         }
    1138         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1139             return false;
    1140         }
    1141         if (jj_scan_token(NULL)) {
    1142             return true;
    1143         }
    1144         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1145             return false;
    1146         }
    1147         return false;
    1148     }
    1149
    1150     final private boolean jj_3R_14() {
    1151         if (jj_scan_token(33)) {
    1152             return true;
    1153         }
    1154         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1155             return false;
    1156         }
    1157         if (jj_3R_12()) {
    1158             return true;
    1159         }
    1160         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1161             return false;
    1162         }
    1163         return false;
    1164     }
    1165
    1166     final private boolean jj_3R_15() {
    1167         if (jj_scan_token(34)) {
    1168             return true;
    1169         }
    1170         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1171             return false;
    1172         }
    1173         if (jj_3R_12()) {
    1174             return true;
    1175         }
    1176         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1177             return false;
    1178         }
    1179         return false;
    1180     }
    1181
    1182     final private boolean jj_3R_36() {
    1183         if (jj_scan_token(STRING_LITERAL)) {
    1184             return true;
    1185         }
    1186         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1187             return false;
    1188         }
    1189         return false;
    1190     }
    1191
    1192     final private boolean jj_3_1() {
    1193         if (jj_scan_token(IS)) {
    1194             return true;
    1195         }
    1196         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1197             return false;
    1198         }
    1199         if (jj_scan_token(NULL)) {
    1200             return true;
    1201         }
    1202         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1203             return false;
    1204         }
    1205         return false;
    1206     }
    1207
    1208     final private boolean jj_3R_12() {
    1209         Token xsp;
    1210         xsp = jj_scanpos;
    1211         if (jj_3R_14()) {
    1212             jj_scanpos = xsp;
    1213             if (jj_3R_15()) {
    1214                 jj_scanpos = xsp;
    1215                 if (jj_3R_16()) {
    1216                     jj_scanpos = xsp;
    1217                     if (jj_3R_17()) {
    1218                         return true;
    1219                     }
    1220                     if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1221                         return false;
    1222                     }
    1223                 }
    1224                 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1225                     return false;
    1226                 }
    1227             }
    1228             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1229                 return false;
    1230             }
    1231         }
    1232         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1233             return false;
    1234         }
    1235         return false;
    1236     }
    1237
    1238     final private boolean jj_3R_44() {
    1239         if (jj_scan_token(25)) {
    1240             return true;
    1241         }
    1242         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1243             return false;
    1244         }
    1245         if (jj_3R_39()) {
    1246             return true;
    1247         }
    1248         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1249             return false;
    1250         }
    1251         return false;
    1252     }
    1253
    1254     final private boolean jj_3_3() {
    1255         if (jj_scan_token(NOT)) {
    1256             return true;
    1257         }
    1258         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1259             return false;
    1260         }
    1261         if (jj_scan_token(BETWEEN)) {
    1262             return true;
    1263         }
    1264         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1265             return false;
    1266         }
    1267         if (jj_3R_41()) {
    1268             return true;
    1269         }
    1270         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1271             return false;
    1272         }
    1273         if (jj_scan_token(AND)) {
    1274             return true;
    1275         }
    1276         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1277             return false;
    1278         }
    1279         if (jj_3R_41()) {
    1280             return true;
    1281         }
    1282         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1283             return false;
    1284         }
    1285         return false;
    1286     }
    1287
    1288     final private boolean jj_3R_43() {
    1289         if (jj_scan_token(24)) {
    1290             return true;
    1291         }
    1292         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1293             return false;
    1294         }
    1295         if (jj_3R_39()) {
    1296             return true;
    1297         }
    1298         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1299             return false;
    1300         }
    1301         return false;
    1302     }
    1303
    1304     final private boolean jj_3R_40() {
    1305         Token xsp;
    1306         xsp = jj_scanpos;
    1307         if (jj_3R_43()) {
    1308             jj_scanpos = xsp;
    1309             if (jj_3R_44()) {
    1310                 jj_scanpos = xsp;
    1311                 if (jj_3_1()) {
    1312                     jj_scanpos = xsp;
    1313                     if (jj_3R_45()) {
    1314                         return true;
    1315                     }
    1316                     if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1317                         return false;
    1318                     }
    1319                 }
    1320                 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1321                     return false;
    1322                 }
    1323             }
    1324             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1325                 return false;
    1326             }
    1327         }
    1328         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1329             return false;
    1330         }
    1331         return false;
    1332     }
    1333
    1334     final private boolean jj_3R_52() {
    1335         if (jj_scan_token(BETWEEN)) {
    1336             return true;
    1337         }
    1338         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1339             return false;
    1340         }
    1341         if (jj_3R_41()) {
    1342             return true;
    1343         }
    1344         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1345             return false;
    1346         }
    1347         if (jj_scan_token(AND)) {
    1348             return true;
    1349         }
    1350         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1351             return false;
    1352         }
    1353         if (jj_3R_41()) {
    1354             return true;
    1355         }
    1356         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1357             return false;
    1358         }
    1359         return false;
    1360     }
    1361
    1362     final private boolean jj_3R_33() {
    1363         if (jj_scan_token(NULL)) {
    1364             return true;
    1365         }
    1366         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1367             return false;
    1368         }
    1369         return false;
    1370     }
    1371
    1372     final private boolean jj_3R_56() {
    1373         if (jj_scan_token(ESCAPE)) {
    1374             return true;
    1375         }
    1376         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1377             return false;
    1378         }
    1379         if (jj_3R_36()) {
    1380             return true;
    1381         }
    1382         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1383             return false;
    1384         }
    1385         return false;
    1386     }
    1387
    1388     final private boolean jj_3R_20() {
    1389         if (jj_scan_token(37)) {
    1390             return true;
    1391         }
    1392         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1393             return false;
    1394         }
    1395         if (jj_3R_12()) {
    1396             return true;
    1397         }
    1398         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1399             return false;
    1400         }
    1401         return false;
    1402     }
    1403
    1404     final private boolean jj_3R_32() {
    1405         if (jj_scan_token(FALSE)) {
    1406             return true;
    1407         }
    1408         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1409             return false;
    1410         }
    1411         return false;
    1412     }
    1413
    1414     final private boolean jj_3R_37() {
    1415         if (jj_3R_39()) {
    1416             return true;
    1417         }
    1418         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1419             return false;
    1420         }
    1421         Token xsp;
    1422         while (true) {
    1423             xsp = jj_scanpos;
    1424             if (jj_3R_40()) {
    1425                 jj_scanpos = xsp;
    1426                 break;
    1427             }
    1428             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1429                 return false;
    1430             }
    1431         }
    1432         return false;
    1433     }
    1434
    1435     final private boolean jj_3_2() {
    1436         if (jj_scan_token(NOT)) {
    1437             return true;
    1438         }
    1439         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1440             return false;
    1441         }
    1442         if (jj_scan_token(LIKE)) {
    1443             return true;
    1444         }
    1445         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1446             return false;
    1447         }
    1448         if (jj_3R_36()) {
    1449             return true;
    1450         }
    1451         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1452             return false;
    1453         }
    1454         Token xsp;
    1455         xsp = jj_scanpos;
    1456         if (jj_3R_57()) {
    1457             jj_scanpos = xsp;
    1458         }
    1459         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1460             return false;
    1461         }
    1462         return false;
    1463     }
    1464
    1465     final private boolean jj_3R_51() {
    1466         if (jj_scan_token(LIKE)) {
    1467             return true;
    1468         }
    1469         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1470             return false;
    1471         }
    1472         if (jj_3R_36()) {
    1473             return true;
    1474         }
    1475         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1476             return false;
    1477         }
    1478         Token xsp;
    1479         xsp = jj_scanpos;
    1480         if (jj_3R_56()) {
    1481             jj_scanpos = xsp;
    1482         }
    1483         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1484             return false;
    1485         }
    1486         return false;
    1487     }
    1488
    1489     final private boolean jj_3R_19() {
    1490         if (jj_scan_token(36)) {
    1491             return true;
    1492         }
    1493         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1494             return false;
    1495         }
    1496         if (jj_3R_12()) {
    1497             return true;
    1498         }
    1499         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1500             return false;
    1501         }
    1502         return false;
    1503     }
    1504
    1505     final private boolean jj_3R_31() {
    1506         if (jj_scan_token(TRUE)) {
    1507             return true;
    1508         }
    1509         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1510             return false;
    1511         }
    1512         return false;
    1513     }
    1514
    1515     final private boolean jj_3R_18() {
    1516         if (jj_scan_token(35)) {
    1517             return true;
    1518         }
    1519         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1520             return false;
    1521         }
    1522         if (jj_3R_12()) {
    1523             return true;
    1524         }
    1525         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1526             return false;
    1527         }
    1528         return false;
    1529     }
    1530
    1531     final private boolean jj_3R_13() {
    1532         Token xsp;
    1533         xsp = jj_scanpos;
    1534         if (jj_3R_18()) {
    1535             jj_scanpos = xsp;
    1536             if (jj_3R_19()) {
    1537                 jj_scanpos = xsp;
    1538                 if (jj_3R_20()) {
    1539                     return true;
    1540                 }
    1541                 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1542                     return false;
    1543                 }
    1544             }
    1545             else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1546                 return false;
    1547             }
    1548         }
    1549         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1550             return false;
    1551         }
    1552         return false;
    1553     }
    1554
    1555     final private boolean jj_3R_38() {
    1556         if (jj_scan_token(AND)) {
    1557             return true;
    1558         }
    1559         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1560             return false;
    1561         }
    1562         if (jj_3R_37()) {
    1563             return true;
    1564         }
    1565         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1566             return false;
    1567         }
    1568         return false;
    1569     }
    1570
    1571     final private boolean jj_3R_30() {
    1572         if (jj_scan_token(FLOATING_POINT_LITERAL)) {
    1573             return true;
    1574         }
    1575         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1576             return false;
    1577         }
    1578         return false;
    1579     }
    1580
    1581     final private boolean jj_3R_11() {
    1582         if (jj_3R_12()) {
    1583             return true;
    1584         }
    1585         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1586             return false;
    1587         }
    1588         Token xsp;
    1589         while (true) {
    1590             xsp = jj_scanpos;
    1591             if (jj_3R_13()) {
    1592                 jj_scanpos = xsp;
    1593                 break;
    1594             }
    1595             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1596                 return false;
    1597             }
    1598         }
    1599         return false;
    1600     }
    1601
    1602     final private boolean jj_3R_10() {
    1603         if (jj_scan_token(34)) {
    1604             return true;
    1605         }
    1606         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1607             return false;
    1608         }
    1609         return false;
    1610     }
    1611
    1612     final private boolean jj_3R_9() {
    1613         if (jj_scan_token(33)) {
    1614             return true;
    1615         }
    1616         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1617             return false;
    1618         }
    1619         return false;
    1620     }
    1621
    1622     final private boolean jj_3R_55() {
    1623         if (jj_scan_token(34)) {
    1624             return true;
    1625         }
    1626         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1627             return false;
    1628         }
    1629         if (jj_3R_11()) {
    1630             return true;
    1631         }
    1632         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1633             return false;
    1634         }
    1635         return false;
    1636     }
    1637
    1638     final private boolean jj_3R_34() {
    1639         if (jj_3R_37()) {
    1640             return true;
    1641         }
    1642         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1643             return false;
    1644         }
    1645         Token xsp;
    1646         while (true) {
    1647             xsp = jj_scanpos;
    1648             if (jj_3R_38()) {
    1649                 jj_scanpos = xsp;
    1650                 break;
    1651             }
    1652             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1653                 return false;
    1654             }
    1655         }
    1656         return false;
    1657     }
    1658
    1659     final private boolean jj_3_5() {
    1660         Token xsp;
    1661         xsp = jj_scanpos;
    1662         if (jj_3R_9()) {
    1663             jj_scanpos = xsp;
    1664             if (jj_3R_10()) {
    1665                 return true;
    1666             }
    1667             if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1668                 return false;
    1669             }
    1670         }
    1671         else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1672             return false;
    1673         }
    1674         if (jj_3R_11()) {
    1675             return true;
    1676         }
    1677         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1678             return false;
    1679         }
    1680         return false;
    1681     }
    1682
    1683     final private boolean jj_3R_29() {
    1684         if (jj_scan_token(INTEGER_LITERAL)) {
    1685             return true;
    1686         }
    1687         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1688             return false;
    1689         }
    1690         return false;
    1691     }
    1692
    1693     final private boolean jj_3R_50() {
    1694         if (jj_scan_token(29)) {
    1695             return true;
    1696         }
    1697         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1698             return false;
    1699         }
    1700         if (jj_3R_41()) {
    1701             return true;
    1702         }
    1703         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
    1704             return false;
    1705         }
    1706         return false;
    1707     }
    1708
    1709     public SelectorParserTokenManager token_source;
    1710     SimpleCharStream jj_input_stream;
    1711     public Token token, jj_nt;
    1712     private int jj_ntk;
    1713     private Token jj_scanpos, jj_lastpos;
    1714     private int jj_la;
    1715     public boolean lookingAhead = false;
    1716     private boolean jj_semLA;
    1717
    1718     public SelectorParser(java.io.InputStream stream) {
    1719         jj_input_stream = new SimpleCharStream(stream, 1, 1);
    1720         token_source = new SelectorParserTokenManager(jj_input_stream);
    1721         token = new Token();
    1722         jj_ntk = -1;
    1723     }
    1724
    1725     public void ReInit(java.io.InputStream stream) {
    1726         jj_input_stream.ReInit(stream, 1, 1);
    1727         token_source.ReInit(jj_input_stream);
    1728         token = new Token();
    1729         jj_ntk = -1;
    1730     }
    1731
    1732     public SelectorParser(java.io.Reader stream) {
    1733         jj_input_stream = new SimpleCharStream(stream, 1, 1);
    1734         token_source = new SelectorParserTokenManager(jj_input_stream);
    1735         token = new Token();
    1736         jj_ntk = -1;
    1737     }
    1738
    1739     public void ReInit(java.io.Reader stream) {
    1740         jj_input_stream.ReInit(stream, 1, 1);
    1741         token_source.ReInit(jj_input_stream);
    1742         token = new Token();
    1743         jj_ntk = -1;
    1744     }
    1745
    1746     public SelectorParser(SelectorParserTokenManager tm) {
    1747         token_source = tm;
    1748         token = new Token();
    1749         jj_ntk = -1;
    1750     }
    1751
    1752     public void ReInit(SelectorParserTokenManager tm) {
    1753         token_source = tm;
    1754         token = new Token();
    1755         jj_ntk = -1;
    1756     }
    1757
    1758     final private Token jj_consume_token(int kind) throws ParseException {
    1759         Token oldToken;
    1760         if ((oldToken = token).next != null) {
    1761             token = token.next;
    1762         }
    1763         else {
    1764             token = token.next = token_source.getNextToken();
    1765         }
    1766         jj_ntk = -1;
    1767         if (token.kind == kind) {
    1768             return token;
    1769         }
    1770         token = oldToken;
    1771         throw generateParseException();
    1772     }
    1773
    1774     final private boolean jj_scan_token(int kind) {
    1775         if (jj_scanpos == jj_lastpos) {
    1776             jj_la--;
    1777             if (jj_scanpos.next == null) {
    1778                 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
    1779             }
    1780             else {
    1781                 jj_lastpos = jj_scanpos = jj_scanpos.next;
    1782             }
    1783         }
    1784         else {
    1785             jj_scanpos = jj_scanpos.next;
    1786         }
    1787         return (jj_scanpos.kind != kind);
    1788     }
    1789
    1790     final public Token getNextToken() {
    1791         if (token.next != null) {
    1792             token = token.next;
    1793         }
    1794         else {
    1795             token = token.next = token_source.getNextToken();
    1796         }
    1797         jj_ntk = -1;
    1798         return token;
    1799     }
    1800
    1801     final public Token getToken(int index) {
    1802         Token t = lookingAhead ? jj_scanpos : token;
    1803         for (int i = 0; i < index; i++) {
    1804             if (t.next != null) {
    1805                 t = t.next;
    1806             }
    1807             else {
    1808                 t = t.next = token_source.getNextToken();
    1809             }
    1810         }
    1811         return t;
    1812     }
    1813
    1814     final private int jj_ntk() {
    1815         if ((jj_nt = token.next) == null) {
    1816             return (jj_ntk = (token.next = token_source.getNextToken()).kind);
    1817         }
    1818         else {
    1819             return (jj_ntk = jj_nt.kind);
    1820         }
    1821     }
    1822
    1823     final public ParseException generateParseException() {
    1824         Token errortok = token.next;
    1825         int line = errortok.beginLine, column = errortok.beginColumn;
    1826         String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
    1827         return new ParseException("Parse error at line " + line + ", column " + column + ".  Encountered: " + mess);
    1828     }
    1829
    1830     final public void enable_tracing() {
    1831     }
    1832
    1833     final public void disable_tracing() {
    1834     }
    1835
    1836 }