![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.mongodb_jdbc_driver.zql.ZqlJJParser Maven / Gradle / Ivy
The newest version!
/* Generated By:JavaCC: Do not edit this line. ZqlJJParser.java */
package net.sf.mongodb_jdbc_driver.zql;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Hashtable;
import java.util.Vector;
/**
* ZqlJJParser: an SQL parser
*/
public class ZqlJJParser implements ZqlJJParserConstants {
public static void main(String args[]) throws ParseException {
ZqlJJParser p = null ;
if ( args.length < 1 ) {
System.out.println("Reading from stdin (exit; to finish)");
p = new ZqlJJParser(System.in) ;
} else {
try {
p = new ZqlJJParser(new DataInputStream(
new FileInputStream(args[0]))) ;
} catch (FileNotFoundException e) {
System.out.println("File " + args[0] +
" not found. Reading from stdin") ;
p = new ZqlJJParser(System.in) ;
}
} // else ends here
if ( args.length > 0 ) {
System.out.println(args[0]) ;
}
ZStatement st = null;
while((st = p.SQLStatement()) != null) {
System.out.println(st.toString());
}
/*
Vector v = p.SQLStatements();
for(int i=0; i SQLStatements() throws ParseException {
Vector v = new Vector();
ZStatement s;
label_1:
while (true) {
s = SQLStatement();
if(s == null) {if (true) return v;} else v.addElement(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_COMMIT:
case K_DELETE:
case K_EXIT:
case K_INSERT:
case K_LOCK:
case K_QUIT:
case K_ROLLBACK:
case K_SELECT:
case K_SET:
case K_UPDATE:
;
break;
default:
jj_la1[4] = jj_gen;
break label_1;
}
}
{if (true) return v;}
throw new Error("Missing return statement in function");
}
final public ZStatement SQLStatement() throws ParseException {
ZStatement s = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_COMMIT:
s = CommitStatement();
{if (true) return s;}
break;
case K_DELETE:
s = DeleteStatement();
{if (true) return s;}
break;
case K_INSERT:
s = InsertStatement();
{if (true) return s;}
break;
case K_LOCK:
s = LockTableStatement();
{if (true) return s;}
break;
case K_ROLLBACK:
s = RollbackStatement();
{if (true) return s;}
break;
case K_SELECT:
s = QueryStatement();
{if (true) return s;}
break;
case K_SET:
s = SetTransactionStatement();
{if (true) return s;}
break;
case K_UPDATE:
s = UpdateStatement();
{if (true) return s;}
break;
case K_EXIT:
case K_QUIT:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_EXIT:
jj_consume_token(K_EXIT);
break;
case K_QUIT:
jj_consume_token(K_QUIT);
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(91);
{if (true) return null;}
break;
default:
jj_la1[6] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
// CommitStatement ::= COMMIT [WORK] [COMMENT ];
final public ZTransactStmt CommitStatement() throws ParseException {
Token tk;
ZTransactStmt t = new ZTransactStmt("COMMIT");
jj_consume_token(K_COMMIT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WORK:
jj_consume_token(K_WORK);
break;
default:
jj_la1[7] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_COMMENT:
jj_consume_token(K_COMMENT);
tk = jj_consume_token(S_CHAR_LITERAL);
t.setComment(tk.toString());
break;
default:
jj_la1[8] = jj_gen;
;
}
jj_consume_token(91);
{if (true) return t;}
throw new Error("Missing return statement in function");
}
// LockTableStatement ::= LOCK TABLE TableReference (, TableReference)*
// IN LockMode MODE [NOWAIT];
final public ZLockTable LockTableStatement() throws ParseException {
ZLockTable lck = new ZLockTable();
Vector v = new Vector();
String s;
jj_consume_token(K_LOCK);
jj_consume_token(K_TABLE);
s = TableReference();
v.addElement(s);
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[9] = jj_gen;
break label_2;
}
jj_consume_token(89);
s = TableReference();
v.addElement(s);
}
jj_consume_token(K_IN);
s = LockMode();
lck.setLockMode(s);
jj_consume_token(K_MODE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOWAIT:
jj_consume_token(K_NOWAIT);
lck.nowait_ = true;
break;
default:
jj_la1[10] = jj_gen;
;
}
jj_consume_token(91);
lck.addTables(v); {if (true) return lck;}
throw new Error("Missing return statement in function");
}
// RollbackStatement ::= ROLLBACK [WORK] ["COMMENT" ];
final public ZTransactStmt RollbackStatement() throws ParseException {
Token tk;
ZTransactStmt t = new ZTransactStmt("ROLLBACK");
jj_consume_token(K_ROLLBACK);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WORK:
jj_consume_token(K_WORK);
break;
default:
jj_la1[11] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_COMMENT:
jj_consume_token(K_COMMENT);
tk = jj_consume_token(S_CHAR_LITERAL);
t.setComment(tk.toString());
break;
default:
jj_la1[12] = jj_gen;
;
}
jj_consume_token(91);
{if (true) return t;}
throw new Error("Missing return statement in function");
}
// SetTransactionStatement ::= SET TRANSACTION READ (ONLY | WRITE)
final public ZTransactStmt SetTransactionStatement() throws ParseException {
StringBuffer b;
ZTransactStmt t = new ZTransactStmt("SET TRANSACTION");
boolean rdonly = false;
jj_consume_token(K_SET);
jj_consume_token(K_TRANSACTION);
jj_consume_token(K_READ);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ONLY:
jj_consume_token(K_ONLY);
rdonly = true;
break;
case K_WRITE:
jj_consume_token(K_WRITE);
break;
default:
jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(91);
t.readOnly_ = rdonly; {if (true) return t;}
throw new Error("Missing return statement in function");
}
// LockMode ::= ROW SHARE | ROW EXCLUSIVE
// | SHARE [UPDATE | ROW EXCLUSIVE]
// | EXCLUSIVE
final public String LockMode() throws ParseException {
StringBuffer b = new StringBuffer();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ROW:
jj_consume_token(K_ROW);
b.append("ROW ");
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SHARE:
jj_consume_token(K_SHARE);
b.append("SHARE");
break;
case K_EXCLUSIVE:
jj_consume_token(K_EXCLUSIVE);
b.append("EXCLUSIVE");
break;
default:
jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return b.toString();}
break;
case K_SHARE:
jj_consume_token(K_SHARE);
b.append("SHARE");
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ROW:
case K_UPDATE:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_UPDATE:
jj_consume_token(K_UPDATE);
b.append(" UPDATE");
break;
case K_ROW:
jj_consume_token(K_ROW);
jj_consume_token(K_EXCLUSIVE);
b.append(" ROW EXCLUSIVE");
break;
default:
jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[16] = jj_gen;
;
}
{if (true) return b.toString();}
break;
case K_EXCLUSIVE:
jj_consume_token(K_EXCLUSIVE);
{if (true) return new String("EXCLUSIVE");}
break;
default:
jj_la1[17] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
// UpdateStatement ::=
// UPDATE TableReference SET ColumnValues [WHERE SQLExpression]
final public ZUpdate UpdateStatement() throws ParseException {
ZUpdate u;
ZExp e;
Hashtable t;
String s;
Token tk;
jj_consume_token(K_UPDATE);
s = TableReference();
u = new ZUpdate(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
tk = jj_consume_token(S_IDENTIFIER);
u.setAlias(tk.toString());
break;
default:
jj_la1[18] = jj_gen;
;
}
jj_consume_token(K_SET);
ColumnValues(u);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
jj_consume_token(K_WHERE);
e = SQLExpression();
u.addWhere(e);
break;
default:
jj_la1[19] = jj_gen;
;
}
jj_consume_token(91);
{if (true) return u;}
throw new Error("Missing return statement in function");
}
// ColumnValues ::= TableColumn = UpdatedValue (, TableColumn = UpdatedValue)*
final public void ColumnValues(ZUpdate u) throws ParseException {
String key;
ZExp val;
key = TableColumn();
jj_consume_token(92);
val = UpdatedValue();
u.addColumnUpdate(key, val);
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[20] = jj_gen;
break label_3;
}
jj_consume_token(89);
key = TableColumn();
jj_consume_token(92);
val = UpdatedValue();
u.addColumnUpdate(key, val);
}
}
// UpdatedValue ::= ( SelectStatement ) | SQLExpression
final public ZExp UpdatedValue() throws ParseException {
ZExp e;
if (jj_2_1(2147483647)) {
jj_consume_token(88);
e = SelectStatement();
jj_consume_token(90);
{if (true) return e;}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_EXISTS:
case K_MAX:
case K_MIN:
case K_NOT:
case K_NULL:
case K_PRIOR:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
e = SQLExpression();
{if (true) return e;}
break;
case 105:
e = PreparedCol();
{if (true) return e;}
break;
default:
jj_la1[21] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}
// InsertStatement ::= INSERT INTO TableReference
// [ "(" TableColumn (, TableColumn)* ")" ]
// ValueSpec | SelectStatement
// ValueSpec ::= VALUES ( SQLExpressionList )
final public ZInsert InsertStatement() throws ParseException {
ZInsert ins;
String s;
Vector v;
ZQuery q;
jj_consume_token(K_INSERT);
jj_consume_token(K_INTO);
s = TableReference();
ins = new ZInsert(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 88:
jj_consume_token(88);
s = TableColumn();
v = new Vector(); v.addElement(s);
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[22] = jj_gen;
break label_4;
}
jj_consume_token(89);
s = TableColumn();
v.addElement(s);
}
jj_consume_token(90);
ins.addColumns(v);
break;
default:
jj_la1[23] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_VALUES:
jj_consume_token(K_VALUES);
jj_consume_token(88);
Vector v2 = SQLExpressionList();
jj_consume_token(90);
ZExpression e = new ZExpression(",");
e.setOperands(v2); ins.addValueSpec(e);
break;
case K_SELECT:
q = SelectStatement();
ins.addValueSpec(q);
break;
default:
jj_la1[24] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(91);
{if (true) return ins;}
throw new Error("Missing return statement in function");
}
// DeleteStatement ::= DELETE [FROM] TableReference [WHERE SQLExpression]
final public ZDelete DeleteStatement() throws ParseException {
ZDelete d;
ZExp e;
String s;
jj_consume_token(K_DELETE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
jj_consume_token(K_FROM);
break;
default:
jj_la1[25] = jj_gen;
;
}
s = TableReference();
d = new ZDelete(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
jj_consume_token(K_WHERE);
e = SQLExpression();
d.addWhere(e);
break;
default:
jj_la1[26] = jj_gen;
;
}
jj_consume_token(91);
{if (true) return d;}
throw new Error("Missing return statement in function");
}
// QueryStatement ::= SelectStatement
final public ZQuery QueryStatement() throws ParseException {
ZQuery q;
q = SelectStatement();
jj_consume_token(91);
{if (true) return q;}
throw new Error("Missing return statement in function");
}
/* ---------------- General Productions --------------------- */
final public String TableColumn() throws ParseException {
StringBuffer buf = new StringBuffer();
String s;
// user.table.column
s = OracleObjectName();
buf.append(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 93:
jj_consume_token(93);
s = OracleObjectName();
buf.append("." + s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 93:
jj_consume_token(93);
s = OracleObjectName();
buf.append("." + s);
break;
default:
jj_la1[27] = jj_gen;
;
}
break;
default:
jj_la1[28] = jj_gen;
;
}
{if (true) return buf.toString();}
throw new Error("Missing return statement in function");
}
final public String OracleObjectName() throws ParseException {
Token t;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
t = jj_consume_token(S_IDENTIFIER);
{if (true) return t.toString();}
break;
case S_QUOTED_IDENTIFIER:
t = jj_consume_token(S_QUOTED_IDENTIFIER);
{if (true) return t.toString();}
break;
default:
jj_la1[29] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public String Relop() throws ParseException {
Token op;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 92:
op = jj_consume_token(92);
{if (true) return op.toString();}
break;
case 94:
op = jj_consume_token(94);
{if (true) return op.toString();}
break;
case 95:
op = jj_consume_token(95);
{if (true) return op.toString();}
break;
case 96:
op = jj_consume_token(96);
{if (true) return op.toString();}
break;
case 97:
op = jj_consume_token(97);
{if (true) return op.toString();}
break;
case 98:
op = jj_consume_token(98);
{if (true) return op.toString();}
break;
case 99:
op = jj_consume_token(99);
{if (true) return op.toString();}
break;
case 100:
op = jj_consume_token(100);
{if (true) return op.toString();}
break;
default:
jj_la1[30] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
// TableReference ::= OracleObjectName[.OracleObjectName]
final public String TableReference() throws ParseException {
StringBuffer buf = new StringBuffer();
String s;
s = OracleObjectName();
buf.append(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 93:
jj_consume_token(93);
s = OracleObjectName();
buf.append("." + s);
break;
default:
jj_la1[31] = jj_gen;
;
}
{if (true) return buf.toString();}
throw new Error("Missing return statement in function");
}
final public void NumOrID() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
jj_consume_token(S_IDENTIFIER);
break;
case S_NUMBER:
case 101:
case 102:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 101:
case 102:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 101:
jj_consume_token(101);
break;
case 102:
jj_consume_token(102);
break;
default:
jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[33] = jj_gen;
;
}
jj_consume_token(S_NUMBER);
break;
default:
jj_la1[34] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
/* --------------- General Productions ends here --------------- */
/* ----------- SQL productions start here ----------------- */
final public ZQuery SelectStatement() throws ParseException {
ZQuery q;
Vector v;
q = SelectWithoutOrder();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ORDER:
v = OrderByClause();
q.addOrderBy(v);
break;
default:
jj_la1[35] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FOR:
ForUpdateClause();
q.forupdate_ = true;
break;
default:
jj_la1[36] = jj_gen;
;
}
{if (true) return q;}
throw new Error("Missing return statement in function");
}
final public ZQuery SelectWithoutOrder() throws ParseException {
ZQuery q = new ZQuery();
Vector select;
Vector from;
ZExp where = null;
ZGroupBy groupby = null;
ZExpression setclause = null;
jj_consume_token(K_SELECT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
case K_DISTINCT:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
jj_consume_token(K_ALL);
break;
case K_DISTINCT:
jj_consume_token(K_DISTINCT);
q.distinct_ = true;
break;
default:
jj_la1[37] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[38] = jj_gen;
;
}
select = SelectList();
from = FromClause();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
where = WhereClause();
break;
default:
jj_la1[39] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CONNECT:
case K_START:
ConnectClause();
break;
default:
jj_la1[40] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_GROUP:
groupby = GroupByClause();
break;
default:
jj_la1[41] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INTERSECT:
case K_MINUS:
case K_UNION:
setclause = SetClause();
break;
default:
jj_la1[42] = jj_gen;
;
}
q.addSelect(select);
q.addFrom(from);
q.addWhere(where);
q.addGroupBy(groupby);
q.addSet(setclause);
{if (true) return q;}
throw new Error("Missing return statement in function");
}
/* Checks for whatever follows SELECT */
// SelectList ::= * | COUNT(*) | SelectItem (, SelectItem)*
// 18/10/01 PY. Gibello - Removed "COUNT(*)" from here
// COUNT is an aggregate, like AVG...
final public Vector SelectList() throws ParseException {
Vector v = new Vector(8);
ZSelectItem elem;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 103:
jj_consume_token(103);
v.addElement(new ZSelectItem("*")); {if (true) return v;}
break;
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
elem = SelectItem();
v.addElement(elem);
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[43] = jj_gen;
break label_5;
}
jj_consume_token(89);
elem = SelectItem();
v.addElement(elem);
}
{if (true) return v;}
break;
default:
jj_la1[44] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
// 01/07/00 PY. Gibello - Added LOOKAHEAD(3) before COUNT
// Due to a fix in AggregateFunc (COUNT added) that made the grammar ambiguous
// 18/10/01 PY. Gibello - Removed "COUNT(*)" from here (see aggregate funcs)
// SelectItem() ::= SelectStar | SQLSimpleExpression() [SelectAlias]
final public ZSelectItem SelectItem() throws ParseException {
String s;
ZSelectItem it;
ZExp e;
if (jj_2_2(2147483647)) {
s = SelectStar();
{if (true) return new ZSelectItem(s);}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
e = SQLSimpleExpression();
//PY.Gibello 21 Apr 2001 - added e.toString() as arg
it = new ZSelectItem(e.toString());
it.setExpression(e);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
case S_IDENTIFIER:
case S_QUOTED_IDENTIFIER:
s = SelectAlias();
it.setAlias(s);
break;
default:
jj_la1[45] = jj_gen;
;
}
{if (true) return it;}
break;
default:
jj_la1[46] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}
// SelectAlias ::= ()+
final public String SelectAlias() throws ParseException {
Token tk;
StringBuffer b = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
jj_consume_token(K_AS);
break;
default:
jj_la1[47] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_QUOTED_IDENTIFIER:
tk = jj_consume_token(S_QUOTED_IDENTIFIER);
{if (true) return tk.toString().trim();}
break;
case S_IDENTIFIER:
label_6:
while (true) {
tk = jj_consume_token(S_IDENTIFIER);
if(b == null) b = new StringBuffer(tk.toString().trim());
else b.append(" " + tk.toString().trim());
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
;
break;
default:
jj_la1[48] = jj_gen;
break label_6;
}
}
break;
default:
jj_la1[49] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return b.toString().trim();}
throw new Error("Missing return statement in function");
}
// SelectStar() ::= OracleObjectName()".*" |
// OracleObjectName()"." OracleObjectName() ".*"
final public String SelectStar() throws ParseException {
String s, s2;
if (jj_2_3(2)) {
s = OracleObjectName();
jj_consume_token(104);
{if (true) return new String(s + ".*");}
} else if (jj_2_4(4)) {
s = OracleObjectName();
jj_consume_token(93);
s2 = OracleObjectName();
jj_consume_token(104);
{if (true) return new String(s + "." + s2 + ".*");}
} else {
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
// FromClause ::= FromItem (, FromItem)*
final public Vector FromClause() throws ParseException {
Vector v = new Vector(8);
ZFromItem f;
jj_consume_token(K_FROM);
f = FromItem();
v.addElement(f);
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[50] = jj_gen;
break label_7;
}
jj_consume_token(89);
f = FromItem();
v.addElement(f);
}
{if (true) return v;}
throw new Error("Missing return statement in function");
}
// FromItem ::= TableReference [alias]
final public ZFromItem FromItem() throws ParseException {
ZFromItem f;
String s;
Token tk;
s = TableReference();
f = new ZFromItem(s);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
tk = jj_consume_token(S_IDENTIFIER);
f.setAlias(tk.toString());
break;
default:
jj_la1[51] = jj_gen;
;
}
{if (true) return f;}
throw new Error("Missing return statement in function");
}
final public ZExp WhereClause() throws ParseException {
ZExp e;
jj_consume_token(K_WHERE);
e = SQLExpression();
{if (true) return e;}
throw new Error("Missing return statement in function");
}
final public void ConnectClause() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_START:
jj_consume_token(K_START);
jj_consume_token(K_WITH);
SQLExpression();
break;
default:
jj_la1[52] = jj_gen;
;
}
jj_consume_token(K_CONNECT);
jj_consume_token(K_BY);
SQLExpression();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_START:
jj_consume_token(K_START);
jj_consume_token(K_WITH);
SQLExpression();
break;
default:
jj_la1[53] = jj_gen;
;
}
}
final public ZGroupBy GroupByClause() throws ParseException {
ZGroupBy g = null;
Vector v;
ZExp e;
jj_consume_token(K_GROUP);
jj_consume_token(K_BY);
v = SQLExpressionList();
g = new ZGroupBy(v);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_HAVING:
jj_consume_token(K_HAVING);
e = SQLExpression();
g.setHaving(e);
break;
default:
jj_la1[54] = jj_gen;
;
}
{if (true) return g;}
throw new Error("Missing return statement in function");
}
// SetClause ::= UNION [ALL] Qry | INTERSECT Qry | MINUS Qry
// Qry ::= SelectWithoutOrder | ( SelectWithoutOrder )
final public ZExpression SetClause() throws ParseException {
ZExpression e;
ZQuery q;
Token t;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_UNION:
t = jj_consume_token(K_UNION);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
jj_consume_token(K_ALL);
break;
default:
jj_la1[55] = jj_gen;
;
}
break;
case K_INTERSECT:
t = jj_consume_token(K_INTERSECT);
break;
case K_MINUS:
t = jj_consume_token(K_MINUS);
break;
default:
jj_la1[56] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
e = new ZExpression(t.toString());
if (jj_2_5(2147483647)) {
jj_consume_token(88);
q = SelectWithoutOrder();
e.addOperand(q);
jj_consume_token(90);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
q = SelectWithoutOrder();
e.addOperand(q);
break;
default:
jj_la1[57] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return e;}
throw new Error("Missing return statement in function");
}
final public Vector OrderByClause() throws ParseException {
Vector v = new Vector();
ZExp e;
ZOrderBy ob;
jj_consume_token(K_ORDER);
jj_consume_token(K_BY);
e = SQLSimpleExpression();
ob = new ZOrderBy(e);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ASC:
case K_DESC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ASC:
jj_consume_token(K_ASC);
break;
case K_DESC:
jj_consume_token(K_DESC);
ob.setAscOrder(false);
break;
default:
jj_la1[58] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[59] = jj_gen;
;
}
v.addElement(ob);
label_8:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[60] = jj_gen;
break label_8;
}
jj_consume_token(89);
e = SQLSimpleExpression();
ob = new ZOrderBy(e);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ASC:
case K_DESC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ASC:
jj_consume_token(K_ASC);
break;
case K_DESC:
jj_consume_token(K_DESC);
ob.setAscOrder(false);
break;
default:
jj_la1[61] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[62] = jj_gen;
;
}
v.addElement(ob);
}
{if (true) return v;}
throw new Error("Missing return statement in function");
}
final public void ForUpdateClause() throws ParseException {
jj_consume_token(K_FOR);
jj_consume_token(K_UPDATE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OF:
jj_consume_token(K_OF);
TableColumn();
label_9:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[63] = jj_gen;
break label_9;
}
jj_consume_token(89);
TableColumn();
}
break;
default:
jj_la1[64] = jj_gen;
;
}
}
final public ZExp SQLExpression() throws ParseException {
ZExp e1, e2;
ZExpression e = null;
boolean single = true;
e1 = SQLAndExpression();
label_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OR:
;
break;
default:
jj_la1[65] = jj_gen;
break label_10;
}
jj_consume_token(K_OR);
e2 = SQLAndExpression();
if(single) { e = new ZExpression("OR", e1); }
single=false;
e.addOperand(e2);
}
{if (true) return (single ? e1 : e);}
throw new Error("Missing return statement in function");
}
final public ZExp SQLAndExpression() throws ParseException {
ZExp e1, e2;
ZExpression e = null;
boolean single = true;
e1 = SQLUnaryLogicalExpression();
label_11:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AND:
;
break;
default:
jj_la1[66] = jj_gen;
break label_11;
}
jj_consume_token(K_AND);
e2 = SQLUnaryLogicalExpression();
if(single) { e = new ZExpression("AND", e1); }
single=false;
e.addOperand(e2);
}
{if (true) return (single ? e1 : e);}
throw new Error("Missing return statement in function");
}
final public ZExp SQLUnaryLogicalExpression() throws ParseException {
ZExp e1, e;
boolean not = false;
if (jj_2_6(2)) {
e = ExistsClause();
{if (true) return e;}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NOT:
case K_NULL:
case K_PRIOR:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[67] = jj_gen;
;
}
e1 = SQLRelationalExpression();
if(not) e = new ZExpression("NOT", e1);
else e = e1;
{if (true) return e;}
break;
default:
jj_la1[68] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}
final public ZExpression ExistsClause() throws ParseException {
ZExpression e;
ZQuery q;
boolean not = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[69] = jj_gen;
;
}
jj_consume_token(K_EXISTS);
jj_consume_token(88);
q = SubQuery();
jj_consume_token(90);
ZExpression e1 = new ZExpression("EXISTS", q);
if(not) e = new ZExpression("NOT", e1);
else e = e1;
{if (true) return e;}
throw new Error("Missing return statement in function");
}
// SQLRelationalExpression ::=
// ( [PRIOR] SQLSimpleExpression | SQLExpressionList )
// ( SQLRelationalOperatorExpression
// | SQLInClause | SQLBetweenClause | SQLLikeClause | IsNullClause )?
final public ZExp SQLRelationalExpression() throws ParseException {
ZExp e1, eleft;
ZExpression eright = null;
Vector v;
boolean prior = false;
if (jj_2_7(2147483647)) {
jj_consume_token(88);
v = SQLExpressionList();
jj_consume_token(90);
eleft = new ZExpression(",");
((ZExpression)eleft).setOperands(v);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_PRIOR:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_PRIOR:
jj_consume_token(K_PRIOR);
prior = true;
break;
default:
jj_la1[70] = jj_gen;
;
}
e1 = SQLSimpleExpression();
if(prior) eleft = new ZExpression("PRIOR", e1);
else eleft = e1;
break;
default:
jj_la1[71] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_BETWEEN:
case K_IN:
case K_IS:
case K_LIKE:
case K_NOT:
case 92:
case 94:
case 95:
case 96:
case 97:
case 98:
case 99:
case 100:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 92:
case 94:
case 95:
case 96:
case 97:
case 98:
case 99:
case 100:
eright = SQLRelationalOperatorExpression();
break;
default:
jj_la1[72] = jj_gen;
if (jj_2_8(2)) {
eright = SQLInClause();
} else if (jj_2_9(2)) {
eright = SQLBetweenClause();
} else if (jj_2_10(2)) {
eright = SQLLikeClause();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IS:
eright = IsNullClause();
break;
default:
jj_la1[73] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
break;
default:
jj_la1[74] = jj_gen;
;
}
if(eright == null) {if (true) return eleft;}
Vector v2 = eright.getOperands();
if(v2 == null) v2 = new Vector(); //For IS NULL, which is unary!
v2.insertElementAt(eleft, 0);
eright.setOperands(v2);
{if (true) return eright;}
throw new Error("Missing return statement in function");
}
final public Vector SQLExpressionList() throws ParseException {
Vector v = new Vector(8);
ZExp e;
e = SQLSimpleExpressionOrPreparedCol();
v.addElement(e);
label_12:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 89:
;
break;
default:
jj_la1[75] = jj_gen;
break label_12;
}
jj_consume_token(89);
e = SQLSimpleExpressionOrPreparedCol();
v.addElement(e);
}
{if (true) return v;}
throw new Error("Missing return statement in function");
}
final public ZExpression SQLRelationalOperatorExpression() throws ParseException {
ZExpression e;
ZExp e1, eright;
String op;
String unaryOp = null;
op = Relop();
e = new ZExpression(op);
if (jj_2_11(2147483647)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
case K_ANY:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
jj_consume_token(K_ALL);
unaryOp = "ALL";
break;
case K_ANY:
jj_consume_token(K_ANY);
unaryOp = "ANY";
break;
default:
jj_la1[76] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[77] = jj_gen;
;
}
jj_consume_token(88);
e1 = SubQuery();
jj_consume_token(90);
if(unaryOp == null) eright = e1;
else eright = new ZExpression(unaryOp, e1);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_PRIOR:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
case 105:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_PRIOR:
jj_consume_token(K_PRIOR);
unaryOp = "PRIOR";
break;
default:
jj_la1[78] = jj_gen;
;
}
e1 = SQLSimpleExpressionOrPreparedCol();
if(unaryOp == null) eright = e1;
else eright = new ZExpression(unaryOp, e1);
break;
default:
jj_la1[79] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
e.addOperand(eright); {if (true) return e;}
throw new Error("Missing return statement in function");
}
final public ZExp SQLSimpleExpressionOrPreparedCol() throws ParseException {
ZExp e;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
e = SQLSimpleExpression();
{if (true) return e;}
break;
case 105:
e = PreparedCol();
{if (true) return e;}
break;
default:
jj_la1[80] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
// For prepared columns ("?")
final public ZExp PreparedCol() throws ParseException {
jj_consume_token(105);
{if (true) return new ZExpression("?");}
throw new Error("Missing return statement in function");
}
final public ZExpression SQLInClause() throws ParseException {
ZExpression e;
ZQuery q;
boolean not = false;
Vector v;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[81] = jj_gen;
;
}
jj_consume_token(K_IN);
e = new ZExpression(not ? "NOT IN" : "IN");
jj_consume_token(88);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
case 105:
v = SQLExpressionList();
e.setOperands(v);
break;
case K_SELECT:
q = SubQuery();
e.addOperand(q);
break;
default:
jj_la1[82] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(90);
{if (true) return e;}
throw new Error("Missing return statement in function");
}
final public ZExpression SQLBetweenClause() throws ParseException {
ZExpression e;
ZExp e1, e2;
boolean not = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[83] = jj_gen;
;
}
jj_consume_token(K_BETWEEN);
e1 = SQLSimpleExpressionOrPreparedCol();
jj_consume_token(K_AND);
e2 = SQLSimpleExpressionOrPreparedCol();
if(not) e = new ZExpression("NOT BETWEEN", e1, e2);
else e = new ZExpression("BETWEEN", e1, e2);
{if (true) return e;}
throw new Error("Missing return statement in function");
}
final public ZExpression SQLLikeClause() throws ParseException {
ZExp eright;
ZExpression e;
boolean not = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[84] = jj_gen;
;
}
jj_consume_token(K_LIKE);
eright = SQLSimpleExpressionOrPreparedCol();
if(not) e = new ZExpression("NOT LIKE", eright);
else e = new ZExpression("LIKE", eright);
{if (true) return e;}
throw new Error("Missing return statement in function");
}
final public ZExpression IsNullClause() throws ParseException {
boolean not = false;
jj_consume_token(K_IS);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[85] = jj_gen;
;
}
jj_consume_token(K_NULL);
{if (true) return(not ? new ZExpression("IS NOT NULL") : new ZExpression("IS NULL"));}
throw new Error("Missing return statement in function");
}
// SQLSimpleExpression
// ::= SQLMultiplicativeExpression (OP SQLMultiplicativeExpression)*
// OP ::= + | - | "||"
final public ZExp SQLSimpleExpression() throws ParseException {
Token op;
ZExp e1, e2;
ZExpression e = null;
e1 = SQLMultiplicativeExpression();
label_13:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 101:
case 102:
case 106:
;
break;
default:
jj_la1[86] = jj_gen;
break label_13;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 101:
op = jj_consume_token(101);
break;
case 102:
op = jj_consume_token(102);
break;
case 106:
op = jj_consume_token(106);
break;
default:
jj_la1[87] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
e2 = SQLMultiplicativeExpression();
e = new ZExpression(op.toString(), e1);
e.addOperand(e2);
e1 = e;
}
{if (true) return e1;}
throw new Error("Missing return statement in function");
}
// SQLMultiplicativeExpression
// ::= SQLExpotentExpression (OP SQLExpotentExpression)*
// OP ::= * | /
final public ZExp SQLMultiplicativeExpression() throws ParseException {
Token op;
ZExp e1, e2;
ZExpression e = null;
e1 = SQLExpotentExpression();
label_14:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 103:
case 107:
;
break;
default:
jj_la1[88] = jj_gen;
break label_14;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 103:
op = jj_consume_token(103);
break;
case 107:
op = jj_consume_token(107);
break;
default:
jj_la1[89] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
e2 = SQLExpotentExpression();
e = new ZExpression(op.toString(), e1);
e.addOperand(e2);
e1 = e;
}
{if (true) return e1;}
throw new Error("Missing return statement in function");
}
// SQLExpotentExpression ::= SQLUnaryExpression (** SQLUnaryExpression)*
final public ZExp SQLExpotentExpression() throws ParseException {
Token op;
ZExp e1, e2;
ZExpression e = null;
boolean single = true;
e1 = SQLUnaryExpression();
label_15:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 108:
;
break;
default:
jj_la1[90] = jj_gen;
break label_15;
}
op = jj_consume_token(108);
e2 = SQLUnaryExpression();
if(single) e = new ZExpression(op.toString(), e1);
single = false;
e.addOperand(e2);
}
{if (true) return (single ? e1 : e);}
throw new Error("Missing return statement in function");
}
// SQLUnaryExpression ::= [+|-] SQLPrimaryExpression
final public ZExp SQLUnaryExpression() throws ParseException {
Token op = null;
ZExp e1, e;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 101:
case 102:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 101:
op = jj_consume_token(101);
break;
case 102:
op = jj_consume_token(102);
break;
default:
jj_la1[91] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[92] = jj_gen;
;
}
e1 = SQLPrimaryExpression();
if(op == null) e = e1;
else e = new ZExpression(op.toString(), e1);
{if (true) return e;}
throw new Error("Missing return statement in function");
}
// 01/07/00 PY.Gibello - Added COUNT(*) to SQLPrimaryExpression
// TBD should be ZConstant("COUNT(*)", ZConstant.STRING))
// instead of ZConstant("*", ZConstant.COLUMNNAME) ??
// 01/06/02 PY.Gibello - Added ALL | DISTINCT (then the column name
// starts with "all " or "distinct " when required, which may not be the
// fairest solution...)
// SQLPrimaryExpression ::= NULL | OuterJoinExpression
// | AggregateFunc ( [ ALL | DISTINCT ] TableColumn ) | TableColumn
// | COUNT(*)
// | | |
final public ZExp SQLPrimaryExpression() throws ParseException {
Token t;
String s, s2, modifier="";
ZExp e;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NULL:
jj_consume_token(K_NULL);
{if (true) return new ZConstant("NULL", ZConstant.NULL);}
break;
default:
jj_la1[94] = jj_gen;
if (jj_2_12(2147483647)) {
s = OuterJoinExpression();
{if (true) return new ZConstant(s, ZConstant.COLUMNNAME);}
//return new ZExpression("_NOT_SUPPORTED"); //TBD
} else if (jj_2_13(3)) {
jj_consume_token(K_COUNT);
jj_consume_token(88);
jj_consume_token(103);
jj_consume_token(90);
{if (true) return new ZExpression("COUNT",
new ZConstant("*", ZConstant.COLUMNNAME));}
} else if (jj_2_14(3)) {
s = AggregateFunc();
jj_consume_token(88);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
jj_consume_token(K_ALL);
modifier="all ";
break;
case K_DISTINCT:
jj_consume_token(K_DISTINCT);
modifier="distinct ";
break;
default:
jj_la1[93] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
s2 = TableColumn();
jj_consume_token(90);
{if (true) return new ZExpression(s, new ZConstant(modifier + s2, ZConstant.COLUMNNAME));}
} else if (jj_2_15(2)) {
e = FunctionCall();
{if (true) return e;}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
case S_QUOTED_IDENTIFIER:
s = TableColumn();
{if (true) return new ZConstant(s, ZConstant.COLUMNNAME);}
break;
case S_NUMBER:
t = jj_consume_token(S_NUMBER);
{if (true) return new ZConstant(t.toString(), ZConstant.NUMBER);}
break;
case S_CHAR_LITERAL:
t = jj_consume_token(S_CHAR_LITERAL);
s = t.toString();
if(s.startsWith("\'")) s = s.substring(1);
if(s.endsWith("\'")) s = s.substring(0, s.length()-1);
{if (true) return new ZConstant(s, ZConstant.STRING);}
break;
case S_BIND:
t = jj_consume_token(S_BIND);
{if (true) return new ZConstant(t.toString(), ZConstant.STRING);}
break;
case 88:
jj_consume_token(88);
e = SQLExpression();
jj_consume_token(90);
{if (true) return e;}
break;
default:
jj_la1[95] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
throw new Error("Missing return statement in function");
}
// AggregateFunc ::= SUM | AVG | MAX | MIN | COUNT
// 01/07/00 PY.Gibello - Added COUNT
final public String AggregateFunc() throws ParseException {
Token t;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SUM:
t = jj_consume_token(K_SUM);
{if (true) return t.toString();}
break;
case K_AVG:
t = jj_consume_token(K_AVG);
{if (true) return t.toString();}
break;
case K_MAX:
t = jj_consume_token(K_MAX);
{if (true) return t.toString();}
break;
case K_MIN:
t = jj_consume_token(K_MIN);
{if (true) return t.toString();}
break;
case K_COUNT:
t = jj_consume_token(K_COUNT);
{if (true) return t.toString();}
break;
default:
jj_la1[96] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public ZExpression FunctionCall() throws ParseException {
Token t;
String s;
ZExpression e;
Vector parm = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_IDENTIFIER:
t = jj_consume_token(S_IDENTIFIER);
s = t.toString();
break;
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_SUM:
s = AggregateFunc();
break;
default:
jj_la1[97] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(88);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AVG:
case K_COUNT:
case K_MAX:
case K_MIN:
case K_NULL:
case K_SUM:
case S_NUMBER:
case S_IDENTIFIER:
case S_BIND:
case S_CHAR_LITERAL:
case S_QUOTED_IDENTIFIER:
case 88:
case 101:
case 102:
case 105:
parm = SQLExpressionList();
break;
default:
jj_la1[98] = jj_gen;
;
}
jj_consume_token(90);
int nparm = ZUtils.isCustomFunction(s);
if(nparm < 0) nparm = (ZUtils.isAggregate(s) ? 1 : -1);
if(nparm < 0)
{if (true) throw new ParseException("Undefined function: " + s);}
if(nparm != ZUtils.VARIABLE_PLIST && nparm > 0) {
if(parm == null || parm.size() != nparm)
{if (true) throw new ParseException("Function " + s + " should have "
+ nparm + " parameter(s)");}
}
e = new ZExpression(s);
e.setOperands(parm);
{if (true) return e;}
throw new Error("Missing return statement in function");
}
final public String OuterJoinExpression() throws ParseException {
String s = null;
String c = "";
// user.table.col
s = OracleObjectName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 93:
jj_consume_token(93);
c = OracleObjectName();
s += "." + c;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 93:
jj_consume_token(93);
c = OracleObjectName();
s += "." + c;
break;
default:
jj_la1[99] = jj_gen;
;
}
break;
default:
jj_la1[100] = jj_gen;
;
}
jj_consume_token(88);
jj_consume_token(101);
jj_consume_token(90);
{if (true) return s + "(+)";}
throw new Error("Missing return statement in function");
}
final public ZQuery SubQuery() throws ParseException {
ZQuery q;
q = SelectWithoutOrder();
{if (true) return q;}
throw new Error("Missing return statement in function");
}
final private boolean jj_2_1(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_1(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(0, xla); }
}
final private boolean jj_2_2(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_2(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(1, xla); }
}
final private boolean jj_2_3(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_3(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(2, xla); }
}
final private boolean jj_2_4(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_4(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(3, xla); }
}
final private boolean jj_2_5(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_5(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(4, xla); }
}
final private boolean jj_2_6(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_6(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(5, xla); }
}
final private boolean jj_2_7(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_7(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(6, xla); }
}
final private boolean jj_2_8(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_8(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(7, xla); }
}
final private boolean jj_2_9(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_9(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(8, xla); }
}
final private boolean jj_2_10(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_10(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(9, xla); }
}
final private boolean jj_2_11(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_11(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(10, xla); }
}
final private boolean jj_2_12(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_12(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(11, xla); }
}
final private boolean jj_2_13(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_13(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(12, xla); }
}
final private boolean jj_2_14(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_14(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(13, xla); }
}
final private boolean jj_2_15(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_15(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(14, xla); }
}
final private boolean jj_3_1() {
Token xsp;
if (jj_scan_token(88)) return true;
while (true) {
xsp = jj_scanpos;
if (jj_scan_token(88)) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(K_SELECT)) return true;
return false;
}
final private boolean jj_3R_134() {
if (jj_3R_135()) return true;
return false;
}
final private boolean jj_3_2() {
if (jj_3R_16()) return true;
return false;
}
final private boolean jj_3R_47() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(103)) {
jj_scanpos = xsp;
if (jj_scan_token(107)) return true;
}
if (jj_3R_46()) return true;
return false;
}
final private boolean jj_3R_32() {
if (jj_3R_46()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_47()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_130() {
if (jj_3R_19()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_134()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_31() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
final private boolean jj_3R_129() {
if (jj_3R_16()) return true;
return false;
}
final private boolean jj_3R_109() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_129()) {
jj_scanpos = xsp;
if (jj_3R_130()) return true;
}
return false;
}
final private boolean jj_3R_18() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_31()) jj_scanpos = xsp;
if (jj_scan_token(K_EXISTS)) return true;
if (jj_scan_token(88)) return true;
if (jj_3R_77()) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_33() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(101)) {
jj_scanpos = xsp;
if (jj_scan_token(102)) {
jj_scanpos = xsp;
if (jj_scan_token(106)) return true;
}
}
if (jj_3R_32()) return true;
return false;
}
final private boolean jj_3R_75() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
final private boolean jj_3R_19() {
if (jj_3R_32()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_33()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_110() {
if (jj_scan_token(89)) return true;
if (jj_3R_109()) return true;
return false;
}
final private boolean jj_3R_74() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_75()) jj_scanpos = xsp;
if (jj_3R_76()) return true;
return false;
}
final private boolean jj_3R_96() {
if (jj_3R_109()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_110()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3_6() {
if (jj_3R_18()) return true;
return false;
}
final private boolean jj_3R_71() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_6()) {
jj_scanpos = xsp;
if (jj_3R_74()) return true;
}
return false;
}
final private boolean jj_3R_95() {
if (jj_scan_token(103)) return true;
return false;
}
final private boolean jj_3R_86() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_95()) {
jj_scanpos = xsp;
if (jj_3R_96()) return true;
}
return false;
}
final private boolean jj_3R_108() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
final private boolean jj_3R_72() {
if (jj_scan_token(K_AND)) return true;
if (jj_3R_71()) return true;
return false;
}
final private boolean jj_3R_94() {
if (jj_scan_token(K_DISTINCT)) return true;
return false;
}
final private boolean jj_3R_93() {
if (jj_scan_token(K_IS)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_108()) jj_scanpos = xsp;
if (jj_scan_token(K_NULL)) return true;
return false;
}
final private boolean jj_3R_67() {
if (jj_3R_71()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_72()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_45() {
if (jj_3R_25()) return true;
return false;
}
final private boolean jj_3R_77() {
if (jj_3R_81()) return true;
return false;
}
final private boolean jj_3R_85() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(5)) {
jj_scanpos = xsp;
if (jj_3R_94()) return true;
}
return false;
}
final private boolean jj_3R_91() {
if (jj_3R_102()) return true;
return false;
}
final private boolean jj_3R_90() {
if (jj_3R_101()) return true;
return false;
}
final private boolean jj_3R_37() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
final private boolean jj_3R_89() {
if (jj_3R_100()) return true;
return false;
}
final private boolean jj_3R_22() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_37()) jj_scanpos = xsp;
if (jj_scan_token(K_LIKE)) return true;
if (jj_3R_36()) return true;
return false;
}
final private boolean jj_3R_88() {
if (jj_3R_99()) return true;
return false;
}
final private boolean jj_3R_68() {
if (jj_scan_token(K_OR)) return true;
if (jj_3R_67()) return true;
return false;
}
final private boolean jj_3R_38() {
if (jj_scan_token(93)) return true;
if (jj_3R_17()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_50()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_50() {
if (jj_scan_token(93)) return true;
if (jj_3R_17()) return true;
return false;
}
final private boolean jj_3R_64() {
if (jj_3R_67()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_68()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_24() {
if (jj_3R_17()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_38()) jj_scanpos = xsp;
if (jj_scan_token(88)) return true;
if (jj_scan_token(101)) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_81() {
if (jj_scan_token(K_SELECT)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_85()) jj_scanpos = xsp;
if (jj_3R_86()) return true;
if (jj_3R_87()) return true;
xsp = jj_scanpos;
if (jj_3R_88()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_89()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_90()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_91()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_35() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
final private boolean jj_3R_21() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_35()) jj_scanpos = xsp;
if (jj_scan_token(K_BETWEEN)) return true;
if (jj_3R_36()) return true;
if (jj_scan_token(K_AND)) return true;
if (jj_3R_36()) return true;
return false;
}
final private boolean jj_3R_106() {
if (jj_3R_70()) return true;
return false;
}
final private boolean jj_3R_30() {
if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
return false;
}
final private boolean jj_3R_107() {
if (jj_3R_77()) return true;
return false;
}
final private boolean jj_3_5() {
if (jj_scan_token(88)) return true;
return false;
}
final private boolean jj_3R_34() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
final private boolean jj_3R_20() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_34()) jj_scanpos = xsp;
if (jj_scan_token(K_IN)) return true;
if (jj_scan_token(88)) return true;
xsp = jj_scanpos;
if (jj_3R_106()) {
jj_scanpos = xsp;
if (jj_3R_107()) return true;
}
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_66() {
if (jj_3R_70()) return true;
return false;
}
final private boolean jj_3R_133() {
if (jj_scan_token(K_ANY)) return true;
return false;
}
final private boolean jj_3R_118() {
if (jj_3R_81()) return true;
return false;
}
final private boolean jj_3R_44() {
if (jj_scan_token(S_IDENTIFIER)) return true;
return false;
}
final private boolean jj_3R_28() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_44()) {
jj_scanpos = xsp;
if (jj_3R_45()) return true;
}
if (jj_scan_token(88)) return true;
xsp = jj_scanpos;
if (jj_3R_66()) jj_scanpos = xsp;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_117() {
if (jj_scan_token(88)) return true;
if (jj_3R_81()) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_23() {
if (jj_scan_token(88)) return true;
if (jj_scan_token(K_SELECT)) return true;
return false;
}
final private boolean jj_3R_116() {
if (jj_scan_token(K_UNION)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(5)) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_53() {
if (jj_scan_token(105)) return true;
return false;
}
final private boolean jj_3R_131() {
if (jj_scan_token(93)) return true;
if (jj_3R_17()) return true;
return false;
}
final private boolean jj_3R_102() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_116()) {
jj_scanpos = xsp;
if (jj_scan_token(35)) {
jj_scanpos = xsp;
if (jj_scan_token(42)) return true;
}
}
xsp = jj_scanpos;
if (jj_3R_117()) {
jj_scanpos = xsp;
if (jj_3R_118()) return true;
}
return false;
}
final private boolean jj_3R_27() {
if (jj_scan_token(K_DISTINCT)) return true;
return false;
}
final private boolean jj_3R_111() {
if (jj_3R_17()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_131()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_43() {
if (jj_scan_token(K_COUNT)) return true;
return false;
}
final private boolean jj_3R_49() {
if (jj_3R_53()) return true;
return false;
}
final private boolean jj_3R_42() {
if (jj_scan_token(K_MIN)) return true;
return false;
}
final private boolean jj_3R_36() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_48()) {
jj_scanpos = xsp;
if (jj_3R_49()) return true;
}
return false;
}
final private boolean jj_3R_48() {
if (jj_3R_19()) return true;
return false;
}
final private boolean jj_3R_41() {
if (jj_scan_token(K_MAX)) return true;
return false;
}
final private boolean jj_3R_40() {
if (jj_scan_token(K_AVG)) return true;
return false;
}
final private boolean jj_3R_25() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_39()) {
jj_scanpos = xsp;
if (jj_3R_40()) {
jj_scanpos = xsp;
if (jj_3R_41()) {
jj_scanpos = xsp;
if (jj_3R_42()) {
jj_scanpos = xsp;
if (jj_3R_43()) return true;
}
}
}
}
return false;
}
final private boolean jj_3R_39() {
if (jj_scan_token(K_SUM)) return true;
return false;
}
final private boolean jj_3R_115() {
if (jj_scan_token(K_HAVING)) return true;
if (jj_3R_64()) return true;
return false;
}
final private boolean jj_3_11() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(7)) {
jj_scanpos = xsp;
if (jj_scan_token(5)) {
jj_scanpos = xsp;
if (jj_3R_23()) return true;
}
}
return false;
}
final private boolean jj_3R_128() {
if (jj_scan_token(K_PRIOR)) return true;
return false;
}
final private boolean jj_3R_126() {
if (jj_scan_token(100)) return true;
return false;
}
final private boolean jj_3R_125() {
if (jj_scan_token(99)) return true;
return false;
}
final private boolean jj_3R_105() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_128()) jj_scanpos = xsp;
if (jj_3R_36()) return true;
return false;
}
final private boolean jj_3R_101() {
if (jj_scan_token(K_GROUP)) return true;
if (jj_scan_token(K_BY)) return true;
if (jj_3R_70()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_115()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_124() {
if (jj_scan_token(98)) return true;
return false;
}
final private boolean jj_3R_123() {
if (jj_scan_token(97)) return true;
return false;
}
final private boolean jj_3R_62() {
if (jj_scan_token(88)) return true;
if (jj_3R_64()) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_122() {
if (jj_scan_token(96)) return true;
return false;
}
final private boolean jj_3R_61() {
if (jj_scan_token(S_BIND)) return true;
return false;
}
final private boolean jj_3R_121() {
if (jj_scan_token(95)) return true;
return false;
}
final private boolean jj_3R_132() {
if (jj_scan_token(K_ALL)) return true;
return false;
}
final private boolean jj_3R_127() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_132()) {
jj_scanpos = xsp;
if (jj_3R_133()) return true;
}
return false;
}
final private boolean jj_3R_120() {
if (jj_scan_token(94)) return true;
return false;
}
final private boolean jj_3R_119() {
if (jj_scan_token(92)) return true;
return false;
}
final private boolean jj_3R_103() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_119()) {
jj_scanpos = xsp;
if (jj_3R_120()) {
jj_scanpos = xsp;
if (jj_3R_121()) {
jj_scanpos = xsp;
if (jj_3R_122()) {
jj_scanpos = xsp;
if (jj_3R_123()) {
jj_scanpos = xsp;
if (jj_3R_124()) {
jj_scanpos = xsp;
if (jj_3R_125()) {
jj_scanpos = xsp;
if (jj_3R_126()) return true;
}
}
}
}
}
}
}
return false;
}
final private boolean jj_3R_114() {
if (jj_scan_token(K_START)) return true;
if (jj_scan_token(K_WITH)) return true;
if (jj_3R_64()) return true;
return false;
}
final private boolean jj_3R_113() {
if (jj_scan_token(K_START)) return true;
if (jj_scan_token(K_WITH)) return true;
if (jj_3R_64()) return true;
return false;
}
final private boolean jj_3R_104() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_127()) jj_scanpos = xsp;
if (jj_scan_token(88)) return true;
if (jj_3R_77()) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_60() {
if (jj_scan_token(S_CHAR_LITERAL)) return true;
return false;
}
final private boolean jj_3R_59() {
if (jj_scan_token(S_NUMBER)) return true;
return false;
}
final private boolean jj_3R_100() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_113()) jj_scanpos = xsp;
if (jj_scan_token(K_CONNECT)) return true;
if (jj_scan_token(K_BY)) return true;
if (jj_3R_64()) return true;
xsp = jj_scanpos;
if (jj_3R_114()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_58() {
if (jj_3R_63()) return true;
return false;
}
final private boolean jj_3R_29() {
if (jj_scan_token(S_IDENTIFIER)) return true;
return false;
}
final private boolean jj_3R_17() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_29()) {
jj_scanpos = xsp;
if (jj_3R_30()) return true;
}
return false;
}
final private boolean jj_3_15() {
if (jj_3R_28()) return true;
return false;
}
final private boolean jj_3R_26() {
if (jj_scan_token(K_ALL)) return true;
return false;
}
final private boolean jj_3_12() {
if (jj_3R_24()) return true;
return false;
}
final private boolean jj_3R_92() {
if (jj_3R_103()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_104()) {
jj_scanpos = xsp;
if (jj_3R_105()) return true;
}
return false;
}
final private boolean jj_3R_99() {
if (jj_scan_token(K_WHERE)) return true;
if (jj_3R_64()) return true;
return false;
}
final private boolean jj_3_14() {
if (jj_3R_25()) return true;
if (jj_scan_token(88)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_26()) {
jj_scanpos = xsp;
if (jj_3R_27()) return true;
}
if (jj_3R_63()) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_69() {
if (jj_scan_token(93)) return true;
if (jj_3R_17()) return true;
return false;
}
final private boolean jj_3R_65() {
if (jj_scan_token(93)) return true;
if (jj_3R_17()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_69()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3_13() {
if (jj_scan_token(K_COUNT)) return true;
if (jj_scan_token(88)) return true;
if (jj_scan_token(103)) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_63() {
if (jj_3R_17()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_65()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_57() {
if (jj_3R_24()) return true;
return false;
}
final private boolean jj_3R_112() {
if (jj_scan_token(S_IDENTIFIER)) return true;
return false;
}
final private boolean jj_3R_55() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_56()) {
jj_scanpos = xsp;
if (jj_3R_57()) {
jj_scanpos = xsp;
if (jj_3_13()) {
jj_scanpos = xsp;
if (jj_3_14()) {
jj_scanpos = xsp;
if (jj_3_15()) {
jj_scanpos = xsp;
if (jj_3R_58()) {
jj_scanpos = xsp;
if (jj_3R_59()) {
jj_scanpos = xsp;
if (jj_3R_60()) {
jj_scanpos = xsp;
if (jj_3R_61()) {
jj_scanpos = xsp;
if (jj_3R_62()) return true;
}
}
}
}
}
}
}
}
}
return false;
}
final private boolean jj_3R_56() {
if (jj_scan_token(K_NULL)) return true;
return false;
}
final private boolean jj_3R_73() {
if (jj_scan_token(89)) return true;
if (jj_3R_36()) return true;
return false;
}
final private boolean jj_3R_97() {
if (jj_3R_111()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_112()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_70() {
if (jj_3R_36()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_73()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_98() {
if (jj_scan_token(89)) return true;
if (jj_3R_97()) return true;
return false;
}
final private boolean jj_3R_87() {
if (jj_scan_token(K_FROM)) return true;
if (jj_3R_97()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_98()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_84() {
if (jj_3R_93()) return true;
return false;
}
final private boolean jj_3_10() {
if (jj_3R_22()) return true;
return false;
}
final private boolean jj_3_9() {
if (jj_3R_21()) return true;
return false;
}
final private boolean jj_3_8() {
if (jj_3R_20()) return true;
return false;
}
final private boolean jj_3R_54() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(101)) {
jj_scanpos = xsp;
if (jj_scan_token(102)) return true;
}
return false;
}
final private boolean jj_3R_83() {
if (jj_3R_92()) return true;
return false;
}
final private boolean jj_3R_80() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_83()) {
jj_scanpos = xsp;
if (jj_3_8()) {
jj_scanpos = xsp;
if (jj_3_9()) {
jj_scanpos = xsp;
if (jj_3_10()) {
jj_scanpos = xsp;
if (jj_3R_84()) return true;
}
}
}
}
return false;
}
final private boolean jj_3R_51() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_54()) jj_scanpos = xsp;
if (jj_3R_55()) return true;
return false;
}
final private boolean jj_3_4() {
if (jj_3R_17()) return true;
if (jj_scan_token(93)) return true;
if (jj_3R_17()) return true;
if (jj_scan_token(104)) return true;
return false;
}
final private boolean jj_3_3() {
if (jj_3R_17()) return true;
if (jj_scan_token(104)) return true;
return false;
}
final private boolean jj_3R_16() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_3()) {
jj_scanpos = xsp;
if (jj_3_4()) return true;
}
return false;
}
final private boolean jj_3R_82() {
if (jj_scan_token(K_PRIOR)) return true;
return false;
}
final private boolean jj_3_7() {
if (jj_scan_token(88)) return true;
if (jj_3R_19()) return true;
if (jj_scan_token(89)) return true;
return false;
}
final private boolean jj_3R_136() {
if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
return false;
}
final private boolean jj_3R_79() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_82()) jj_scanpos = xsp;
if (jj_3R_19()) return true;
return false;
}
final private boolean jj_3R_52() {
if (jj_scan_token(108)) return true;
if (jj_3R_51()) return true;
return false;
}
final private boolean jj_3R_138() {
if (jj_scan_token(S_IDENTIFIER)) return true;
return false;
}
final private boolean jj_3R_46() {
if (jj_3R_51()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_52()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_137() {
Token xsp;
if (jj_3R_138()) return true;
while (true) {
xsp = jj_scanpos;
if (jj_3R_138()) { jj_scanpos = xsp; break; }
}
return false;
}
final private boolean jj_3R_78() {
if (jj_scan_token(88)) return true;
if (jj_3R_70()) return true;
if (jj_scan_token(90)) return true;
return false;
}
final private boolean jj_3R_76() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_78()) {
jj_scanpos = xsp;
if (jj_3R_79()) return true;
}
xsp = jj_scanpos;
if (jj_3R_80()) jj_scanpos = xsp;
return false;
}
final private boolean jj_3R_135() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(8)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_136()) {
jj_scanpos = xsp;
if (jj_3R_137()) return true;
}
return false;
}
public ZqlJJParserTokenManager token_source;
SimpleCharStream jj_input_stream;
public Token token, jj_nt;
private int jj_ntk;
private Token jj_scanpos, jj_lastpos;
private int jj_la;
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
final private int[] jj_la1 = new int[101];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static private int[] jj_la1_2;
static private int[] jj_la1_3;
static {
jj_la1_0();
jj_la1_1();
jj_la1_2();
jj_la1_3();
}
private static void jj_la1_0() {
jj_la1_0 = new int[] {0x8008000,0x0,0x0,0x810b000,0x4220000,0x4000000,0x4220000,0x0,0x10000,0x0,0x0,0x0,0x10000,0x0,0x1000000,0x0,0x0,0x1000000,0x0,0x0,0x0,0x2080400,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x800020,0x800020,0x0,0x40000,0x40000000,0x0,0x0,0x80400,0x100,0x80400,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x20,0x0,0x0,0x400200,0x400200,0x0,0x400200,0x400200,0x0,0x0,0x0,0x40,0x0,0x80400,0x0,0x0,0x80400,0x0,0x0,0x800,0x0,0xa0,0xa0,0x0,0x80400,0x80400,0x0,0x80400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800020,0x0,0x0,0x80400,0x80400,0x80400,0x0,0x0,};
}
private static void jj_la1_1() {
jj_la1_1 = new int[] {0x1011004,0x0,0x0,0x1011004,0x1a400082,0x400000,0x1a400082,0x0,0x0,0x0,0x4000,0x0,0x0,0x40000,0x20000000,0x4000000,0x4000000,0x24000000,0x0,0x0,0x0,0x20a300,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x80000000,0x0,0x408,0x0,0x8300,0x0,0x8300,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x408,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x80000,0x0,0x2000,0x20a300,0x2000,0x200000,0x208300,0x0,0x20,0x2061,0x0,0x0,0x0,0x200000,0x208300,0x8300,0x2000,0x8008300,0x2000,0x2000,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x300,0x300,0x8300,0x0,0x0,};
}
private static void jj_la1_2() {
jj_la1_2 = new int[] {0xc0,0x2000000,0x1000000,0xc0,0x10,0x0,0x10,0x400,0x0,0x2000000,0x0,0x400,0x0,0x800,0x0,0x10,0x10,0x0,0x40000,0x100,0x2000000,0x1e41001,0x2000000,0x1000000,0x20,0x0,0x100,0x20000000,0x20000000,0x840000,0xd0000000,0x20000000,0x0,0x0,0x41000,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x8,0x2000000,0x1e41001,0x840000,0x1e41001,0x0,0x40000,0x840000,0x2000000,0x40000,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x2000000,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x1e41001,0x0,0x0,0x1e41001,0xd0000000,0x0,0xd0000000,0x2000000,0x0,0x0,0x0,0x1e41001,0x1e41001,0x0,0x1e41001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e41000,0x1,0x40001,0x1e41001,0x20000000,0x20000000,};
}
private static void jj_la1_3() {
jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x260,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f,0x0,0x60,0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x0,0x0,0x60,0x1f,0x0,0x1f,0x0,0x0,0x0,0x0,0x260,0x260,0x0,0x260,0x0,0x0,0x0,0x460,0x460,0x880,0x880,0x1000,0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x260,0x0,0x0,};
}
final private JJCalls[] jj_2_rtns = new JJCalls[15];
private boolean jj_rescan = false;
private int jj_gc = 0;
public ZqlJJParser(java.io.InputStream stream) {
this(stream, null);
}
public ZqlJJParser(java.io.InputStream stream, String encoding) {
try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source = new ZqlJJParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 101; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
public void ReInit(java.io.InputStream stream) {
ReInit(stream, null);
}
public void ReInit(java.io.InputStream stream, String encoding) {
try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 101; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
public ZqlJJParser(java.io.Reader stream) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
token_source = new ZqlJJParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 101; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
public void ReInit(java.io.Reader stream) {
jj_input_stream.ReInit(stream, 1, 1);
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 101; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
public ZqlJJParser(ZqlJJParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 101; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
public void ReInit(ZqlJJParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 101; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
final private Token jj_consume_token(int kind) throws ParseException {
Token oldToken;
if ((oldToken = token).next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
if (token.kind == kind) {
jj_gen++;
if (++jj_gc > 100) {
jj_gc = 0;
for (int i = 0; i < jj_2_rtns.length; i++) {
JJCalls c = jj_2_rtns[i];
while (c != null) {
if (c.gen < jj_gen) c.first = null;
c = c.next;
}
}
}
return token;
}
token = oldToken;
jj_kind = kind;
throw generateParseException();
}
static private final class LookaheadSuccess extends java.lang.Error { }
final private LookaheadSuccess jj_ls = new LookaheadSuccess();
final private boolean jj_scan_token(int kind) {
if (jj_scanpos == jj_lastpos) {
jj_la--;
if (jj_scanpos.next == null) {
jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
} else {
jj_lastpos = jj_scanpos = jj_scanpos.next;
}
} else {
jj_scanpos = jj_scanpos.next;
}
if (jj_rescan) {
int i = 0; Token tok = token;
while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
if (tok != null) jj_add_error_token(kind, i);
}
if (jj_scanpos.kind != kind) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
return false;
}
final public Token getNextToken() {
if (token.next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
jj_gen++;
return token;
}
final public Token getToken(int index) {
Token t = lookingAhead ? jj_scanpos : token;
for (int i = 0; i < index; i++) {
if (t.next != null) t = t.next;
else t = t.next = token_source.getNextToken();
}
return t;
}
final private int jj_ntk() {
if ((jj_nt=token.next) == null)
return (jj_ntk = (token.next=token_source.getNextToken()).kind);
else
return (jj_ntk = jj_nt.kind);
}
private java.util.Vector jj_expentries = new java.util.Vector();
private int[] jj_expentry;
private int jj_kind = -1;
private int[] jj_lasttokens = new int[100];
private int jj_endpos;
private void jj_add_error_token(int kind, int pos) {
if (pos >= 100) return;
if (pos == jj_endpos + 1) {
jj_lasttokens[jj_endpos++] = kind;
} else if (jj_endpos != 0) {
jj_expentry = new int[jj_endpos];
for (int i = 0; i < jj_endpos; i++) {
jj_expentry[i] = jj_lasttokens[i];
}
boolean exists = false;
for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
int[] oldentry = (int[])(e.nextElement());
if (oldentry.length == jj_expentry.length) {
exists = true;
for (int i = 0; i < jj_expentry.length; i++) {
if (oldentry[i] != jj_expentry[i]) {
exists = false;
break;
}
}
if (exists) break;
}
}
if (!exists) jj_expentries.addElement(jj_expentry);
if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
}
}
public ParseException generateParseException() {
jj_expentries.removeAllElements();
boolean[] la1tokens = new boolean[109];
for (int i = 0; i < 109; i++) {
la1tokens[i] = false;
}
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 101; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1< jj_gen) {
jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
switch (i) {
case 0: jj_3_1(); break;
case 1: jj_3_2(); break;
case 2: jj_3_3(); break;
case 3: jj_3_4(); break;
case 4: jj_3_5(); break;
case 5: jj_3_6(); break;
case 6: jj_3_7(); break;
case 7: jj_3_8(); break;
case 8: jj_3_9(); break;
case 9: jj_3_10(); break;
case 10: jj_3_11(); break;
case 11: jj_3_12(); break;
case 12: jj_3_13(); break;
case 13: jj_3_14(); break;
case 14: jj_3_15(); break;
}
}
p = p.next;
} while (p != null);
} catch(LookaheadSuccess ls) { }
}
jj_rescan = false;
}
final private void jj_save(int index, int xla) {
JJCalls p = jj_2_rtns[index];
while (p.gen > jj_gen) {
if (p.next == null) { p = p.next = new JJCalls(); break; }
p = p.next;
}
p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
}
static final class JJCalls {
int gen;
Token first;
int arg;
JJCalls next;
}
// main ends here
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy