/* Generated By:JJTree&JavaCC: Do not edit this line. MysqlParser.java */
/*
* Copyright (C) 2008 Struct chen <piratebase@sina.com>
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version 3 of the License,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.meidusa.amoeba.mysql.parser.sql;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.meidusa.amoeba.parser.dbobject.*;
import com.meidusa.amoeba.parser.expression.*;
import com.meidusa.amoeba.parser.function.*;
import com.meidusa.amoeba.parser.Parser;
import com.meidusa.amoeba.parser.statement.*;
import java.math.BigDecimal;
import java.util.Map;
import java.util.HashMap;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Calendar;
import java.sql.Connection;
import com.meidusa.amoeba.sqljep.function.Comparative;
public class MysqlParser implements/*@bgen(jjtree)*/ MysqlParserTreeConstants,com.meidusa.amoeba.parser.Parser, MysqlParserConstants {/*@bgen(jjtree)*/
protected JJTMysqlParserState jjtree = new JJTMysqlParserState();private final static String metachars = "tnrbf\\\"";
private final static String chars = "\t\n\r\b\f\\\"";
private int parameterIndex = 0;
private Map<String,Table> tableAliasMap = new HashMap<String,Table>();
private Stack<Table> tableStack = new Stack<Table>();
private Statement statement;
private Schema defaultSchema;
private Map<String,Function> functionMap;
private static TimeConverter timeConverter = new TimeConverter();
public void setFunctionMap(Map<String,Function> map){
this.functionMap = map;
}
public void setDefaultSchema(Schema schema){
defaultSchema = schema;
}
/**
* main method to test parser
*/
public static void main( String args[] )
throws com.meidusa.amoeba.parser.ParseException
{
MysqlParser p = null ;
if ( args.length < 1 ) {
System.out.println("Reading from stdin") ;
p = new MysqlParser(System.in) ;
}
else {
try {
p = new MysqlParser(new DataInputStream(
new FileInputStream(args[0]))) ;
}
catch (FileNotFoundException e) {
System.out.println("File " + args[0] +
" not found. Reading from stdin") ;
p = new MysqlParser(System.in) ;
}
} // else ends here
if ( args.length > 0 ) {
System.out.println(args[0]) ;
}
Statement statement = p.doParse();
System.out.println(statement.getExpression());
} // main ends here
void jjtreeOpenNodeScope(Node n){
//((SimpleNode)n).setFirstToken(getToken(1));
}
void jjtreeCloseNodeScope(Node n){
// ((SimpleNode)n).setLastToken(token);
}
Function getFunction(String indent){
if(functionMap == null){
return null;
}else{
Function function = functionMap.get(indent);
if(function instanceof ThreadLocalSettingFunction)
{
((ThreadLocalSettingFunction)function).invoke();
}
return function;
}
//return funMap.get(indent);
}
public Statement doParse() throws com.meidusa.amoeba.parser.ParseException{
try{
Statement statement = this.parse();
return statement;
}catch(Exception e){
throw new com.meidusa.amoeba.parser.ParseException(e);
}
}
public Statement getParsedStatement(){
return statement;
}
private Expression reverseExpression(boolean not,Expression expression){
if(not){
if(expression != null){
return expression.reverse();
}else{
return null;
}
}else{
return expression;
}
}
private static String replaceEscape(String inputStr) {
int len = inputStr.length();
int p = 0;
int i;
StringBuilder output = new StringBuilder();
while ((i = inputStr.indexOf('\\', p)) != -1) {
output.append(inputStr.substring(p, i));
if (i+1 == len) break;
// find metacharacter
char metac = inputStr.charAt(i+1);
// find the index of the metac
int k = metachars.indexOf(metac);
if (k == -1) {
// didn't find the metachar, leave sequence as found.
// This code should be unreachable if the parser
// is functioning properly because strings containing
// unknown escape characters should not be accepted.
output.append('\\');
output.append(metac);
} else {
// its corresponding true char
output.append(chars.charAt(k));
}
// skip over both escape character & metacharacter
p = i + 2;
}
// add the end of the input string to the output
if (p < len)
output.append(inputStr.substring(p));
return output.toString();
}
final public void parseParams(Map amoebaParameterMap) throws ParseException {
Token parameterToken = null;
Object value = null;
Token valueToken = null;
parameterToken = jj_consume_token(IDENTIFIER);
jj_consume_token(146);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TRUE:
valueToken = jj_consume_token(K_TRUE);
value = Boolean.TRUE;
break;
case K_FALSE:
valueToken = jj_consume_token(K_FALSE);
value = Boolean.FALSE;
break;
case INTEGER_LITERAL:
valueToken = jj_consume_token(INTEGER_LITERAL);
value = Integer.valueOf(valueToken.image);
break;
case STRING_LITERAL:
valueToken = jj_consume_token(STRING_LITERAL);
value = (valueToken.image).substring(1,valueToken.image.length()-1);
break;
default:
jj_la1[0] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
amoebaParameterMap.put(parameterToken.image,value);
}
final public Statement parse() throws ParseException {
Statement statement = null;
Map amoebaParameterMap = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AMOEBA:
jj_consume_token(K_AMOEBA);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 147:
jj_consume_token(147);
parseParams(amoebaParameterMap = new HashMap());
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[1] = jj_gen;
break label_1;
}
jj_consume_token(148);
parseParams(amoebaParameterMap);
}
jj_consume_token(149);
break;
default:
jj_la1[2] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 150:
jj_consume_token(150);
break;
default:
jj_la1[3] = jj_gen;
;
}
statement = parserInner();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 151:
jj_consume_token(151);
break;
default:
jj_la1[4] = jj_gen;
;
}
break;
case K_DELETE:
case K_INSERT:
case K_REPLACE:
case K_EXPLAIN:
case K_SELECT:
case K_SET:
case K_SHOW:
case K_UPDATE:
case K_USE:
case K_COMMIT:
case K_ROLLBACK:
case K_DESCRIBE:
case K_START_TRANSACTION:
case K_CALL:
case 150:
statement = parserInner();
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 152:
jj_consume_token(152);
break;
case 0:
jj_consume_token(0);
break;
default:
jj_la1[6] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(statement instanceof AbstractStatement){
/* amoeba parameters */
if(amoebaParameterMap != null)
{
Boolean isRead = (Boolean)amoebaParameterMap.get("isRead");
if(isRead != null)
{
if(statement instanceof DMLStatement)
{
((DMLStatement)statement).setRead(isRead);
}
}
Boolean isProcedure = (Boolean)amoebaParameterMap.get("isProcedure");
if(isProcedure != null)
{
if(statement instanceof DMLStatement)
{
((DMLStatement)statement).setProcedure(isProcedure);
}
}
}
}
/* amoeba parameters */
if(amoebaParameterMap != null)
{
Integer params = (Integer)amoebaParameterMap.get("params");
if(params != null)
{
statement.setParameterCount(params);
}else
{
statement.setParameterCount(parameterIndex);
}
}else
{
statement.setParameterCount(parameterIndex);
}
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Statement parserInner() throws ParseException {
Expression expression = null;
Statement statement = null;
Token parameterToken = null;
Object value = null;
Token valueToken = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_EXPLAIN:
jj_consume_token(K_EXPLAIN);
break;
default:
jj_la1[7] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DELETE:
statement = DeleteQuery();
break;
case K_INSERT:
case K_REPLACE:
statement = InsertQuery();
break;
case K_SELECT:
case 150:
statement = SelectQuery();
break;
case K_UPDATE:
statement = UpdateQuery();
break;
case K_SHOW:
case K_DESCRIBE:
statement = ShowQuery();
break;
case K_CALL:
statement = CallQuery();
break;
case K_SET:
jj_consume_token(K_SET);
statement = PropertySetQuery(new PropertyStatement());
break;
case K_USE:
statement = SelectSchema();
break;
case K_COMMIT:
jj_consume_token(K_COMMIT);
statement = new CommitStatement();
break;
case K_ROLLBACK:
jj_consume_token(K_ROLLBACK);
statement = new RollbackStatement();
break;
case K_START_TRANSACTION:
jj_consume_token(K_START_TRANSACTION);
statement = new StartTansactionStatement();
break;
default:
jj_la1[8] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IGNORE_INDEX:
case K_FORCE_INDEX:
case 183:
INDEX();
break;
default:
jj_la1[9] = jj_gen;
;
}
if(statement instanceof AbstractStatement){
List<Table> list = new ArrayList<Table>();
for(Map.Entry<String,Table> entry : tableAliasMap.entrySet()){
if(!list.contains(entry.getValue())){
list.add(entry.getValue());
}
}
Table[] tables = new Table[list.size()];
list.toArray(tables);
((AbstractStatement)statement).setTables(tables);
}
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Statement SelectSchema() throws ParseException {
Token t = null;
String schema = null;
jj_consume_token(K_USE);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case STRING_LITERAL:
token = jj_consume_token(STRING_LITERAL);
schema = (t.image).substring(1,t.image.length()-1);
break;
case S_QUOTED_IDENTIFIER:
t = jj_consume_token(S_QUOTED_IDENTIFIER);
schema = (t.image).substring(1,t.image.length()-1);
break;
case S_COMMA_IDENTIFIER:
t = jj_consume_token(S_COMMA_IDENTIFIER);
schema = (t.image).substring(1,t.image.length()-1);
break;
case IDENTIFIER:
t = jj_consume_token(IDENTIFIER);
schema = t.image;
break;
default:
jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
PropertyStatement statement = new PropertyStatement();
statement.addProperty("schema",new ConstantExpression(schema));
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
/*
Statement ShowQuery() :{
Expression expression = null;
Column column = null;
Table table = null;
}{
"SHOW"{return ShowStatement.STATMENT;}//[(<K_CREATE> [<K_TABLE>|<IDENTIFIER>])|<K_FULL>] column = ColumnName() [<K_FROM> table = TableReference()]{
ColumnExpression columnExpression = new ColumnExpression();
columnExpression.setColumn(column);
ShowStatement show = new ShowStatement();
show.setExpression(columnExpression);
return show;
}
}
*/
final public Statement PropertySetQuery(PropertyStatement statement) throws ParseException {
Expression expression = null;
Token name = null;
Token valueToken = null;
Comparable value = null;
String propertyName = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OPTION:
case K_SESSION:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SESSION:
jj_consume_token(K_SESSION);
break;
case K_OPTION:
jj_consume_token(K_OPTION);
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[12] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TRANSACTION_ISOLATION_LEVEL:
jj_consume_token(K_TRANSACTION_ISOLATION_LEVEL);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TRANSACTION_READ_COMMITTED:
jj_consume_token(K_TRANSACTION_READ_COMMITTED);
value=Connection.TRANSACTION_READ_COMMITTED;
break;
case K_TRANSACTION_READ_UNCOMMITTED:
jj_consume_token(K_TRANSACTION_READ_UNCOMMITTED);
value=Connection.TRANSACTION_READ_UNCOMMITTED;
break;
case K_TRANSACTION_SERIALIZABLE:
jj_consume_token(K_TRANSACTION_SERIALIZABLE);
value=Connection.TRANSACTION_SERIALIZABLE;
break;
case K_TRANSACTION_REPEATABLE_READ:
jj_consume_token(K_TRANSACTION_REPEATABLE_READ);
value=Connection.TRANSACTION_REPEATABLE_READ;
break;
default:
jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
propertyName = "TRANSACTIONISOLATION";
break;
case K_CLIENT_CHARSET:
jj_consume_token(K_CLIENT_CHARSET);
propertyName = "charset";
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
valueToken = jj_consume_token(IDENTIFIER);
value = valueToken.image;
break;
case STRING_LITERAL:
valueToken = jj_consume_token(STRING_LITERAL);
value = (valueToken.image).substring(1,valueToken.image.length()-1);
break;
case S_QUOTED_IDENTIFIER:
valueToken = jj_consume_token(S_QUOTED_IDENTIFIER);
value = valueToken.image;
break;
default:
jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
case IDENTIFIER:
name = jj_consume_token(IDENTIFIER);
propertyName = name.image;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 153:
jj_consume_token(153);
name = jj_consume_token(IDENTIFIER);
propertyName = propertyName+"."+name.image;
break;
default:
jj_la1[15] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 146:
jj_consume_token(146);
break;
default:
jj_la1[16] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NULL:
valueToken = jj_consume_token(K_NULL);
value = "null";
break;
case K_TRUE:
valueToken = jj_consume_token(K_TRUE);
value = Boolean.TRUE;
break;
case K_FALSE:
valueToken = jj_consume_token(K_FALSE);
value = Boolean.FALSE;
break;
case IDENTIFIER:
valueToken = jj_consume_token(IDENTIFIER);
value = valueToken.image;
break;
case INTEGER_LITERAL:
valueToken = jj_consume_token(INTEGER_LITERAL);
value = Long.valueOf(valueToken.image);
break;
case STRING_LITERAL:
valueToken = jj_consume_token(STRING_LITERAL);
value = (valueToken.image).substring(1,valueToken.image.length()-1);
break;
case S_QUOTED_IDENTIFIER:
valueToken = jj_consume_token(S_QUOTED_IDENTIFIER);
value = valueToken.image;
break;
default:
jj_la1[17] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[18] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
PropertySetQuery(statement);
break;
default:
jj_la1[19] = jj_gen;
;
}
if(value != null){
ConstantExpression consExp= new ConstantExpression(value);
statement.addProperty(propertyName,consExp);
}
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Statement UpdateQuery() throws ParseException {
Expression expression = null;
Table table = null;
BaseExpressionList andExpression = new AndExpression();
DMLStatement statement = new UpdateStatement();
Token parameter = null;
int index = 0;
table = UpdateStatement(statement);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
expression = WhereClause(statement);
if(expression instanceof BaseExpressionList)
{
BaseExpressionList list = (BaseExpressionList)expression;
andExpression =(BaseExpressionList)expression;
}else
{
if(expression != null)
{
andExpression.addExpression(expression);
}
}
break;
default:
jj_la1[20] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LIMIT:
jj_consume_token(K_LIMIT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
andExpression.addExpression(new ParameterExpression(index));
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[21] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OFFSET:
case 148:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
break;
case K_OFFSET:
jj_consume_token(K_OFFSET);
break;
default:
jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
andExpression.addExpression(new ParameterExpression(index));
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[23] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[24] = jj_gen;
;
}
break;
default:
jj_la1[25] = jj_gen;
;
}
if(andExpression.getSize() >0)
{
statement.setExpression(andExpression);
}
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Statement ShowQuery() throws ParseException {
ShowStatement statement = new ShowStatement();
Expression expression = null;
Token valueToken = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SHOW:
valueToken = jj_consume_token(K_SHOW);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SESSION:
case K_SHOW_FILL_TABLES:
case K_SHOW_CREATE_TABLE:
case K_SHOW_CREATE_PROCEDURE:
case K_SHOW_FULL_COLUMNS:
case K_TABLE_STATUS:
case K_VARIABLES:
case K_GRANTS_FOR:
case K_TRIGGERS:
case K_EVENTS:
case K_CHARACTER_SET:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SHOW_FILL_TABLES:
jj_consume_token(K_SHOW_FILL_TABLES);
break;
case K_SHOW_CREATE_TABLE:
jj_consume_token(K_SHOW_CREATE_TABLE);
break;
case K_SHOW_FULL_COLUMNS:
jj_consume_token(K_SHOW_FULL_COLUMNS);
break;
case K_SHOW_CREATE_PROCEDURE:
jj_consume_token(K_SHOW_CREATE_PROCEDURE);
break;
case K_TABLE_STATUS:
jj_consume_token(K_TABLE_STATUS);
break;
case K_GRANTS_FOR:
jj_consume_token(K_GRANTS_FOR);
SQLExpression(statement);
break;
case K_TRIGGERS:
jj_consume_token(K_TRIGGERS);
break;
case K_EVENTS:
jj_consume_token(K_EVENTS);
break;
case K_CHARACTER_SET:
jj_consume_token(K_CHARACTER_SET);
break;
case K_SESSION:
case K_VARIABLES:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SESSION:
jj_consume_token(K_SESSION);
break;
default:
jj_la1[26] = jj_gen;
;
}
jj_consume_token(K_VARIABLES);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LIKE:
jj_consume_token(K_LIKE);
SQLExpression(statement);
break;
default:
jj_la1[27] = jj_gen;
;
}
break;
default:
jj_la1[28] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[29] = jj_gen;
;
}
break;
case K_DESCRIBE:
jj_consume_token(K_DESCRIBE);
break;
default:
jj_la1[30] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
jj_consume_token(K_FROM);
break;
default:
jj_la1[31] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TABLE:
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 150:
case 154:
FromItem(statement);
break;
default:
jj_la1[32] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
expression = WhereClause(statement);
break;
default:
jj_la1[33] = jj_gen;
;
}
statement.setExpression(expression);
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Statement CallQuery() throws ParseException {
CallStatement statement = new CallStatement();
Expression expression = null;
jj_consume_token(K_CALL);
expression = SQLExpression(statement);
statement.setExpression(expression);
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Table UpdateStatement(Statement statement) throws ParseException {
Table table = null;
jj_consume_token(K_UPDATE);
table = TableReference();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
TableReference();
break;
default:
jj_la1[34] = jj_gen;
;
}
jj_consume_token(K_SET);
AssignmentClause(statement);
{if (true) return table;}
throw new Error("Missing return statement in function");
}
final public Expression AssignmentClause(Statement statement) throws ParseException {
Expression expression = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 154:
expression = ColumnValues(statement);
break;
case 150:
jj_consume_token(150);
UpdateColumn();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[35] = jj_gen;
break label_2;
}
jj_consume_token(148);
UpdateColumn();
}
jj_consume_token(151);
jj_consume_token(146);
jj_consume_token(150);
if (jj_2_1(2)) {
UpdateValues(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case 150:
FullSelectStatement(statement);
break;
default:
jj_la1[36] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(151);
break;
default:
jj_la1[37] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public void UpdateColumn() throws ParseException {
ColumnName();
}
final public List<Expression> UpdateValues(Statement statement) throws ParseException {
Expression expression = null;
List<Expression> list = new ArrayList<Expression>();
expression = UpdateValue(statement);
list.add(expression);
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[38] = jj_gen;
break label_3;
}
jj_consume_token(148);
expression = UpdateValue(statement);
list.add(expression);
}
{if (true) return list;}
throw new Error("Missing return statement in function");
}
final public Expression UpdateValue(Statement statement) throws ParseException {
Expression expression = null;
expression = SQLSimpleExpression(statement);
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Statement DeleteQuery() throws ParseException {
Expression expression = null;
Table table = null;
DMLStatement statement = new DeleteStatement();
AndExpression andExpression = new AndExpression();
Token parameter = null;
int index = 0;
table = DeleteStatement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
expression = WhereClause(statement);
break;
default:
jj_la1[39] = jj_gen;
;
}
if(expression != null)
{
andExpression.addExpression(expression);
}
statement.setExpression(expression);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ORDER:
OrderByClause(statement);
break;
default:
jj_la1[40] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LIMIT:
jj_consume_token(K_LIMIT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
andExpression.addExpression(new ParameterExpression(index));
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[41] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OFFSET:
case 148:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
break;
case K_OFFSET:
jj_consume_token(K_OFFSET);
break;
default:
jj_la1[42] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
andExpression.addExpression(new ParameterExpression(index));
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[43] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[44] = jj_gen;
;
}
break;
default:
jj_la1[45] = jj_gen;
;
}
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Table DeleteStatement() throws ParseException {
Table table = null;
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[46] = jj_gen;
;
}
table = TableReference();
{if (true) return table;}
throw new Error("Missing return statement in function");
}
final public Statement InsertQuery() throws ParseException {
Table table = null;
DMLStatement statement = new InsertStatement();
Expression expression = null;
List<Column> insertColumns = null;
List<List<Expression> > insertValues = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INSERT:
jj_consume_token(K_INSERT);
break;
case K_REPLACE:
jj_consume_token(K_REPLACE);
break;
default:
jj_la1[47] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INTO:
jj_consume_token(K_INTO);
break;
default:
jj_la1[48] = jj_gen;
;
}
table = TableName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case K_VALUES:
case 150:
if (jj_2_2(4)) {
jj_consume_token(150);
insertColumns = InsertColumns();
jj_consume_token(151);
} else {
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_VALUES:
insertValues = InsertValues(statement);
break;
case K_SELECT:
case 150:
expression = FullSelectStatement(statement);
break;
default:
jj_la1[49] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(insertValues == null || insertValues.size() == 0){
statement.setExpression(expression);
}else{
if(insertColumns != null){
AndExpression andExpression = new AndExpression();
int index = 0;
for(Column column:insertColumns){
Expression insertExpression = null;
if(insertValues.size() >1)
{
insertExpression = new OrExpression();
for(List<Expression> rowExpression : insertValues )
{
ColumnExpression colExpression = new ColumnExpression();
colExpression.setColumn(column);
ComparisonExpression compExp = new ComparisonExpression();
compExp.setComparison(Comparative.Equivalent);
compExp.setExpression(rowExpression.get(index));
colExpression.setExpression(compExp);
((OrExpression)insertExpression).addExpression(colExpression);
}
}else
{
ColumnExpression colExpression = new ColumnExpression();
colExpression.setColumn(column);
ComparisonExpression compExp = new ComparisonExpression();
compExp.setComparison(Comparative.Equivalent);
compExp.setExpression(insertValues.get(0).get(index));
colExpression.setExpression(compExp);
insertExpression = colExpression;
}
andExpression.addExpression(insertExpression);
index ++;
}
statement.setExpression(andExpression);
}
}
break;
case K_SET:
jj_consume_token(K_SET);
expression = AssignmentClause(statement);
statement.setExpression(expression);
break;
default:
jj_la1[50] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ON:
jj_consume_token(K_ON);
jj_consume_token(K_DUPLICATE);
jj_consume_token(K_KEY);
jj_consume_token(K_UPDATE);
AssignmentClause(statement);
break;
default:
jj_la1[51] = jj_gen;
;
}
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public List<Column> InsertColumns() throws ParseException {
List<Column> insertColumns = new ArrayList<Column>();
Column column = null;
column = InsertColumn();
insertColumns.add(column);
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[52] = jj_gen;
break label_4;
}
jj_consume_token(148);
column = InsertColumn();
insertColumns.add(column);
}
{if (true) return insertColumns;}
throw new Error("Missing return statement in function");
}
//This is just a wrapper to provide different formatting in case of Insert
final public Column InsertColumn() throws ParseException {
Column column = null;
column = ColumnName();
{if (true) return column;}
throw new Error("Missing return statement in function");
}
final public List<List<Expression>> InsertValues(Statement statement) throws ParseException {
List<List<Expression>> insertValues = new ArrayList<List<Expression > >();
List<Expression> singleExpressionList = null;
Expression expression = null;
jj_consume_token(K_VALUES);
singleExpressionList = InsertSingleRowValues(statement);
if(singleExpressionList != null)
{
insertValues.add(singleExpressionList);
}
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
case 150:
;
break;
default:
jj_la1[53] = jj_gen;
break label_5;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
break;
default:
jj_la1[54] = jj_gen;
;
}
singleExpressionList = InsertSingleRowValues(statement);
if(singleExpressionList != null)
{
insertValues.add(singleExpressionList);
}
}
{if (true) return insertValues;}
throw new Error("Missing return statement in function");
}
final public List<Expression> InsertSingleRowValues(Statement statement) throws ParseException {
List<Expression> insertValues = new ArrayList<Expression>();
Expression expression = null;
jj_consume_token(150);
expression = InsertValue(statement);
if(expression != null)insertValues.add(expression);
label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[55] = jj_gen;
break label_6;
}
jj_consume_token(148);
expression = InsertValue(statement);
if(expression != null)insertValues.add(expression);
}
jj_consume_token(151);
if(insertValues.size() >0)
{
{if (true) return insertValues;}
}else
{
{if (true) return null;}
}
throw new Error("Missing return statement in function");
}
//This is just a wrapper to provide different formatting in case of Insert
final public Expression InsertValue(Statement statement) throws ParseException {
Expression expression = null;
expression = SQLSimpleExpression(statement);
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Statement SelectQuery() throws ParseException {
Expression expression = null;
DMLStatement statement = new SelectStatement();;
expression = FullSelectStatement(statement);
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FETCH:
case K_FOR:
case K_QUERYNO:
case K_OPTIMIZE:
case K_WITH:
;
break;
default:
jj_la1[56] = jj_gen;
break label_7;
}
ExtraClauses(statement);
}
statement.setExpression(expression);
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Expression ColumnValues(Statement statement) throws ParseException {
Expression expression = null;
AndExpression andExpression = new AndExpression();
expression = ColumnValue(statement);
if(expression != null) andExpression.addExpression(expression);
label_8:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[57] = jj_gen;
break label_8;
}
jj_consume_token(148);
expression = ColumnValue(statement);
if(expression != null) andExpression.addExpression(expression);
}
{if (true) return andExpression;}
throw new Error("Missing return statement in function");
}
final public Expression ColumnValue(Statement statement) throws ParseException {
ColumnExpression colExpression = new ColumnExpression();
Expression expression = null;
Column column = null;
column = ColumnName();
jj_consume_token(146);
expression = UpdatedValue(statement);
if(expression == null) {if (true) return null;}
colExpression.setColumn(column);
ComparisonExpression compExp = new ComparisonExpression();
compExp.setComparison(Comparative.Equivalent);
compExp.setExpression(expression);
colExpression.setExpression(compExp);
{if (true) return colExpression;}
throw new Error("Missing return statement in function");
}
final public Expression UpdatedValue(Statement statement) throws ParseException {
Expression expression = null;
if (jj_2_3(2147483647)) {
jj_consume_token(150);
expression = SubSelectStatement(statement);
jj_consume_token(151);
} else if (jj_2_4(1)) {
expression = SQLSimpleExpression(statement);
} else {
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public ComparisonExpression IsNullClause(Statement statement) throws ParseException {
int comparison = Comparative.Equivalent;
jj_consume_token(K_IS);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
comparison = Comparative.NotEquivalent;
break;
default:
jj_la1[58] = jj_gen;
;
}
jj_consume_token(K_NULL);
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setComparison(comparison);
comparativeExpression.setExpression(new ConstantExpression(null));
{if (true) return comparativeExpression;}
throw new Error("Missing return statement in function");
}
/*
* Tabel Column
*/
final public Column ColumnName() throws ParseException {
String schemaName = null;
String tableName = null;
String columnName = null;
Column column = new Column();
Table table = null;
// schema.table.column
schemaName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 153:
jj_consume_token(153);
tableName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 153:
jj_consume_token(153);
columnName = EntityName();
break;
default:
jj_la1[59] = jj_gen;
;
}
break;
default:
jj_la1[60] = jj_gen;
;
}
if(tableName == null){
columnName = schemaName;
schemaName = null;
if(tableStack.size()>0){
table = tableStack.peek();
}
}else{
if(columnName == null){
columnName = tableName;
tableName = schemaName;
schemaName = null;
table = tableAliasMap.get(tableName);
}
}
column.setTable(table);
column.setName(columnName);
{if (true) return column;}
throw new Error("Missing return statement in function");
}
final public String EntityName() throws ParseException {
Token token = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case 154:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 154:
jj_consume_token(154);
break;
default:
jj_la1[61] = jj_gen;
;
}
token = jj_consume_token(IDENTIFIER);
{if (true) return token.image;}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 154:
jj_consume_token(154);
break;
default:
jj_la1[62] = jj_gen;
;
}
break;
case S_QUOTED_IDENTIFIER:
token = jj_consume_token(S_QUOTED_IDENTIFIER);
{if (true) return token.image.substring(1,token.image.length()-1);}
break;
case S_COMMA_IDENTIFIER:
token = jj_consume_token(S_COMMA_IDENTIFIER);
{if (true) return token.image.substring(1,token.image.length()-1);}
break;
default:
jj_la1[63] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public String Relop() throws ParseException {
Token token;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 146:
token = jj_consume_token(146);
break;
case 155:
token = jj_consume_token(155);
break;
case 156:
token = jj_consume_token(156);
break;
case 157:
token = jj_consume_token(157);
break;
case 158:
token = jj_consume_token(158);
break;
case 159:
token = jj_consume_token(159);
break;
case 160:
token = jj_consume_token(160);
break;
default:
jj_la1[64] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return token.image;}
throw new Error("Missing return statement in function");
}
final public Table TableName() throws ParseException {
String schemaName = null;
String tableName = null;
Table table = null;
Schema schema = null;
schemaName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 153:
jj_consume_token(153);
tableName = EntityName();
break;
default:
jj_la1[65] = jj_gen;
;
}
if(tableName == null){
tableName = schemaName;
schemaName = null;
}
table = new Table();
table.setName(tableName);
if(schemaName != null){
schema = new Schema();
schema.setName(schemaName);
table.setSchema(schema);
}else{
table.setSchema(defaultSchema);
}
tableAliasMap.put(table.getName(),table);
tableStack.push(table);
{if (true) return table;}
throw new Error("Missing return statement in function");
}
final public Table TableReference() throws ParseException {
Table table = null;
Token token = null;
table = TableName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
case IDENTIFIER:
case S_COMMA_IDENTIFIER:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
jj_consume_token(K_AS);
break;
default:
jj_la1[66] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_COMMA_IDENTIFIER:
token = jj_consume_token(S_COMMA_IDENTIFIER);
table.setAlias(token.image.substring(1,token.image.length()-1));
break;
case IDENTIFIER:
token = jj_consume_token(IDENTIFIER);
table.setAlias(token.image);
break;
default:
jj_la1[67] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[68] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IGNORE_INDEX:
case K_FORCE_INDEX:
case 183:
INDEX();
break;
default:
jj_la1[69] = jj_gen;
;
}
if(table.getAlias() != null){
tableAliasMap.put(table.getAlias(),table);
}
tableAliasMap.put(table.toString(),table);
{if (true) return table;}
throw new Error("Missing return statement in function");
}
final public void CaseStatement(Statement statement) throws ParseException {
jj_consume_token(K_CASE);
if (jj_2_5(1)) {
SQLSimpleExpression(statement);
} else {
;
}
WhenStatement(statement);
label_9:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHEN:
;
break;
default:
jj_la1[70] = jj_gen;
break label_9;
}
WhenStatement(statement);
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ELSE:
ElseStatement(statement);
break;
default:
jj_la1[71] = jj_gen;
;
}
jj_consume_token(K_END);
}
final public void WhenStatement(Statement statement) throws ParseException {
jj_consume_token(K_WHEN);
SQLExpression(statement);
jj_consume_token(K_THEN);
SQLSimpleExpression(statement);
}
final public void ElseStatement(Statement statement) throws ParseException {
jj_consume_token(K_ELSE);
SQLSimpleExpression(statement);
}
final public void ExtraClauses(Statement statement) throws ParseException {
if (jj_2_6(2)) {
ForUpdateClause();
} else if (jj_2_7(2)) {
ReadOnlyClause();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OPTIMIZE:
OptimizeForClause();
break;
case K_WITH:
WithClause();
break;
case K_QUERYNO:
QuerynoClause();
break;
case K_FETCH:
FetchFirstClause();
break;
default:
jj_la1[72] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
final public Expression FullSelectStatement(Statement statement) throws ParseException {
Expression expression = null;
Expression unionedExpression = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
expression = SubSelectStatement(statement);
break;
case 150:
jj_consume_token(150);
expression = FullSelectStatement(statement);
jj_consume_token(151);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_UNION:
UnionClause();
unionedExpression = FullSelectStatement(statement);
break;
default:
jj_la1[73] = jj_gen;
;
}
break;
default:
jj_la1[74] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(unionedExpression != null){
if(expression == null){
{if (true) return unionedExpression;}
}else{
expression = new OrExpression(expression);
((OrExpression)expression).addExpression(unionedExpression);
{if (true) return expression;}
}
}else{
{if (true) return expression;}
}
throw new Error("Missing return statement in function");
}
final public void UnionClause() throws ParseException {
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[75] = jj_gen;
;
}
}
final public Expression SubSelectStatement(Statement statement) throws ParseException {
Expression expression = null;
Expression fromExpression = null;
AndExpression andExpression = new AndExpression();
Token parameter = null;
int index = 0;
SelectClause(statement);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
fromExpression = FromClause(statement);
if(fromExpression != null)
{
andExpression.addExpression(fromExpression);
}
break;
default:
jj_la1[76] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
expression = WhereClause(statement);
if(expression != null)
{
andExpression.addExpression(expression);
}
break;
default:
jj_la1[77] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_GROUP:
GroupByClause(statement);
break;
default:
jj_la1[78] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ORDER:
OrderByClause(statement);
break;
default:
jj_la1[79] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LIMIT:
jj_consume_token(K_LIMIT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
andExpression.addExpression(new ParameterExpression(index));
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[80] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OFFSET:
case 148:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
break;
case K_OFFSET:
jj_consume_token(K_OFFSET);
break;
default:
jj_la1[81] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
andExpression.addExpression(new ParameterExpression(index));
break;
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[82] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[83] = jj_gen;
;
}
break;
default:
jj_la1[84] = jj_gen;
;
}
if(andExpression.getSize() >0)
{
{if (true) return andExpression;}
}else
{
{if (true) return null;}
}
throw new Error("Missing return statement in function");
}
final public void SelectClause(Statement statement) throws ParseException {
jj_consume_token(K_SELECT);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
case K_DISTINCT:
case 161:
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);
break;
case 161:
jj_consume_token(161);
break;
default:
jj_la1[85] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[86] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 162:
jj_consume_token(162);
break;
default:
jj_la1[87] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 163:
jj_consume_token(163);
break;
default:
jj_la1[88] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 164:
jj_consume_token(164);
break;
default:
jj_la1[89] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 165:
jj_consume_token(165);
break;
default:
jj_la1[90] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 166:
jj_consume_token(166);
break;
default:
jj_la1[91] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 167:
case 168:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 167:
jj_consume_token(167);
break;
case 168:
jj_consume_token(168);
break;
default:
jj_la1[92] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[93] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 169:
jj_consume_token(169);
break;
default:
jj_la1[94] = jj_gen;
;
}
SelectList(statement);
}
/* Checks for whatever follows SELECT */
final public void SelectList(Statement statement) throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 170:
jj_consume_token(170);
label_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[95] = jj_gen;
break label_10;
}
jj_consume_token(148);
SelectItem(statement);
}
break;
default:
jj_la1[97] = jj_gen;
if (jj_2_8(1)) {
SelectItem(statement);
label_11:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[96] = jj_gen;
break label_11;
}
jj_consume_token(148);
SelectItem(statement);
}
} else {
jj_consume_token(-1);
throw new ParseException();
}
}
}
final public void SelectItem(Statement statement) throws ParseException {
Token token = null;
Expression expression = null;
Column column = null;
if (jj_2_9(2)) {
EntityName();
jj_consume_token(171);
} else if (jj_2_10(4)) {
EntityName();
jj_consume_token(153);
EntityName();
jj_consume_token(171);
} else if (jj_2_11(2)) {
expression = SQLSimpleExpression(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case 150:
expression = FullSelectStatement(statement);
if(expression instanceof ColumnExpression)
{
column = ((ColumnExpression)expression).getColumn();
((DMLStatement)statement).addSelectColumn(column.getName(),column);
}else if(expression instanceof FunctionExpression)
{
String columnName = ((FunctionExpression)expression).getFunction().getName();
column = new Column();
column.setName(columnName);
((DMLStatement)statement).addSelectColumn(columnName,column);
}
break;
default:
jj_la1[98] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 146:
jj_consume_token(146);
SQLSimpleExpression(statement);
break;
default:
jj_la1[99] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
case IDENTIFIER:
case S_COMMA_IDENTIFIER:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
jj_consume_token(K_AS);
break;
default:
jj_la1[100] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
token = jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
token = jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[101] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(token != null)
{
if(column != null)
{
if(token.image.indexOf("`") == 0)
{
column.setAlias(token.image.substring(1,token.image.length()-1));
}else
{
column.setAlias(token.image);
}
}
}
break;
default:
jj_la1[102] = jj_gen;
;
}
}
final public Expression FromClause(Statement statement) throws ParseException {
Expression expression = null;
AndExpression andExpression = null;
Expression currentExpression = null;
jj_consume_token(K_FROM);
currentExpression = FromItem(statement);
expression = currentExpression;
label_12:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[103] = jj_gen;
break label_12;
}
jj_consume_token(148);
currentExpression = FromItem(statement);
if(currentExpression != null)
{
if(andExpression == null){
andExpression = new AndExpression();
}
andExpression.addExpression(currentExpression);
}
}
if(andExpression != null && expression != null)
{
andExpression.addExpression(expression);
{if (true) return andExpression;}
}else
{
{if (true) return expression == null?andExpression:expression;}
}
throw new Error("Missing return statement in function");
}
final public Expression FromItem(Statement statement) throws ParseException {
Expression expression = null;
AndExpression andExpression = null;
Expression currentExpression = null;
expression = TableSpec(statement);
label_13:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_JOIN:
case K_LEFT:
case K_RIGHT:
case 172:
case 173:
;
break;
default:
jj_la1[104] = jj_gen;
break label_13;
}
currentExpression = JoinedTable(statement);
if(currentExpression != null)
{
if(andExpression == null){
andExpression = new AndExpression();
}
andExpression.addExpression(currentExpression);
}
}
if(andExpression != null && expression != null)
{
andExpression.addExpression(expression);
{if (true) return andExpression;}
}else
{
{if (true) return expression == null?andExpression:expression;}
}
throw new Error("Missing return statement in function");
}
final public Expression JoinedTable(Statement statement) throws ParseException {
Expression expression = null;
AndExpression andExpression = null;
Expression currentExpression = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LEFT:
case K_RIGHT:
case 172:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 172:
jj_consume_token(172);
break;
default:
jj_la1[105] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LEFT:
jj_consume_token(K_LEFT);
break;
case K_RIGHT:
jj_consume_token(K_RIGHT);
break;
default:
jj_la1[106] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OUTER:
jj_consume_token(K_OUTER);
break;
default:
jj_la1[107] = jj_gen;
;
}
break;
default:
jj_la1[110] = jj_gen;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case 173:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
jj_consume_token(K_INNER);
break;
case 173:
jj_consume_token(173);
break;
default:
jj_la1[108] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[109] = jj_gen;
;
}
}
jj_consume_token(K_JOIN);
if (jj_2_12(2)) {
expression = TableSpec(statement);
label_14:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_JOIN:
case K_LEFT:
case K_RIGHT:
case 172:
case 173:
;
break;
default:
jj_la1[111] = jj_gen;
break label_14;
}
JoinedTable(statement);
}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 150:
jj_consume_token(150);
expression = TableSpec(statement);
label_15:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_JOIN:
case K_LEFT:
case K_RIGHT:
case 172:
case 173:
;
break;
default:
jj_la1[112] = jj_gen;
break label_15;
}
JoinedTable(statement);
}
jj_consume_token(151);
break;
default:
jj_la1[113] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
JoinCondition(statement);
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Expression TableSpec(Statement statement) throws ParseException {
Table table = null;
Expression expression = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 154:
table = TableReference();
break;
case K_TABLE:
case 150:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TABLE:
jj_consume_token(K_TABLE);
break;
default:
jj_la1[114] = jj_gen;
;
}
jj_consume_token(150);
expression = FullSelectStatement(statement);
jj_consume_token(151);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
case IDENTIFIER:
CorrelationClause();
break;
default:
jj_la1[115] = jj_gen;
;
}
break;
default:
jj_la1[116] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public void JoinCondition(Statement statement) throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ON:
jj_consume_token(K_ON);
SQLExpression(statement);
break;
case K_USING:
jj_consume_token(K_USING);
jj_consume_token(150);
SQLExpression(statement);
label_16:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[117] = jj_gen;
break label_16;
}
jj_consume_token(148);
SQLExpression(statement);
}
jj_consume_token(151);
break;
default:
jj_la1[118] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public Expression WhereClause(Statement statement) throws ParseException {
Expression expression;
jj_consume_token(K_WHERE);
expression = SQLExpression(statement);
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public void CorrelationClause() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
jj_consume_token(K_AS);
break;
default:
jj_la1[119] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 150:
ColumnNames();
break;
default:
jj_la1[120] = jj_gen;
;
}
}
final public void ColumnNames() throws ParseException {
jj_consume_token(150);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[121] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
label_17:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[122] = jj_gen;
break label_17;
}
jj_consume_token(148);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[123] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(151);
}
final public void GroupByClause(Statement statement) throws ParseException {
jj_consume_token(K_GROUP);
jj_consume_token(K_BY);
GroupByColumn(statement);
label_18:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[124] = jj_gen;
break label_18;
}
jj_consume_token(148);
GroupByColumn(statement);
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_HAVING:
jj_consume_token(K_HAVING);
SQLExpression(statement);
break;
default:
jj_la1[125] = jj_gen;
;
}
}
final public void GroupByColumn(Statement statement) throws ParseException {
SQLRelationalExpression(statement);
}
final public void OrderByClause(Statement statement) throws ParseException {
jj_consume_token(K_ORDER);
jj_consume_token(K_BY);
OrderByColumn(statement);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESCRIBE:
case K_ASC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESCRIBE:
jj_consume_token(K_DESCRIBE);
break;
case K_ASC:
jj_consume_token(K_ASC);
break;
default:
jj_la1[126] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[127] = jj_gen;
;
}
label_19:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[128] = jj_gen;
break label_19;
}
jj_consume_token(148);
OrderByColumn(statement);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESCRIBE:
case K_ASC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESCRIBE:
jj_consume_token(K_DESCRIBE);
break;
case K_ASC:
jj_consume_token(K_ASC);
break;
default:
jj_la1[129] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[130] = jj_gen;
;
}
}
}
final public void OrderByColumn(Statement statement) throws ParseException {
SQLRelationalExpression(statement);
}
final public Expression SQLExpression(Statement statement) throws ParseException {
OrExpression orExpression = null;
AndExpression andExpression = null;
Expression expression = null;
Token token;
int count = 0;
expression = SQLAndExpression(statement);
orExpression = new OrExpression(expression);
label_20:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OR:
case K_OR2:
;
break;
default:
jj_la1[131] = jj_gen;
break label_20;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OR:
jj_consume_token(K_OR);
break;
case K_OR2:
jj_consume_token(K_OR2);
break;
default:
jj_la1[132] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
expression = SQLAndExpression(statement);
if(expression != null){
count++;
orExpression.addExpression(expression);
}
}
if(count >0){
{if (true) return orExpression;}
}else{
{if (true) return expression;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLAndExpression(Statement statement) throws ParseException {
AndExpression andExpression = null;;
Expression expression;
Expression currentExpression;
expression = SQLUnaryLogicalExpression(statement);
label_21:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AND:
;
break;
default:
jj_la1[133] = jj_gen;
break label_21;
}
jj_consume_token(K_AND);
currentExpression = SQLUnaryLogicalExpression(statement);
if(andExpression == null && currentExpression != null){
andExpression = new AndExpression(expression);
}
if(currentExpression != null){
andExpression.addExpression(currentExpression);
}
}
if(andExpression != null){
{if (true) return andExpression;}
}else{
{if (true) return expression;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLUnaryLogicalExpression(Statement statement) throws ParseException {
Expression expression = null;
boolean not = false;
if (jj_2_13(2)) {
ExistsClause(statement);
} else if (jj_2_14(1)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[134] = jj_gen;
;
}
expression = SQLRelationalExpression(statement);
{if (true) return reverseExpression(not,expression);}
} else {
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public Expression ExistsClause(Statement statement) throws ParseException {
Expression expression = null;
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[135] = jj_gen;
;
}
jj_consume_token(K_EXISTS);
jj_consume_token(150);
expression = FullSelectStatement(statement);
jj_consume_token(151);
{if (true) return reverseExpression(not,expression);}
throw new Error("Missing return statement in function");
}
final public Expression SQLRelationalExpression(Statement statement) throws ParseException {
Expression expression = null;
Expression otherExpression = null;
String functionName = null;
int function = 0;
if (jj_2_15(2147483647)) {
jj_consume_token(150);
SQLExpressionList(statement);
jj_consume_token(151);
} else if (jj_2_16(1)) {
expression = SQLSimpleExpression(statement);
} else {
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 146:
case 155:
case 156:
case 157:
case 158:
case 159:
case 160:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 146:
case 155:
case 156:
case 157:
case 158:
case 159:
case 160:
functionName = Relop();
function = Comparative.getComparisonByIdent(functionName);
otherExpression = SQLRelationalOperatorExpression(statement);
if(expression == null || otherExpression == null){
{if (true) return null;}
}
if(expression instanceof ColumnExpression && !(otherExpression instanceof ColumnExpression)){
ColumnExpression colExp = (ColumnExpression)expression;
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setComparison(function);
comparativeExpression.setExpression(otherExpression);
colExp.setExpression(comparativeExpression);
{if (true) return colExp;}
}else if(!(expression instanceof ColumnExpression) && (otherExpression instanceof ColumnExpression)){
ColumnExpression colExp = (ColumnExpression)otherExpression;
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setComparison(Comparative.exchangeComparison(function));
comparativeExpression.setExpression(expression);
colExp.setExpression(comparativeExpression);
{if (true) return colExp;}
}else{
{if (true) return null;}
}
break;
default:
jj_la1[136] = jj_gen;
if (jj_2_17(2)) {
otherExpression = SQLInClause(expression,statement);
{if (true) return otherExpression;}
} else if (jj_2_18(2)) {
otherExpression = SQLBetweenClause(expression,statement);
{if (true) return otherExpression;}
} else if (jj_2_19(2)) {
otherExpression = SQLLikeClause(statement);
if(expression instanceof ColumnExpression && otherExpression != null){
ColumnExpression colExp = (ColumnExpression)expression;
colExp.setExpression((ComparisonExpression)otherExpression);
{if (true) return colExp;}
}else{
{if (true) return null;}
}
} else if (jj_2_20(2)) {
otherExpression = IsNullClause(statement);
if(expression instanceof ColumnExpression && otherExpression != null){
ColumnExpression colExp = (ColumnExpression)expression;
colExp.setExpression((ComparisonExpression)otherExpression);
{if (true) return colExp;}
}else{
{if (true) return null;}
}
} else {
jj_consume_token(-1);
throw new ParseException();
}
}
break;
default:
jj_la1[137] = jj_gen;
;
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public List<Expression> SQLExpressionList(Statement statement) throws ParseException {
List<Expression> list = new ArrayList<Expression>();
Expression expression;
expression = SQLSimpleExpression(statement);
list.add(expression);
label_22:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[138] = jj_gen;
break label_22;
}
jj_consume_token(148);
expression = SQLSimpleExpression(statement);
list.add(expression);
}
{if (true) return list;}
throw new Error("Missing return statement in function");
}
final public Expression SQLRelationalOperatorExpression(Statement statement) throws ParseException {
Expression expression = null;
String functionName;
int function;
if (jj_2_21(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);
break;
case K_ANY:
jj_consume_token(K_ANY);
break;
default:
jj_la1[139] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[140] = jj_gen;
;
}
jj_consume_token(150);
FullSelectStatement(statement);
jj_consume_token(151);
} else if (jj_2_22(1)) {
expression = SQLSimpleExpression(statement);
} else {
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Expression SQLInClause(Expression inputExpression,Statement statement) throws ParseException {
boolean not = false;
Expression expression = null;
List<Expression> list = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[141] = jj_gen;
;
}
jj_consume_token(K_IN);
jj_consume_token(150);
if (jj_2_23(2)) {
list = SQLExpressionList(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case 150:
expression = FullSelectStatement(statement);
break;
default:
jj_la1[142] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(151);
if(list == null){
{if (true) return expression;}
}
if(list.size()==1){
Expression item = list.get(0);
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setExpression(item);
comparativeExpression.setComparison(not?Comparative.NotEquivalent:Comparative.Equivalent);
if(inputExpression instanceof ColumnExpression){
((ColumnExpression)inputExpression).setExpression(comparativeExpression);
{if (true) return inputExpression;}
}else{
{if (true) return comparativeExpression;}
}
}else{
BaseExpressionList baseList = null;
if(not){
baseList = new AndExpression(null);
}else{
baseList = new OrExpression(null);
}
for(Expression item:list){
ComparisonExpression comparativeExpression = new ComparisonExpression();
comparativeExpression.setExpression(item);
comparativeExpression.setComparison(not?Comparative.NotEquivalent:Comparative.Equivalent);
if(inputExpression instanceof ColumnExpression){
ColumnExpression columnExpression = new ColumnExpression();
columnExpression.setExpression(comparativeExpression);
columnExpression.setColumn(((ColumnExpression)inputExpression).getColumn());
baseList.addExpression(columnExpression);
}else{
baseList.addExpression(comparativeExpression);
}
}
{if (true) return baseList;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLBetweenClause(Expression inputExpression,Statement statement) throws ParseException {
boolean not = false;
Expression minExpression = null;
Expression maxExpression = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[143] = jj_gen;
;
}
jj_consume_token(K_BETWEEN);
minExpression = SQLSimpleExpression(statement);
jj_consume_token(K_AND);
maxExpression = SQLSimpleExpression(statement);
if(minExpression != null && maxExpression != null)
{
ComparisonExpression comparativeMinExpression = new ComparisonExpression();
comparativeMinExpression.setExpression(minExpression);
comparativeMinExpression.setComparison(Comparative.GreaterThanOrEqual);
ComparisonExpression comparativeMaxExpression = new ComparisonExpression();
comparativeMaxExpression.setExpression(maxExpression);
comparativeMaxExpression.setComparison(Comparative.LessThanOrEqual);
AndExpression andExpression = new AndExpression();
if(inputExpression instanceof ColumnExpression){
ColumnExpression columnMinExpression = new ColumnExpression();
columnMinExpression.setExpression(comparativeMinExpression);
columnMinExpression.setColumn(((ColumnExpression)inputExpression).getColumn());
ColumnExpression columnMaxExpression = new ColumnExpression();
columnMaxExpression.setExpression(comparativeMaxExpression);
columnMaxExpression.setColumn(((ColumnExpression)inputExpression).getColumn());
andExpression.addExpression(columnMinExpression);
andExpression.addExpression(columnMaxExpression);
}else{
andExpression.addExpression(comparativeMinExpression);
andExpression.addExpression(comparativeMaxExpression);
}
{if (true) return reverseExpression(not,andExpression);}
}else
{
{if (true) return null;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLLikeClause(Statement statement) throws ParseException {
Expression expression = null;
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[144] = jj_gen;
;
}
jj_consume_token(K_LIKE);
expression = SQLSimpleExpression(statement);
ComparisonExpression comparisonExpression = new ComparisonExpression();
comparisonExpression.setExpression(expression);
comparisonExpression.setComparison(not?Comparative.NotLike:Comparative.Like);
{if (true) return comparisonExpression;}
throw new Error("Missing return statement in function");
}
final public Expression SQLSimpleExpression(Statement statement) throws ParseException {
Expression expression = null;
Token token = null;
expression = SQLAddSubtractExpression(statement);
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Expression SQLAddSubtractExpression(Statement statement) throws ParseException {
Expression expression = null;
Expression otherExpression = null;
Token token = null;
Function function;
FunctionExpression superExpression = null;
expression = SQLMultiplicativeExpression(statement);
label_23:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 174:
case 175:
case 176:
case 177:
;
break;
default:
jj_la1[145] = jj_gen;
break label_23;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 174:
token = jj_consume_token(174);
break;
case 175:
token = jj_consume_token(175);
break;
case 176:
token = jj_consume_token(176);
break;
case 177:
token = jj_consume_token(177);
break;
default:
jj_la1[146] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
otherExpression = SQLMultiplicativeExpression(statement);
String ident = token.image.toUpperCase();
function = getFunction(ident);
if(function == null) {if (true) return null;}
FunctionExpression functionExpression = new FunctionExpression();
functionExpression.setFunction(function);
if(superExpression == null){
functionExpression.addArgExpression(expression);
functionExpression.addArgExpression(otherExpression);
}else{
functionExpression.addArgExpression(superExpression);
functionExpression.addArgExpression(otherExpression);
}
superExpression = functionExpression;
}
if(superExpression == null){
{if (true) return expression;}
}else{
{if (true) return superExpression;}
}
throw new Error("Missing return statement in function");
}
final public Expression SQLMultiplicativeExpression(Statement statement) throws ParseException {
FunctionExpression functionExpression;
Expression expression;
Expression otherExpression;
Token token;
expression = SQLUnaryExpression(statement);
label_24:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_MOD:
case K_DIV:
case 170:
case 178:
case 179:
;
break;
default:
jj_la1[147] = jj_gen;
break label_24;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 170:
token = jj_consume_token(170);
break;
case 178:
token = jj_consume_token(178);
break;
case 179:
token = jj_consume_token(179);
break;
case K_MOD:
token = jj_consume_token(K_MOD);
break;
case K_DIV:
token = jj_consume_token(K_DIV);
break;
default:
jj_la1[148] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
otherExpression = SQLUnaryExpression(statement);
Function function = getFunction(token.image.toUpperCase());
if(function != null && expression != null && otherExpression != null){
functionExpression = new FunctionExpression();
functionExpression.setFunction(function);
functionExpression.addArgExpression(expression);
functionExpression.addArgExpression(otherExpression);
expression = functionExpression;
}
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
/**
void SQLExpotentExpression() #void:
{}
{
SQLUnaryExpression() //( "**" SQLUnaryExpression())*
}
**/
final public Expression SQLUnaryExpression(Statement statement) throws ParseException {
Expression expression;
boolean isSub = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 174:
case 175:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 174:
jj_consume_token(174);
break;
case 175:
jj_consume_token(175);
isSub=true;
break;
default:
jj_la1[149] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[150] = jj_gen;
;
}
expression = SQLPrimaryExpression(statement);
if(isSub){
Function function = getFunction("-");
if(function != null){
FunctionExpression funExp = new FunctionExpression();
ConstantExpression consExp = new ConstantExpression(0);
funExp.addArgExpression(consExp);
funExp.addArgExpression(expression);
funExp.setFunction(function);
{if (true) return funExp;}
}else{
{if (true) return null;}
}
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Expression SQLPrimaryExpression(Statement statement) throws ParseException {
Token t = null;
Column column = null;
Expression expression = null;
Comparable value = null;
boolean not = false;
Token parameter = null;
int index = 0;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NULL:
t = jj_consume_token(K_NULL);
{if (true) return new ConstantExpression(null);}
break;
case K_TRUE:
t = jj_consume_token(K_TRUE);
{if (true) return new ConstantExpression(Boolean.TRUE);}
break;
case K_FALSE:
t = jj_consume_token(K_FALSE);
{if (true) return new ConstantExpression(Boolean.FALSE);}
break;
case INTEGER_LITERAL:
t = jj_consume_token(INTEGER_LITERAL);
try {
value = Long.valueOf(t.image);
}
catch (Exception e) {
}
{if (true) return new ConstantExpression(value);}
break;
case FLOATING_POINT_LITERAL:
t = jj_consume_token(FLOATING_POINT_LITERAL);
try {
value = new BigDecimal(t.image);
}
catch (Exception e) {
}
{if (true) return new ConstantExpression(value);}
break;
case STRING_LITERAL:
t = jj_consume_token(STRING_LITERAL);
// strip away double quotes at end of string
String temp = null;
if(t.image.indexOf("_x") ==0)
{
temp = (t.image).substring(2,t.image.length()-1);
}else
{
temp = (t.image).substring(1,t.image.length()-1);
}
// replace escape characters
temp = replaceEscape(temp);
{if (true) return new ConstantExpression(temp);}
break;
case S_PARAMETER_MARKER:
parameter = jj_consume_token(S_PARAMETER_MARKER);
index = parameterIndex++;
if(parameter.image.startsWith("$("))
{
index = Integer.parseInt(parameter.image.substring(2,parameter.image.length()-1));
}
{if (true) return new ParameterExpression(index);}
break;
case K_INTERVAL:
jj_consume_token(K_INTERVAL);
expression = SQLExpression(statement);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_YEAR:
token = jj_consume_token(K_YEAR);
break;
case K_MONTH:
token = jj_consume_token(K_MONTH);
break;
case K_DAY:
token = jj_consume_token(K_DAY);
break;
case K_HOUR:
token = jj_consume_token(K_HOUR);
break;
case K_MINUTE:
token = jj_consume_token(K_MINUTE);
break;
case K_SECOND:
token = jj_consume_token(K_SECOND);
break;
case K_MICROSECOND:
token = jj_consume_token(K_MICROSECOND);
break;
default:
jj_la1[151] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(token != null){
int field = -1;
if(token.image.equalsIgnoreCase("YEAR")){
field = Calendar.YEAR;
}else if(token.image.equalsIgnoreCase("MONTH")){
field = Calendar.MONTH;
}else if(token.image.equalsIgnoreCase("DAY")){
field = Calendar.DATE;
}else if(token.image.equalsIgnoreCase("WEEK")){
field = Calendar.DATE;
FunctionExpression funExp = new FunctionExpression();
funExp.setFunction(this.getFunction("*"));
funExp.addArgExpression(expression);
funExp.addArgExpression(new ConstantExpression(7));
expression = funExp;
}else if(token.image.equalsIgnoreCase("HOUR")){
field = Calendar.HOUR;
}else if(token.image.equalsIgnoreCase("MINUTE")){
field = Calendar.MINUTE;
}else if(token.image.equalsIgnoreCase("SECOND")){
field = Calendar.SECOND;
}else if(token.image.equalsIgnoreCase("MICROSECOND")){
field = Calendar.MILLISECOND;
FunctionExpression funExp = new FunctionExpression();
funExp.setFunction(this.getFunction("/"));
funExp.addArgExpression(expression);
funExp.addArgExpression(new ConstantExpression(1000));
expression = funExp;
}
FunctionExpression funExp = new FunctionExpression();
funExp.setFunction(timeConverter);
funExp.addArgExpression(expression);
{if (true) return funExp;}
}
break;
case K_CAST:
CastFunctionCall(statement);
break;
case K_CASE:
CaseStatement(statement);
break;
default:
jj_la1[153] = jj_gen;
if (jj_2_24(1)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT2:
jj_consume_token(K_NOT2);
not = true;
break;
default:
jj_la1[152] = jj_gen;
;
}
if (getFunction(getToken(1).image.toUpperCase())!= null) {
} else {
jj_consume_token(-1);
throw new ParseException();
}
expression = OverloadedFunctionCall(statement);
if(not && expression != null)
{
expression = reverseExpression(not,expression);
}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 150:
jj_consume_token(150);
expression = SQLExpression(statement);
jj_consume_token(151);
break;
default:
jj_la1[154] = jj_gen;
if (jj_2_25(2147483647)) {
FunctionCall(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 154:
column = ColumnName();
ColumnExpression columnExpression = new ColumnExpression();
columnExpression.setColumn(column);
{if (true) return columnExpression;}
break;
default:
jj_la1[155] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
}
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public void FunctionCall(Statement statement) throws ParseException {
EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 153:
jj_consume_token(153);
EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 153:
jj_consume_token(153);
EntityName();
break;
default:
jj_la1[156] = jj_gen;
;
}
break;
default:
jj_la1[157] = jj_gen;
;
}
jj_consume_token(150);
if (jj_2_27(1)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ALL:
case K_DISTINCT:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DISTINCT:
jj_consume_token(K_DISTINCT);
break;
case K_ALL:
jj_consume_token(K_ALL);
break;
default:
jj_la1[158] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[159] = jj_gen;
;
}
if (jj_2_26(1)) {
SQLExpressionList(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 170:
jj_consume_token(170);
break;
default:
jj_la1[160] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
} else {
;
}
jj_consume_token(151);
}
final public void CastFunctionCall(Statement statement) throws ParseException {
jj_consume_token(K_CAST);
jj_consume_token(150);
SQLSimpleExpression(statement);
jj_consume_token(K_AS);
DataTypes();
jj_consume_token(151);
}
final public String FunctionName() throws ParseException {
Token t = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INSERT:
t = jj_consume_token(K_INSERT);
break;
case K_MOD:
t = jj_consume_token(K_MOD);
break;
case K_MICROSECOND:
t = jj_consume_token(K_MICROSECOND);
break;
case K_YEAR:
t = jj_consume_token(K_YEAR);
break;
case K_DAY:
t = jj_consume_token(K_DAY);
break;
case K_MINUTE:
t = jj_consume_token(K_MINUTE);
break;
case K_MONTH:
t = jj_consume_token(K_MONTH);
break;
case K_HOUR:
t = jj_consume_token(K_HOUR);
break;
case K_SECOND:
t = jj_consume_token(K_SECOND);
break;
case K_REPLACE:
t = jj_consume_token(K_REPLACE);
break;
case IDENTIFIER:
t = jj_consume_token(IDENTIFIER);
break;
default:
jj_la1[161] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(t != null){
{if (true) return t.image.toUpperCase();}
}else{
{if (true) return null;}
}
throw new Error("Missing return statement in function");
}
//This covers all over loaded functions that are using keyword and can not be captured by
//generic function defination
final public Expression OverloadedFunctionCall(Statement statement) throws ParseException {
Expression expression = null;
Function function = null;
Token functionNameToken = null;
String functionName = null;
FunctionExpression funExpression = null;
boolean nullExp = false;
functionName = FunctionName();
funExpression = new FunctionExpression();
function = getFunction(functionName);
funExpression.setFunction(function);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 150:
jj_consume_token(150);
if (jj_2_28(1)) {
expression = SQLSimpleExpression(statement);
if(funExpression != null){
if(expression == null){
nullExp = true;
}
funExpression.addArgExpression(expression);
}
} else {
;
}
label_25:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[162] = jj_gen;
break label_25;
}
jj_consume_token(148);
expression = SQLSimpleExpression(statement);
if(funExpression != null){
if(expression == null){
nullExp = true;
}
funExpression.addArgExpression(expression);
}
}
jj_consume_token(151);
break;
default:
jj_la1[163] = jj_gen;
;
}
if(nullExp){
{if (true) return null;}
}else{
{if (true) return funExpression;}
}
throw new Error("Missing return statement in function");
}
final public void DataTypes() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CHAR:
case K_DECIMAL:
case K_FLOAT:
case K_INTEGER:
case K_INT:
case K_NUMBER:
case K_NUMERIC:
case K_REAL:
case K_VARCHAR2:
case K_VARCHAR:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CHAR:
jj_consume_token(K_CHAR);
break;
case K_VARCHAR:
jj_consume_token(K_VARCHAR);
break;
case K_VARCHAR2:
jj_consume_token(K_VARCHAR2);
break;
case K_DECIMAL:
jj_consume_token(K_DECIMAL);
break;
case K_INTEGER:
jj_consume_token(K_INTEGER);
break;
case K_INT:
jj_consume_token(K_INT);
break;
case K_NUMBER:
jj_consume_token(K_NUMBER);
break;
case K_NUMERIC:
jj_consume_token(K_NUMERIC);
break;
case K_REAL:
jj_consume_token(K_REAL);
break;
case K_FLOAT:
jj_consume_token(K_FLOAT);
break;
default:
jj_la1[164] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 150:
jj_consume_token(150);
jj_consume_token(FLOATING_POINT_LITERAL);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
jj_consume_token(148);
jj_consume_token(FLOATING_POINT_LITERAL);
break;
default:
jj_la1[165] = jj_gen;
;
}
jj_consume_token(151);
break;
default:
jj_la1[166] = jj_gen;
;
}
break;
case 180:
jj_consume_token(180);
break;
case 181:
jj_consume_token(181);
break;
case 182:
jj_consume_token(182);
break;
case K_BOOLEAN:
jj_consume_token(K_BOOLEAN);
break;
default:
jj_la1[167] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
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);
ColumnName();
label_26:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[168] = jj_gen;
break label_26;
}
jj_consume_token(148);
ColumnName();
}
break;
default:
jj_la1[169] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOWAIT:
jj_consume_token(K_NOWAIT);
break;
default:
jj_la1[170] = jj_gen;
;
}
}
final public void ReadOnlyClause() throws ParseException {
jj_consume_token(K_FOR);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FETCH:
jj_consume_token(K_FETCH);
break;
case K_READ:
jj_consume_token(K_READ);
break;
default:
jj_la1[171] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(K_ONLY);
}
final public void INDEX() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FORCE_INDEX:
jj_consume_token(K_FORCE_INDEX);
break;
case K_IGNORE_INDEX:
jj_consume_token(K_IGNORE_INDEX);
break;
case 183:
jj_consume_token(183);
break;
default:
jj_la1[172] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(150);
jj_consume_token(IDENTIFIER);
label_27:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 148:
;
break;
default:
jj_la1[173] = jj_gen;
break label_27;
}
jj_consume_token(148);
jj_consume_token(IDENTIFIER);
}
jj_consume_token(151);
}
final public void OptimizeForClause() throws ParseException {
jj_consume_token(K_OPTIMIZE);
jj_consume_token(K_FOR);
jj_consume_token(FLOATING_POINT_LITERAL);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[174] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void WithClause() throws ParseException {
jj_consume_token(K_WITH);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
break;
case S_COMMA_IDENTIFIER:
jj_consume_token(S_COMMA_IDENTIFIER);
break;
default:
jj_la1[175] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
jj_consume_token(IDENTIFIER);
jj_consume_token(IDENTIFIER);
jj_consume_token(IDENTIFIER);
break;
default:
jj_la1[176] = jj_gen;
;
}
}
final public void QuerynoClause() throws ParseException {
jj_consume_token(K_QUERYNO);
jj_consume_token(FLOATING_POINT_LITERAL);
}
final public void FetchFirstClause() throws ParseException {
jj_consume_token(K_FETCH);
jj_consume_token(IDENTIFIER);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case FLOATING_POINT_LITERAL:
jj_consume_token(FLOATING_POINT_LITERAL);
break;
default:
jj_la1[177] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
jj_consume_token(K_ONLY);
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
private boolean jj_2_16(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_16(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(15, xla); }
}
private boolean jj_2_17(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_17(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(16, xla); }
}
private boolean jj_2_18(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_18(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(17, xla); }
}
private boolean jj_2_19(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_19(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(18, xla); }
}
private boolean jj_2_20(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_20(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(19, xla); }
}
private boolean jj_2_21(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_21(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(20, xla); }
}
private boolean jj_2_22(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_22(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(21, xla); }
}
private boolean jj_2_23(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_23(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(22, xla); }
}
private boolean jj_2_24(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_24(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(23, xla); }
}
private boolean jj_2_25(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_25(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(24, xla); }
}
private boolean jj_2_26(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_26(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(25, xla); }
}
private boolean jj_2_27(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_27(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(26, xla); }
}
private boolean jj_2_28(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_28(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(27, xla); }
}
private boolean jj_3R_65() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3_9() {
if (jj_3R_34()) return true;
if (jj_scan_token(171)) return true;
return false;
}
private boolean jj_3R_40() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_65()) jj_scanpos = xsp;
if (jj_scan_token(K_IN)) return true;
if (jj_scan_token(150)) return true;
xsp = jj_scanpos;
if (jj_3_23()) {
jj_scanpos = xsp;
if (jj_3R_143()) return true;
}
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3_21() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(8)) {
jj_scanpos = xsp;
if (jj_scan_token(6)) {
jj_scanpos = xsp;
if (jj_3R_44()) return true;
}
}
return false;
}
private boolean jj_3R_144() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(6)) {
jj_scanpos = xsp;
if (jj_scan_token(20)) {
jj_scanpos = xsp;
if (jj_scan_token(161)) return true;
}
}
return false;
}
private boolean jj_3R_33() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_9()) {
jj_scanpos = xsp;
if (jj_3_10()) {
jj_scanpos = xsp;
if (jj_3_11()) {
jj_scanpos = xsp;
if (jj_3R_56()) return true;
}
}
}
xsp = jj_scanpos;
if (jj_3R_168()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_169()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_164() {
if (jj_scan_token(148)) return true;
if (jj_3R_33()) return true;
return false;
}
private boolean jj_3R_153() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(6)) {
jj_scanpos = xsp;
if (jj_scan_token(8)) return true;
}
return false;
}
private boolean jj_3_22() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_142() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_153()) jj_scanpos = xsp;
if (jj_scan_token(150)) return true;
if (jj_3R_74()) return true;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_127() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
return false;
}
private boolean jj_3R_154() {
if (jj_scan_token(170)) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_164()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_146() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_154()) {
jj_scanpos = xsp;
if (jj_3_8()) return true;
}
return false;
}
private boolean jj_3R_109() {
if (jj_scan_token(K_SELECT)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_144()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(162)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(163)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(164)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(165)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(166)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_145()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(169)) jj_scanpos = xsp;
if (jj_3R_146()) return true;
return false;
}
private boolean jj_3R_135() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_142()) {
jj_scanpos = xsp;
if (jj_3_22()) return true;
}
return false;
}
private boolean jj_3R_152() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(148)) {
jj_scanpos = xsp;
if (jj_scan_token(70)) return true;
}
xsp = jj_scanpos;
if (jj_3R_163()) {
jj_scanpos = xsp;
if (jj_scan_token(133)) return true;
}
return false;
}
private boolean jj_3_26() {
if (jj_3R_45()) return true;
return false;
}
private boolean jj_3R_53() {
if (jj_3R_72()) return true;
return false;
}
private boolean jj_3R_71() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
return false;
}
private boolean jj_3R_70() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(41)) {
jj_scanpos = xsp;
if (jj_scan_token(77)) {
jj_scanpos = xsp;
if (jj_scan_token(99)) {
jj_scanpos = xsp;
if (jj_scan_token(98)) {
jj_scanpos = xsp;
if (jj_scan_token(101)) {
jj_scanpos = xsp;
if (jj_scan_token(103)) {
jj_scanpos = xsp;
if (jj_scan_token(104)) {
jj_scanpos = xsp;
if (jj_scan_token(105)) {
jj_scanpos = xsp;
if (jj_scan_token(100)) {
jj_scanpos = xsp;
if (jj_scan_token(42)) {
jj_scanpos = xsp;
if (jj_scan_token(139)) return true;
}
}
}
}
}
}
}
}
}
}
return false;
}
private boolean jj_3R_29() {
if (jj_3R_53()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_54()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_117() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_127()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_69() {
if (jj_scan_token(148)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_110() {
if (jj_scan_token(K_CAST)) return true;
if (jj_scan_token(150)) return true;
if (jj_3R_30()) return true;
if (jj_scan_token(K_AS)) return true;
if (jj_3R_119()) return true;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_50() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(20)) {
jj_scanpos = xsp;
if (jj_scan_token(6)) return true;
}
return false;
}
private boolean jj_3R_45() {
if (jj_3R_30()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_69()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_27() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_50()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_26()) {
jj_scanpos = xsp;
if (jj_scan_token(170)) return true;
}
return false;
}
private boolean jj_3R_133() {
if (jj_3R_141()) return true;
if (jj_3R_74()) return true;
return false;
}
private boolean jj_3R_49() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_71()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_121() {
if (jj_3R_125()) return true;
return false;
}
private boolean jj_3R_112() {
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_117()) jj_scanpos = xsp;
if (jj_scan_token(150)) return true;
xsp = jj_scanpos;
if (jj_3_27()) jj_scanpos = xsp;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_151() {
if (jj_scan_token(S_PARAMETER_MARKER)) return true;
return false;
}
private boolean jj_3R_140() {
if (jj_scan_token(K_LIMIT)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_151()) {
jj_scanpos = xsp;
if (jj_scan_token(133)) return true;
}
xsp = jj_scanpos;
if (jj_3R_152()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_139() {
if (jj_3R_150()) return true;
return false;
}
private boolean jj_3_20() {
if (jj_3R_43()) return true;
return false;
}
private boolean jj_3R_138() {
if (jj_3R_149()) return true;
return false;
}
private boolean jj_3R_47() {
return false;
}
private boolean jj_3_25() {
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_49()) jj_scanpos = xsp;
if (jj_scan_token(150)) return true;
return false;
}
private boolean jj_3R_137() {
if (jj_3R_148()) return true;
return false;
}
private boolean jj_3_19() {
if (jj_3R_42()) return true;
return false;
}
private boolean jj_3_18() {
if (jj_3R_41()) return true;
return false;
}
private boolean jj_3R_136() {
if (jj_3R_147()) return true;
return false;
}
private boolean jj_3R_107() {
if (jj_3R_112()) return true;
return false;
}
private boolean jj_3R_108() {
if (jj_3R_72()) return true;
return false;
}
private boolean jj_3_17() {
if (jj_3R_40()) return true;
return false;
}
private boolean jj_3R_106() {
if (jj_scan_token(150)) return true;
if (jj_3R_113()) return true;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_90() {
if (jj_3R_109()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_136()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_137()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_138()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_139()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_140()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_120() {
if (jj_3R_115()) return true;
return false;
}
private boolean jj_3R_46() {
if (jj_scan_token(K_NOT2)) return true;
return false;
}
private boolean jj_3_24() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_46()) jj_scanpos = xsp;
jj_lookingAhead = true;
jj_semLA = getFunction(getToken(1).image.toUpperCase())!= null;
jj_lookingAhead = false;
if (!jj_semLA || jj_3R_47()) return true;
if (jj_3R_48()) return true;
return false;
}
private boolean jj_3R_105() {
if (jj_3R_111()) return true;
return false;
}
private boolean jj_3R_141() {
if (jj_scan_token(K_UNION)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(6)) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_104() {
if (jj_3R_110()) return true;
return false;
}
private boolean jj_3_2() {
if (jj_scan_token(150)) return true;
if (jj_3R_29()) return true;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_82() {
if (jj_scan_token(150)) return true;
if (jj_3R_74()) return true;
if (jj_scan_token(151)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_133()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_15() {
if (jj_scan_token(150)) return true;
if (jj_3R_30()) return true;
if (jj_scan_token(148)) return true;
return false;
}
private boolean jj_3R_132() {
if (jj_3R_134()) return true;
if (jj_3R_135()) return true;
return false;
}
private boolean jj_3R_131() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_132()) {
jj_scanpos = xsp;
if (jj_3_17()) {
jj_scanpos = xsp;
if (jj_3_18()) {
jj_scanpos = xsp;
if (jj_3_19()) {
jj_scanpos = xsp;
if (jj_3_20()) return true;
}
}
}
}
return false;
}
private boolean jj_3R_81() {
if (jj_3R_90()) return true;
return false;
}
private boolean jj_3R_74() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_81()) {
jj_scanpos = xsp;
if (jj_3R_82()) return true;
}
return false;
}
private boolean jj_3_16() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_64() {
if (jj_scan_token(150)) return true;
if (jj_3R_45()) return true;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_39() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_64()) {
jj_scanpos = xsp;
if (jj_3_16()) return true;
}
xsp = jj_scanpos;
if (jj_3R_131()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_7() {
if (jj_3R_32()) return true;
return false;
}
private boolean jj_3R_52() {
if (jj_scan_token(148)) return true;
return false;
}
private boolean jj_3_6() {
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_167() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(108)) {
jj_scanpos = xsp;
if (jj_scan_token(109)) return true;
}
return false;
}
private boolean jj_3R_103() {
if (jj_scan_token(K_INTERVAL)) return true;
if (jj_3R_113()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(98)) {
jj_scanpos = xsp;
if (jj_scan_token(104)) {
jj_scanpos = xsp;
if (jj_scan_token(101)) {
jj_scanpos = xsp;
if (jj_scan_token(105)) {
jj_scanpos = xsp;
if (jj_scan_token(103)) {
jj_scanpos = xsp;
if (jj_scan_token(100)) {
jj_scanpos = xsp;
if (jj_scan_token(99)) return true;
}
}
}
}
}
}
return false;
}
private boolean jj_3R_125() {
if (jj_scan_token(K_ELSE)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_102() {
if (jj_scan_token(S_PARAMETER_MARKER)) return true;
return false;
}
private boolean jj_3R_63() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3R_37() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_63()) jj_scanpos = xsp;
if (jj_scan_token(K_EXISTS)) return true;
if (jj_scan_token(150)) return true;
if (jj_3R_74()) return true;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3_1() {
if (jj_3R_28()) return true;
return false;
}
private boolean jj_3R_115() {
if (jj_scan_token(K_WHEN)) return true;
if (jj_3R_113()) return true;
if (jj_scan_token(K_THEN)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3_5() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_38() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3_14() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_38()) jj_scanpos = xsp;
if (jj_3R_39()) return true;
return false;
}
private boolean jj_3_13() {
if (jj_3R_37()) return true;
return false;
}
private boolean jj_3R_122() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_13()) {
jj_scanpos = xsp;
if (jj_3_14()) return true;
}
return false;
}
private boolean jj_3R_101() {
if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
private boolean jj_3R_86() {
if (jj_3R_94()) return true;
return false;
}
private boolean jj_3R_111() {
if (jj_scan_token(K_CASE)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_5()) jj_scanpos = xsp;
if (jj_3R_115()) return true;
while (true) {
xsp = jj_scanpos;
if (jj_3R_120()) { jj_scanpos = xsp; break; }
}
xsp = jj_scanpos;
if (jj_3R_121()) jj_scanpos = xsp;
if (jj_scan_token(K_END)) return true;
return false;
}
private boolean jj_3R_93() {
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_100() {
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
private boolean jj_3R_162() {
if (jj_scan_token(148)) return true;
if (jj_3R_160()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_167()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_92() {
if (jj_scan_token(S_COMMA_IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_85() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(9)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_92()) {
jj_scanpos = xsp;
if (jj_3R_93()) return true;
}
return false;
}
private boolean jj_3R_98() {
if (jj_scan_token(K_FALSE)) return true;
return false;
}
private boolean jj_3R_99() {
if (jj_scan_token(INTEGER_LITERAL)) return true;
return false;
}
private boolean jj_3R_174() {
if (jj_3R_62()) return true;
return false;
}
private boolean jj_3R_123() {
if (jj_scan_token(K_AND)) return true;
if (jj_3R_122()) return true;
return false;
}
private boolean jj_3R_114() {
if (jj_3R_122()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_123()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_97() {
if (jj_scan_token(K_TRUE)) return true;
return false;
}
private boolean jj_3R_76() {
if (jj_3R_84()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_85()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_86()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_51() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_89() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_96()) {
jj_scanpos = xsp;
if (jj_3R_97()) {
jj_scanpos = xsp;
if (jj_3R_98()) {
jj_scanpos = xsp;
if (jj_3R_99()) {
jj_scanpos = xsp;
if (jj_3R_100()) {
jj_scanpos = xsp;
if (jj_3R_101()) {
jj_scanpos = xsp;
if (jj_3R_102()) {
jj_scanpos = xsp;
if (jj_3R_103()) {
jj_scanpos = xsp;
if (jj_3R_104()) {
jj_scanpos = xsp;
if (jj_3R_105()) {
jj_scanpos = xsp;
if (jj_3_24()) {
jj_scanpos = xsp;
if (jj_3R_106()) {
jj_scanpos = xsp;
if (jj_3R_107()) {
jj_scanpos = xsp;
if (jj_3R_108()) return true;
}
}
}
}
}
}
}
}
}
}
}
}
}
return false;
}
private boolean jj_3R_96() {
if (jj_scan_token(K_NULL)) return true;
return false;
}
private boolean jj_3R_161() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(108)) {
jj_scanpos = xsp;
if (jj_scan_token(109)) return true;
}
return false;
}
private boolean jj_3R_28() {
if (jj_3R_51()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_52()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_178() {
if (jj_scan_token(148)) return true;
if (jj_3R_113()) return true;
return false;
}
private boolean jj_3R_83() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(170)) {
jj_scanpos = xsp;
if (jj_scan_token(178)) {
jj_scanpos = xsp;
if (jj_scan_token(179)) {
jj_scanpos = xsp;
if (jj_scan_token(77)) {
jj_scanpos = xsp;
if (jj_scan_token(78)) return true;
}
}
}
}
if (jj_3R_80()) return true;
return false;
}
private boolean jj_3R_181() {
if (jj_scan_token(148)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(139)) {
jj_scanpos = xsp;
if (jj_scan_token(144)) return true;
}
return false;
}
private boolean jj_3R_158() {
if (jj_scan_token(148)) return true;
if (jj_3R_157()) return true;
return false;
}
private boolean jj_3R_118() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(61)) {
jj_scanpos = xsp;
if (jj_scan_token(62)) return true;
}
if (jj_3R_114()) return true;
return false;
}
private boolean jj_3R_95() {
if (jj_scan_token(175)) return true;
return false;
}
private boolean jj_3R_91() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
return false;
}
private boolean jj_3R_113() {
if (jj_3R_114()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_118()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_84() {
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_91()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_88() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(174)) {
jj_scanpos = xsp;
if (jj_3R_95()) return true;
}
return false;
}
private boolean jj_3R_170() {
if (jj_3R_173()) return true;
return false;
}
private boolean jj_3R_80() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_88()) jj_scanpos = xsp;
if (jj_3R_89()) return true;
return false;
}
private boolean jj_3R_171() {
if (jj_scan_token(150)) return true;
if (jj_3R_35()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_174()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_128() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
return false;
}
private boolean jj_3R_160() {
if (jj_3R_39()) return true;
return false;
}
private boolean jj_3R_75() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(174)) {
jj_scanpos = xsp;
if (jj_scan_token(175)) {
jj_scanpos = xsp;
if (jj_scan_token(176)) {
jj_scanpos = xsp;
if (jj_scan_token(177)) return true;
}
}
}
if (jj_3R_73()) return true;
return false;
}
private boolean jj_3R_177() {
if (jj_3R_180()) return true;
return false;
}
private boolean jj_3R_150() {
if (jj_scan_token(K_ORDER)) return true;
if (jj_scan_token(K_BY)) return true;
if (jj_3R_160()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_161()) jj_scanpos = xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_162()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_134() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(146)) {
jj_scanpos = xsp;
if (jj_scan_token(155)) {
jj_scanpos = xsp;
if (jj_scan_token(156)) {
jj_scanpos = xsp;
if (jj_scan_token(157)) {
jj_scanpos = xsp;
if (jj_scan_token(158)) {
jj_scanpos = xsp;
if (jj_scan_token(159)) {
jj_scanpos = xsp;
if (jj_scan_token(160)) return true;
}
}
}
}
}
}
return false;
}
private boolean jj_3R_59() {
if (jj_scan_token(S_COMMA_IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_157() {
if (jj_3R_39()) return true;
return false;
}
private boolean jj_3R_58() {
if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_176() {
if (jj_scan_token(K_USING)) return true;
if (jj_scan_token(150)) return true;
if (jj_3R_113()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_178()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_159() {
if (jj_scan_token(K_HAVING)) return true;
if (jj_3R_113()) return true;
return false;
}
private boolean jj_3R_149() {
if (jj_scan_token(K_GROUP)) return true;
if (jj_scan_token(K_BY)) return true;
if (jj_3R_157()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_158()) { jj_scanpos = xsp; break; }
}
xsp = jj_scanpos;
if (jj_3R_159()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_57() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(154)) jj_scanpos = xsp;
if (jj_scan_token(IDENTIFIER)) return true;
xsp = jj_scanpos;
if (jj_scan_token(154)) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_34() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_57()) {
jj_scanpos = xsp;
if (jj_3R_58()) {
jj_scanpos = xsp;
if (jj_3R_59()) return true;
}
}
return false;
}
private boolean jj_3R_36() {
if (jj_3R_62()) return true;
return false;
}
private boolean jj_3R_180() {
if (jj_scan_token(150)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(139)) {
jj_scanpos = xsp;
if (jj_scan_token(144)) return true;
}
while (true) {
xsp = jj_scanpos;
if (jj_3R_181()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_87() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(40)) {
jj_scanpos = xsp;
if (jj_scan_token(173)) return true;
}
return false;
}
private boolean jj_3R_73() {
if (jj_3R_80()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_83()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_79() {
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_128()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_78() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_87()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_173() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(9)) jj_scanpos = xsp;
if (jj_scan_token(IDENTIFIER)) return true;
xsp = jj_scanpos;
if (jj_3R_177()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_148() {
if (jj_scan_token(K_WHERE)) return true;
if (jj_3R_113()) return true;
return false;
}
private boolean jj_3R_175() {
if (jj_scan_token(K_ON)) return true;
if (jj_3R_113()) return true;
return false;
}
private boolean jj_3R_172() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_175()) {
jj_scanpos = xsp;
if (jj_3R_176()) return true;
}
return false;
}
private boolean jj_3R_179() {
if (jj_scan_token(148)) return true;
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_72() {
if (jj_3R_34()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_79()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_60() {
if (jj_3R_76()) return true;
return false;
}
private boolean jj_3R_55() {
if (jj_3R_73()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_75()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_145() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(167)) {
jj_scanpos = xsp;
if (jj_scan_token(168)) return true;
}
return false;
}
private boolean jj_3R_61() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(75)) jj_scanpos = xsp;
if (jj_scan_token(150)) return true;
if (jj_3R_74()) return true;
if (jj_scan_token(151)) return true;
xsp = jj_scanpos;
if (jj_3R_170()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_35() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_60()) {
jj_scanpos = xsp;
if (jj_3R_61()) return true;
}
return false;
}
private boolean jj_3R_68() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3_12() {
if (jj_3R_35()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_36()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_77() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(172)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(46)) {
jj_scanpos = xsp;
if (jj_scan_token(96)) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(64)) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_62() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_77()) {
jj_scanpos = xsp;
if (jj_3R_78()) return true;
}
if (jj_scan_token(K_JOIN)) return true;
xsp = jj_scanpos;
if (jj_3_12()) {
jj_scanpos = xsp;
if (jj_3R_171()) return true;
}
if (jj_3R_172()) return true;
return false;
}
private boolean jj_3R_30() {
if (jj_3R_55()) return true;
return false;
}
private boolean jj_3R_166() {
if (jj_3R_62()) return true;
return false;
}
private boolean jj_3R_43() {
if (jj_scan_token(K_IS)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_68()) jj_scanpos = xsp;
if (jj_scan_token(K_NULL)) return true;
return false;
}
private boolean jj_3_3() {
Token xsp;
if (jj_scan_token(150)) return true;
while (true) {
xsp = jj_scanpos;
if (jj_scan_token(150)) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(K_SELECT)) return true;
return false;
}
private boolean jj_3R_67() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3R_42() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_67()) jj_scanpos = xsp;
if (jj_scan_token(K_LIKE)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3_4() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_143() {
if (jj_3R_74()) return true;
return false;
}
private boolean jj_3R_130() {
if (jj_scan_token(148)) return true;
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
private boolean jj_3R_155() {
if (jj_3R_35()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_166()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_32() {
if (jj_scan_token(K_FOR)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(29)) {
jj_scanpos = xsp;
if (jj_scan_token(67)) return true;
}
return false;
}
private boolean jj_3R_94() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(111)) {
jj_scanpos = xsp;
if (jj_scan_token(110)) {
jj_scanpos = xsp;
if (jj_scan_token(183)) return true;
}
}
if (jj_scan_token(150)) return true;
if (jj_scan_token(IDENTIFIER)) return true;
while (true) {
xsp = jj_scanpos;
if (jj_3R_179()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_31() {
if (jj_scan_token(K_FOR)) return true;
if (jj_scan_token(K_UPDATE)) return true;
return false;
}
private boolean jj_3R_169() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(9)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(139)) {
jj_scanpos = xsp;
if (jj_scan_token(144)) return true;
}
return false;
}
private boolean jj_3R_66() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3R_41() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_66()) jj_scanpos = xsp;
if (jj_scan_token(K_BETWEEN)) return true;
if (jj_3R_30()) return true;
if (jj_scan_token(K_AND)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_129() {
if (jj_scan_token(150)) return true;
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_130()) jj_scanpos = xsp;
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_156() {
if (jj_scan_token(148)) return true;
if (jj_3R_155()) return true;
return false;
}
private boolean jj_3R_165() {
if (jj_scan_token(148)) return true;
if (jj_3R_33()) return true;
return false;
}
private boolean jj_3R_147() {
if (jj_scan_token(K_FROM)) return true;
if (jj_3R_155()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_156()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_124() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(15)) {
jj_scanpos = xsp;
if (jj_scan_token(88)) {
jj_scanpos = xsp;
if (jj_scan_token(87)) {
jj_scanpos = xsp;
if (jj_scan_token(17)) {
jj_scanpos = xsp;
if (jj_scan_token(43)) {
jj_scanpos = xsp;
if (jj_scan_token(44)) {
jj_scanpos = xsp;
if (jj_scan_token(55)) {
jj_scanpos = xsp;
if (jj_scan_token(56)) {
jj_scanpos = xsp;
if (jj_scan_token(68)) {
jj_scanpos = xsp;
if (jj_scan_token(30)) return true;
}
}
}
}
}
}
}
}
}
xsp = jj_scanpos;
if (jj_3R_129()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_119() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_124()) {
jj_scanpos = xsp;
if (jj_scan_token(180)) {
jj_scanpos = xsp;
if (jj_scan_token(181)) {
jj_scanpos = xsp;
if (jj_scan_token(182)) {
jj_scanpos = xsp;
if (jj_scan_token(11)) return true;
}
}
}
}
return false;
}
private boolean jj_3R_126() {
if (jj_scan_token(148)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3_23() {
if (jj_3R_45()) return true;
return false;
}
private boolean jj_3R_54() {
if (jj_scan_token(148)) return true;
if (jj_3R_53()) return true;
return false;
}
private boolean jj_3_8() {
if (jj_3R_33()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_165()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_28() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_168() {
if (jj_scan_token(146)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_116() {
if (jj_scan_token(150)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_28()) jj_scanpos = xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_126()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(151)) return true;
return false;
}
private boolean jj_3R_44() {
if (jj_scan_token(150)) return true;
if (jj_scan_token(K_SELECT)) return true;
return false;
}
private boolean jj_3R_48() {
if (jj_3R_70()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_116()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_56() {
if (jj_3R_74()) return true;
return false;
}
private boolean jj_3_11() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3_10() {
if (jj_3R_34()) return true;
if (jj_scan_token(153)) return true;
if (jj_3R_34()) return true;
if (jj_scan_token(171)) return true;
return false;
}
private boolean jj_3R_163() {
if (jj_scan_token(S_PARAMETER_MARKER)) return true;
return false;
}
/** Generated Token Manager. */
public MysqlParserTokenManager token_source;
SimpleCharStream jj_input_stream;
/** Current token. */
public Token token;
/** Next token. */
public Token jj_nt;
private int jj_ntk;
private Token jj_scanpos, jj_lastpos;
private int jj_la;
/** Whether we are looking ahead. */
private boolean jj_lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
final private int[] jj_la1 = new int[178];
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 private int[] jj_la1_4;
static private int[] jj_la1_5;
static {
jj_la1_init_0();
jj_la1_init_1();
jj_la1_init_2();
jj_la1_init_3();
jj_la1_init_4();
jj_la1_init_5();
}
private static void jj_la1_init_0() {
jj_la1_0 = new int[] {0x0,0x0,0x0,0x0,0x0,0x80000,0x1,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x0,0x0,0x1000000,0x20000000,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100040,0x100040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x400,0x0,0x140,0x140,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x0,0x0,0x0,0x0,0x100040,0x100040,0x0,0x0,0x0,0x0,0x40028000,0x0,0x0,0x40028800,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_1() {
jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x600,0x0,0x0,0x600,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x1,0x600,0x40,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x4,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6100,0x0,0x4000,0x0,0x100,0x100,0x4000,0x6100,0x6100,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x60000000,0x60000000,0x0,0x80000,0x80000,0x0,0x88030,0x0,0x0,0x0,0x80000,0x0,0x80000,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x600,0x0,0x0,0x1801800,0x0,0x0,0x1801800,0x0,0x2000000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_2() {
jj_la1_2 = new int[] {0x60000000,0x0,0x0,0x0,0x0,0x181380,0x0,0x80,0x181300,0x0,0x0,0x20,0x20,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x4000000,0x0,0x40,0x0,0x40,0x80000000,0x0,0x0,0x0,0x0,0x1000,0x0,0x800,0x4000000,0x0,0x0,0x100,0x0,0x0,0x4000000,0x0,0x0,0x40,0x0,0x40,0x80000000,0x0,0x0,0x0,0x400100,0x400300,0x0,0x0,0x0,0x0,0x0,0x10000006,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x10000006,0x20000,0x100,0x0,0x0,0x4000000,0x0,0x0,0x0,0x40,0x0,0x40,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x800,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x6000,0x6000,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x1800010,0x0,0x0,0x1800010,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_3() {
jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x81c40,0x0,0x0,0x81c00,0xc000,0x0,0x100000,0x100000,0x1e00000,0x0,0x0,0x0,0x0,0x2010000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0xfc100000,0xfc100000,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3000,0x3000,0x0,0x3000,0x3000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bc,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_4() {
jj_la1_4 = new int[] {0x4020,0x100000,0x80000,0x400000,0x800000,0x400008,0x1000000,0x0,0x400008,0x0,0x1c800,0x0,0x0,0x0,0xc800,0x2000000,0x40000,0xc820,0x800,0x100000,0x0,0x20020,0x100000,0x20020,0x100000,0x0,0x0,0x0,0x17,0x17,0x0,0x0,0x4418800,0x0,0x100000,0x100000,0x400000,0x4418800,0x100000,0x0,0x0,0x20020,0x100000,0x20020,0x100000,0x0,0x0,0x0,0x0,0x400000,0x400000,0x0,0x100000,0x500000,0x100000,0x100000,0x0,0x100000,0x0,0x2000000,0x2000000,0x4000000,0x4000000,0x4018800,0xf8040000,0x2000000,0x0,0x10800,0x10800,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x20020,0x100000,0x20020,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x100000,0x0,0x400000,0x40000,0x0,0x10800,0x10800,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x800,0x4418800,0x100000,0x0,0x0,0x400000,0x10800,0x100000,0x10800,0x100000,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf8040000,0xf8040000,0x100000,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x24060,0x400000,0x4018800,0x2000000,0x2000000,0x0,0x0,0x0,0x800,0x100000,0x400000,0x0,0x100000,0x400000,0x0,0x100000,0x0,0x0,0x0,0x0,0x100000,0x10800,0x10800,0x800,0x40,};
}
private static void jj_la1_init_5() {
jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x4,0x8,0x10,0x20,0x40,0x180,0x180,0x200,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x3000,0x1000,0x0,0x0,0x2000,0x2000,0x1000,0x3000,0x3000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c000,0x3c000,0xc0400,0xc0400,0xc000,0xc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x700000,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,};
}
final private JJCalls[] jj_2_rtns = new JJCalls[28];
private boolean jj_rescan = false;
private int jj_gc = 0;
/** Constructor with InputStream. */
public MysqlParser(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public MysqlParser(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 MysqlParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 178; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
/** Reinitialise. */
public void ReInit(java.io.InputStream stream) {
ReInit(stream, null);
}
/** Reinitialise. */
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;
jjtree.reset();
jj_gen = 0;
for (int i = 0; i < 178; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
/** Constructor. */
public MysqlParser(java.io.Reader stream) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
token_source = new MysqlParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 178; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
/** Reinitialise. */
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;
jjtree.reset();
jj_gen = 0;
for (int i = 0; i < 178; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
/** Constructor with generated Token Manager. */
public MysqlParser(MysqlParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 178; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
/** Reinitialise. */
public void ReInit(MysqlParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
for (int i = 0; i < 178; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
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();
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;
}
/** Get the next Token. */
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;
}
/** Get the specific Token. */
final public Token getToken(int index) {
Token t = jj_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;
}
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.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
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];
}
jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
int[] oldentry = (int[])(it.next());
if (oldentry.length == jj_expentry.length) {
for (int i = 0; i < jj_expentry.length; i++) {
if (oldentry[i] != jj_expentry[i]) {
continue jj_entries_loop;
}
}
jj_expentries.add(jj_expentry);
break jj_entries_loop;
}
}
if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
}
}
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
boolean[] la1tokens = new boolean[184];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 178; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
la1tokens[j] = true;
}
if ((jj_la1_1[i] & (1<<j)) != 0) {
la1tokens[32+j] = true;
}
if ((jj_la1_2[i] & (1<<j)) != 0) {
la1tokens[64+j] = true;
}
if ((jj_la1_3[i] & (1<<j)) != 0) {
la1tokens[96+j] = true;
}
if ((jj_la1_4[i] & (1<<j)) != 0) {
la1tokens[128+j] = true;
}
if ((jj_la1_5[i] & (1<<j)) != 0) {
la1tokens[160+j] = true;
}
}
}
}
for (int i = 0; i < 184; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
jj_expentries.add(jj_expentry);
}
}
jj_endpos = 0;
jj_rescan_token();
jj_add_error_token(0, 0);
int[][] exptokseq = new int[jj_expentries.size()][];
for (int i = 0; i < jj_expentries.size(); i++) {
exptokseq[i] = jj_expentries.get(i);
}
return new ParseException(token, exptokseq, tokenImage);
}
/** Enable tracing. */
final public void enable_tracing() {
}
/** Disable tracing. */
final public void disable_tracing() {
}
private void jj_rescan_token() {
jj_rescan = true;
for (int i = 0; i < 28; i++) {
try {
JJCalls p = jj_2_rtns[i];
do {
if (p.gen > 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;
case 15: jj_3_16(); break;
case 16: jj_3_17(); break;
case 17: jj_3_18(); break;
case 18: jj_3_19(); break;
case 19: jj_3_20(); break;
case 20: jj_3_21(); break;
case 21: jj_3_22(); break;
case 22: jj_3_23(); break;
case 23: jj_3_24(); break;
case 24: jj_3_25(); break;
case 25: jj_3_26(); break;
case 26: jj_3_27(); break;
case 27: jj_3_28(); break;
}
}
p = p.next;
} while (p != null);
} catch(LookaheadSuccess ls) { }
}
jj_rescan = false;
}
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;
}
}