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