⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 josqlparser.java

📁 JoSQL 1.5的源代码。JoSQL(SQL for Java Objects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        jj_la1[38] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
          {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public InExpression InExpression() throws ParseException {
        InExpression result = new InExpression();
        List items = null;
        Expression left = null;
    left = SimpleExpression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_NOT:
      jj_consume_token(K_NOT);
               result.setNot(true);
      break;
    default:
      jj_la1[39] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 63:
      jj_consume_token(63);
                                                result.setIgnoreCase (true);
      break;
    default:
      jj_la1[40] = jj_gen;
      ;
    }
    jj_consume_token(K_IN);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 63:
      jj_consume_token(63);
                                                                                                result.setIgnoreCase (true);
      break;
    default:
      jj_la1[41] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_LIKE:
      jj_consume_token(K_LIKE);
                                                                                                                                              result.setDoLike (true);
      break;
    default:
      jj_la1[42] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_ALL:
      jj_consume_token(K_ALL);
                                                                                                                                                                                        result.setAll (true);
      break;
    default:
      jj_la1[43] = jj_gen;
      ;
    }
    jj_consume_token(59);
    items = SQLExpressionList();
    jj_consume_token(60);
           if (!(left instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The left-hand side of an [NOT] IN clause must be a value expression.");}

           }

           result.setLeft ((ValueExpression) left);

           for (int i = 0; i < items.size (); i++)
           {

              if (!(items.get (i) instanceof ValueExpression))
              {

                 {if (true) throw new ParseException ("Item: " + (i + 1) + " from the [NOT] IN clause is NOT a value expression, is: \"" + items.get (i).toString () + "\"");}

              }

           }

           result.setItems (items);
           {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public BetweenExpression BetweenExpression() throws ParseException {
        BetweenExpression result = new BetweenExpression ();
        Expression left = null;
        Expression start = null;
        Expression end = null;
    left = SimpleExpression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_NOT:
      jj_consume_token(K_NOT);
                       result.setNot(true);
      break;
    default:
      jj_la1[44] = jj_gen;
      ;
    }
    jj_consume_token(K_BETWEEN);
    start = SimpleExpression();
    jj_consume_token(K_AND);
    end = SimpleExpression();
           if (!(left instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The left-hand side of an [NOT] BETWEEN clause must be a value expression, is: \"" + left + "\"");}

           }

           if (!(start instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The START value of an [NOT] BETWEEN clause must be a value expression, is: \"" + start + "\"");}

           }

           if (!(end instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The END value of an [NOT] BETWEEN clause must be a value expression, is: \"" + end + "\"");}

           }

                result.setLeft ((ValueExpression) left);
                result.setStart ((ValueExpression) start);
                result.setEnd ((ValueExpression) end);
                {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public LikeExpression LikeExpression() throws ParseException {
        LikeExpression result = new LikeExpression ();
        Expression left = null;
        Expression right = null;
    left = SimpleExpression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_NOT:
      jj_consume_token(K_NOT);
               result.setNot (true);
      break;
    default:
      jj_la1[45] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 63:
      jj_consume_token(63);
                                                 result.setIgnoreCase (true);
      break;
    default:
      jj_la1[46] = jj_gen;
      ;
    }
    jj_consume_token(K_LIKE);
    right = SimpleExpression();
                result.setLeft (left);
                result.setRight (right);
                {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public IsNullExpression IsNullExpression() throws ParseException {
        IsNullExpression result = new IsNullExpression ();
        Expression left = null;
    left = SimpleExpression();
    jj_consume_token(K_IS);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_NOT:
      jj_consume_token(K_NOT);
                      result.setNot (true);
      break;
    default:
      jj_la1[47] = jj_gen;
      ;
    }
    jj_consume_token(K_NULL);
                result.setLeft (left);
                {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public List SQLExpressionList() throws ParseException {
        List expressions = new ArrayList();
        Expression expr = null;
    expr = OrExpression();
                            expressions.add(expr);
    label_11:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 55:
        ;
        break;
      default:
        jj_la1[48] = jj_gen;
        break label_11;
      }
      jj_consume_token(55);
      expr = OrExpression();
                                                                                  expressions.add(expr);
    }
                {if (true) return expressions;}
    throw new Error("Missing return statement in function");
  }

  final public List AliasedSQLExpressionList() throws ParseException {
        List expressions = new ArrayList();
        AliasedExpression aexp = null;
        Expression expr = null;
        String alias = null;
    expr = OrExpression();
                            aexp = new AliasedExpression (); aexp.setExpression (expr); expressions.add (aexp);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_AS:
    case S_IDENTIFIER:
    case S_CHAR_LITERAL:
    case S_CHAR_LITERAL2:
      alias = Alias();
                                                                                                                                      aexp.setAlias (alias);
      break;
    default:
      jj_la1[49] = jj_gen;
      ;
    }
    label_12:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 55:
        ;
        break;
      default:
        jj_la1[50] = jj_gen;
        break label_12;
      }
      jj_consume_token(55);
      expr = OrExpression();
                                                                                                                                                                                              aexp = new AliasedExpression (); aexp.setExpression (expr); expressions.add (aexp);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case K_AS:
      case S_IDENTIFIER:
      case S_CHAR_LITERAL:
      case S_CHAR_LITERAL2:
        alias = Alias();
                                                                                                                                                                                                                                                                                                        aexp.setAlias (alias);
        break;
      default:
        jj_la1[51] = jj_gen;
        ;
      }
    }
                {if (true) return expressions;}
    throw new Error("Missing return statement in function");
  }

  final public Expression SimpleExpression() throws ParseException {
        Expression result = null;
    if (jj_2_17(3)) {
      result = AdditiveExpression();
    } else if (jj_2_18(3)) {
      result = MultiplicativeExpression();
    } else if (jj_2_19(3)) {
      result = PrimaryExpression();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public Expression AdditiveExpression() throws ParseException {
        Expression result = null;
        Expression left = null;
        Expression right = null;
        int type = -1;
    left = MultiplicativeExpression();
                                         result = left;
    label_13:
    while (true) {
      if (jj_2_20(2)) {
        ;
      } else {
        break label_13;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 71:
        jj_consume_token(71);
                            type = ArithmeticExpression.ADDITION;
        break;
      case 72:
        jj_consume_token(72);
                            type = ArithmeticExpression.SUBTRACT;
        break;
      default:
        jj_la1[52] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      right = AdditiveExpression();
           if (!(left instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The left-hand side of an arithmetic expresion (+, -, *, / or %) must be a value expression.");}

           }

           if (!(right instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The right-hand side of an arithmetic expresion (+, -, *, / or %) must be a value expression.");}

           }

                  ArithmeticExpression ae = new ArithmeticExpression ();
                  ae.setLeft ((ValueExpression) left);
                  ae.setRight ((ValueExpression) right);
                  result = ae;
                  ae.setType (type);
    }
      {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public Expression MultiplicativeExpression() throws ParseException {
        Expression result = null;
        Expression left = null;
        Expression right = null;
        int type = -1;
    left = PrimaryExpression();
                                  result = left;
    label_14:
    while (true) {
      if (jj_2_21(2)) {
        ;
      } else {
        break label_14;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 56:
        jj_consume_token(56);
                            type = ArithmeticExpression.MULTIPLY;
        break;
      case 73:
        jj_consume_token(73);
                             type = ArithmeticExpression.DIVIDE;
        break;
      case 74:
        jj_consume_token(74);
                             type = ArithmeticExpression.MODULUS;
        break;
      default:
        jj_la1[53] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      right = AdditiveExpression();
           if (!(left instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The left-hand side of an arithmetic expresion (+, -, *, / or %) must be a value expression.");}

           }

           if (!(right instanceof ValueExpression))
           {

              {if (true) throw new ParseException ("The right-hand side of an arithmetic expresion (+, -, *, / or %) must be a value expression.");}

           }

                  ArithmeticExpression ae = new ArithmeticExpression ();
                  ae.setLeft ((ValueExpression) left);
                  ae.setRight ((ValueExpression) right);
                  result = ae;
                  ae.setType (type);
    }
      {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public Expression PrimaryExpression() throws ParseException {
        Expression retval = null;
        Token token = null;
        boolean isInverse = false;
        String tmp = "";
        String accName = null;
    if (jj_2_22(2)) {
      retval = NewObjectExpression();
    } else if (jj_2_23(2)) {
      retval = SubQueryExpression();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case K_NULL:
        jj_consume_token(K_NULL);
                     retval = new ConstantExpression (); ConstantExpression ce = (ConstantExpression) retval; ce.setValue (null);
        break;
      default:
        jj_la1[64] = jj_gen;
        if (jj_2_24(2)) {
          jj_consume_token(K_TRUE);
                                  retval = new BooleanExpression (); BooleanExpression be = (BooleanExpression) retval; be.setValue (Boolean.TRUE);
        } else if (jj_2_25(2)) {
          jj_consume_token(K_FALSE);
                                   retval = new BooleanExpression (); BooleanExpression be = (BooleanExpression) retval; be.setValue (Boolean.FALSE);
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case 49:
          case 50:
          case 51:
            retval = BindVariable();
            break;
          case 53:
            retval = SaveValue();
            break;
          default:
            jj_la1[65] = jj_gen;
            if (jj_2_26(2147483647)) {
              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
              case 71:
              case 72:
                switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
                case 71:
                  jj_consume_token(71);
                  break;
                case 72:
                  jj_consume_token(72);
                                                              isInverse = true;
                  break;
                default:
                  jj_la1[54] = jj_gen;
                  jj_consume_token(-1);
                  throw new ParseException();
                }
                break;
              default:
                jj_la1[55] = jj_gen;
                ;
              }
              retval = Function();
            } else if (jj_2_27(2147483647)) {
              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
              case 71:
              case 72:
                switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
                case 71:
                  jj_consume_token(71);
                  break;
                case 72:
                  jj_consume_token(72);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -