final public Expression comparisonExpression()

in client/src/main/java/org/apache/qpid/filter/selector/SelectorParser.java [180:331]


  final public Expression comparisonExpression() throws ParseException {
    Expression left;
    Expression right;
    Expression low;
    Expression high;
    String t, u;
        boolean not;
        ArrayList list;
    left = addExpression();
    label_4:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
      case BETWEEN:
      case LIKE:
      case IN:
      case 29:
      case 30:
      case 31:
      case 32:
        ;
        break;
      default:
        break label_4;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 29:
        jj_consume_token(29);
        right = addExpression();
                    left = ComparisonExpression.createGreaterThan(left, right);
        break;
      case 30:
        jj_consume_token(30);
        right = addExpression();
                    left = ComparisonExpression.createGreaterThanEqual(left, right);
        break;
      case 31:
        jj_consume_token(31);
        right = addExpression();
                    left = ComparisonExpression.createLessThan(left, right);
        break;
      case 32:
        jj_consume_token(32);
        right = addExpression();
                    left = ComparisonExpression.createLessThanEqual(left, right);
        break;
      case LIKE:
                                        u=null;
        jj_consume_token(LIKE);
        t = stringLiteral();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case ESCAPE:
          jj_consume_token(ESCAPE);
          u = stringLiteral();
          break;
        default:
          ;
        }
                    left = ComparisonExpression.createLike(left, t, u);
        break;
      default:
        if (jj_2_2(2)) {
                                        u=null;
          jj_consume_token(NOT);
          jj_consume_token(LIKE);
          t = stringLiteral();
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case ESCAPE:
            jj_consume_token(ESCAPE);
            u = stringLiteral();
            break;
          default:
            ;
          }
                    left = ComparisonExpression.createNotLike(left, t, u);
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case BETWEEN:
            jj_consume_token(BETWEEN);
            low = addExpression();
            jj_consume_token(AND);
            high = addExpression();
                                        left = ComparisonExpression.createBetween(left, low, high);
            break;
          default:
            if (jj_2_3(2)) {
              jj_consume_token(NOT);
              jj_consume_token(BETWEEN);
              low = addExpression();
              jj_consume_token(AND);
              high = addExpression();
                                        left = ComparisonExpression.createNotBetween(left, low, high);
            } else {
              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
              case IN:
                jj_consume_token(IN);
                jj_consume_token(33);
                t = stringLiteral();
                                    list = new ArrayList();
                                    list.add( t );
                label_5:
                while (true) {
                  switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
                  case 34:
                    ;
                    break;
                  default:
                    break label_5;
                  }
                  jj_consume_token(34);
                  t = stringLiteral();
                                            list.add( t );
                }
                jj_consume_token(35);
                           left = ComparisonExpression.createInFilter(left, list, false );
                break;
              default:
                if (jj_2_4(2)) {
                  jj_consume_token(NOT);
                  jj_consume_token(IN);
                  jj_consume_token(33);
                  t = stringLiteral();
                                    list = new ArrayList();
                                    list.add( t );
                  label_6:
                  while (true) {
                    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
                    case 34:
                      ;
                      break;
                    default:
                      break label_6;
                    }
                    jj_consume_token(34);
                    t = stringLiteral();
                                            list.add( t );
                  }
                  jj_consume_token(35);
                           left = ComparisonExpression.createNotInFilter(left, list, false);
                } else {
                  jj_consume_token(-1);
                  throw new ParseException();
                }
              }
            }
          }
        }
      }
    }
        {if (true) return left;}
    throw new Error("Missing return statement in function");
  }