/* 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 com.meidusa.amoeba.parser.statement.ddl.*;
import com.meidusa.amoeba.parser.AmoebaSqlHintPropNames;
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;
import com.meidusa.amoeba.util.StringUtil;
import com.meidusa.amoeba.util.Tuple;
import com.meidusa.amoeba.seq.fetcher.SeqFetchService;
import com.meidusa.amoeba.seq.fetcher.SeqConstants;
import com.meidusa.amoeba.mysql.parser.MysqlSyntaxConstants;
import org.apache.log4j.Logger;
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\u005c\u005c\u005c"";
private final static String chars = "\u005ct\u005cn\u005cr\u005cb\u005cf\u005c\u005c\u005c"";
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 String userName;
private Map<String,Function> functionMap;
private static TimeConverter timeConverter = new TimeConverter();
private final static Logger logger = Logger.getLogger(MysqlParser.class);
public void setFunctionMap(Map<String,Function> map){
this.functionMap = map;
}
public void setDefaultSchema(Schema schema){
defaultSchema = schema;
}
public void setUserName(String userName)
{
this.userName = userName;
}
/**
* 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;
}
public Expression replaceNextOrCurrSequenceValue(Expression expression, DMLStatement statement)
{
if(expression instanceof ColumnExpression)
{
Column column = ((ColumnExpression)expression).getColumn();
String columnName = column.getName();
if(defaultSchema != null && !StringUtil.isEmpty(defaultSchema.getName()))
{
if(column.getTable() != null &&
!StringUtil.isEmpty(column.getTable().toString()) &&
!StringUtil.isEmpty(column.getTable().getName()) &&
!StringUtil.isEmpty(columnName))
{
if(columnName.equalsIgnoreCase(SeqConstants.NEXTVAL) || columnName.equalsIgnoreCase(SeqConstants.CURRVAL))
{
// replace global sequence
String schemaName = defaultSchema.getName();
String currOrNext = columnName;
String seqName = column.getTable().getName();
Long seqValue = -1l;
if(currOrNext.equalsIgnoreCase(SeqConstants.NEXTVAL))
{
try
{
seqValue = SeqFetchService.getSeqNextVal(schemaName, seqName);
}
catch(Exception e)
{
logger.error(String.format("fetch global sequence %s next value error since:%s", seqName, e.getMessage() ));
}
}
else if(currOrNext.equalsIgnoreCase(SeqConstants.CURRVAL))
{
try
{
seqValue = SeqFetchService.getSeqCurrVal(schemaName, seqName);
}
catch(Exception e)
{
logger.error(String.format("fetch global sequence %s current value error since:%s", seqName, e.getMessage() ));
}
}
if(seqValue > 0)
{
expression = new ConstantExpression(seqValue);
}
String globalSeqName = column.toString();
int seqTokenEndColumn = getToken(0).endColumn;
GlobalSeqColumn< Column> gloabSeq = new GlobalSeqColumn< Column>(column, globalSeqName, seqValue, seqTokenEndColumn);
if(statement != null)
{
statement.addSeqColumn(gloabSeq);
}
// seq name should not add to route table map
tableAliasMap.remove(column.getTable().toString());
}
}
}
}
return expression;
}
public void replaceBatchSeqValue(FunctionExpression funExp, DMLStatement statement)
{
if(defaultSchema != null && !StringUtil.isEmpty(defaultSchema.getName()))
{
BulkValFuntion bulkValFunc = (BulkValFuntion)funExp.getFunction();
if( bulkValFunc.getTable() != null &&
!StringUtil.isEmpty(bulkValFunc.getTable().toString()) &&
!StringUtil.isEmpty(bulkValFunc.getTable().getName())
)
{
String schemaName = defaultSchema.getName();
String seqName = bulkValFunc.getTable().getName();
List<Expression> args = funExp.getArgList();
int argCount = -1;
try {
Expression countExp = args.get(0);
argCount = Integer.parseInt(String.valueOf( countExp.evaluate(null)));
} catch (Exception e) {
logger.error(String.format("can not parse bulkval function arg to integer number since: %s", e.getMessage()) );
}
Long seqValue = -1l;
if (argCount > 0) {
try
{
seqValue = SeqFetchService.batchGetSeqVal(schemaName, seqName, argCount);
}
catch (Exception e)
{
logger.error(String.format("batch fetch global sequence %s current value error since:%s", seqName, e.getMessage() ));
}
}
String bulkFunName = funExp.getFunction().getName();
int seqTokenEndColumn = getToken(0).endColumn;
GlobalSeqColumn< FunctionExpression> gloabSeq = new GlobalSeqColumn< FunctionExpression>(funExp, bulkFunName, seqValue, seqTokenEndColumn);
if(statement != null)
{
statement.addBatchSeqFetchCall(gloabSeq);
}
// seq name should not add to route table map
tableAliasMap.remove(bulkValFunc.getTable().toString());
}
}
}
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('\u005c\u005c', 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('\u005c\u005c');
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(307);
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 308:
case 309:
case 310:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 308:
jj_consume_token(308);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER_LITERAL:
jj_consume_token(INTEGER_LITERAL);
break;
default:
jj_la1[1] = jj_gen;
;
}
break;
case 309:
jj_consume_token(309);
break;
case 310:
jj_consume_token(310);
break;
default:
jj_la1[2] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 311:
jj_consume_token(311);
parseParams(amoebaParameterMap = new HashMap());
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[3] = jj_gen;
break label_1;
}
jj_consume_token(312);
parseParams(amoebaParameterMap);
}
jj_consume_token(313);
break;
default:
jj_la1[4] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 314:
jj_consume_token(314);
break;
default:
jj_la1[5] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 315:
jj_consume_token(315);
break;
default:
jj_la1[6] = jj_gen;
;
}
statement = parserInner();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 316:
jj_consume_token(316);
break;
default:
jj_la1[7] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 317:
jj_consume_token(317);
break;
default:
jj_la1[8] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 314:
jj_consume_token(314);
break;
default:
jj_la1[9] = jj_gen;
;
}
break;
case K_DELETE:
case K_DROP:
case K_INSERT:
case K_REPLACE:
case K_CREATE:
case K_EXPLAIN:
case K_EXTENDED:
case K_SELECT:
case K_SET:
case K_XA:
case K_SHOW:
case K_UPDATE:
case K_USE:
case K_COMMIT:
case K_BEGIN:
case K_ROLLBACK:
case K_START_TRANSACTION:
case K_CALL:
case K_TRUNCATE:
case K_RENAME:
case K_ALTER:
case K_HELP:
case 315:
statement = parserInner();
break;
default:
jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 0:
case 317:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 317:
jj_consume_token(317);
break;
case 0:
jj_consume_token(0);
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[12] = jj_gen;
;
}
if(statement instanceof AbstractStatement){
/* amoeba parameters */
if(amoebaParameterMap != null)
{
statement.setHintParams(amoebaParameterMap);
Boolean isRead = (Boolean)amoebaParameterMap.get(AmoebaSqlHintPropNames.IS_READ_HINT);
if(isRead != null)
{
if(statement instanceof DMLStatement)
{
((DMLStatement)statement).setRead(isRead);
}
}
Boolean isProcedure = (Boolean)amoebaParameterMap.get(AmoebaSqlHintPropNames.IS_PROCEDURE_HINT);
if(isProcedure != null)
{
if(statement instanceof DMLStatement)
{
((DMLStatement)statement).setProcedure(isProcedure);
}
}
}
}
/* amoeba parameters */
if(amoebaParameterMap != null)
{
Integer params = (Integer)amoebaParameterMap.get(AmoebaSqlHintPropNames.PARAMS_COUNT_HINT);
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;
boolean isExplain = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_EXPLAIN:
jj_consume_token(K_EXPLAIN);
isExplain = true;
break;
default:
jj_la1[13] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_EXTENDED:
jj_consume_token(K_EXTENDED);
break;
default:
jj_la1[14] = 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 315:
statement = SelectQuery();
break;
case K_UPDATE:
statement = UpdateQuery();
break;
case K_SHOW:
statement = ShowQuery();
break;
case K_CALL:
statement = CallQuery();
break;
case K_USE:
statement = SelectSchema();
break;
case K_TRUNCATE:
statement = DDLTruncateTableQuery();
break;
case K_CREATE:
statement = DDLCreateQuery();
break;
case K_DROP:
statement = DDLDropQuery();
break;
case K_RENAME:
statement = DDLRenameTableQuery();
break;
case K_ALTER:
statement = DDLAlertTableQuery();
break;
case K_XA:
jj_consume_token(K_XA);
statement = XaQuery(new XAStatement());
break;
case K_SET:
statement = SetQuery();
break;
case K_HELP:
jj_consume_token(K_HELP);
statement = Help(new HelpStatement());
break;
case K_BEGIN:
jj_consume_token(K_BEGIN);
statement = new BeginStatement();
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[15] = 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 339:
INDEX();
break;
default:
jj_la1[16] = jj_gen;
;
}
if(statement instanceof AbstractStatement){
List<Table> list = new ArrayList<Table>();
for(Map.Entry<String,Table> entry : tableAliasMap.entrySet()){
Table table = entry.getValue();
if(!list.contains(table)){
// associate user id with table
if(userName != null)
{
table.setUserName(userName);
}
// use connection schema for routing
if(defaultSchema != null)
{
table.setSchema(defaultSchema);
}
list.add(table);
}
}
Table[] tables = new Table[list.size()];
list.toArray(tables);
((AbstractStatement)statement).setTables(tables);
}
statement.setExplain(isExplain);
{if (true) return statement;}
throw new Error("Missing return statement in function");
}
final public Statement Help(Statement stmt) throws ParseException {
{if (true) return stmt;}
throw new Error("Missing return statement in function");
}
final public Statement SetQuery() throws ParseException {
PropertyStatement stmt = new PropertyStatement();
jj_consume_token(K_SET);
PropertySetQuery(stmt);
{if (true) return stmt;}
throw new Error("Missing return statement in function");
}
final public Statement XaQuery(Statement stmt) throws ParseException {
{if (true) return stmt;}
throw new Error("Missing return statement in function");
}
final public Statement DDLAlertTableQuery() throws ParseException {
DDLStatement stmt = new DDLAlertTableStatement();
Table table = null;
Token tk = null;
tk = jj_consume_token(K_ALTER);
stmt.setOperate(tk.image);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IGNORE:
jj_consume_token(K_IGNORE);
break;
default:
jj_la1[17] = jj_gen;
;
}
tk = jj_consume_token(K_TABLE);
stmt.setTargetName(tk.image);
table = TableReference();
stmt.setTargetValue(table.toString());
{if (true) return stmt;}
throw new Error("Missing return statement in function");
}
final public Statement DDLRenameTableQuery() throws ParseException {
DDLStatement stmt = new DDLRenameTableStatement();
Table table = null;
Token tk = null;
StringBuilder sb = new StringBuilder();
tk = jj_consume_token(K_RENAME);
stmt.setOperate(tk.image);
tk = jj_consume_token(K_TABLE);
stmt.setTargetName(tk.image);
table = TableReference();
sb.append(table.toString());
jj_consume_token(K_TO);
EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 318:
jj_consume_token(318);
EntityName();
break;
default:
jj_la1[18] = jj_gen;
;
}
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[19] = jj_gen;
break label_2;
}
jj_consume_token(312);
table = TableReference();
sb.append(table.toString());
jj_consume_token(K_TO);
EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 318:
jj_consume_token(318);
EntityName();
break;
default:
jj_la1[20] = jj_gen;
;
}
}
stmt.setTargetValue(sb.toString());
{if (true) return stmt;}
throw new Error("Missing return statement in function");
}
final public Statement DDLCreateQuery() throws ParseException {
Table table = null;
Token tk = null;
if (jj_2_1(2)) {
DDLStatement stmt = new DDLCreateTableStatement();
tk = jj_consume_token(K_CREATE);
stmt.setOperate(tk.image);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TEMPORARY:
case K_GLOBAL:
case K_LOCAL:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_GLOBAL:
case K_LOCAL:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_GLOBAL:
jj_consume_token(K_GLOBAL);
break;
case K_LOCAL:
jj_consume_token(K_LOCAL);
break;
default:
jj_la1[21] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[22] = jj_gen;
;
}
jj_consume_token(K_TEMPORARY);
break;
default:
jj_la1[23] = jj_gen;
;
}
tk = jj_consume_token(K_TABLE);
stmt.setTargetName(tk.image);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IF_NOT_EXISTS:
jj_consume_token(K_IF_NOT_EXISTS);
break;
default:
jj_la1[24] = jj_gen;
;
}
table = TableReference();
stmt.setTargetValue(table.toString());
{if (true) return stmt;}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CREATE:
DDLCreateSequenceStatenment seqStmt = new DDLCreateSequenceStatenment();
tk = jj_consume_token(K_CREATE);
seqStmt.setOperate(tk.image);
tk = jj_consume_token(K_SEQUENCE);
seqStmt.setTargetName(tk.image);
table = TableReference();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 319:
jj_consume_token(319);
tk = jj_consume_token(INTEGER_LITERAL);
seqStmt.setStartWith(Long.valueOf(tk.image));
break;
default:
jj_la1[25] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 320:
jj_consume_token(320);
tk = jj_consume_token(INTEGER_LITERAL);
seqStmt.setOffset(Long.valueOf(tk.image));
break;
default:
jj_la1[26] = jj_gen;
;
}
seqStmt.setSchema(table.getSchema());
seqStmt.setSeqName(table.getName());
seqStmt.setTargetValue(table.toString());
{if (true) return seqStmt;}
break;
default:
jj_la1[27] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}
final public Statement DDLDropQuery() throws ParseException {
Token tk = null;
String indexName = null;
Table table = null;
StringBuilder sb = new StringBuilder();
if (jj_2_3(2)) {
DDLStatement stmt = new DDLDropStatement();
tk = jj_consume_token(K_DROP);
stmt.setOperate(tk.image);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_VIEW:
tk = jj_consume_token(K_VIEW);
break;
case K_FUNCTION:
tk = jj_consume_token(K_FUNCTION);
break;
case K_TRIGGER:
tk = jj_consume_token(K_TRIGGER);
break;
case K_DATABASE:
tk = jj_consume_token(K_DATABASE);
break;
case K_PROCEDURE:
tk = jj_consume_token(K_PROCEDURE);
break;
case K_TABLE:
case K_TEMPORARY:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TEMPORARY:
jj_consume_token(K_TEMPORARY);
break;
default:
jj_la1[28] = jj_gen;
;
}
tk = jj_consume_token(K_TABLE);
break;
case K_INDEX:
tk = jj_consume_token(K_INDEX);
break;
default:
jj_la1[29] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
stmt.setTargetName(tk.image);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IF_EXISTS:
jj_consume_token(K_IF_EXISTS);
break;
default:
jj_la1[30] = jj_gen;
;
}
if (jj_2_2(2)) {
indexName = EntityName();
sb.append(indexName);
jj_consume_token(K_ON);
TableReference();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DUAL:
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 321:
table = TableReference();
sb.append(table.toString());
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[31] = jj_gen;
break label_3;
}
jj_consume_token(312);
table = TableReference();
sb.append(","); sb.append(table.toString());
}
break;
default:
jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
stmt.setTargetValue(sb.toString());
{if (true) return stmt;}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DROP:
DDLDropSequenceStatement seqStmt = new DDLDropSequenceStatement();
tk = jj_consume_token(K_DROP);
seqStmt.setOperate(tk.image);
tk = jj_consume_token(K_SEQUENCE);
seqStmt.setTargetName(tk.image);
table = TableReference();
seqStmt.setSchema(table.getSchema());
seqStmt.setSeqName(table.getName());
seqStmt.setTargetValue(table.toString());
{if (true) return seqStmt;}
break;
default:
jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}
final public Statement DDLTruncateTableQuery() throws ParseException {
Table table = null;
Token tk = null;
DDLStatement stmt = new DDLTruncateTableStatement();
tk = jj_consume_token(K_TRUNCATE);
stmt.setOperate(tk.image);
tk = jj_consume_token(K_TABLE);
stmt.setTargetName(tk.image);
table = TableReference();
stmt.setTargetValue(table.toString());
{if (true) return stmt;}
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[34] = 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");
}
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:
case K_GLOBAL:
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;
case K_GLOBAL:
jj_consume_token(K_GLOBAL);
break;
default:
jj_la1[35] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[36] = 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[37] = 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[38] = 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 318:
jj_consume_token(318);
name = jj_consume_token(IDENTIFIER);
propertyName = propertyName+"."+name.image;
break;
default:
jj_la1[39] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 307:
jj_consume_token(307);
break;
default:
jj_la1[40] = 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[41] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[42] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
jj_consume_token(312);
PropertySetQuery(statement);
break;
default:
jj_la1[43] = 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[44] = 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[45] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OFFSET:
case 312:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
jj_consume_token(312);
break;
case K_OFFSET:
jj_consume_token(K_OFFSET);
break;
default:
jj_la1[46] = 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[47] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[48] = jj_gen;
;
}
break;
default:
jj_la1[49] = 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;
String schemeName = null;
Table table = null;
valueToken = jj_consume_token(K_SHOW);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CREATE:
case K_SHOW_FULL_TABLES:
case K_SHOW_OPEN_TABLES:
case K_SHOW_CREATE_PROCEDURE:
case K_SHOW_CREATE_DATABASE:
case K_SHOW_FULL_COLUMNS:
case K_TABLE_STATUS:
case K_TRIGGERS:
if (jj_2_4(2)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SHOW_FULL_TABLES:
jj_consume_token(K_SHOW_FULL_TABLES);
break;
case K_SHOW_CREATE_DATABASE:
jj_consume_token(K_SHOW_CREATE_DATABASE);
break;
case K_TABLE_STATUS:
jj_consume_token(K_TABLE_STATUS);
break;
case K_TRIGGERS:
jj_consume_token(K_TRIGGERS);
break;
default:
jj_la1[50] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
case K_IN:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
jj_consume_token(K_FROM);
break;
case K_IN:
jj_consume_token(K_IN);
break;
default:
jj_la1[51] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[52] = jj_gen;
;
}
schemeName = EntityName();
table = new Table();
Schema schema = new Schema();
schema.setName(schemeName);
table.setSchema(schema);
table.setName("*");
tableAliasMap.put(table.toString(),table);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CREATE:
case K_SHOW_OPEN_TABLES:
case K_SHOW_CREATE_PROCEDURE:
case K_SHOW_FULL_COLUMNS:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_CREATE:
jj_consume_token(K_CREATE);
jj_consume_token(K_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_SHOW_OPEN_TABLES:
jj_consume_token(K_SHOW_OPEN_TABLES);
break;
default:
jj_la1[53] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
case K_IN:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_FROM:
jj_consume_token(K_FROM);
break;
case K_IN:
jj_consume_token(K_IN);
break;
default:
jj_la1[54] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[55] = jj_gen;
;
}
table = TableReference();
break;
default:
jj_la1[56] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
break;
default:
jj_la1[57] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_LIKE:
jj_consume_token(K_LIKE);
SQLExpression(statement);
break;
default:
jj_la1[58] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHERE:
expression = WhereClause(statement);
break;
default:
jj_la1[59] = jj_gen;
;
}
if(table != null)
{
statement.setTables(new Table[]{table});
}
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 312:
jj_consume_token(312);
TableReference();
break;
default:
jj_la1[60] = 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 321:
expression = ColumnValues(statement);
break;
case 315:
jj_consume_token(315);
UpdateColumn();
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[61] = jj_gen;
break label_4;
}
jj_consume_token(312);
UpdateColumn();
}
jj_consume_token(316);
jj_consume_token(307);
jj_consume_token(315);
if (jj_2_5(2)) {
UpdateValues(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case 315:
FullSelectStatement(statement);
break;
default:
jj_la1[62] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(316);
break;
default:
jj_la1[63] = 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_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[64] = jj_gen;
break label_5;
}
jj_consume_token(312);
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(statement instanceof DMLStatement)
{
expression = replaceNextOrCurrSequenceValue(expression, (DMLStatement)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[65] = 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[66] = 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[67] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OFFSET:
case 312:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
jj_consume_token(312);
break;
case K_OFFSET:
jj_consume_token(K_OFFSET);
break;
default:
jj_la1[68] = 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[69] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[70] = jj_gen;
;
}
break;
default:
jj_la1[71] = 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[72] = 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[73] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IGNORE:
jj_consume_token(K_IGNORE);
break;
default:
jj_la1[74] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INTO:
jj_consume_token(K_INTO);
break;
default:
jj_la1[75] = jj_gen;
;
}
table = TableName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case K_VALUES:
case 315:
if (jj_2_6(4)) {
jj_consume_token(315);
insertColumns = InsertColumns();
jj_consume_token(316);
} else {
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_VALUES:
insertValues = InsertValues(statement);
break;
case K_SELECT:
case 315:
expression = FullSelectStatement(statement);
break;
default:
jj_la1[76] = 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[77] = 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[78] = 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_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[79] = jj_gen;
break label_6;
}
jj_consume_token(312);
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_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
case 315:
;
break;
default:
jj_la1[80] = jj_gen;
break label_7;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
jj_consume_token(312);
break;
default:
jj_la1[81] = 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(315);
expression = InsertValue(statement);
if(expression != null)insertValues.add(expression);
label_8:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[82] = jj_gen;
break label_8;
}
jj_consume_token(312);
expression = InsertValue(statement);
if(expression != null)insertValues.add(expression);
}
jj_consume_token(316);
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(statement instanceof DMLStatement)
{
expression = replaceNextOrCurrSequenceValue(expression, (DMLStatement)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_9:
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[83] = jj_gen;
break label_9;
}
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_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[84] = jj_gen;
break label_10;
}
jj_consume_token(312);
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(307);
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_7(2147483647)) {
jj_consume_token(315);
expression = SubSelectStatement(statement);
jj_consume_token(316);
} else if (jj_2_8(1)) {
expression = SQLSimpleExpression(statement);
} else {
jj_consume_token(-1);
throw new ParseException();
}
if(statement instanceof DMLStatement)
{
expression = replaceNextOrCurrSequenceValue(expression, (DMLStatement)statement);
}
{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[85] = 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 318:
jj_consume_token(318);
tableName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 318:
jj_consume_token(318);
columnName = EntityName();
break;
default:
jj_la1[86] = jj_gen;
;
}
break;
default:
jj_la1[87] = 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);
}
}
/*
* if column with table name, router can doRoute with this table
* specially, for global sequence, the sequence name is refer the table name
*/
if(table == null)
{
if(tableName != null && !tableName.equals(""))
{
table = new Table();
Schema schema = null;
if(schemaName != null && !schemaName.equals(""))
{
schema = new Schema();
schema.setName(schemaName);
}
table.setSchema(schema);
table.setName(tableName);
tableAliasMap.put(table.toString(),table);
}
}
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 321:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 321:
jj_consume_token(321);
break;
default:
jj_la1[88] = jj_gen;
;
}
token = jj_consume_token(IDENTIFIER);
{if (true) return token.image;}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 321:
jj_consume_token(321);
break;
default:
jj_la1[89] = 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[90] = 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 307:
token = jj_consume_token(307);
break;
case 322:
token = jj_consume_token(322);
break;
case 323:
token = jj_consume_token(323);
break;
case 324:
token = jj_consume_token(324);
break;
case 325:
token = jj_consume_token(325);
break;
case 326:
token = jj_consume_token(326);
break;
case 327:
token = jj_consume_token(327);
break;
default:
jj_la1[91] = 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;
Token t = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 321:
schemaName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 318:
jj_consume_token(318);
tableName = EntityName();
break;
default:
jj_la1[92] = jj_gen;
;
}
break;
case K_DUAL:
t = jj_consume_token(K_DUAL);
schemaName = t.image;
break;
default:
jj_la1[93] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
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[94] = 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[95] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[96] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_IGNORE_INDEX:
case K_FORCE_INDEX:
case 339:
INDEX();
break;
default:
jj_la1[97] = 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_9(1)) {
SQLSimpleExpression(statement);
} else {
;
}
WhenStatement(statement);
label_11:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_WHEN:
;
break;
default:
jj_la1[98] = jj_gen;
break label_11;
}
WhenStatement(statement);
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ELSE:
ElseStatement(statement);
break;
default:
jj_la1[99] = 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_10(2)) {
ForUpdateClause();
} else if (jj_2_11(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[100] = 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 315:
jj_consume_token(315);
expression = FullSelectStatement(statement);
jj_consume_token(316);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_UNION:
UnionClause();
unionedExpression = FullSelectStatement(statement);
break;
default:
jj_la1[101] = jj_gen;
;
}
break;
default:
jj_la1[102] = 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[103] = 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(statement instanceof DMLStatement)
{
DMLStatement selectFromDual = (DMLStatement)statement;
if(tableStack.size() == 1)
{
// if the table name is not "DUAL", do not need to do global sequence replace
Table table = tableStack.peek();
if(!MysqlSyntaxConstants.DUAL_TABLE_NAME.equalsIgnoreCase(table.getName()))
{
selectFromDual.clearSeqColumn();
selectFromDual.clearBatchSeqFetchCall();
}
}
else
{
/* do not need to do grobal sequence replace for select from multiple tables
* for example: select * from A,B
*/
selectFromDual.clearSeqColumn();
selectFromDual.clearBatchSeqFetchCall();
}
}
if(fromExpression != null)
{
andExpression.addExpression(fromExpression);
}
break;
default:
jj_la1[104] = 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[105] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_GROUP:
GroupByClause(statement);
break;
default:
jj_la1[106] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ORDER:
OrderByClause(statement);
break;
default:
jj_la1[107] = 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[108] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OFFSET:
case 312:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
jj_consume_token(312);
break;
case K_OFFSET:
jj_consume_token(K_OFFSET);
break;
default:
jj_la1[109] = 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[110] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[111] = jj_gen;
;
}
break;
default:
jj_la1[112] = jj_gen;
;
}
if(statement instanceof DMLStatement)
{
DMLStatement selectFromDual = (DMLStatement)statement;
if(tableStack.size() == 0)
{
// 如果没有from 子句也不执行替换
selectFromDual.clearSeqColumn();
selectFromDual.clearBatchSeqFetchCall();
}
}
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 K_DISTINCTROW:
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 K_DISTINCTROW:
jj_consume_token(K_DISTINCTROW);
break;
default:
jj_la1[113] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[114] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_HIGH_PRIORITY:
jj_consume_token(K_HIGH_PRIORITY);
break;
default:
jj_la1[115] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_STRAIGHT_JOIN:
jj_consume_token(K_STRAIGHT_JOIN);
break;
default:
jj_la1[116] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SQL_SMALL_RESULT:
jj_consume_token(K_SQL_SMALL_RESULT);
break;
default:
jj_la1[117] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SQL_BIG_RESULT:
jj_consume_token(K_SQL_BIG_RESULT);
break;
default:
jj_la1[118] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SQL_BUFFER_RESULT:
jj_consume_token(K_SQL_BUFFER_RESULT);
break;
default:
jj_la1[119] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SQL_CACHE:
case K_SQL_NO_CACHE:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SQL_CACHE:
jj_consume_token(K_SQL_CACHE);
break;
case K_SQL_NO_CACHE:
jj_consume_token(K_SQL_NO_CACHE);
break;
default:
jj_la1[120] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[121] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SQL_CALC_FOUND_ROWS:
jj_consume_token(K_SQL_CALC_FOUND_ROWS);
break;
default:
jj_la1[122] = 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 328:
jj_consume_token(328);
label_12:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[123] = jj_gen;
break label_12;
}
jj_consume_token(312);
SelectItem(statement);
}
break;
default:
jj_la1[125] = jj_gen;
if (jj_2_12(1)) {
SelectItem(statement);
label_13:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[124] = jj_gen;
break label_13;
}
jj_consume_token(312);
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_13(2)) {
EntityName();
jj_consume_token(329);
} else if (jj_2_14(4)) {
EntityName();
jj_consume_token(318);
EntityName();
jj_consume_token(329);
} else if (jj_2_15(2)) {
expression = SQLSimpleExpression(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case 315:
expression = FullSelectStatement(statement);
break;
default:
jj_la1[126] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
if(expression instanceof ColumnExpression)
{
column = ((ColumnExpression)expression).getColumn();
((DMLStatement)statement).addSelectColumn(column.getName(),column);
if(statement instanceof DMLStatement)
{
replaceNextOrCurrSequenceValue(expression, (DMLStatement)statement);
}
}else if(expression instanceof FunctionExpression)
{
String columnName = ((FunctionExpression)expression).getFunction().getName();
column = new Column();
column.setName(columnName);
((DMLStatement)statement).addSelectColumn(columnName,column);
Function fun = ((FunctionExpression)expression).getFunction();
if(statement instanceof DMLStatement)
{
if(fun instanceof BulkValFuntion)
{
replaceBatchSeqValue((FunctionExpression)expression, (DMLStatement)statement);
}
}
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 307:
jj_consume_token(307);
SQLSimpleExpression(statement);
break;
default:
jj_la1[127] = 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[128] = 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[129] = 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[130] = 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_14:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[131] = jj_gen;
break label_14;
}
jj_consume_token(312);
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_15:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_JOIN:
case K_LEFT:
case K_NATURAL:
case K_CROSS:
case K_RIGHT:
;
break;
default:
jj_la1[132] = jj_gen;
break label_15;
}
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_NATURAL:
case K_RIGHT:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NATURAL:
jj_consume_token(K_NATURAL);
break;
default:
jj_la1[133] = 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[134] = 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[135] = jj_gen;
;
}
break;
default:
jj_la1[138] = jj_gen;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_CROSS:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
jj_consume_token(K_INNER);
break;
case K_CROSS:
jj_consume_token(K_CROSS);
break;
default:
jj_la1[136] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[137] = jj_gen;
;
}
}
jj_consume_token(K_JOIN);
if (jj_2_16(2)) {
expression = TableSpec(statement);
label_16:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_JOIN:
case K_LEFT:
case K_NATURAL:
case K_CROSS:
case K_RIGHT:
;
break;
default:
jj_la1[139] = jj_gen;
break label_16;
}
JoinedTable(statement);
}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 315:
jj_consume_token(315);
expression = TableSpec(statement);
label_17:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_INNER:
case K_JOIN:
case K_LEFT:
case K_NATURAL:
case K_CROSS:
case K_RIGHT:
;
break;
default:
jj_la1[140] = jj_gen;
break label_17;
}
JoinedTable(statement);
}
jj_consume_token(316);
break;
default:
jj_la1[141] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_ON:
case K_USING:
JoinCondition(statement);
break;
default:
jj_la1[142] = jj_gen;
;
}
{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 K_DUAL:
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 321:
table = TableReference();
break;
case K_TABLE:
case 315:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_TABLE:
jj_consume_token(K_TABLE);
break;
default:
jj_la1[143] = jj_gen;
;
}
jj_consume_token(315);
expression = FullSelectStatement(statement);
jj_consume_token(316);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AS:
case IDENTIFIER:
CorrelationClause();
break;
default:
jj_la1[144] = jj_gen;
;
}
break;
default:
jj_la1[145] = 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(315);
SQLExpression(statement);
label_18:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[146] = jj_gen;
break label_18;
}
jj_consume_token(312);
SQLExpression(statement);
}
jj_consume_token(316);
break;
default:
jj_la1[147] = 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[148] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 315:
ColumnNames();
break;
default:
jj_la1[149] = jj_gen;
;
}
}
final public void ColumnNames() throws ParseException {
jj_consume_token(315);
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[150] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
label_19:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[151] = jj_gen;
break label_19;
}
jj_consume_token(312);
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[152] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(316);
}
final public void GroupByClause(Statement statement) throws ParseException {
jj_consume_token(K_GROUP);
jj_consume_token(K_BY);
GroupByColumn(statement);
label_20:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[153] = jj_gen;
break label_20;
}
jj_consume_token(312);
GroupByColumn(statement);
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_HAVING:
jj_consume_token(K_HAVING);
SQLExpression(statement);
break;
default:
jj_la1[154] = 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_DESC:
case K_ASC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESC:
jj_consume_token(K_DESC);
break;
case K_ASC:
jj_consume_token(K_ASC);
break;
default:
jj_la1[155] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[156] = jj_gen;
;
}
label_21:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[157] = jj_gen;
break label_21;
}
jj_consume_token(312);
OrderByColumn(statement);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESC:
case K_ASC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_DESC:
jj_consume_token(K_DESC);
break;
case K_ASC:
jj_consume_token(K_ASC);
break;
default:
jj_la1[158] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[159] = 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_22:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_OR:
case K_OR2:
;
break;
default:
jj_la1[160] = jj_gen;
break label_22;
}
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[161] = 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_23:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_AND:
;
break;
default:
jj_la1[162] = jj_gen;
break label_23;
}
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_17(2)) {
ExistsClause(statement);
} else if (jj_2_18(1)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT:
jj_consume_token(K_NOT);
not = true;
break;
default:
jj_la1[163] = 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[164] = jj_gen;
;
}
jj_consume_token(K_EXISTS);
jj_consume_token(315);
expression = FullSelectStatement(statement);
jj_consume_token(316);
{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_19(2147483647)) {
jj_consume_token(315);
SQLExpressionList(statement);
jj_consume_token(316);
} else if (jj_2_20(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 307:
case 322:
case 323:
case 324:
case 325:
case 326:
case 327:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 307:
case 322:
case 323:
case 324:
case 325:
case 326:
case 327:
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[165] = jj_gen;
if (jj_2_21(2)) {
otherExpression = SQLInClause(expression,statement);
{if (true) return otherExpression;}
} else if (jj_2_22(2)) {
otherExpression = SQLBetweenClause(expression,statement);
{if (true) return otherExpression;}
} else if (jj_2_23(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_24(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[166] = 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_24:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[167] = jj_gen;
break label_24;
}
jj_consume_token(312);
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_25(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[168] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[169] = jj_gen;
;
}
jj_consume_token(315);
FullSelectStatement(statement);
jj_consume_token(316);
} else if (jj_2_26(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[170] = jj_gen;
;
}
jj_consume_token(K_IN);
jj_consume_token(315);
if (jj_2_27(2)) {
list = SQLExpressionList(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_SELECT:
case 315:
expression = FullSelectStatement(statement);
break;
default:
jj_la1[171] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
jj_consume_token(316);
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[172] = 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[173] = 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_25:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 330:
case 331:
case 332:
case 333:
;
break;
default:
jj_la1[174] = jj_gen;
break label_25;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 330:
token = jj_consume_token(330);
break;
case 331:
token = jj_consume_token(331);
break;
case 332:
token = jj_consume_token(332);
break;
case 333:
token = jj_consume_token(333);
break;
default:
jj_la1[175] = 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_26:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_MOD:
case K_DIV:
case 328:
case 334:
case 335:
;
break;
default:
jj_la1[176] = jj_gen;
break label_26;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 328:
token = jj_consume_token(328);
break;
case 334:
token = jj_consume_token(334);
break;
case 335:
token = jj_consume_token(335);
break;
case K_MOD:
token = jj_consume_token(K_MOD);
break;
case K_DIV:
token = jj_consume_token(K_DIV);
break;
default:
jj_la1[177] = 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 330:
case 331:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 330:
jj_consume_token(330);
break;
case 331:
jj_consume_token(331);
isSub=true;
break;
default:
jj_la1[178] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[179] = 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[180] = 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[182] = jj_gen;
if (jj_2_28(1)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOT2:
jj_consume_token(K_NOT2);
not = true;
break;
default:
jj_la1[181] = 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 315:
jj_consume_token(315);
expression = SQLExpression(statement);
jj_consume_token(316);
break;
default:
jj_la1[183] = jj_gen;
if (jj_2_29(2147483647)) {
expression = FunctionCall(statement);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
case S_QUOTED_IDENTIFIER:
case S_COMMA_IDENTIFIER:
case 321:
column = ColumnName();
ColumnExpression columnExpression = new ColumnExpression();
columnExpression.setColumn(column);
{if (true) return columnExpression;}
break;
default:
jj_la1[184] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
}
}
{if (true) return expression;}
throw new Error("Missing return statement in function");
}
final public Expression FunctionCall(Statement statement) throws ParseException {
String schemaName = null;
String seqName = null;
String funcName = null;
List<Expression > argExps = null;
FunctionExpression funExp = null;
Table table = null;
Schema schema = null;
// caters the following
// function(args)
// package.function(args)
// user.package.function(args)
// however note that "distinct/all/*" can be only used with
// inbuilt functions but no distinction is made between inbuilt
// function and custom functions
schemaName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 318:
jj_consume_token(318);
seqName = EntityName();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 318:
jj_consume_token(318);
funcName = EntityName();
break;
default:
jj_la1[185] = jj_gen;
;
}
break;
default:
jj_la1[186] = jj_gen;
;
}
if(seqName == null){
funcName = schemaName;
schemaName = null;
}else{
if(funcName == null){
funcName = seqName;
seqName = schemaName;
schemaName = null;
}
}
if(funcName.equalsIgnoreCase(SeqConstants.BULKVAL))
{
funExp = new FunctionExpression();
BulkValFuntion bulkValFunc = new BulkValFuntion();
bulkValFunc.setName(funcName);
table = new Table();
table.setName(seqName);
if(schemaName != null){
schema = new Schema();
schema.setName(schemaName);
table.setSchema(schema);
}
bulkValFunc.setTable(table);
funExp.setFunction(bulkValFunc);
}
jj_consume_token(315);
if (jj_2_31(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[187] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[188] = jj_gen;
;
}
if (jj_2_30(1)) {
argExps = SQLExpressionList(statement);
if(argExps.size() == 1)
{
Expression argExp = argExps.get(0);
if(argExp instanceof ConstantExpression)
{
if(funExp != null)
{
funExp.setArgList(argExps);
}
}
else
{
funExp = null;
}
}
else
{
funExp = null;
}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 328:
jj_consume_token(328);
break;
default:
jj_la1[189] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
} else {
;
}
jj_consume_token(316);
if(argExps == null || argExps.isEmpty()) funExp = null;
{if (true) return funExp;}
throw new Error("Missing return statement in function");
}
final public void CastFunctionCall(Statement statement) throws ParseException {
jj_consume_token(K_CAST);
jj_consume_token(315);
SQLSimpleExpression(statement);
jj_consume_token(K_AS);
DataTypes();
jj_consume_token(316);
}
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[190] = 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 315:
jj_consume_token(315);
if (jj_2_32(1)) {
expression = SQLSimpleExpression(statement);
if(funExpression != null){
if(expression == null){
nullExp = true;
}
funExpression.addArgExpression(expression);
}
} else {
;
}
label_27:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[191] = jj_gen;
break label_27;
}
jj_consume_token(312);
expression = SQLSimpleExpression(statement);
if(funExpression != null){
if(expression == null){
nullExp = true;
}
funExpression.addArgExpression(expression);
}
}
jj_consume_token(316);
break;
default:
jj_la1[192] = 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[193] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 315:
jj_consume_token(315);
jj_consume_token(FLOATING_POINT_LITERAL);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
jj_consume_token(312);
jj_consume_token(FLOATING_POINT_LITERAL);
break;
default:
jj_la1[194] = jj_gen;
;
}
jj_consume_token(316);
break;
default:
jj_la1[195] = jj_gen;
;
}
break;
case 336:
jj_consume_token(336);
break;
case 337:
jj_consume_token(337);
break;
case 338:
jj_consume_token(338);
break;
case K_BOOLEAN:
jj_consume_token(K_BOOLEAN);
break;
default:
jj_la1[196] = 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_28:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[197] = jj_gen;
break label_28;
}
jj_consume_token(312);
ColumnName();
}
break;
default:
jj_la1[198] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case K_NOWAIT:
jj_consume_token(K_NOWAIT);
break;
default:
jj_la1[199] = 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[200] = 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 339:
jj_consume_token(339);
break;
default:
jj_la1[201] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(315);
jj_consume_token(IDENTIFIER);
label_29:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 312:
;
break;
default:
jj_la1[202] = jj_gen;
break label_29;
}
jj_consume_token(312);
jj_consume_token(IDENTIFIER);
}
jj_consume_token(316);
}
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[203] = 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[204] = 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[205] = 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[206] = 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_2_29(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_29(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(28, xla); }
}
private boolean jj_2_30(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_30(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(29, xla); }
}
private boolean jj_2_31(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_31(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(30, xla); }
}
private boolean jj_2_32(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_32(); }
catch(LookaheadSuccess ls) { return true; }
finally { jj_save(31, xla); }
}
private boolean jj_3R_156() {
if (jj_scan_token(K_WHERE)) return true;
if (jj_3R_121()) return true;
return false;
}
private boolean jj_3R_98() {
if (jj_scan_token(K_DUAL)) return true;
return false;
}
private boolean jj_3R_38() {
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(69)) return true;
}
return false;
}
private boolean jj_3R_101() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(115)) {
jj_scanpos = xsp;
if (jj_scan_token(114)) {
jj_scanpos = xsp;
if (jj_scan_token(339)) return true;
}
}
if (jj_scan_token(315)) return true;
if (jj_scan_token(IDENTIFIER)) return true;
while (true) {
xsp = jj_scanpos;
if (jj_3R_187()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_185() {
if (jj_scan_token(K_ON)) return true;
if (jj_3R_121()) return true;
return false;
}
private boolean jj_3R_183() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_185()) {
jj_scanpos = xsp;
if (jj_3R_186()) return true;
}
return false;
}
private boolean jj_3R_66() {
if (jj_3R_82()) return true;
return false;
}
private boolean jj_3R_97() {
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_117()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_117() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_64() {
if (jj_3R_79()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_81()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_67() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(79)) jj_scanpos = xsp;
if (jj_scan_token(315)) return true;
if (jj_3R_80()) return true;
if (jj_scan_token(316)) return true;
xsp = jj_scanpos;
if (jj_3R_178()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_90() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_97()) {
jj_scanpos = xsp;
if (jj_3R_98()) return true;
}
return false;
}
private boolean jj_3R_37() {
if (jj_scan_token(K_FOR)) return true;
if (jj_scan_token(K_UPDATE)) return true;
return false;
}
private boolean jj_3R_40() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_66()) {
jj_scanpos = xsp;
if (jj_3R_67()) return true;
}
return false;
}
private boolean jj_3R_137() {
if (jj_scan_token(315)) return true;
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_138()) jj_scanpos = xsp;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_60() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_180() {
if (jj_3R_183()) return true;
return false;
}
private boolean jj_3_16() {
if (jj_3R_40()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_41()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_83() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(47)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(46)) {
jj_scanpos = xsp;
if (jj_scan_token(100)) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(66)) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_36() {
if (jj_3R_64()) return true;
return false;
}
private boolean jj_3R_68() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_83()) {
jj_scanpos = xsp;
if (jj_3R_84()) return true;
}
if (jj_scan_token(K_JOIN)) return true;
xsp = jj_scanpos;
if (jj_3_16()) {
jj_scanpos = xsp;
if (jj_3R_179()) return true;
}
xsp = jj_scanpos;
if (jj_3R_180()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_174() {
if (jj_3R_68()) return true;
return false;
}
private boolean jj_3R_142() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(307)) {
jj_scanpos = xsp;
if (jj_scan_token(322)) {
jj_scanpos = xsp;
if (jj_scan_token(323)) {
jj_scanpos = xsp;
if (jj_scan_token(324)) {
jj_scanpos = xsp;
if (jj_scan_token(325)) {
jj_scanpos = xsp;
if (jj_scan_token(326)) {
jj_scanpos = xsp;
if (jj_scan_token(327)) return true;
}
}
}
}
}
}
return false;
}
private boolean jj_3R_34() {
if (jj_3R_60()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_61()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_132() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(15)) {
jj_scanpos = xsp;
if (jj_scan_token(92)) {
jj_scanpos = xsp;
if (jj_scan_token(91)) {
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(57)) {
jj_scanpos = xsp;
if (jj_scan_token(58)) {
jj_scanpos = xsp;
if (jj_scan_token(70)) {
jj_scanpos = xsp;
if (jj_scan_token(30)) return true;
}
}
}
}
}
}
}
}
}
xsp = jj_scanpos;
if (jj_3R_137()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_59() {
if (jj_scan_token(S_COMMA_IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_127() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_132()) {
jj_scanpos = xsp;
if (jj_scan_token(336)) {
jj_scanpos = xsp;
if (jj_scan_token(337)) {
jj_scanpos = xsp;
if (jj_scan_token(338)) {
jj_scanpos = xsp;
if (jj_scan_token(11)) return true;
}
}
}
}
return false;
}
private boolean jj_3R_134() {
if (jj_scan_token(312)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_73() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3R_47() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_73()) jj_scanpos = xsp;
if (jj_scan_token(K_LIKE)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_58() {
if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_136() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_57() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(321)) jj_scanpos = xsp;
if (jj_scan_token(IDENTIFIER)) return true;
xsp = jj_scanpos;
if (jj_scan_token(321)) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_31() {
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_3_32() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_124() {
if (jj_scan_token(315)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_32()) jj_scanpos = xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_134()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_151() {
if (jj_3R_80()) return true;
return false;
}
private boolean jj_3R_53() {
if (jj_3R_76()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_124()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_4() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(127)) {
jj_scanpos = xsp;
if (jj_scan_token(130)) {
jj_scanpos = xsp;
if (jj_scan_token(132)) {
jj_scanpos = xsp;
if (jj_scan_token(135)) return true;
}
}
}
xsp = jj_scanpos;
if (jj_3R_33()) jj_scanpos = xsp;
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_163() {
if (jj_3R_40()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_174()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_85() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_136()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_72() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3R_46() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_72()) jj_scanpos = xsp;
if (jj_scan_token(K_BETWEEN)) return true;
if (jj_3R_36()) return true;
if (jj_scan_token(K_AND)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_177() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(9)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(300)) {
jj_scanpos = xsp;
if (jj_scan_token(305)) return true;
}
return false;
}
private boolean jj_3R_164() {
if (jj_scan_token(312)) return true;
if (jj_3R_163()) return true;
return false;
}
private boolean jj_3R_76() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(41)) {
jj_scanpos = xsp;
if (jj_scan_token(81)) {
jj_scanpos = xsp;
if (jj_scan_token(103)) {
jj_scanpos = xsp;
if (jj_scan_token(102)) {
jj_scanpos = xsp;
if (jj_scan_token(105)) {
jj_scanpos = xsp;
if (jj_scan_token(106)) {
jj_scanpos = xsp;
if (jj_scan_token(107)) {
jj_scanpos = xsp;
if (jj_scan_token(108)) {
jj_scanpos = xsp;
if (jj_scan_token(104)) {
jj_scanpos = xsp;
if (jj_scan_token(42)) {
jj_scanpos = xsp;
if (jj_scan_token(300)) return true;
}
}
}
}
}
}
}
}
}
}
return false;
}
private boolean jj_3R_155() {
if (jj_scan_token(K_FROM)) return true;
if (jj_3R_163()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_164()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_78() {
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_85()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_118() {
if (jj_scan_token(K_CAST)) return true;
if (jj_scan_token(315)) return true;
if (jj_3R_36()) return true;
if (jj_scan_token(K_AS)) return true;
if (jj_3R_127()) return true;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3_27() {
if (jj_3R_50()) return true;
return false;
}
private boolean jj_3R_173() {
if (jj_scan_token(312)) return true;
if (jj_3R_39()) return true;
return false;
}
private boolean jj_3R_74() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3_30() {
if (jj_3R_50()) return true;
return false;
}
private boolean jj_3R_135() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_48() {
if (jj_scan_token(K_IS)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_74()) jj_scanpos = xsp;
if (jj_scan_token(K_NULL)) return true;
return false;
}
private boolean jj_3R_176() {
if (jj_scan_token(307)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_49() {
if (jj_scan_token(315)) return true;
if (jj_scan_token(K_SELECT)) return true;
return false;
}
private boolean jj_3_7() {
Token xsp;
if (jj_scan_token(315)) return true;
while (true) {
xsp = jj_scanpos;
if (jj_scan_token(315)) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(K_SELECT)) return true;
return false;
}
private boolean jj_3_12() {
if (jj_3R_39()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_173()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_55() {
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_71() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3_31() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_55()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_30()) {
jj_scanpos = xsp;
if (jj_scan_token(328)) return true;
}
return false;
}
private boolean jj_3R_45() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_71()) jj_scanpos = xsp;
if (jj_scan_token(K_IN)) return true;
if (jj_scan_token(315)) return true;
xsp = jj_scanpos;
if (jj_3_27()) {
jj_scanpos = xsp;
if (jj_3R_151()) return true;
}
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3_8() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3_25() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(8)) {
jj_scanpos = xsp;
if (jj_scan_token(6)) {
jj_scanpos = xsp;
if (jj_3R_49()) return true;
}
}
return false;
}
private boolean jj_3R_125() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_135()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_65() {
if (jj_3R_80()) return true;
return false;
}
private boolean jj_3R_161() {
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_15() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3_14() {
if (jj_3R_31()) return true;
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
if (jj_scan_token(329)) return true;
return false;
}
private boolean jj_3_26() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_150() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_161()) jj_scanpos = xsp;
if (jj_scan_token(315)) return true;
if (jj_3R_80()) return true;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3_13() {
if (jj_3R_31()) return true;
if (jj_scan_token(329)) return true;
return false;
}
private boolean jj_3R_143() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_150()) {
jj_scanpos = xsp;
if (jj_3_26()) return true;
}
return false;
}
private boolean jj_3R_39() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_13()) {
jj_scanpos = xsp;
if (jj_3_14()) {
jj_scanpos = xsp;
if (jj_3_15()) {
jj_scanpos = xsp;
if (jj_3R_65()) return true;
}
}
}
xsp = jj_scanpos;
if (jj_3R_176()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_177()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_77() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_172() {
if (jj_scan_token(312)) return true;
if (jj_3R_39()) return true;
return false;
}
private boolean jj_3R_162() {
if (jj_scan_token(328)) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_172()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_154() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_162()) {
jj_scanpos = xsp;
if (jj_3_12()) return true;
}
return false;
}
private boolean jj_3R_152() {
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(156)) return true;
}
}
return false;
}
private boolean jj_3R_153() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(162)) {
jj_scanpos = xsp;
if (jj_scan_token(163)) return true;
}
return false;
}
private boolean jj_3R_171() {
if (jj_scan_token(S_PARAMETER_MARKER)) return true;
return false;
}
private boolean jj_3R_75() {
if (jj_scan_token(312)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_120() {
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_125()) jj_scanpos = xsp;
if (jj_scan_token(315)) return true;
xsp = jj_scanpos;
if (jj_3_31()) jj_scanpos = xsp;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_116() {
if (jj_scan_token(K_SELECT)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_152()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(157)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(158)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(159)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(160)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(161)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_153()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_scan_token(164)) jj_scanpos = xsp;
if (jj_3R_154()) return true;
return false;
}
private boolean jj_3R_50() {
if (jj_3R_36()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_75()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_54() {
if (jj_scan_token(318)) return true;
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_77()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_24() {
if (jj_3R_48()) return true;
return false;
}
private boolean jj_3R_160() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(312)) {
jj_scanpos = xsp;
if (jj_scan_token(72)) return true;
}
xsp = jj_scanpos;
if (jj_3R_171()) {
jj_scanpos = xsp;
if (jj_scan_token(295)) return true;
}
return false;
}
private boolean jj_3R_52() {
return false;
}
private boolean jj_3_29() {
if (jj_3R_31()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_54()) jj_scanpos = xsp;
if (jj_scan_token(315)) return true;
return false;
}
private boolean jj_3_23() {
if (jj_3R_47()) return true;
return false;
}
private boolean jj_3_22() {
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_114() {
if (jj_3R_120()) return true;
return false;
}
private boolean jj_3R_115() {
if (jj_3R_78()) return true;
return false;
}
private boolean jj_3_21() {
if (jj_3R_45()) return true;
return false;
}
private boolean jj_3R_113() {
if (jj_scan_token(315)) return true;
if (jj_3R_121()) return true;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_63() {
if (jj_scan_token(312)) return true;
if (jj_3R_62()) return true;
return false;
}
private boolean jj_3R_51() {
if (jj_scan_token(K_NOT2)) return true;
return false;
}
private boolean jj_3_28() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_51()) jj_scanpos = xsp;
jj_lookingAhead = true;
jj_semLA = getFunction(getToken(1).image.toUpperCase())!= null;
jj_lookingAhead = false;
if (!jj_semLA || jj_3R_52()) return true;
if (jj_3R_53()) return true;
return false;
}
private boolean jj_3R_112() {
if (jj_3R_119()) return true;
return false;
}
private boolean jj_3R_111() {
if (jj_3R_118()) return true;
return false;
}
private boolean jj_3R_159() {
if (jj_scan_token(S_PARAMETER_MARKER)) return true;
return false;
}
private boolean jj_3R_148() {
if (jj_scan_token(K_LIMIT)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_159()) {
jj_scanpos = xsp;
if (jj_scan_token(295)) return true;
}
xsp = jj_scanpos;
if (jj_3R_160()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_147() {
if (jj_3R_158()) return true;
return false;
}
private boolean jj_3R_146() {
if (jj_3R_157()) return true;
return false;
}
private boolean jj_3R_145() {
if (jj_3R_156()) return true;
return false;
}
private boolean jj_3_19() {
if (jj_scan_token(315)) return true;
if (jj_3R_36()) return true;
if (jj_scan_token(312)) return true;
return false;
}
private boolean jj_3R_140() {
if (jj_3R_142()) return true;
if (jj_3R_143()) return true;
return false;
}
private boolean jj_3R_139() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_140()) {
jj_scanpos = xsp;
if (jj_3_21()) {
jj_scanpos = xsp;
if (jj_3_22()) {
jj_scanpos = xsp;
if (jj_3_23()) {
jj_scanpos = xsp;
if (jj_3_24()) return true;
}
}
}
}
return false;
}
private boolean jj_3R_141() {
if (jj_3R_149()) return true;
if (jj_3R_80()) return true;
return false;
}
private boolean jj_3R_129() {
if (jj_3R_133()) return true;
return false;
}
private boolean jj_3_20() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_70() {
if (jj_scan_token(315)) return true;
if (jj_3R_50()) return true;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_44() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_70()) {
jj_scanpos = xsp;
if (jj_3_20()) return true;
}
xsp = jj_scanpos;
if (jj_3R_139()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_110() {
if (jj_scan_token(K_INTERVAL)) return true;
if (jj_3R_121()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(102)) {
jj_scanpos = xsp;
if (jj_scan_token(107)) {
jj_scanpos = xsp;
if (jj_scan_token(105)) {
jj_scanpos = xsp;
if (jj_scan_token(108)) {
jj_scanpos = xsp;
if (jj_scan_token(106)) {
jj_scanpos = xsp;
if (jj_scan_token(104)) {
jj_scanpos = xsp;
if (jj_scan_token(103)) return true;
}
}
}
}
}
}
return false;
}
private boolean jj_3R_175() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(112)) {
jj_scanpos = xsp;
if (jj_scan_token(113)) return true;
}
return false;
}
private boolean jj_3R_62() {
if (jj_3R_78()) return true;
return false;
}
private boolean jj_3R_109() {
if (jj_scan_token(S_PARAMETER_MARKER)) return true;
return false;
}
private boolean jj_3_2() {
if (jj_3R_31()) return true;
if (jj_scan_token(K_ON)) return true;
return false;
}
private boolean jj_3R_69() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3R_42() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_69()) jj_scanpos = xsp;
if (jj_scan_token(K_EXISTS)) return true;
if (jj_scan_token(315)) return true;
if (jj_3R_80()) return true;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_32() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(149)) jj_scanpos = xsp;
if (jj_scan_token(K_TABLE)) return true;
return false;
}
private boolean jj_3R_144() {
if (jj_3R_155()) return true;
return false;
}
private boolean jj_3R_35() {
if (jj_3R_62()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_63()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_96() {
if (jj_3R_116()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_144()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_145()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_146()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_147()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_148()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_128() {
if (jj_3R_123()) return true;
return false;
}
private boolean jj_3R_43() {
if (jj_scan_token(K_NOT)) return true;
return false;
}
private boolean jj_3_18() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_43()) jj_scanpos = xsp;
if (jj_3R_44()) return true;
return false;
}
private boolean jj_3R_149() {
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_130() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_17()) {
jj_scanpos = xsp;
if (jj_3_18()) return true;
}
return false;
}
private boolean jj_3_17() {
if (jj_3R_42()) return true;
return false;
}
private boolean jj_3R_108() {
if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
private boolean jj_3R_107() {
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
private boolean jj_3R_170() {
if (jj_scan_token(312)) return true;
if (jj_3R_168()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_175()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_105() {
if (jj_scan_token(K_FALSE)) return true;
return false;
}
private boolean jj_3R_106() {
if (jj_scan_token(INTEGER_LITERAL)) return true;
return false;
}
private boolean jj_3R_88() {
if (jj_scan_token(315)) return true;
if (jj_3R_80()) return true;
if (jj_scan_token(316)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_141()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_182() {
if (jj_3R_68()) return true;
return false;
}
private boolean jj_3R_87() {
if (jj_3R_96()) return true;
return false;
}
private boolean jj_3R_80() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_87()) {
jj_scanpos = xsp;
if (jj_3R_88()) return true;
}
return false;
}
private boolean jj_3R_131() {
if (jj_scan_token(K_AND)) return true;
if (jj_3R_130()) return true;
return false;
}
private boolean jj_3R_122() {
if (jj_3R_130()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_131()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_104() {
if (jj_scan_token(K_TRUE)) return true;
return false;
}
private boolean jj_3R_95() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_103()) {
jj_scanpos = xsp;
if (jj_3R_104()) {
jj_scanpos = xsp;
if (jj_3R_105()) {
jj_scanpos = xsp;
if (jj_3R_106()) {
jj_scanpos = xsp;
if (jj_3R_107()) {
jj_scanpos = xsp;
if (jj_3R_108()) {
jj_scanpos = xsp;
if (jj_3R_109()) {
jj_scanpos = xsp;
if (jj_3R_110()) {
jj_scanpos = xsp;
if (jj_3R_111()) {
jj_scanpos = xsp;
if (jj_3R_112()) {
jj_scanpos = xsp;
if (jj_3_28()) {
jj_scanpos = xsp;
if (jj_3R_113()) {
jj_scanpos = xsp;
if (jj_3R_114()) {
jj_scanpos = xsp;
if (jj_3R_115()) return true;
}
}
}
}
}
}
}
}
}
}
}
}
}
return false;
}
private boolean jj_3R_103() {
if (jj_scan_token(K_NULL)) return true;
return false;
}
private boolean jj_3_3() {
if (jj_scan_token(K_DROP)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(144)) {
jj_scanpos = xsp;
if (jj_scan_token(148)) {
jj_scanpos = xsp;
if (jj_scan_token(147)) {
jj_scanpos = xsp;
if (jj_scan_token(145)) {
jj_scanpos = xsp;
if (jj_scan_token(136)) {
jj_scanpos = xsp;
if (jj_3R_32()) {
jj_scanpos = xsp;
if (jj_scan_token(39)) return true;
}
}
}
}
}
}
return false;
}
private boolean jj_3R_169() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(112)) {
jj_scanpos = xsp;
if (jj_scan_token(113)) return true;
}
return false;
}
private boolean jj_3_11() {
if (jj_3R_38()) return true;
return false;
}
private boolean jj_3_10() {
if (jj_3R_37()) return true;
return false;
}
private boolean jj_3R_189() {
if (jj_scan_token(312)) return true;
if (jj_3R_121()) return true;
return false;
}
private boolean jj_3R_89() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(328)) {
jj_scanpos = xsp;
if (jj_scan_token(334)) {
jj_scanpos = xsp;
if (jj_scan_token(335)) {
jj_scanpos = xsp;
if (jj_scan_token(81)) {
jj_scanpos = xsp;
if (jj_scan_token(82)) return true;
}
}
}
}
if (jj_3R_86()) return true;
return false;
}
private boolean jj_3R_133() {
if (jj_scan_token(K_ELSE)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_190() {
if (jj_scan_token(312)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(300)) {
jj_scanpos = xsp;
if (jj_scan_token(305)) return true;
}
return false;
}
private boolean jj_3R_166() {
if (jj_scan_token(312)) return true;
if (jj_3R_165()) return true;
return false;
}
private boolean jj_3R_187() {
if (jj_scan_token(312)) return true;
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_126() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(63)) {
jj_scanpos = xsp;
if (jj_scan_token(64)) return true;
}
if (jj_3R_122()) return true;
return false;
}
private boolean jj_3R_102() {
if (jj_scan_token(331)) return true;
return false;
}
private boolean jj_3R_56() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(150)) {
jj_scanpos = xsp;
if (jj_scan_token(151)) return true;
}
return false;
}
private boolean jj_3R_123() {
if (jj_scan_token(K_WHEN)) return true;
if (jj_3R_121()) return true;
if (jj_scan_token(K_THEN)) return true;
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_30() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_56()) jj_scanpos = xsp;
if (jj_scan_token(K_TEMPORARY)) return true;
return false;
}
private boolean jj_3_6() {
if (jj_scan_token(315)) return true;
if (jj_3R_35()) return true;
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_121() {
if (jj_3R_122()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_126()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_9() {
if (jj_3R_36()) return true;
return false;
}
private boolean jj_3R_94() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(330)) {
jj_scanpos = xsp;
if (jj_3R_102()) return true;
}
return false;
}
private boolean jj_3R_178() {
if (jj_3R_181()) return true;
return false;
}
private boolean jj_3R_86() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_94()) jj_scanpos = xsp;
if (jj_3R_95()) return true;
return false;
}
private boolean jj_3R_179() {
if (jj_scan_token(315)) return true;
if (jj_3R_40()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_182()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_92() {
if (jj_3R_101()) return true;
return false;
}
private boolean jj_3R_119() {
if (jj_scan_token(K_CASE)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_9()) jj_scanpos = xsp;
if (jj_3R_123()) return true;
while (true) {
xsp = jj_scanpos;
if (jj_3R_128()) { jj_scanpos = xsp; break; }
}
xsp = jj_scanpos;
if (jj_3R_129()) jj_scanpos = xsp;
if (jj_scan_token(K_END)) return true;
return false;
}
private boolean jj_3R_168() {
if (jj_3R_44()) return true;
return false;
}
private boolean jj_3R_81() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(330)) {
jj_scanpos = xsp;
if (jj_scan_token(331)) {
jj_scanpos = xsp;
if (jj_scan_token(332)) {
jj_scanpos = xsp;
if (jj_scan_token(333)) return true;
}
}
}
if (jj_3R_79()) return true;
return false;
}
private boolean jj_3R_100() {
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_184() {
if (jj_3R_188()) return true;
return false;
}
private boolean jj_3R_158() {
if (jj_scan_token(K_ORDER)) return true;
if (jj_scan_token(K_BY)) return true;
if (jj_3R_168()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_169()) jj_scanpos = xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_170()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_99() {
if (jj_scan_token(S_COMMA_IDENTIFIER)) return true;
return false;
}
private boolean jj_3R_91() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(9)) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_99()) {
jj_scanpos = xsp;
if (jj_3R_100()) return true;
}
return false;
}
private boolean jj_3R_165() {
if (jj_3R_44()) return true;
return false;
}
private boolean jj_3R_33() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(32)) {
jj_scanpos = xsp;
if (jj_scan_token(36)) return true;
}
return false;
}
private boolean jj_3R_186() {
if (jj_scan_token(K_USING)) return true;
if (jj_scan_token(315)) return true;
if (jj_3R_121()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_189()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_61() {
if (jj_scan_token(312)) return true;
return false;
}
private boolean jj_3_1() {
if (jj_scan_token(K_CREATE)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_30()) jj_scanpos = xsp;
if (jj_scan_token(K_TABLE)) return true;
return false;
}
private boolean jj_3R_167() {
if (jj_scan_token(K_HAVING)) return true;
if (jj_3R_121()) return true;
return false;
}
private boolean jj_3R_157() {
if (jj_scan_token(K_GROUP)) return true;
if (jj_scan_token(K_BY)) return true;
if (jj_3R_165()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_166()) { jj_scanpos = xsp; break; }
}
xsp = jj_scanpos;
if (jj_3R_167()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_82() {
if (jj_3R_90()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_91()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_92()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_41() {
if (jj_3R_68()) return true;
return false;
}
private boolean jj_3R_188() {
if (jj_scan_token(315)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(300)) {
jj_scanpos = xsp;
if (jj_scan_token(305)) return true;
}
while (true) {
xsp = jj_scanpos;
if (jj_3R_190()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(316)) return true;
return false;
}
private boolean jj_3R_79() {
if (jj_3R_86()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_89()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_93() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(40)) {
jj_scanpos = xsp;
if (jj_scan_token(48)) return true;
}
return false;
}
private boolean jj_3R_84() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_93()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_181() {
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_184()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_5() {
if (jj_3R_34()) return true;
return false;
}
private boolean jj_3R_138() {
if (jj_scan_token(312)) return true;
if (jj_scan_token(FLOATING_POINT_LITERAL)) 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[207];
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 private int[] jj_la1_6;
static private int[] jj_la1_7;
static private int[] jj_la1_8;
static private int[] jj_la1_9;
static private int[] jj_la1_10;
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();
jj_la1_init_6();
jj_la1_init_7();
jj_la1_init_8();
jj_la1_init_9();
jj_la1_init_10();
}
private static void jj_la1_init_0() {
jj_la1_0 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x880000,0x1,0x1,0x0,0x0,0x880000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,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,0xa0000000,0x0,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,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,0x0,0x0,0x0,0x0,0x0,0x100600,0x0,0x0,0x0,0x0,0x100600,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x11,0x100000,0x11,0x11,0x100000,0x100000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x600,0x0,0x40,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x4,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,0x1e100,0x8000,0x4000,0x0,0x10100,0x10100,0xc000,0x1e100,0x1e100,0x0,0x10000000,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x200000,0x200000,0x0,0x220030,0x0,0x0,0x0,0x200000,0x0,0x200000,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x600,0x0,0x0,0x6001800,0x0,0x0,0x6001800,0x0,0x8000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_2() {
jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1813e00,0x0,0x0,0x200,0x400,0x1813800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x100,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x800,0x0,0x0,0x40000000,0x2,0x0,0x100,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x4000800,0x4001800,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x18,0x200000,0x800,0x0,0x0,0x40000000,0x0,0x2,0x0,0x100,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x8000,0x0,0x8000,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x60000,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x18000040,0x0,0x0,0x18000040,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_3() {
jj_la1_3 = new int[] {0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100e000,0x0,0x0,0x0,0x0,0x100e000,0xc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x2000000,0x3c000000,0x0,0x0,0x0,0x6,0x40100000,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x10,0x10,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000,0x30000,0x0,0x30000,0x30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fc0,0x0,0x26,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_4() {
jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb008400,0x0,0x0,0x0,0x0,0xb008400,0x0,0x4000000,0x0,0x0,0x0,0xc00000,0xc00000,0xe00000,0x1000,0x0,0x0,0x0,0x200000,0x3b0100,0x2000,0x0,0x0,0x0,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x94,0x0,0x0,0xb,0x0,0x0,0xb,0x9f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,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,0x10000000,0x10000000,0x20000000,0x40000000,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,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_5() {
jj_la1_5 = new int[] {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,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x2,0xc,0xc,0x10,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,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,};
}
private static void jj_la1_init_6() {
jj_la1_6 = new int[] {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,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,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,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,};
}
private static void jj_la1_init_7() {
jj_la1_7 = new int[] {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,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,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,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,};
}
private static void jj_la1_init_8() {
jj_la1_8 = new int[] {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,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_9() {
jj_la1_9 = new int[] {0x8080,0x80,0x700000,0x1000000,0x800000,0x4000000,0x8000000,0x10000000,0x20000000,0x4000000,0x8700000,0x20000000,0x20000000,0x0,0x0,0x8000000,0x0,0x0,0x40000000,0x1000000,0x40000000,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x1000000,0x31000,0x0,0x39000,0x0,0x0,0x0,0x19000,0x40000000,0x80000,0x19080,0x1000,0x1000000,0x0,0x40080,0x1000000,0x40080,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x8000000,0x8031000,0x1000000,0x0,0x0,0x40080,0x1000000,0x40080,0x1000000,0x0,0x0,0x0,0x0,0x0,0x8000000,0x8000000,0x0,0x1000000,0x9000000,0x1000000,0x1000000,0x0,0x1000000,0x0,0x40000000,0x40000000,0x0,0x0,0x31000,0x80000,0x40000000,0x31000,0x0,0x21000,0x21000,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x40080,0x1000000,0x40080,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x0,0x8000000,0x80000,0x0,0x21000,0x21000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x1000,0x8031000,0x1000000,0x0,0x0,0x8000000,0x21000,0x1000000,0x21000,0x1000000,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000,0x80000,0x1000000,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48180,0x8000000,0x31000,0x40000000,0x40000000,0x0,0x0,0x0,0x1000,0x1000000,0x8000000,0x0,0x1000000,0x8000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x1000000,0x21000,0x21000,0x1000,0x100,};
}
private static void jj_la1_init_10() {
jj_la1_10 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,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,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x2,0xfc,0x0,0x2,0x0,0x0,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,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfc,0xfc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00,0x3c00,0xc100,0xc100,0xc00,0xc00,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x70000,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,};
}
final private JJCalls[] jj_2_rtns = new JJCalls[32];
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 < 207; 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 < 207; 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 < 207; 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 < 207; 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 < 207; 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 < 207; 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[340];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 207; 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;
}
if ((jj_la1_6[i] & (1<<j)) != 0) {
la1tokens[192+j] = true;
}
if ((jj_la1_7[i] & (1<<j)) != 0) {
la1tokens[224+j] = true;
}
if ((jj_la1_8[i] & (1<<j)) != 0) {
la1tokens[256+j] = true;
}
if ((jj_la1_9[i] & (1<<j)) != 0) {
la1tokens[288+j] = true;
}
if ((jj_la1_10[i] & (1<<j)) != 0) {
la1tokens[320+j] = true;
}
}
}
}
for (int i = 0; i < 340; 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 < 32; 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;
case 28: jj_3_29(); break;
case 29: jj_3_30(); break;
case 30: jj_3_31(); break;
case 31: jj_3_32(); 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;
}
}