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

📄 josqlparser.java

📁 JoSQL 1.5的源代码。JoSQL(SQL for Java Objects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/* Generated By:JavaCC: Do not edit this line. JoSQLParser.java */
package org.josql.parser;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;

import org.josql.Query;

import org.josql.internal.OrderBy;
import org.josql.internal.Limit;
import org.josql.internal.Utilities;
import org.josql.internal.ColumnReference;

import org.josql.expressions.*;

/** * The parser generated by JavaCC */
public class JoSQLParser implements JoSQLParserConstants {

  final public BindVariable BindVariable() throws ParseException {
  Token t = null;
  BindVariable result = new BindVariable ();
  String prefix = "";
  String acc = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 49:
      jj_consume_token(49);
      t = jj_consume_token(S_IDENTIFIER);
                             result.setName (t.image);
      break;
    case 50:
      jj_consume_token(50);
      t = jj_consume_token(S_IDENTIFIER);
                              prefix = "_";  result.setName (prefix + t.image);
      break;
    case 51:
      jj_consume_token(51);
          result.setAnonymous (true);
      break;
    default:
      jj_la1[0] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 52:
      jj_consume_token(52);
      acc = Name();
                        result.setAccessor (acc);
      break;
    default:
      jj_la1[1] = jj_gen;
      ;
    }
      {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public SaveValue SaveValue() throws ParseException {
  Token t = null;
  SaveValue result = new SaveValue ();
  String v = null;
  String acc = null;
    jj_consume_token(53);
    t = jj_consume_token(S_IDENTIFIER);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 52:
      jj_consume_token(52);
      acc = Name();
                                               result.setAccessor (acc);
      break;
    default:
      jj_la1[2] = jj_gen;
      ;
    }
      result.setName (t.image);

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

  final public void parseQuery(Query q) throws ParseException {
    Query(q);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 54:
      jj_consume_token(54);
      break;
    default:
      jj_la1[3] = jj_gen;
      ;
    }
    jj_consume_token(0);
  }

  final public String Name() throws ParseException {
  StringBuffer v = new StringBuffer ();
  Token val = null;
    // Is in form... name.name.name
       val = KeywordName();
                          v.append (val.image);
    label_1:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 52:
        ;
        break;
      default:
        jj_la1[4] = jj_gen;
        break label_1;
      }
      jj_consume_token(52);
          v.append (".");
      val = KeywordName();
                          v.append (val.image);
    }
     {if (true) return v.toString ();}
    throw new Error("Missing return statement in function");
  }

  final public Token KeywordName() throws ParseException {
  Token t = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_AS:
      t = jj_consume_token(K_AS);
      break;
    case K_BY:
      t = jj_consume_token(K_BY);
      break;
    case K_IS:
      t = jj_consume_token(K_IS);
      break;
    case K_IN:
      t = jj_consume_token(K_IN);
      break;
    case K_OR:
      t = jj_consume_token(K_OR);
      break;
    case K_ON:
      t = jj_consume_token(K_ON);
      break;
    case K_ALL:
      t = jj_consume_token(K_ALL);
      break;
    case K_AND:
      t = jj_consume_token(K_AND);
      break;
    case K_NOT:
      t = jj_consume_token(K_NOT);
      break;
    case K_ASC:
      t = jj_consume_token(K_ASC);
      break;
    case K_DESC:
      t = jj_consume_token(K_DESC);
      break;
    case K_LIKE:
      t = jj_consume_token(K_LIKE);
      break;
    case K_INLIKE:
      t = jj_consume_token(K_INLIKE);
      break;
    case K_FROM:
      t = jj_consume_token(K_FROM);
      break;
    case K_WHERE:
      t = jj_consume_token(K_WHERE);
      break;
    case K_GROUP:
      t = jj_consume_token(K_GROUP);
      break;
    case K_LIMIT:
      t = jj_consume_token(K_LIMIT);
      break;
    case K_ORDER:
      t = jj_consume_token(K_ORDER);
      break;
    case K_SELECT:
      t = jj_consume_token(K_SELECT);
      break;
    case K_DISTINCT:
      t = jj_consume_token(K_DISTINCT);
      break;
    case K_NEW:
      t = jj_consume_token(K_NEW);
      break;
    case K_TRUE:
      t = jj_consume_token(K_TRUE);
      break;
    case K_FALSE:
      t = jj_consume_token(K_FALSE);
      break;
    case K_HAVING:
      t = jj_consume_token(K_HAVING);
      break;
    case K_BETWEEN:
      t = jj_consume_token(K_BETWEEN);
      break;
    case K_USE:
      t = jj_consume_token(K_USE);
      break;
    case K_EXECUTE:
      t = jj_consume_token(K_EXECUTE);
      break;
    case K_RESULTS:
      t = jj_consume_token(K_RESULTS);
      break;
    case K_WHERE_RESULTS:
      t = jj_consume_token(K_WHERE_RESULTS);
      break;
    case K_HAVING_RESULTS:
      t = jj_consume_token(K_HAVING_RESULTS);
      break;
    case K_GROUP_BY_RESULTS:
      t = jj_consume_token(K_GROUP_BY_RESULTS);
      break;
    case S_IDENTIFIER:
      t = jj_consume_token(S_IDENTIFIER);
      break;
    default:
      jj_la1[5] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  {if (true) return t;}
    throw new Error("Missing return statement in function");
  }

