📄 josqlparser.java
字号:
/* 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 + -