/* 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.statment.*; 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 Statment statment; 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]) ; } Statment statment = p.doParse(); System.out.println(statment.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{ return functionMap.get(indent); } //return funMap.get(indent); } public Statment doParse() throws com.meidusa.amoeba.parser.ParseException{ try{ Statment statment = this.parse(); if(statment != null){ statment.setParameterCount(parameterIndex); } return statment; }catch(Exception e){ throw new com.meidusa.amoeba.parser.ParseException(e); } } public Statment getParsedStatment(){ return statment; } 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 Statment parse() throws ParseException { Expression expression = null; Statment statment = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_EXPLAIN: jj_consume_token(K_EXPLAIN); break; default: jj_la1[0] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_DELETE: statment = DeleteQuery(); break; case K_INSERT: case K_REPLACE: statment = InsertQuery(); break; case K_SELECT: case 128: statment = SelectQuery(); break; case K_UPDATE: statment = UpdateQuery(); break; case K_SET: jj_consume_token(K_SET); statment = PropertySetQuery(new PropertyStatment()); break; case K_USE: statment = SelectSchema(); break; case K_COMMIT: jj_consume_token(K_COMMIT); statment = new CommitStatment(); break; case K_ROLLBACK: jj_consume_token(K_ROLLBACK); statment = new RollbackStatment(); break; case K_START_TRANSACTION: jj_consume_token(K_START_TRANSACTION); statment = new StartTansactionStatment(); break; default: jj_la1[1] = 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: 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; default: jj_la1[2] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(128); jj_consume_token(IDENTIFIER); label_1: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[3] = jj_gen; break label_1; } jj_consume_token(129); jj_consume_token(IDENTIFIER); } jj_consume_token(130); break; default: jj_la1[4] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 131: jj_consume_token(131); break; case 0: jj_consume_token(0); break; default: jj_la1[5] = jj_gen; jj_consume_token(-1); throw new ParseException(); } if(statment instanceof DMLStatment){ 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); ((DMLStatment)statment).setTables(tables); } {if (true) return statment;} throw new Error("Missing return statement in function"); } final public Statment 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[6] = jj_gen; jj_consume_token(-1); throw new ParseException(); } PropertyStatment statment = new PropertyStatment(); statment.addProperty("schema",new ConstantExpression(schema)); {if (true) return statment;} throw new Error("Missing return statement in function"); } /* Statment ShowQuery() :{ Expression expression = null; Column column = null; Table table = null; }{ "SHOW"{return ShowStatment.STATMENT;}//[(<K_CREATE> [<K_TABLE>|<IDENTIFIER>])|<K_FULL>] column = ColumnName() [<K_FROM> table = TableReference()]{ ColumnExpression columnExpression = new ColumnExpression(); columnExpression.setColumn(column); ShowStatment show = new ShowStatment(); show.setExpression(columnExpression); return show; } } */ final public Statment PropertySetQuery(PropertyStatment statment) 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[7] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[8] = 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[9] = 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[10] = 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 132: jj_consume_token(132); name = jj_consume_token(IDENTIFIER); propertyName = propertyName+"."+name.image; break; default: jj_la1[11] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 133: jj_consume_token(133); break; default: jj_la1[12] = 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[13] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[14] = jj_gen; jj_consume_token(-1); throw new ParseException(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: jj_consume_token(129); PropertySetQuery(statment); break; default: jj_la1[15] = jj_gen; ; } if(value != null){ ConstantExpression consExp= new ConstantExpression(value); statment.addProperty(propertyName,consExp); } {if (true) return statment;} throw new Error("Missing return statement in function"); } final public Statment UpdateQuery() throws ParseException { Expression expression = null; Table table = null; DMLStatment statment = null; table = UpdateStatement(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_WHERE: expression = WhereClause(); break; default: jj_la1[16] = jj_gen; ; } statment = new UpdateStatment(); statment.setExpression(expression); {if (true) return statment;} throw new Error("Missing return statement in function"); } final public Table UpdateStatement() throws ParseException { Table table = null; jj_consume_token(K_UPDATE); table = TableReference(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: jj_consume_token(129); TableReference(); break; default: jj_la1[17] = jj_gen; ; } jj_consume_token(K_SET); AssignmentClause(); {if (true) return table;} throw new Error("Missing return statement in function"); } final public Expression AssignmentClause() throws ParseException { Expression expression = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENTIFIER: case S_QUOTED_IDENTIFIER: case S_COMMA_IDENTIFIER: expression = ColumnValues(); break; case 128: jj_consume_token(128); UpdateColumn(); label_2: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[18] = jj_gen; break label_2; } jj_consume_token(129); UpdateColumn(); } jj_consume_token(130); jj_consume_token(133); jj_consume_token(128); if (jj_2_1(2)) { UpdateValues(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_SELECT: case 128: FullSelectStatement(); break; default: jj_la1[19] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(130); break; default: jj_la1[20] = 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() throws ParseException { Expression expression = null; List<Expression> list = new ArrayList<Expression>(); expression = UpdateValue(); list.add(expression); label_3: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[21] = jj_gen; break label_3; } jj_consume_token(129); expression = UpdateValue(); list.add(expression); } {if (true) return list;} throw new Error("Missing return statement in function"); } final public Expression UpdateValue() throws ParseException { Expression expression = null; expression = SQLSimpleExpression(); {if (true) return expression;} throw new Error("Missing return statement in function"); } final public Statment DeleteQuery() throws ParseException { Expression expression = null; Table table = null; DMLStatment statment = null; table = DeleteStatement(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_WHERE: expression = WhereClause(); break; default: jj_la1[22] = jj_gen; ; } statment = new DeleteStatment(); statment.setExpression(expression); {if (true) return statment;} 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[23] = jj_gen; ; } table = TableReference(); {if (true) return table;} throw new Error("Missing return statement in function"); } final public Statment InsertQuery() throws ParseException { Table table = null; DMLStatment statment = new InsertStatment(); Expression expression = null; List<Column> insertColumns = null; 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[24] = 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[25] = jj_gen; ; } table = TableName(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_SELECT: case K_VALUES: case 128: if (jj_2_2(4)) { jj_consume_token(128); insertColumns = InsertColumns(); jj_consume_token(130); } else { ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_VALUES: insertValues = InsertValues(); break; case K_SELECT: case 128: expression = FullSelectStatement(); break; default: jj_la1[26] = jj_gen; jj_consume_token(-1); throw new ParseException(); } if(insertValues == null){ statment.setExpression(expression); }else{ if(insertColumns != null){ AndExpression andExpression = new AndExpression(); int index = 0; for(Column column:insertColumns){ ColumnExpression colExpression = new ColumnExpression(); colExpression.setColumn(column); ComparisonExpression compExp = new ComparisonExpression(); compExp.setComparison(Comparative.Equivalent); compExp.setExpression(insertValues.get(index)); colExpression.setExpression(compExp); andExpression.addExpression(colExpression); index ++; } statment.setExpression(andExpression); } } break; case K_SET: jj_consume_token(K_SET); expression = AssignmentClause(); statment.setExpression(expression); break; default: jj_la1[27] = jj_gen; jj_consume_token(-1); throw new ParseException(); } {if (true) return statment;} 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 129: ; break; default: jj_la1[28] = jj_gen; break label_4; } jj_consume_token(129); 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<Expression> InsertValues() throws ParseException { List<Expression> insertValues = new ArrayList<Expression>(); Expression expression = null; jj_consume_token(K_VALUES); jj_consume_token(128); expression = InsertValue(); insertValues.add(expression); label_5: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[29] = jj_gen; break label_5; } jj_consume_token(129); expression = InsertValue(); insertValues.add(expression); } jj_consume_token(130); {if (true) return insertValues;} 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() throws ParseException { Expression expression = null; expression = SQLSimpleExpression(); {if (true) return expression;} throw new Error("Missing return statement in function"); } final public Statment SelectQuery() throws ParseException { Expression expression = null; DMLStatment statment = null; expression = FullSelectStatement(); label_6: 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[30] = jj_gen; break label_6; } ExtraClauses(); } statment = new SelectStatment(); statment.setExpression(expression); {if (true) return statment;} throw new Error("Missing return statement in function"); } final public Expression ColumnValues() throws ParseException { Expression expression = null; AndExpression andExpression = new AndExpression(); expression = ColumnValue(); if(expression != null) andExpression.addExpression(expression); label_7: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[31] = jj_gen; break label_7; } jj_consume_token(129); expression = ColumnValue(); if(expression != null) andExpression.addExpression(expression); } {if (true) return andExpression;} throw new Error("Missing return statement in function"); } final public Expression ColumnValue() throws ParseException { ColumnExpression colExpression = new ColumnExpression(); Expression expression = null; Column column = null; column = ColumnName(); jj_consume_token(133); expression = UpdatedValue(); 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() throws ParseException { Expression expression = null; if (jj_2_3(2147483647)) { jj_consume_token(128); expression = SubSelectStatement(); jj_consume_token(130); } else if (jj_2_4(1)) { expression = SQLSimpleExpression(); } else { jj_consume_token(-1); throw new ParseException(); } {if (true) return expression;} throw new Error("Missing return statement in function"); } final public ComparisonExpression IsNullClause() 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[32] = 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 132: jj_consume_token(132); tableName = EntityName(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 132: jj_consume_token(132); columnName = EntityName(); break; default: jj_la1[33] = jj_gen; ; } break; default: jj_la1[34] = 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: token = jj_consume_token(IDENTIFIER); {if (true) return token.image;} 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[35] = 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 133: token = jj_consume_token(133); break; case 134: token = jj_consume_token(134); break; case 135: token = jj_consume_token(135); break; case 136: token = jj_consume_token(136); break; case 137: token = jj_consume_token(137); break; case 138: token = jj_consume_token(138); break; case 139: token = jj_consume_token(139); break; default: jj_la1[36] = 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 132: jj_consume_token(132); tableName = EntityName(); break; default: jj_la1[37] = 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: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_AS: jj_consume_token(K_AS); break; default: jj_la1[38] = jj_gen; ; } token = jj_consume_token(IDENTIFIER); table.setAlias(token.image); break; default: jj_la1[39] = jj_gen; ; } if(table.getAlias() != null){ tableAliasMap.put(table.getAlias(),table); } {if (true) return table;} throw new Error("Missing return statement in function"); } final public void CaseStatement() throws ParseException { jj_consume_token(K_CASE); if (jj_2_5(1)) { SQLSimpleExpression(); } else { ; } WhenStatement(); label_8: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_WHEN: ; break; default: jj_la1[40] = jj_gen; break label_8; } WhenStatement(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_ELSE: ElseStatement(); break; default: jj_la1[41] = jj_gen; ; } jj_consume_token(K_END); } final public void WhenStatement() throws ParseException { jj_consume_token(K_WHEN); SQLExpression(); jj_consume_token(K_THEN); SQLSimpleExpression(); } final public void ElseStatement() throws ParseException { jj_consume_token(K_ELSE); SQLSimpleExpression(); } final public void ExtraClauses() 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[42] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } } final public Expression FullSelectStatement() throws ParseException { Expression expression = null; Expression unionedExpression = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_SELECT: expression = SubSelectStatement(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_UNION: UnionClause(); unionedExpression = FullSelectStatement(); break; default: jj_la1[43] = jj_gen; ; } break; case 128: jj_consume_token(128); expression = FullSelectStatement(); jj_consume_token(130); break; default: jj_la1[44] = 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[45] = jj_gen; ; } } final public Expression SubSelectStatement() throws ParseException { Expression expression = null; SelectClause(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_FROM: FromClause(); break; default: jj_la1[46] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_WHERE: expression = WhereClause(); break; default: jj_la1[47] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_GROUP: GroupByClause(); break; default: jj_la1[48] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_ORDER: OrderByClause(); break; default: jj_la1[49] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_LIMIT: jj_consume_token(K_LIMIT); jj_consume_token(INTEGER_LITERAL); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: jj_consume_token(129); jj_consume_token(INTEGER_LITERAL); break; default: jj_la1[50] = jj_gen; ; } break; default: jj_la1[51] = jj_gen; ; } {if (true) return expression;} throw new Error("Missing return statement in function"); } final public void SelectClause() throws ParseException { jj_consume_token(K_SELECT); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_ALL: case K_DISTINCT: case 140: 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 140: jj_consume_token(140); break; default: jj_la1[52] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[53] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 141: jj_consume_token(141); break; default: jj_la1[54] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 142: jj_consume_token(142); break; default: jj_la1[55] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 143: jj_consume_token(143); break; default: jj_la1[56] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 144: jj_consume_token(144); break; default: jj_la1[57] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 145: jj_consume_token(145); break; default: jj_la1[58] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 146: case 147: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 146: jj_consume_token(146); break; case 147: jj_consume_token(147); break; default: jj_la1[59] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[60] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 148: jj_consume_token(148); break; default: jj_la1[61] = jj_gen; ; } SelectList(); } /* Checks for whatever follows SELECT */ final public void SelectList() throws ParseException { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 149: jj_consume_token(149); label_9: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[62] = jj_gen; break label_9; } jj_consume_token(129); SelectItem(); } break; default: jj_la1[64] = jj_gen; if (jj_2_8(1)) { SelectItem(); label_10: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[63] = jj_gen; break label_10; } jj_consume_token(129); SelectItem(); } } else { jj_consume_token(-1); throw new ParseException(); } } } final public void SelectItem() throws ParseException { if (jj_2_9(2)) { EntityName(); jj_consume_token(150); } else if (jj_2_10(4)) { EntityName(); jj_consume_token(132); EntityName(); jj_consume_token(150); } else if (jj_2_11(1)) { SQLSimpleExpression(); } else { jj_consume_token(-1); throw new ParseException(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 133: jj_consume_token(133); SQLSimpleExpression(); break; default: jj_la1[65] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_AS: case IDENTIFIER: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_AS: jj_consume_token(K_AS); break; default: jj_la1[66] = jj_gen; ; } jj_consume_token(IDENTIFIER); break; default: jj_la1[67] = jj_gen; ; } } final public void FromClause() throws ParseException { jj_consume_token(K_FROM); FromItem(); label_11: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[68] = jj_gen; break label_11; } jj_consume_token(129); FromItem(); } } final public void FromItem() throws ParseException { TableSpec(); label_12: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_INNER: case K_JOIN: case K_LEFT: case K_RIGHT: case 151: case 152: ; break; default: jj_la1[69] = jj_gen; break label_12; } JoinedTable(); } } final public void JoinedTable() throws ParseException { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_LEFT: case K_RIGHT: case 151: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 151: jj_consume_token(151); break; default: jj_la1[70] = 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[71] = 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[72] = jj_gen; ; } break; default: jj_la1[75] = jj_gen; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_INNER: case 152: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_INNER: jj_consume_token(K_INNER); break; case 152: jj_consume_token(152); break; default: jj_la1[73] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[74] = jj_gen; ; } } jj_consume_token(K_JOIN); if (jj_2_12(2)) { TableSpec(); 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 151: case 152: ; break; default: jj_la1[76] = jj_gen; break label_13; } JoinedTable(); } } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 128: jj_consume_token(128); TableSpec(); 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 151: case 152: ; break; default: jj_la1[77] = jj_gen; break label_14; } JoinedTable(); } jj_consume_token(130); break; default: jj_la1[78] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } JoinCondition(); } final public void TableSpec() throws ParseException { Table table = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENTIFIER: case S_QUOTED_IDENTIFIER: case S_COMMA_IDENTIFIER: table = TableReference(); break; case K_TABLE: case 128: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_TABLE: jj_consume_token(K_TABLE); break; default: jj_la1[79] = jj_gen; ; } jj_consume_token(128); FullSelectStatement(); jj_consume_token(130); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_AS: case IDENTIFIER: CorrelationClause(); break; default: jj_la1[80] = jj_gen; ; } break; default: jj_la1[81] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } final public void JoinCondition() throws ParseException { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_ON: jj_consume_token(K_ON); SQLExpression(); break; case K_USING: jj_consume_token(K_USING); jj_consume_token(128); SQLExpression(); jj_consume_token(130); break; default: jj_la1[82] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } final public Expression WhereClause() throws ParseException { Expression expression; jj_consume_token(K_WHERE); expression = SQLExpression(); {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[83] = jj_gen; ; } jj_consume_token(IDENTIFIER); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 128: ColumnNames(); break; default: jj_la1[84] = jj_gen; ; } } final public void ColumnNames() throws ParseException { jj_consume_token(128); 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[85] = jj_gen; jj_consume_token(-1); throw new ParseException(); } label_15: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[86] = jj_gen; break label_15; } jj_consume_token(129); 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[87] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(130); } final public void GroupByClause() throws ParseException { jj_consume_token(K_GROUP); jj_consume_token(K_BY); GroupByColumn(); label_16: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[88] = jj_gen; break label_16; } jj_consume_token(129); GroupByColumn(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_HAVING: jj_consume_token(K_HAVING); SQLExpression(); break; default: jj_la1[89] = jj_gen; ; } } final public void GroupByColumn() throws ParseException { SQLSimpleExpression(); } final public void OrderByClause() throws ParseException { jj_consume_token(K_ORDER); jj_consume_token(K_BY); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 153: jj_consume_token(153); jj_consume_token(130); break; default: jj_la1[95] = jj_gen; if (jj_2_13(1)) { OrderByColumn(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENTIFIER: case S_COMMA_IDENTIFIER: 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[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[91] = jj_gen; ; } label_17: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[92] = jj_gen; break label_17; } jj_consume_token(129); OrderByColumn(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENTIFIER: case S_COMMA_IDENTIFIER: 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[93] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[94] = jj_gen; ; } } } else { jj_consume_token(-1); throw new ParseException(); } } } final public void OrderByColumn() throws ParseException { SQLSimpleExpression(); } final public Expression SQLExpression() throws ParseException { OrExpression orExpression = null; AndExpression andExpression = null; Expression expression = null; Token token; int count = 0; expression = SQLAndExpression(); orExpression = new OrExpression(expression); label_18: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_OR: ; break; default: jj_la1[96] = jj_gen; break label_18; } jj_consume_token(K_OR); expression = SQLAndExpression(); 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() throws ParseException { AndExpression andExpression = null;; Expression expression; Expression currentExpression; expression = SQLUnaryLogicalExpression(); label_19: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_AND: ; break; default: jj_la1[97] = jj_gen; break label_19; } jj_consume_token(K_AND); currentExpression = SQLUnaryLogicalExpression(); 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() throws ParseException { Expression expression = null; boolean not = false; if (jj_2_14(2)) { ExistsClause(); } else if (jj_2_15(1)) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_NOT: jj_consume_token(K_NOT); not = true; break; default: jj_la1[98] = jj_gen; ; } expression = SQLRelationalExpression(); {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() 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[99] = jj_gen; ; } jj_consume_token(K_EXISTS); jj_consume_token(128); expression = FullSelectStatement(); jj_consume_token(130); {if (true) return reverseExpression(not,expression);} throw new Error("Missing return statement in function"); } final public Expression SQLRelationalExpression() throws ParseException { Expression expression = null; Expression otherExpression = null; String functionName = null; int function = 0; if (jj_2_16(2147483647)) { jj_consume_token(128); SQLExpressionList(); jj_consume_token(130); } else if (jj_2_17(1)) { expression = SQLSimpleExpression(); } 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 133: case 134: case 135: case 136: case 137: case 138: case 139: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 133: case 134: case 135: case 136: case 137: case 138: case 139: functionName = Relop(); function = Comparative.getComparisonByIdent(functionName); otherExpression = SQLRelationalOperatorExpression(); 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[100] = jj_gen; if (jj_2_18(2)) { otherExpression = SQLInClause(expression); {if (true) return otherExpression;} } else if (jj_2_19(2)) { otherExpression = SQLBetweenClause(expression); {if (true) return otherExpression;} } else if (jj_2_20(2)) { otherExpression = SQLLikeClause(); if(expression instanceof ColumnExpression){ ColumnExpression colExp = (ColumnExpression)expression; colExp.setExpression((ComparisonExpression)otherExpression); {if (true) return colExp;} }else{ {if (true) return null;} } } else if (jj_2_21(2)) { otherExpression = IsNullClause(); if(expression instanceof ColumnExpression){ 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[101] = jj_gen; ; } {if (true) return expression;} throw new Error("Missing return statement in function"); } final public List<Expression> SQLExpressionList() throws ParseException { List<Expression> list = new ArrayList<Expression>(); Expression expression; expression = SQLSimpleExpression(); list.add(expression); label_20: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[102] = jj_gen; break label_20; } jj_consume_token(129); expression = SQLSimpleExpression(); list.add(expression); } {if (true) return list;} throw new Error("Missing return statement in function"); } final public Expression SQLRelationalOperatorExpression() throws ParseException { Expression expression = null; String functionName; int function; if (jj_2_22(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[103] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[104] = jj_gen; ; } jj_consume_token(128); FullSelectStatement(); jj_consume_token(130); } else if (jj_2_23(1)) { expression = SQLSimpleExpression(); } 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) 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[105] = jj_gen; ; } jj_consume_token(K_IN); jj_consume_token(128); if (jj_2_24(2)) { list = SQLExpressionList(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_SELECT: case 128: expression = FullSelectStatement(); break; default: jj_la1[106] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(130); 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) 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[107] = jj_gen; ; } jj_consume_token(K_BETWEEN); minExpression = SQLSimpleExpression(); jj_consume_token(K_AND); maxExpression = SQLSimpleExpression(); 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);} throw new Error("Missing return statement in function"); } final public Expression SQLLikeClause() 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[108] = jj_gen; ; } jj_consume_token(K_LIKE); expression = SQLSimpleExpression(); 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() throws ParseException { Expression expression = null; Token token = null; expression = SQLAddSubtractExpression(); {if (true) return expression;} throw new Error("Missing return statement in function"); } final public Expression SQLAddSubtractExpression() throws ParseException { Expression expression = null; Expression otherExpression = null; Token token = null; Function function; FunctionExpression superExpression = null; expression = SQLMultiplicativeExpression(); label_21: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 154: case 155: case 156: case 157: ; break; default: jj_la1[109] = jj_gen; break label_21; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 154: token = jj_consume_token(154); 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; default: jj_la1[110] = jj_gen; jj_consume_token(-1); throw new ParseException(); } otherExpression = SQLMultiplicativeExpression(); function = getFunction(token.image.toUpperCase()); 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() throws ParseException { FunctionExpression functionExpression; Expression expression; Expression otherExpression; Token token; expression = SQLUnaryExpression(); label_22: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_MOD: case K_DIV: case 149: case 158: case 159: ; break; default: jj_la1[111] = jj_gen; break label_22; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 149: token = jj_consume_token(149); break; case 158: token = jj_consume_token(158); break; case 159: token = jj_consume_token(159); break; case K_MOD: token = jj_consume_token(K_MOD); break; case K_DIV: token = jj_consume_token(K_DIV); break; default: jj_la1[112] = jj_gen; jj_consume_token(-1); throw new ParseException(); } otherExpression = SQLUnaryExpression(); 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() throws ParseException { Expression expression; boolean isSub = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 154: case 155: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 154: jj_consume_token(154); break; case 155: jj_consume_token(155); isSub=true; break; default: jj_la1[113] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[114] = jj_gen; ; } expression = SQLPrimaryExpression(); 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() throws ParseException { Token t = null; Column column = null; Expression expression = null; Comparable value = null; 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 = (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: t = jj_consume_token(S_PARAMETER_MARKER); int index = parameterIndex++; {if (true) return new ParameterExpression(index);} break; case K_INTERVAL: jj_consume_token(K_INTERVAL); expression = SQLExpression(); 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[115] = 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(); break; case K_CASE: CaseStatement(); break; default: jj_la1[116] = jj_gen; if (getFunction(getToken(1).image.toUpperCase())!= null) { expression = OverloadedFunctionCall(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 128: jj_consume_token(128); expression = SQLExpression(); jj_consume_token(130); break; default: jj_la1[117] = jj_gen; if (jj_2_25(2147483647)) { FunctionCall(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENTIFIER: case S_QUOTED_IDENTIFIER: case S_COMMA_IDENTIFIER: column = ColumnName(); ColumnExpression columnExpression = new ColumnExpression(); columnExpression.setColumn(column); {if (true) return columnExpression;} break; default: jj_la1[118] = 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() throws ParseException { EntityName(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 132: jj_consume_token(132); EntityName(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 132: jj_consume_token(132); EntityName(); break; default: jj_la1[119] = jj_gen; ; } break; default: jj_la1[120] = jj_gen; ; } jj_consume_token(128); 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[121] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: jj_la1[122] = jj_gen; ; } if (jj_2_26(1)) { SQLExpressionList(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 149: jj_consume_token(149); break; default: jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(130); } final public void CastFunctionCall() throws ParseException { jj_consume_token(K_CAST); jj_consume_token(128); SQLSimpleExpression(); jj_consume_token(K_AS); DataTypes(); jj_consume_token(130); } 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 IDENTIFIER: t = jj_consume_token(IDENTIFIER); break; default: jj_la1[124] = 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() 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 128: jj_consume_token(128); if (jj_2_27(1)) { expression = SQLSimpleExpression(); if(funExpression != null){ if(expression == null){ nullExp = true; } funExpression.addArgExpression(expression); } } else { ; } label_23: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[125] = jj_gen; break label_23; } jj_consume_token(129); expression = SQLSimpleExpression(); if(funExpression != null){ if(expression == null){ nullExp = true; } funExpression.addArgExpression(expression); } } jj_consume_token(130); break; default: jj_la1[126] = 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[127] = jj_gen; jj_consume_token(-1); throw new ParseException(); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 128: jj_consume_token(128); jj_consume_token(FLOATING_POINT_LITERAL); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: jj_consume_token(129); jj_consume_token(FLOATING_POINT_LITERAL); break; default: jj_la1[128] = jj_gen; ; } jj_consume_token(130); break; default: jj_la1[129] = jj_gen; ; } break; case 160: jj_consume_token(160); break; case 161: jj_consume_token(161); break; case 162: jj_consume_token(162); break; case K_BOOLEAN: jj_consume_token(K_BOOLEAN); break; default: jj_la1[130] = 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_24: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 129: ; break; default: jj_la1[131] = jj_gen; break label_24; } jj_consume_token(129); ColumnName(); } break; default: jj_la1[132] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case K_NOWAIT: jj_consume_token(K_NOWAIT); break; default: jj_la1[133] = 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[134] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(K_ONLY); } 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[135] = 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[136] = 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[137] = 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[138] = 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_3R_107() { Token xsp; xsp = jj_scanpos; if (jj_3R_116()) { jj_scanpos = xsp; if (jj_scan_token(160)) { jj_scanpos = xsp; if (jj_scan_token(161)) { jj_scanpos = xsp; if (jj_scan_token(162)) { jj_scanpos = xsp; if (jj_scan_token(11)) return true; } } } } return false; } private boolean jj_3R_116() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(15)) { jj_scanpos = xsp; if (jj_scan_token(86)) { jj_scanpos = xsp; if (jj_scan_token(85)) { jj_scanpos = xsp; if (jj_scan_token(17)) { jj_scanpos = xsp; if (jj_scan_token(44)) { jj_scanpos = xsp; if (jj_scan_token(45)) { jj_scanpos = xsp; if (jj_scan_token(55)) { jj_scanpos = xsp; if (jj_scan_token(56)) { jj_scanpos = xsp; if (jj_scan_token(67)) { jj_scanpos = xsp; if (jj_scan_token(30)) return true; } } } } } } } } } xsp = jj_scanpos; if (jj_3R_121()) jj_scanpos = xsp; return false; } private boolean jj_3R_76() { if (jj_scan_token(128)) return true; if (jj_3R_67()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_75() { if (jj_3R_82()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_125()) jj_scanpos = xsp; return false; } private boolean jj_3R_67() { Token xsp; xsp = jj_scanpos; if (jj_3R_75()) { jj_scanpos = xsp; if (jj_3R_76()) return true; } return false; } private boolean jj_3_24() { if (jj_3R_43()) return true; return false; } private boolean jj_3_7() { if (jj_3R_29()) return true; return false; } private boolean jj_3_6() { if (jj_3R_28()) return true; return false; } private boolean jj_3R_117() { if (jj_scan_token(K_ELSE)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3R_42() { if (jj_scan_token(128)) return true; if (jj_scan_token(K_SELECT)) return true; return false; } private boolean jj_3R_108() { if (jj_scan_token(K_WHEN)) return true; if (jj_3R_103()) return true; if (jj_scan_token(K_THEN)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3_5() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_118() { if (jj_scan_token(129)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3R_58() { if (jj_scan_token(K_NOT)) return true; return false; } private boolean jj_3R_38() { Token xsp; xsp = jj_scanpos; if (jj_3R_58()) jj_scanpos = xsp; if (jj_scan_token(K_IN)) return true; if (jj_scan_token(128)) return true; xsp = jj_scanpos; if (jj_3_24()) { jj_scanpos = xsp; if (jj_3R_135()) return true; } if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_100() { if (jj_scan_token(K_CASE)) return true; Token xsp; xsp = jj_scanpos; if (jj_3_5()) jj_scanpos = xsp; if (jj_3R_108()) return true; while (true) { xsp = jj_scanpos; if (jj_3R_109()) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; if (jj_3R_110()) jj_scanpos = xsp; if (jj_scan_token(K_END)) return true; return false; } private boolean jj_3_22() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(8)) { jj_scanpos = xsp; if (jj_scan_token(6)) { jj_scanpos = xsp; if (jj_3R_42()) return true; } } return false; } private boolean jj_3_27() { if (jj_3R_27()) 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(8)) return true; } return false; } private boolean jj_3_23() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_74() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(9)) jj_scanpos = xsp; if (jj_scan_token(IDENTIFIER)) return true; return false; } private boolean jj_3R_134() { Token xsp; xsp = jj_scanpos; if (jj_3R_144()) jj_scanpos = xsp; if (jj_scan_token(128)) return true; if (jj_3R_67()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_66() { if (jj_3R_73()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_74()) jj_scanpos = xsp; return false; } private boolean jj_3R_111() { if (jj_scan_token(128)) return true; Token xsp; xsp = jj_scanpos; if (jj_3_27()) jj_scanpos = xsp; while (true) { xsp = jj_scanpos; if (jj_3R_118()) { jj_scanpos = xsp; break; } } if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_127() { Token xsp; xsp = jj_scanpos; if (jj_3R_134()) { jj_scanpos = xsp; if (jj_3_23()) return true; } return false; } private boolean jj_3R_101() { if (jj_3R_104()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_111()) jj_scanpos = xsp; return false; } private boolean jj_3R_62() { if (jj_scan_token(129)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3R_81() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; return false; } private boolean jj_3R_43() { if (jj_3R_27()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_62()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_73() { if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_81()) jj_scanpos = xsp; return false; } private boolean jj_3R_119() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; return false; } private boolean jj_3R_120() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; return false; } private boolean jj_3_26() { if (jj_3R_43()) return true; return false; } private boolean jj_3_21() { if (jj_3R_41()) return true; return false; } private boolean jj_3R_63() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; return false; } private boolean jj_3R_104() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(42)) { jj_scanpos = xsp; if (jj_scan_token(75)) { jj_scanpos = xsp; if (jj_scan_token(97)) { jj_scanpos = xsp; if (jj_scan_token(96)) { jj_scanpos = xsp; if (jj_scan_token(99)) { jj_scanpos = xsp; if (jj_scan_token(100)) { jj_scanpos = xsp; if (jj_scan_token(101)) { jj_scanpos = xsp; if (jj_scan_token(102)) { jj_scanpos = xsp; if (jj_scan_token(98)) { jj_scanpos = xsp; if (jj_scan_token(121)) return true; } } } } } } } } } return false; } private boolean jj_3R_126() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(133)) { jj_scanpos = xsp; if (jj_scan_token(134)) { jj_scanpos = xsp; if (jj_scan_token(135)) { jj_scanpos = xsp; if (jj_scan_token(136)) { jj_scanpos = xsp; if (jj_scan_token(137)) { jj_scanpos = xsp; if (jj_scan_token(138)) { jj_scanpos = xsp; if (jj_scan_token(139)) return true; } } } } } } return false; } private boolean jj_3_20() { if (jj_3R_40()) return true; return false; } private boolean jj_3R_112() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_119()) jj_scanpos = xsp; return false; } private boolean jj_3R_52() { if (jj_scan_token(S_COMMA_IDENTIFIER)) return true; return false; } private boolean jj_3R_99() { if (jj_scan_token(K_CAST)) return true; if (jj_scan_token(128)) return true; if (jj_3R_27()) return true; if (jj_scan_token(K_AS)) return true; if (jj_3R_107()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3_19() { if (jj_3R_39()) return true; return false; } private boolean jj_3R_51() { if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true; return false; } private boolean jj_3_18() { if (jj_3R_38()) return true; return false; } private boolean jj_3R_113() { 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_50() { if (jj_scan_token(IDENTIFIER)) return true; return false; } private boolean jj_3R_31() { Token xsp; xsp = jj_scanpos; if (jj_3R_50()) { jj_scanpos = xsp; if (jj_3R_51()) { jj_scanpos = xsp; if (jj_3R_52()) return true; } } return false; } private boolean jj_3R_44() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_63()) jj_scanpos = xsp; return false; } private boolean jj_3R_71() { if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_120()) jj_scanpos = xsp; return false; } private boolean jj_3R_102() { if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_112()) jj_scanpos = xsp; if (jj_scan_token(128)) return true; xsp = jj_scanpos; if (jj_3R_113()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3_26()) { jj_scanpos = xsp; if (jj_scan_token(149)) return true; } if (jj_scan_token(130)) return true; return false; } private boolean jj_3_25() { if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_44()) jj_scanpos = xsp; if (jj_scan_token(128)) return true; return false; } private boolean jj_3_16() { if (jj_scan_token(128)) return true; if (jj_3R_27()) return true; if (jj_scan_token(129)) return true; return false; } private boolean jj_3R_96() { if (jj_3R_102()) return true; return false; } private boolean jj_3R_97() { if (jj_3R_64()) return true; return false; } private boolean jj_3R_123() { Token xsp; xsp = jj_scanpos; if (jj_3R_124()) { jj_scanpos = xsp; if (jj_3_18()) { jj_scanpos = xsp; if (jj_3_19()) { jj_scanpos = xsp; if (jj_3_20()) { jj_scanpos = xsp; if (jj_3_21()) return true; } } } } return false; } private boolean jj_3R_124() { if (jj_3R_126()) return true; if (jj_3R_127()) return true; return false; } private boolean jj_3R_95() { if (jj_scan_token(128)) return true; if (jj_3R_103()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_94() { if (jj_3R_101()) return true; return false; } private boolean jj_3R_93() { if (jj_3R_100()) return true; return false; } private boolean jj_3R_92() { if (jj_3R_99()) return true; return false; } private boolean jj_3R_64() { if (jj_3R_31()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_71()) jj_scanpos = xsp; return false; } private boolean jj_3_17() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_57() { if (jj_scan_token(128)) return true; if (jj_3R_43()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_37() { Token xsp; xsp = jj_scanpos; if (jj_3R_57()) { jj_scanpos = xsp; if (jj_3_17()) return true; } xsp = jj_scanpos; if (jj_3R_123()) jj_scanpos = xsp; return false; } private boolean jj_3R_61() { if (jj_scan_token(K_NOT)) return true; return false; } private boolean jj_3R_56() { if (jj_scan_token(K_NOT)) return true; return false; } private boolean jj_3R_35() { Token xsp; xsp = jj_scanpos; if (jj_3R_56()) jj_scanpos = xsp; if (jj_scan_token(K_EXISTS)) return true; if (jj_scan_token(128)) return true; if (jj_3R_67()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_41() { if (jj_scan_token(K_IS)) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_61()) jj_scanpos = xsp; if (jj_scan_token(K_NULL)) return true; return false; } private boolean jj_3_3() { Token xsp; if (jj_scan_token(128)) return true; while (true) { xsp = jj_scanpos; if (jj_scan_token(128)) { jj_scanpos = xsp; break; } } if (jj_scan_token(K_SELECT)) return true; return false; } private boolean jj_3R_36() { if (jj_scan_token(K_NOT)) return true; return false; } private boolean jj_3_15() { Token xsp; xsp = jj_scanpos; if (jj_3R_36()) jj_scanpos = xsp; if (jj_3R_37()) return true; return false; } private boolean jj_3_14() { if (jj_3R_35()) return true; return false; } private boolean jj_3R_114() { Token xsp; xsp = jj_scanpos; if (jj_3_14()) { jj_scanpos = xsp; if (jj_3_15()) return true; } return false; } private boolean jj_3_4() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_91() { if (jj_scan_token(K_INTERVAL)) return true; if (jj_3R_103()) return true; Token xsp; xsp = jj_scanpos; if (jj_scan_token(96)) { jj_scanpos = xsp; if (jj_scan_token(101)) { jj_scanpos = xsp; if (jj_scan_token(99)) { jj_scanpos = xsp; if (jj_scan_token(102)) { jj_scanpos = xsp; if (jj_scan_token(100)) { jj_scanpos = xsp; if (jj_scan_token(98)) { jj_scanpos = xsp; if (jj_scan_token(97)) return true; } } } } } } return false; } private boolean jj_3R_90() { if (jj_scan_token(S_PARAMETER_MARKER)) return true; return false; } private boolean jj_3R_89() { if (jj_scan_token(STRING_LITERAL)) return true; return false; } private boolean jj_3R_88() { if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; return false; } private boolean jj_3R_137() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(146)) { jj_scanpos = xsp; if (jj_scan_token(147)) return true; } return false; } private boolean jj_3R_115() { if (jj_scan_token(K_AND)) return true; if (jj_3R_114()) return true; return false; } private boolean jj_3R_105() { if (jj_3R_114()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_115()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_155() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(121)) { jj_scanpos = xsp; if (jj_scan_token(126)) return true; } return false; } private boolean jj_3R_86() { if (jj_scan_token(K_FALSE)) return true; return false; } private boolean jj_3R_87() { if (jj_scan_token(INTEGER_LITERAL)) return true; return false; } private boolean jj_3R_48() { if (jj_scan_token(129)) return true; if (jj_3R_47()) return true; return false; } private boolean jj_3R_85() { if (jj_scan_token(K_TRUE)) return true; return false; } private boolean jj_3R_80() { Token xsp; xsp = jj_scanpos; if (jj_3R_84()) { jj_scanpos = xsp; if (jj_3R_85()) { jj_scanpos = xsp; if (jj_3R_86()) { jj_scanpos = xsp; if (jj_3R_87()) { jj_scanpos = xsp; if (jj_3R_88()) { jj_scanpos = xsp; if (jj_3R_89()) { jj_scanpos = xsp; if (jj_3R_90()) { jj_scanpos = xsp; if (jj_3R_91()) { jj_scanpos = xsp; if (jj_3R_92()) { jj_scanpos = xsp; if (jj_3R_93()) { jj_scanpos = xsp; jj_lookingAhead = true; jj_semLA = getFunction(getToken(1).image.toUpperCase())!= null; jj_lookingAhead = false; if (!jj_semLA || jj_3R_94()) { jj_scanpos = xsp; if (jj_3R_95()) { jj_scanpos = xsp; if (jj_3R_96()) { jj_scanpos = xsp; if (jj_3R_97()) return true; } } } } } } } } } } } } } return false; } private boolean jj_3R_84() { if (jj_scan_token(K_NULL)) return true; return false; } private boolean jj_3R_159() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(121)) { jj_scanpos = xsp; if (jj_scan_token(126)) return true; } return false; } private boolean jj_3_13() { if (jj_3R_34()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_155()) jj_scanpos = xsp; while (true) { xsp = jj_scanpos; if (jj_3R_156()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_169() { if (jj_scan_token(129)) return true; Token xsp; xsp = jj_scanpos; if (jj_scan_token(121)) { jj_scanpos = xsp; if (jj_scan_token(126)) return true; } return false; } private boolean jj_3R_106() { if (jj_scan_token(K_OR)) return true; if (jj_3R_105()) return true; return false; } private boolean jj_3R_103() { if (jj_3R_105()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_106()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_149() { if (jj_scan_token(129)) return true; if (jj_3R_148()) return true; return false; } private boolean jj_3R_151() { if (jj_scan_token(153)) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_83() { if (jj_scan_token(155)) return true; return false; } private boolean jj_3R_78() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(149)) { jj_scanpos = xsp; if (jj_scan_token(158)) { jj_scanpos = xsp; if (jj_scan_token(159)) { jj_scanpos = xsp; if (jj_scan_token(75)) { jj_scanpos = xsp; if (jj_scan_token(76)) return true; } } } } if (jj_3R_72()) return true; return false; } private boolean jj_3R_34() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_164() { if (jj_3R_55()) return true; return false; } private boolean jj_3R_79() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(154)) { jj_scanpos = xsp; if (jj_3R_83()) return true; } return false; } private boolean jj_3R_72() { Token xsp; xsp = jj_scanpos; if (jj_3R_79()) jj_scanpos = xsp; if (jj_3R_80()) return true; return false; } private boolean jj_3R_156() { if (jj_scan_token(129)) return true; if (jj_3R_34()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_159()) jj_scanpos = xsp; return false; } private boolean jj_3R_167() { if (jj_3R_168()) return true; return false; } private boolean jj_3R_142() { if (jj_scan_token(K_ORDER)) return true; if (jj_scan_token(K_BY)) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_151()) { jj_scanpos = xsp; if (jj_3_13()) return true; } return false; } private boolean jj_3R_160() { if (jj_3R_163()) return true; return false; } private boolean jj_3_2() { if (jj_scan_token(128)) return true; if (jj_3R_26()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_148() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_77() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(41)) { jj_scanpos = xsp; if (jj_scan_token(152)) return true; } return false; } private boolean jj_3R_70() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(154)) { jj_scanpos = xsp; if (jj_scan_token(155)) { jj_scanpos = xsp; if (jj_scan_token(156)) { jj_scanpos = xsp; if (jj_scan_token(157)) return true; } } } if (jj_3R_65()) return true; return false; } private boolean jj_3R_161() { if (jj_scan_token(128)) return true; if (jj_3R_32()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_164()) { jj_scanpos = xsp; break; } } if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_69() { Token xsp; xsp = jj_scanpos; if (jj_3R_77()) jj_scanpos = xsp; return false; } private boolean jj_3R_150() { if (jj_scan_token(K_HAVING)) return true; if (jj_3R_103()) return true; return false; } private boolean jj_3R_47() { if (jj_3R_64()) return true; return false; } private boolean jj_3R_141() { if (jj_scan_token(K_GROUP)) return true; if (jj_scan_token(K_BY)) return true; if (jj_3R_148()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_149()) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; if (jj_3R_150()) jj_scanpos = xsp; return false; } private boolean jj_3R_168() { if (jj_scan_token(128)) return true; Token xsp; xsp = jj_scanpos; if (jj_scan_token(121)) { jj_scanpos = xsp; if (jj_scan_token(126)) return true; } while (true) { xsp = jj_scanpos; if (jj_3R_169()) { jj_scanpos = xsp; break; } } if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_166() { if (jj_scan_token(K_USING)) return true; if (jj_scan_token(128)) return true; if (jj_3R_103()) return true; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_26() { if (jj_3R_47()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_48()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_163() { 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_167()) jj_scanpos = xsp; return false; } private boolean jj_3R_65() { if (jj_3R_72()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_78()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_33() { if (jj_3R_55()) return true; return false; } private boolean jj_3R_140() { if (jj_scan_token(K_WHERE)) return true; if (jj_3R_103()) return true; return false; } private boolean jj_3R_165() { if (jj_scan_token(K_ON)) return true; if (jj_3R_103()) return true; return false; } private boolean jj_3R_162() { Token xsp; xsp = jj_scanpos; if (jj_3R_165()) { jj_scanpos = xsp; if (jj_3R_166()) return true; } return false; } private boolean jj_3R_54() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(73)) jj_scanpos = xsp; if (jj_scan_token(128)) return true; if (jj_3R_67()) return true; if (jj_scan_token(130)) return true; xsp = jj_scanpos; if (jj_3R_160()) jj_scanpos = xsp; return false; } private boolean jj_3R_53() { if (jj_3R_66()) return true; return false; } private boolean jj_3R_32() { Token xsp; xsp = jj_scanpos; if (jj_3R_53()) { jj_scanpos = xsp; if (jj_3R_54()) return true; } return false; } private boolean jj_3R_158() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(9)) jj_scanpos = xsp; if (jj_scan_token(IDENTIFIER)) return true; return false; } private boolean jj_3R_153() { if (jj_scan_token(129)) return true; if (jj_3R_30()) return true; return false; } private boolean jj_3R_49() { if (jj_3R_65()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_70()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_147() { if (jj_scan_token(129)) return true; if (jj_3R_146()) return true; return false; } private boolean jj_3_12() { if (jj_3R_32()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_33()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_68() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(151)) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(47)) { jj_scanpos = xsp; if (jj_scan_token(94)) return true; } xsp = jj_scanpos; if (jj_scan_token(63)) jj_scanpos = xsp; return false; } private boolean jj_3R_154() { if (jj_3R_55()) return true; return false; } private boolean jj_3R_46() { if (jj_scan_token(129)) return true; return false; } private boolean jj_3R_55() { Token xsp; xsp = jj_scanpos; if (jj_3R_68()) { jj_scanpos = xsp; if (jj_3R_69()) return true; } if (jj_scan_token(K_JOIN)) return true; xsp = jj_scanpos; if (jj_3_12()) { jj_scanpos = xsp; if (jj_3R_161()) return true; } if (jj_3R_162()) return true; return false; } private boolean jj_3_1() { if (jj_3R_25()) return true; return false; } private boolean jj_3_8() { if (jj_3R_30()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_153()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_146() { if (jj_3R_32()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_154()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_27() { if (jj_3R_49()) return true; return false; } private boolean jj_3R_139() { if (jj_scan_token(K_FROM)) return true; if (jj_3R_146()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_147()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3_11() { if (jj_3R_27()) return true; return false; } private boolean jj_3_10() { if (jj_3R_31()) return true; if (jj_scan_token(132)) return true; if (jj_3R_31()) return true; if (jj_scan_token(150)) return true; return false; } private boolean jj_3R_143() { if (jj_scan_token(129)) return true; if (jj_scan_token(INTEGER_LITERAL)) return true; return false; } private boolean jj_3R_157() { if (jj_scan_token(133)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3_9() { if (jj_3R_31()) return true; if (jj_scan_token(150)) return true; return false; } private boolean jj_3R_60() { if (jj_scan_token(K_NOT)) return true; return false; } private boolean jj_3R_40() { Token xsp; xsp = jj_scanpos; if (jj_3R_60()) jj_scanpos = xsp; if (jj_scan_token(K_LIKE)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3R_136() { 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(140)) return true; } } return false; } private boolean jj_3R_30() { Token xsp; xsp = jj_scanpos; if (jj_3_9()) { jj_scanpos = xsp; if (jj_3_10()) { jj_scanpos = xsp; if (jj_3_11()) return true; } } xsp = jj_scanpos; if (jj_3R_157()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3R_158()) jj_scanpos = xsp; return false; } private boolean jj_3R_152() { if (jj_scan_token(129)) return true; if (jj_3R_30()) return true; return false; } private boolean jj_3R_122() { if (jj_scan_token(129)) return true; if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; return false; } private boolean jj_3R_145() { if (jj_scan_token(149)) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_152()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_138() { Token xsp; xsp = jj_scanpos; if (jj_3R_145()) { jj_scanpos = xsp; if (jj_3_8()) return true; } return false; } private boolean jj_3R_98() { if (jj_scan_token(K_SELECT)) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_136()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(141)) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(142)) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(143)) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(144)) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(145)) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3R_137()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_scan_token(148)) jj_scanpos = xsp; if (jj_3R_138()) return true; return false; } private boolean jj_3R_125() { if (jj_3R_133()) return true; if (jj_3R_67()) return true; return false; } private boolean jj_3R_45() { if (jj_3R_27()) return true; return false; } private boolean jj_3R_29() { 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(66)) return true; } return false; } private boolean jj_3R_135() { if (jj_3R_67()) return true; return false; } private boolean jj_3R_132() { if (jj_scan_token(K_LIMIT)) return true; if (jj_scan_token(INTEGER_LITERAL)) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_143()) jj_scanpos = xsp; return false; } private boolean jj_3R_131() { if (jj_3R_142()) return true; return false; } private boolean jj_3R_25() { if (jj_3R_45()) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_3R_46()) { jj_scanpos = xsp; break; } } return false; } private boolean jj_3R_130() { if (jj_3R_141()) return true; return false; } private boolean jj_3R_110() { if (jj_3R_117()) return true; return false; } private boolean jj_3R_129() { if (jj_3R_140()) return true; return false; } private boolean jj_3R_128() { if (jj_3R_139()) return true; return false; } private boolean jj_3R_28() { if (jj_scan_token(K_FOR)) return true; if (jj_scan_token(K_UPDATE)) return true; return false; } private boolean jj_3R_82() { if (jj_3R_98()) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_128()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3R_129()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3R_130()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3R_131()) jj_scanpos = xsp; xsp = jj_scanpos; if (jj_3R_132()) jj_scanpos = xsp; return false; } private boolean jj_3R_133() { 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_121() { if (jj_scan_token(128)) return true; if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; Token xsp; xsp = jj_scanpos; if (jj_3R_122()) jj_scanpos = xsp; if (jj_scan_token(130)) return true; return false; } private boolean jj_3R_59() { if (jj_scan_token(K_NOT)) return true; return false; } private boolean jj_3R_39() { Token xsp; xsp = jj_scanpos; if (jj_3R_59()) jj_scanpos = xsp; if (jj_scan_token(K_BETWEEN)) return true; if (jj_3R_27()) return true; if (jj_scan_token(K_AND)) return true; if (jj_3R_27()) return true; return false; } private boolean jj_3R_109() { if (jj_3R_108()) 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[139]; 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,0x80000,0x0,0x0,0x0,0x1,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,0x200,0x200,0x0,0x1000000,0x20000000,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x100040,0x100040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,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,0x6000,0x0,0x0,0x0,0x0,0x100040,0x100040,0x0,0x0,0x0,0x0,0x40028000,0x0,0x0,0x40028800,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_1() { jj_la1_1 = new int[] {0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xc00,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x4,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc200,0x0,0x8000,0x80000000,0x200,0x200,0x8000,0xc200,0xc200,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x100000,0x100000,0x0,0x110060,0x0,0x0,0x0,0x100000,0x0,0x100000,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x1803000,0x0,0x0,0x1803000,0x0,0x2000000,0x8000000,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { jj_la1_2 = new int[] {0x20,0x600c0,0x0,0x0,0x0,0x0,0x0,0x10,0x10,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x1000000,0x0,0x0,0x40,0x0,0x0,0x1000000,0x0,0x0,0x0,0x100040,0x1000c0,0x0,0x0,0x4000003,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0x4000003,0x8000,0x40,0x0,0x0,0x1000000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x40000000,0x0,0x0,0x0,0x40000000,0x40000000,0x40000000,0x0,0x200,0x0,0x200,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x1800,0x1800,0x0,0x0,0x0,0x98000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x600008,0x0,0x0,0x600008,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_3() { jj_la1_3 = new int[] {0x0,0x1180,0x600,0x0,0x600,0x0,0x72000000,0x2000,0x2000,0x3c000,0x32000000,0x0,0x0,0x32080000,0x2040800,0x0,0x0,0x0,0x0,0x0,0x62000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x62000000,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x62000000,0x0,0x0,0x0,0x42000000,0x0,0x42000000,0x0,0x0,0x42000000,0x42000000,0x0,0x42000000,0x42000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x90180000,0x0,0x62000000,0x0,0x0,0x0,0x0,0x0,0x200007f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x42000000,0x42000000,0x2000000,0x100000,}; } private static void jj_la1_init_4() { jj_la1_4 = new int[] {0x0,0x1,0x0,0x2,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x10,0x20,0x0,0x0,0x2,0x0,0x2,0x2,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x2,0x0,0x2,0x0,0x10,0x10,0x0,0xfe0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x1000,0x1000,0x2000,0x4000,0x8000,0x10000,0x20000,0xc0000,0xc0000,0x100000,0x2,0x2,0x200000,0x20,0x0,0x0,0x2,0x1800000,0x800000,0x0,0x0,0x1000000,0x1000000,0x800000,0x1800000,0x1800000,0x1,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0xfe0,0xfe0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x3c000000,0x3c000000,0xc0200000,0xc0200000,0xc000000,0xc000000,0x0,0x0,0x1,0x0,0x10,0x10,0x0,0x0,0x200000,0x0,0x2,0x1,0x0,0x2,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_5() { jj_la1_5 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } final private JJCalls[] jj_2_rtns = new JJCalls[27]; 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 < 139; 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 < 139; 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 < 139; 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 < 139; 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 < 139; 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 < 139; 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[163]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } for (int i = 0; i < 139; 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 < 163; 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 < 27; 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; } } 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; } }