/*String MultiName():{  StringBuffer v = new StringBuffer ();  Token val = null;  }{  // Is in form... name[name.name]  val = Name()  [ "[" [ <K_KEY> | <K_VALUE> ] val = PrimaryExpression() "]" { v.append (val.image); } ]  {     return v.toString ();  }} */
  final public String RelObjectName() throws ParseException {
        Token tk = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case S_IDENTIFIER:
      tk = jj_consume_token(S_IDENTIFIER);
      break;
    case S_CHAR_LITERAL:
      tk = jj_consume_token(S_CHAR_LITERAL);
      break;
    case S_CHAR_LITERAL2:
      tk = jj_consume_token(S_CHAR_LITERAL2);
      break;
    default:
      jj_la1[6] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
      {if (true) return tk.image;}
    throw new Error("Missing return statement in function");
  }

  final public void Query(Query q) throws ParseException {
        List cols = null;
        List fromItems = null;
        List joins = null;
        Expression where = null;
        List orderBys = null;
        List groupOrderBys = null;
        List groupBys = null;
        Expression having = null;
        Limit limit = null;
        Limit grpLimit = null;
        Expression from = null;
        Map execute = null;
        boolean distinct = false;
    jj_consume_token(K_SELECT);
    if (jj_2_1(2)) {
      jj_consume_token(K_DISTINCT);
                                              q.setWantDistinctResults (true);
    } else {
      ;
    }
    cols = SelectItemsList(q);
    from = From();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_WHERE:
      where = WhereClause();
      break;
    default:
      jj_la1[7] = jj_gen;
      ;
    }
    if (jj_2_2(2)) {
      groupBys = GroupBys();
    } else {
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_HAVING:
      having = Having();
      break;
    default:
      jj_la1[8] = jj_gen;
      ;
    }
    if (jj_2_3(2147483647)) {
      groupOrderBys = GroupOrderBys();
    } else {
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_ORDER:
      orderBys = OrderBys();
      break;
    default:
      jj_la1[9] = jj_gen;
      ;
    }
    if (jj_2_4(2147483647)) {
      grpLimit = GroupLimit();
    } else {
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_LIMIT:
      limit = Limit();
      break;
    default:
      jj_la1[10] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_EXECUTE:
      execute = ExecuteOn();
      break;
    default:
      jj_la1[11] = jj_gen;
      ;
    }
      // We set all the values since they are all dependent on the class 
      // being available.
      q.setFrom (from);
      q.setColumns (cols);
      q.setWhere (where);
      q.setHaving (having);
      q.setGroupByOrderColumns (groupOrderBys);
      q.setOrderByColumns (orderBys);
      q.setGroupByColumns (groupBys);
      q.setGroupByLimit (grpLimit);
      q.setLimit (limit);
      q.setExecuteOnFunctions (execute);
  }

  final public Map ExecuteOn() throws ParseException {
   Map et = new HashMap ();
    label_2:
    while (true) {
      jj_consume_token(K_EXECUTE);
      jj_consume_token(K_ON);
      et = ExecuteOnType(et);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case K_EXECUTE:
        ;
        break;
      default:
        jj_la1[12] = jj_gen;
        break label_2;
      }
    }
      {if (true) return et;}
    throw new Error("Missing return statement in function");
  }

  final public Map ExecuteOnType(Map execOn) throws ParseException {
   List el = null;
   String type = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case K_ALL:
      jj_consume_token(K_ALL);
              type = Query.ALL;
      break;
    case K_RESULTS:
      jj_consume_token(K_RESULTS);
                  type = Query.RESULTS;
      break;
    case K_WHERE_RESULTS:
      jj_consume_token(K_WHERE_RESULTS);
                        type = Query.RESULTS;
      break;
    case K_HAVING_RESULTS:
      jj_consume_token(K_HAVING_RESULTS);
                         type = Query.HAVING_RESULTS;
      break;
    case K_GROUP_BY_RESULTS:
      jj_consume_token(K_GROUP_BY_RESULTS);
                           type = Query.GROUP_BY_RESULTS;
      break;
    default:
      jj_la1[13] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    el = AliasedSQLExpressionList();
      List fs = (List) execOn.get (type);

      if (fs != null)
      {

         fs.addAll (el);

      } else {

         execOn.put (type,
                     el);

      }
      {if (true) return execOn;}
    throw new Error("Missing return statement in function");
  }

  final public List SelectItemsList(Query q) throws ParseException {
        List selectItemsList = new ArrayList();
        SelectItemExpression si = null;
    si = SelectItem(q);
                         if (si != null) { selectItemsList.add (si); }
    label_3:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 55:
        ;
        break;
      default:
        jj_la1[14] = jj_gen;
        break label_3;
      }
      jj_consume_token(55);
      si = SelectItem(q);
                                                                                                   if (si != null) { selectItemsList.add (si); }
    }
      {if (true) return selectItemsList;}
    throw new Error("Missing return statement in function");
  }

⌨️ 快捷键说明

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