// $ANTLR 3.5.2 druidG.g 2015-04-24 15:38:08 package com.yahoo.sql4d.converter; import org.antlr.runtime.*; import java.util.ArrayList; import java.util.Arrays; import com.yahoo.sql4d.*; import com.yahoo.sql4d.beans.*; import com.yahoo.sql4d.insert.*; import com.yahoo.sql4d.delete.*; import com.yahoo.sql4d.drop.*; import com.yahoo.sql4d.insert.nodes.*; import com.yahoo.sql4d.query.*; import com.yahoo.sql4d.query.nodes.*; import com.yahoo.sql4d.query.groupby.*; import com.yahoo.sql4d.query.timeseries.*; import com.yahoo.sql4d.query.select.*; import com.yahoo.sql4d.query.search.*; import com.yahoo.sql4d.query.topn.*; import com.yahoo.sql4d.query.timeboundary.*; import com.yahoo.sql4d.query.*; import static com.yahoo.sql4d.utils.Utils.*; import static com.yahoo.sql4d.utils.DruidUtils.*; import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; /** * Copyright 2014 Yahoo! Inc. Licensed under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * See accompanying LICENSE file. */ @SuppressWarnings("all") public class druidGParser extends Parser { public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "AND", "ARITH_OPER", "AS", "ASC", "AUTO_ISO", "BETWEEN", "BREAK", "BY", "COMPARE_OPER", "CONTAINS", "COUNT", "DATE", "DATE_HOUR", "DATE_HOUR_MIN", "DATE_HOUR_MIN_SEC", "DATE_HOUR_MIN_SEC_SUB", "DATE_HOUR_MIN_SEC_SUB_TZ", "DATE_HOUR_MIN_SEC_SUB_UTC_TZ", "DATE_YEAR_MONTH_ONLY", "DATE_YEAR_ONLY", "DELETE", "DELIMITER", "DESC", "DOUBLE_SUM", "DROP", "DURATION", "EQUALS", "ESC_SEQ", "FIELD_ACCESS", "FLOAT", "FROM", "GROUP", "HAVING", "HEX_DIGIT", "HINT", "HYPER_UNIQUE", "ID", "INCLUDE", "INSERT", "INSERT_HADOOP", "INSERT_REALTIME", "INTO", "ISO", "JAVASCRIPT", "JOIN", "KAFKA", "LCURLY", "LEFT_JOIN", "LIKE", "LIMIT", "LONG", "LONG_SUM", "LPARAN", "LSQUARE", "MAX", "MAX_WINDOW", "MIN", "NEWLINE", "NOT", "NUM", "OCTAL_ESC", "ON", "OPT_AMPERSAND", "OPT_SEMI_COLON", "OR", "ORDER", "PARTITION", "PERIOD", "RCURLY", "RIGHT_JOIN", "ROLLUP", "RPARAN", "RSQUARE", "SELECT", "SINGLE_QUOTE_STRING", "SORT", "STRING", "TABLE", "THEN", "UNICODE_ESC", "UNIQUE", "VALUES", "WHERE", "WHICH", "WS", "'(*)'", "'*'", "','", "'interval'" }; public static final int EOF=-1; public static final int T__89=89; public static final int T__90=90; public static final int T__91=91; public static final int T__92=92; public static final int AND=4; public static final int ARITH_OPER=5; public static final int AS=6; public static final int ASC=7; public static final int AUTO_ISO=8; public static final int BETWEEN=9; public static final int BREAK=10; public static final int BY=11; public static final int COMPARE_OPER=12; public static final int CONTAINS=13; public static final int COUNT=14; public static final int DATE=15; public static final int DATE_HOUR=16; public static final int DATE_HOUR_MIN=17; public static final int DATE_HOUR_MIN_SEC=18; public static final int DATE_HOUR_MIN_SEC_SUB=19; public static final int DATE_HOUR_MIN_SEC_SUB_TZ=20; public static final int DATE_HOUR_MIN_SEC_SUB_UTC_TZ=21; public static final int DATE_YEAR_MONTH_ONLY=22; public static final int DATE_YEAR_ONLY=23; public static final int DELETE=24; public static final int DELIMITER=25; public static final int DESC=26; public static final int DOUBLE_SUM=27; public static final int DROP=28; public static final int DURATION=29; public static final int EQUALS=30; public static final int ESC_SEQ=31; public static final int FIELD_ACCESS=32; public static final int FLOAT=33; public static final int FROM=34; public static final int GROUP=35; public static final int HAVING=36; public static final int HEX_DIGIT=37; public static final int HINT=38; public static final int HYPER_UNIQUE=39; public static final int ID=40; public static final int INCLUDE=41; public static final int INSERT=42; public static final int INSERT_HADOOP=43; public static final int INSERT_REALTIME=44; public static final int INTO=45; public static final int ISO=46; public static final int JAVASCRIPT=47; public static final int JOIN=48; public static final int KAFKA=49; public static final int LCURLY=50; public static final int LEFT_JOIN=51; public static final int LIKE=52; public static final int LIMIT=53; public static final int LONG=54; public static final int LONG_SUM=55; public static final int LPARAN=56; public static final int LSQUARE=57; public static final int MAX=58; public static final int MAX_WINDOW=59; public static final int MIN=60; public static final int NEWLINE=61; public static final int NOT=62; public static final int NUM=63; public static final int OCTAL_ESC=64; public static final int ON=65; public static final int OPT_AMPERSAND=66; public static final int OPT_SEMI_COLON=67; public static final int OR=68; public static final int ORDER=69; public static final int PARTITION=70; public static final int PERIOD=71; public static final int RCURLY=72; public static final int RIGHT_JOIN=73; public static final int ROLLUP=74; public static final int RPARAN=75; public static final int RSQUARE=76; public static final int SELECT=77; public static final int SINGLE_QUOTE_STRING=78; public static final int SORT=79; public static final int STRING=80; public static final int TABLE=81; public static final int THEN=82; public static final int UNICODE_ESC=83; public static final int UNIQUE=84; public static final int VALUES=85; public static final int WHERE=86; public static final int WHICH=87; public static final int WS=88; // delegates public Parser[] getDelegates() { return new Parser[] {}; } // delegators public druidGParser(TokenStream input) { this(input, new RecognizerSharedState()); } public druidGParser(TokenStream input, RecognizerSharedState state) { super(input, state); } @Override public String[] getTokenNames() { return druidGParser.tokenNames; } @Override public String getGrammarFileName() { return "druidG.g"; } // $ANTLR start "program" // druidG.g:43:1: program returns [Program program] : ( (s1= grandQuery ) | (s2= grandInsert ) | (s3= grandDelete ) | (s4= grandDrop ) ); public final Program program() throws RecognitionException { Program program = null; QueryProgram s1 =null; InsertProgram s2 =null; DeleteProgram s3 =null; DropProgram s4 =null; program = null; try { // druidG.g:45:2: ( (s1= grandQuery ) | (s2= grandInsert ) | (s3= grandDelete ) | (s4= grandDrop ) ) int alt1=4; switch ( input.LA(1) ) { case SELECT: { alt1=1; } break; case INSERT: case INSERT_HADOOP: case INSERT_REALTIME: { alt1=2; } break; case DELETE: { alt1=3; } break; case DROP: { alt1=4; } break; default: NoViableAltException nvae = new NoViableAltException("", 1, 0, input); throw nvae; } switch (alt1) { case 1 : // druidG.g:45:4: (s1= grandQuery ) { // druidG.g:45:4: (s1= grandQuery ) // druidG.g:45:5: s1= grandQuery { pushFollow(FOLLOW_grandQuery_in_program49); s1=grandQuery(); state._fsp--; } program = s1; } break; case 2 : // druidG.g:46:4: (s2= grandInsert ) { // druidG.g:46:4: (s2= grandInsert ) // druidG.g:46:5: s2= grandInsert { pushFollow(FOLLOW_grandInsert_in_program61); s2=grandInsert(); state._fsp--; } program = s2; } break; case 3 : // druidG.g:47:4: (s3= grandDelete ) { // druidG.g:47:4: (s3= grandDelete ) // druidG.g:47:5: s3= grandDelete { pushFollow(FOLLOW_grandDelete_in_program73); s3=grandDelete(); state._fsp--; } program = s3; } break; case 4 : // druidG.g:48:4: (s4= grandDrop ) { // druidG.g:48:4: (s4= grandDrop ) // druidG.g:48:5: s4= grandDrop { pushFollow(FOLLOW_grandDrop_in_program85); s4=grandDrop(); state._fsp--; } program = s4; } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return program; } // $ANTLR end "program" // $ANTLR start "grandDelete" // druidG.g:51:1: grandDelete returns [DeleteProgram program] : (s1= deleteStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) ; public final DeleteProgram grandDelete() throws RecognitionException { DeleteProgram program = null; DeleteMeta s1 =null; program = null; try { // druidG.g:53:2: ( (s1= deleteStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) ) // druidG.g:53:4: (s1= deleteStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) { // druidG.g:53:4: (s1= deleteStmnt ) // druidG.g:53:5: s1= deleteStmnt { pushFollow(FOLLOW_deleteStmnt_in_grandDelete113); s1=deleteStmnt(); state._fsp--; } program = new DeleteProgram();program.addStmnt(s1); // druidG.g:54:4: ( WS )? int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==WS) ) { alt2=1; } switch (alt2) { case 1 : // druidG.g:54:4: WS { match(input,WS,FOLLOW_WS_in_grandDelete122); } break; } // druidG.g:54:8: ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) int alt5=2; switch ( input.LA(1) ) { case OPT_SEMI_COLON: { alt5=1; } break; case EOF: { alt5=1; } break; case OPT_AMPERSAND: { alt5=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 5, 0, input); throw nvae; } switch (alt5) { case 1 : // druidG.g:54:9: ( OPT_SEMI_COLON )? { // druidG.g:54:9: ( OPT_SEMI_COLON )? int alt3=2; int LA3_0 = input.LA(1); if ( (LA3_0==OPT_SEMI_COLON) ) { alt3=1; } switch (alt3) { case 1 : // druidG.g:54:9: OPT_SEMI_COLON { match(input,OPT_SEMI_COLON,FOLLOW_OPT_SEMI_COLON_in_grandDelete126); } break; } } break; case 2 : // druidG.g:54:27: ( OPT_AMPERSAND )? { // druidG.g:54:27: ( OPT_AMPERSAND )? int alt4=2; int LA4_0 = input.LA(1); if ( (LA4_0==OPT_AMPERSAND) ) { alt4=1; } switch (alt4) { case 1 : // druidG.g:54:28: OPT_AMPERSAND { match(input,OPT_AMPERSAND,FOLLOW_OPT_AMPERSAND_in_grandDelete132); program.waitForCompletion = false; } break; } } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return program; } // $ANTLR end "grandDelete" // $ANTLR start "grandDrop" // druidG.g:57:1: grandDrop returns [DropProgram program] : (s1= dropStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) ; public final DropProgram grandDrop() throws RecognitionException { DropProgram program = null; DropMeta s1 =null; program = null; try { // druidG.g:59:2: ( (s1= dropStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) ) // druidG.g:59:4: (s1= dropStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) { // druidG.g:59:4: (s1= dropStmnt ) // druidG.g:59:5: s1= dropStmnt { pushFollow(FOLLOW_dropStmnt_in_grandDrop164); s1=dropStmnt(); state._fsp--; } program = new DropProgram();program.addStmnt(s1); // druidG.g:60:4: ( WS )? int alt6=2; int LA6_0 = input.LA(1); if ( (LA6_0==WS) ) { alt6=1; } switch (alt6) { case 1 : // druidG.g:60:4: WS { match(input,WS,FOLLOW_WS_in_grandDrop173); } break; } // druidG.g:60:8: ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) int alt9=2; switch ( input.LA(1) ) { case OPT_SEMI_COLON: { alt9=1; } break; case EOF: { alt9=1; } break; case OPT_AMPERSAND: { alt9=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 9, 0, input); throw nvae; } switch (alt9) { case 1 : // druidG.g:60:9: ( OPT_SEMI_COLON )? { // druidG.g:60:9: ( OPT_SEMI_COLON )? int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0==OPT_SEMI_COLON) ) { alt7=1; } switch (alt7) { case 1 : // druidG.g:60:9: OPT_SEMI_COLON { match(input,OPT_SEMI_COLON,FOLLOW_OPT_SEMI_COLON_in_grandDrop177); } break; } } break; case 2 : // druidG.g:60:27: ( OPT_AMPERSAND )? { // druidG.g:60:27: ( OPT_AMPERSAND )? int alt8=2; int LA8_0 = input.LA(1); if ( (LA8_0==OPT_AMPERSAND) ) { alt8=1; } switch (alt8) { case 1 : // druidG.g:60:28: OPT_AMPERSAND { match(input,OPT_AMPERSAND,FOLLOW_OPT_AMPERSAND_in_grandDrop183); program.waitForCompletion = false; } break; } } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return program; } // $ANTLR end "grandDrop" // $ANTLR start "grandInsert" // druidG.g:63:1: grandInsert returns [InsertProgram program] : ( (s1= insertStmnt ) | (s2= insertHStmnt ) | (s3= insertRTStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) ); public final InsertProgram grandInsert() throws RecognitionException { InsertProgram program = null; BasicInsertMeta s1 =null; BatchInsertMeta s2 =null; RTInsertMeta s3 =null; program = null; try { // druidG.g:65:2: ( (s1= insertStmnt ) | (s2= insertHStmnt ) | (s3= insertRTStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) ) int alt14=3; switch ( input.LA(1) ) { case INSERT: { alt14=1; } break; case INSERT_HADOOP: { alt14=2; } break; case INSERT_REALTIME: { alt14=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 14, 0, input); throw nvae; } switch (alt14) { case 1 : // druidG.g:65:4: (s1= insertStmnt ) { // druidG.g:65:4: (s1= insertStmnt ) // druidG.g:65:5: s1= insertStmnt { pushFollow(FOLLOW_insertStmnt_in_grandInsert214); s1=insertStmnt(); state._fsp--; } program = InsertProgram.getInsertInstance();program.addStmnt(s1); } break; case 2 : // druidG.g:66:4: (s2= insertHStmnt ) { // druidG.g:66:4: (s2= insertHStmnt ) // druidG.g:66:5: s2= insertHStmnt { pushFollow(FOLLOW_insertHStmnt_in_grandInsert226); s2=insertHStmnt(); state._fsp--; } program = InsertProgram.getInsertHadoopInstance();program.addStmnt(s2); } break; case 3 : // druidG.g:67:4: (s3= insertRTStmnt ) ( WS )? ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) { // druidG.g:67:4: (s3= insertRTStmnt ) // druidG.g:67:5: s3= insertRTStmnt { pushFollow(FOLLOW_insertRTStmnt_in_grandInsert238); s3=insertRTStmnt(); state._fsp--; } program = InsertProgram.getInsertRTInstance();program.addStmnt(s3); // druidG.g:68:4: ( WS )? int alt10=2; int LA10_0 = input.LA(1); if ( (LA10_0==WS) ) { alt10=1; } switch (alt10) { case 1 : // druidG.g:68:4: WS { match(input,WS,FOLLOW_WS_in_grandInsert247); } break; } // druidG.g:68:8: ( ( OPT_SEMI_COLON )? | ( OPT_AMPERSAND )? ) int alt13=2; switch ( input.LA(1) ) { case OPT_SEMI_COLON: { alt13=1; } break; case EOF: { alt13=1; } break; case OPT_AMPERSAND: { alt13=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 13, 0, input); throw nvae; } switch (alt13) { case 1 : // druidG.g:68:9: ( OPT_SEMI_COLON )? { // druidG.g:68:9: ( OPT_SEMI_COLON )? int alt11=2; int LA11_0 = input.LA(1); if ( (LA11_0==OPT_SEMI_COLON) ) { alt11=1; } switch (alt11) { case 1 : // druidG.g:68:9: OPT_SEMI_COLON { match(input,OPT_SEMI_COLON,FOLLOW_OPT_SEMI_COLON_in_grandInsert251); } break; } } break; case 2 : // druidG.g:68:27: ( OPT_AMPERSAND )? { // druidG.g:68:27: ( OPT_AMPERSAND )? int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0==OPT_AMPERSAND) ) { alt12=1; } switch (alt12) { case 1 : // druidG.g:68:28: OPT_AMPERSAND { match(input,OPT_AMPERSAND,FOLLOW_OPT_AMPERSAND_in_grandInsert257); program.waitForCompletion = false; } break; } } break; } } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return program; } // $ANTLR end "grandInsert" // $ANTLR start "deleteStmnt" // druidG.g:71:1: deleteStmnt returns [DeleteMeta dMeta] : DELETE WS FROM WS (id= ID WS ) WHERE WS i= intervalClause ; public final DeleteMeta deleteStmnt() throws RecognitionException { DeleteMeta dMeta = null; Token id=null; List<Interval> i =null; dMeta = new DeleteMeta(); try { // druidG.g:73:2: ( DELETE WS FROM WS (id= ID WS ) WHERE WS i= intervalClause ) // druidG.g:73:3: DELETE WS FROM WS (id= ID WS ) WHERE WS i= intervalClause { match(input,DELETE,FOLLOW_DELETE_in_deleteStmnt283); match(input,WS,FOLLOW_WS_in_deleteStmnt285); match(input,FROM,FOLLOW_FROM_in_deleteStmnt287); match(input,WS,FOLLOW_WS_in_deleteStmnt289); // druidG.g:73:21: (id= ID WS ) // druidG.g:73:22: id= ID WS { id=(Token)match(input,ID,FOLLOW_ID_in_deleteStmnt294); dMeta.dataSource = (id!=null?id.getText():null); match(input,WS,FOLLOW_WS_in_deleteStmnt298); } match(input,WHERE,FOLLOW_WHERE_in_deleteStmnt303); match(input,WS,FOLLOW_WS_in_deleteStmnt305); pushFollow(FOLLOW_intervalClause_in_deleteStmnt309); i=intervalClause(); state._fsp--; // We set this later after granularitySpec object is fully formed. if (i!= null && !i.isEmpty()) { dMeta.interval = i.get(0);// We already checked for list's emptiness(it is safe to access get(0). } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return dMeta; } // $ANTLR end "deleteStmnt" // $ANTLR start "dropStmnt" // druidG.g:82:1: dropStmnt returns [DropMeta dMeta] : DROP WS TABLE WS (id= ID ) ; public final DropMeta dropStmnt() throws RecognitionException { DropMeta dMeta = null; Token id=null; dMeta = new DropMeta(); try { // druidG.g:84:2: ( DROP WS TABLE WS (id= ID ) ) // druidG.g:84:3: DROP WS TABLE WS (id= ID ) { match(input,DROP,FOLLOW_DROP_in_dropStmnt337); match(input,WS,FOLLOW_WS_in_dropStmnt339); match(input,TABLE,FOLLOW_TABLE_in_dropStmnt341); match(input,WS,FOLLOW_WS_in_dropStmnt343); // druidG.g:84:20: (id= ID ) // druidG.g:84:21: id= ID { id=(Token)match(input,ID,FOLLOW_ID_in_dropStmnt348); dMeta.dataSource = (id!=null?id.getText():null); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return dMeta; } // $ANTLR end "dropStmnt" // $ANTLR start "insertStmnt" // druidG.g:87:1: insertStmnt returns [BasicInsertMeta iMeta] : ( INSERT WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) ( ( VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ) | ( FROM WS (paths= SINGLE_QUOTE_STRING ) WS ) ) ( WHERE WS i= intervalClause ) ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? ; public final BasicInsertMeta insertStmnt() throws RecognitionException { BasicInsertMeta iMeta = null; Token id=null; Token paths=null; Token gran=null; Token delim=null; Token listDelim=null; Object a =null; List<Interval> i =null; iMeta = new BasicInsertMeta(); try { // druidG.g:89:2: ( ( INSERT WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) ( ( VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ) | ( FROM WS (paths= SINGLE_QUOTE_STRING ) WS ) ) ( WHERE WS i= intervalClause ) ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? ) // druidG.g:89:3: ( INSERT WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) ( ( VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ) | ( FROM WS (paths= SINGLE_QUOTE_STRING ) WS ) ) ( WHERE WS i= intervalClause ) ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? { // druidG.g:89:3: ( INSERT WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) // druidG.g:89:4: INSERT WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? { match(input,INSERT,FOLLOW_INSERT_in_insertStmnt375); match(input,WS,FOLLOW_WS_in_insertStmnt377); match(input,INTO,FOLLOW_INTO_in_insertStmnt379); match(input,WS,FOLLOW_WS_in_insertStmnt381); // druidG.g:89:22: (id= ID ) // druidG.g:89:23: id= ID { id=(Token)match(input,ID,FOLLOW_ID_in_insertStmnt386); iMeta.dataSource = (id!=null?id.getText():null); } // druidG.g:89:62: ( WS )? int alt15=2; int LA15_0 = input.LA(1); if ( (LA15_0==WS) ) { alt15=1; } switch (alt15) { case 1 : // druidG.g:89:62: WS { match(input,WS,FOLLOW_WS_in_insertStmnt391); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertStmnt394); // druidG.g:89:73: ( WS )? int alt16=2; int LA16_0 = input.LA(1); if ( (LA16_0==WS) ) { alt16=1; } switch (alt16) { case 1 : // druidG.g:89:73: WS { match(input,WS,FOLLOW_WS_in_insertStmnt396); } break; } pushFollow(FOLLOW_selectItems_in_insertStmnt399); selectItems(iMeta); state._fsp--; // druidG.g:89:96: ( ( WS )? ',' ( WS )? selectItems[iMeta] )* loop19: while (true) { int alt19=2; int LA19_0 = input.LA(1); if ( (LA19_0==WS) ) { int LA19_1 = input.LA(2); if ( (LA19_1==91) ) { alt19=1; } } else if ( (LA19_0==91) ) { alt19=1; } switch (alt19) { case 1 : // druidG.g:89:97: ( WS )? ',' ( WS )? selectItems[iMeta] { // druidG.g:89:97: ( WS )? int alt17=2; int LA17_0 = input.LA(1); if ( (LA17_0==WS) ) { alt17=1; } switch (alt17) { case 1 : // druidG.g:89:97: WS { match(input,WS,FOLLOW_WS_in_insertStmnt403); } break; } match(input,91,FOLLOW_91_in_insertStmnt406); // druidG.g:89:105: ( WS )? int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==WS) ) { alt18=1; } switch (alt18) { case 1 : // druidG.g:89:105: WS { match(input,WS,FOLLOW_WS_in_insertStmnt408); } break; } pushFollow(FOLLOW_selectItems_in_insertStmnt411); selectItems(iMeta); state._fsp--; } break; default : break loop19; } } // druidG.g:89:130: ( WS )? int alt20=2; int LA20_0 = input.LA(1); if ( (LA20_0==WS) ) { alt20=1; } switch (alt20) { case 1 : // druidG.g:89:130: WS { match(input,WS,FOLLOW_WS_in_insertStmnt416); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertStmnt419); // druidG.g:89:141: ( WS )? int alt21=2; int LA21_0 = input.LA(1); if ( (LA21_0==WS) ) { alt21=1; } switch (alt21) { case 1 : // druidG.g:89:141: WS { match(input,WS,FOLLOW_WS_in_insertStmnt421); } break; } } // druidG.g:90:3: ( ( VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ) | ( FROM WS (paths= SINGLE_QUOTE_STRING ) WS ) ) int alt29=2; int LA29_0 = input.LA(1); if ( (LA29_0==VALUES) ) { alt29=1; } else if ( (LA29_0==FROM) ) { alt29=2; } else { NoViableAltException nvae = new NoViableAltException("", 29, 0, input); throw nvae; } switch (alt29) { case 1 : // druidG.g:91:5: ( VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ) { // druidG.g:91:5: ( VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ) // druidG.g:91:6: VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? { match(input,VALUES,FOLLOW_VALUES_in_insertStmnt434); // druidG.g:91:13: ( WS )? int alt22=2; int LA22_0 = input.LA(1); if ( (LA22_0==WS) ) { alt22=1; } switch (alt22) { case 1 : // druidG.g:91:13: WS { match(input,WS,FOLLOW_WS_in_insertStmnt436); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertStmnt439); // druidG.g:91:24: ( WS )? int alt23=2; int LA23_0 = input.LA(1); if ( (LA23_0==WS) ) { alt23=1; } switch (alt23) { case 1 : // druidG.g:91:24: WS { match(input,WS,FOLLOW_WS_in_insertStmnt441); } break; } // druidG.g:91:28: (a= anyValue ) // druidG.g:91:29: a= anyValue { pushFollow(FOLLOW_anyValue_in_insertStmnt447); a=anyValue(); state._fsp--; iMeta.values.add(a); } // druidG.g:91:65: ( ( WS )? ',' ( WS )? a= anyValue )* loop26: while (true) { int alt26=2; int LA26_0 = input.LA(1); if ( (LA26_0==WS) ) { int LA26_1 = input.LA(2); if ( (LA26_1==91) ) { alt26=1; } } else if ( (LA26_0==91) ) { alt26=1; } switch (alt26) { case 1 : // druidG.g:91:66: ( WS )? ',' ( WS )? a= anyValue { // druidG.g:91:66: ( WS )? int alt24=2; int LA24_0 = input.LA(1); if ( (LA24_0==WS) ) { alt24=1; } switch (alt24) { case 1 : // druidG.g:91:66: WS { match(input,WS,FOLLOW_WS_in_insertStmnt454); } break; } match(input,91,FOLLOW_91_in_insertStmnt457); // druidG.g:91:74: ( WS )? int alt25=2; int LA25_0 = input.LA(1); if ( (LA25_0==WS) ) { alt25=1; } switch (alt25) { case 1 : // druidG.g:91:74: WS { match(input,WS,FOLLOW_WS_in_insertStmnt459); } break; } pushFollow(FOLLOW_anyValue_in_insertStmnt464); a=anyValue(); state._fsp--; iMeta.values.add(a); } break; default : break loop26; } } // druidG.g:91:114: ( WS )? int alt27=2; int LA27_0 = input.LA(1); if ( (LA27_0==WS) ) { alt27=1; } switch (alt27) { case 1 : // druidG.g:91:114: WS { match(input,WS,FOLLOW_WS_in_insertStmnt470); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertStmnt473); // druidG.g:91:125: ( WS )? int alt28=2; int LA28_0 = input.LA(1); if ( (LA28_0==WS) ) { alt28=1; } switch (alt28) { case 1 : // druidG.g:91:125: WS { match(input,WS,FOLLOW_WS_in_insertStmnt475); } break; } } } break; case 2 : // druidG.g:93:5: ( FROM WS (paths= SINGLE_QUOTE_STRING ) WS ) { // druidG.g:93:5: ( FROM WS (paths= SINGLE_QUOTE_STRING ) WS ) // druidG.g:93:6: FROM WS (paths= SINGLE_QUOTE_STRING ) WS { match(input,FROM,FOLLOW_FROM_in_insertStmnt492); match(input,WS,FOLLOW_WS_in_insertStmnt494); // druidG.g:93:14: (paths= SINGLE_QUOTE_STRING ) // druidG.g:93:15: paths= SINGLE_QUOTE_STRING { paths=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt499); iMeta.dataPath = unquote((paths!=null?paths.getText():null)); } match(input,WS,FOLLOW_WS_in_insertStmnt504); } } break; } // druidG.g:95:3: ( WHERE WS i= intervalClause ) // druidG.g:95:4: WHERE WS i= intervalClause { match(input,WHERE,FOLLOW_WHERE_in_insertStmnt514); match(input,WS,FOLLOW_WS_in_insertStmnt516); pushFollow(FOLLOW_intervalClause_in_insertStmnt520); i=intervalClause(); state._fsp--; } // druidG.g:96:4: ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? int alt30=2; int LA30_0 = input.LA(1); if ( (LA30_0==WS) ) { int LA30_1 = input.LA(2); if ( (LA30_1==BREAK) ) { alt30=1; } } switch (alt30) { case 1 : // druidG.g:96:5: WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING { match(input,WS,FOLLOW_WS_in_insertStmnt527); match(input,BREAK,FOLLOW_BREAK_in_insertStmnt529); match(input,WS,FOLLOW_WS_in_insertStmnt531); match(input,BY,FOLLOW_BY_in_insertStmnt533); match(input,WS,FOLLOW_WS_in_insertStmnt535); gran=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt539); iMeta.granularitySpec = new GranularitySpec(unquote((gran!=null?gran.getText():null))); } break; } // We set this later after granularitySpec object is fully formed. if (i!= null && !i.isEmpty()) { iMeta.granularitySpec.interval = i.get(0);// We already checked for list's emptiness(it is safe to access get(0). } // druidG.g:102:2: ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? int alt38=2; int LA38_0 = input.LA(1); if ( (LA38_0==WS) ) { alt38=1; } switch (alt38) { case 1 : // druidG.g:102:3: WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? { match(input,WS,FOLLOW_WS_in_insertStmnt553); match(input,DELIMITER,FOLLOW_DELIMITER_in_insertStmnt555); // druidG.g:102:16: ( WS )? int alt31=2; int LA31_0 = input.LA(1); if ( (LA31_0==WS) ) { alt31=1; } switch (alt31) { case 1 : // druidG.g:102:16: WS { match(input,WS,FOLLOW_WS_in_insertStmnt557); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertStmnt560); // druidG.g:102:27: ( WS )? int alt32=2; int LA32_0 = input.LA(1); if ( (LA32_0==WS) ) { alt32=1; } switch (alt32) { case 1 : // druidG.g:102:27: WS { match(input,WS,FOLLOW_WS_in_insertStmnt562); } break; } delim=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt567); iMeta.delimiter=unicode(unquote((delim!=null?delim.getText():null))); // druidG.g:102:105: ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? int alt35=2; int LA35_0 = input.LA(1); if ( (LA35_0==WS) ) { int LA35_1 = input.LA(2); if ( (LA35_1==91) ) { alt35=1; } } else if ( (LA35_0==91) ) { alt35=1; } switch (alt35) { case 1 : // druidG.g:102:106: ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING { // druidG.g:102:106: ( WS )? int alt33=2; int LA33_0 = input.LA(1); if ( (LA33_0==WS) ) { alt33=1; } switch (alt33) { case 1 : // druidG.g:102:106: WS { match(input,WS,FOLLOW_WS_in_insertStmnt571); } break; } match(input,91,FOLLOW_91_in_insertStmnt574); // druidG.g:102:114: ( WS )? int alt34=2; int LA34_0 = input.LA(1); if ( (LA34_0==WS) ) { alt34=1; } switch (alt34) { case 1 : // druidG.g:102:114: WS { match(input,WS,FOLLOW_WS_in_insertStmnt576); } break; } listDelim=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt581); iMeta.listDelimiter=unicode(unquote((listDelim!=null?listDelim.getText():null))); } break; } // druidG.g:102:207: ( WS )? int alt36=2; int LA36_0 = input.LA(1); if ( (LA36_0==WS) ) { alt36=1; } switch (alt36) { case 1 : // druidG.g:102:207: WS { match(input,WS,FOLLOW_WS_in_insertStmnt587); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertStmnt590); // druidG.g:102:218: ( WS )? int alt37=2; int LA37_0 = input.LA(1); if ( (LA37_0==WS) ) { alt37=1; } switch (alt37) { case 1 : // druidG.g:102:218: WS { match(input,WS,FOLLOW_WS_in_insertStmnt592); } break; } } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return iMeta; } // $ANTLR end "insertStmnt" // $ANTLR start "insertHStmnt" // druidG.g:105:1: insertHStmnt returns [BatchInsertMeta bMeta] : ( INSERT_HADOOP WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[bMeta] ( ( WS )? ',' ( WS )? selectItems[bMeta] )* ( WS )? RPARAN ( WS )? ) FROM WS (paths= SINGLE_QUOTE_STRING ) WS ( WHERE WS i= intervalClause ) ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? ( WS PARTITION ( WS )? LPARAN ( WS )? type= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? size= LONG ( WS )? RPARAN ( WS )? )? ( WS ROLLUP ( WS )? LPARAN ( WS )? gran= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? boundary= LONG ( WS )? RPARAN ( WS )? )? ; public final BatchInsertMeta insertHStmnt() throws RecognitionException { BatchInsertMeta bMeta = null; Token id=null; Token paths=null; Token gran=null; Token delim=null; Token listDelim=null; Token type=null; Token size=null; Token boundary=null; List<Interval> i =null; bMeta = new BatchInsertMeta(); try { // druidG.g:107:2: ( ( INSERT_HADOOP WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[bMeta] ( ( WS )? ',' ( WS )? selectItems[bMeta] )* ( WS )? RPARAN ( WS )? ) FROM WS (paths= SINGLE_QUOTE_STRING ) WS ( WHERE WS i= intervalClause ) ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? ( WS PARTITION ( WS )? LPARAN ( WS )? type= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? size= LONG ( WS )? RPARAN ( WS )? )? ( WS ROLLUP ( WS )? LPARAN ( WS )? gran= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? boundary= LONG ( WS )? RPARAN ( WS )? )? ) // druidG.g:107:3: ( INSERT_HADOOP WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[bMeta] ( ( WS )? ',' ( WS )? selectItems[bMeta] )* ( WS )? RPARAN ( WS )? ) FROM WS (paths= SINGLE_QUOTE_STRING ) WS ( WHERE WS i= intervalClause ) ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? ( WS PARTITION ( WS )? LPARAN ( WS )? type= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? size= LONG ( WS )? RPARAN ( WS )? )? ( WS ROLLUP ( WS )? LPARAN ( WS )? gran= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? boundary= LONG ( WS )? RPARAN ( WS )? )? { // druidG.g:107:3: ( INSERT_HADOOP WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[bMeta] ( ( WS )? ',' ( WS )? selectItems[bMeta] )* ( WS )? RPARAN ( WS )? ) // druidG.g:107:4: INSERT_HADOOP WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[bMeta] ( ( WS )? ',' ( WS )? selectItems[bMeta] )* ( WS )? RPARAN ( WS )? { match(input,INSERT_HADOOP,FOLLOW_INSERT_HADOOP_in_insertHStmnt616); match(input,WS,FOLLOW_WS_in_insertHStmnt618); match(input,INTO,FOLLOW_INTO_in_insertHStmnt620); match(input,WS,FOLLOW_WS_in_insertHStmnt622); // druidG.g:107:29: (id= ID ) // druidG.g:107:30: id= ID { id=(Token)match(input,ID,FOLLOW_ID_in_insertHStmnt627); bMeta.dataSource = (id!=null?id.getText():null); } // druidG.g:107:69: ( WS )? int alt39=2; int LA39_0 = input.LA(1); if ( (LA39_0==WS) ) { alt39=1; } switch (alt39) { case 1 : // druidG.g:107:69: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt632); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertHStmnt635); // druidG.g:107:80: ( WS )? int alt40=2; int LA40_0 = input.LA(1); if ( (LA40_0==WS) ) { alt40=1; } switch (alt40) { case 1 : // druidG.g:107:80: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt637); } break; } pushFollow(FOLLOW_selectItems_in_insertHStmnt640); selectItems(bMeta); state._fsp--; // druidG.g:107:103: ( ( WS )? ',' ( WS )? selectItems[bMeta] )* loop43: while (true) { int alt43=2; int LA43_0 = input.LA(1); if ( (LA43_0==WS) ) { int LA43_1 = input.LA(2); if ( (LA43_1==91) ) { alt43=1; } } else if ( (LA43_0==91) ) { alt43=1; } switch (alt43) { case 1 : // druidG.g:107:104: ( WS )? ',' ( WS )? selectItems[bMeta] { // druidG.g:107:104: ( WS )? int alt41=2; int LA41_0 = input.LA(1); if ( (LA41_0==WS) ) { alt41=1; } switch (alt41) { case 1 : // druidG.g:107:104: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt644); } break; } match(input,91,FOLLOW_91_in_insertHStmnt647); // druidG.g:107:112: ( WS )? int alt42=2; int LA42_0 = input.LA(1); if ( (LA42_0==WS) ) { alt42=1; } switch (alt42) { case 1 : // druidG.g:107:112: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt649); } break; } pushFollow(FOLLOW_selectItems_in_insertHStmnt652); selectItems(bMeta); state._fsp--; } break; default : break loop43; } } // druidG.g:107:137: ( WS )? int alt44=2; int LA44_0 = input.LA(1); if ( (LA44_0==WS) ) { alt44=1; } switch (alt44) { case 1 : // druidG.g:107:137: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt657); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertHStmnt660); // druidG.g:107:148: ( WS )? int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0==WS) ) { alt45=1; } switch (alt45) { case 1 : // druidG.g:107:148: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt662); } break; } } match(input,FROM,FOLLOW_FROM_in_insertHStmnt669); match(input,WS,FOLLOW_WS_in_insertHStmnt671); // druidG.g:108:11: (paths= SINGLE_QUOTE_STRING ) // druidG.g:108:12: paths= SINGLE_QUOTE_STRING { paths=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt676); bMeta.inputSpec.setPath(unquote((paths!=null?paths.getText():null)));bMeta.inferFormat(unquote((paths!=null?paths.getText():null))); } match(input,WS,FOLLOW_WS_in_insertHStmnt681); // druidG.g:109:3: ( WHERE WS i= intervalClause ) // druidG.g:109:4: WHERE WS i= intervalClause { match(input,WHERE,FOLLOW_WHERE_in_insertHStmnt686); match(input,WS,FOLLOW_WS_in_insertHStmnt688); pushFollow(FOLLOW_intervalClause_in_insertHStmnt692); i=intervalClause(); state._fsp--; } // druidG.g:110:4: ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? int alt46=2; int LA46_0 = input.LA(1); if ( (LA46_0==WS) ) { int LA46_1 = input.LA(2); if ( (LA46_1==BREAK) ) { alt46=1; } } switch (alt46) { case 1 : // druidG.g:110:5: WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING { match(input,WS,FOLLOW_WS_in_insertHStmnt699); match(input,BREAK,FOLLOW_BREAK_in_insertHStmnt701); match(input,WS,FOLLOW_WS_in_insertHStmnt703); match(input,BY,FOLLOW_BY_in_insertHStmnt705); match(input,WS,FOLLOW_WS_in_insertHStmnt707); gran=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt711); bMeta.granularitySpec = new GranularitySpec(unquote((gran!=null?gran.getText():null))); } break; } // We set this later after granularitySpec object is fully formed. if (i!= null && !i.isEmpty()) { bMeta.granularitySpec.interval = i.get(0);// We already checked for list's emptiness(it is safe to access get(0). } // druidG.g:116:3: ( WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? )? int alt54=2; int LA54_0 = input.LA(1); if ( (LA54_0==WS) ) { int LA54_1 = input.LA(2); if ( (LA54_1==DELIMITER) ) { alt54=1; } } switch (alt54) { case 1 : // druidG.g:116:4: WS DELIMITER ( WS )? LPARAN ( WS )? delim= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? ( WS )? RPARAN ( WS )? { match(input,WS,FOLLOW_WS_in_insertHStmnt726); match(input,DELIMITER,FOLLOW_DELIMITER_in_insertHStmnt728); // druidG.g:116:17: ( WS )? int alt47=2; int LA47_0 = input.LA(1); if ( (LA47_0==WS) ) { alt47=1; } switch (alt47) { case 1 : // druidG.g:116:17: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt730); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertHStmnt733); // druidG.g:116:28: ( WS )? int alt48=2; int LA48_0 = input.LA(1); if ( (LA48_0==WS) ) { alt48=1; } switch (alt48) { case 1 : // druidG.g:116:28: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt735); } break; } delim=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt740); bMeta.delimiter=unicode(unquote((delim!=null?delim.getText():null))); // druidG.g:116:106: ( ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING )? int alt51=2; int LA51_0 = input.LA(1); if ( (LA51_0==WS) ) { int LA51_1 = input.LA(2); if ( (LA51_1==91) ) { alt51=1; } } else if ( (LA51_0==91) ) { alt51=1; } switch (alt51) { case 1 : // druidG.g:116:107: ( WS )? ',' ( WS )? listDelim= SINGLE_QUOTE_STRING { // druidG.g:116:107: ( WS )? int alt49=2; int LA49_0 = input.LA(1); if ( (LA49_0==WS) ) { alt49=1; } switch (alt49) { case 1 : // druidG.g:116:107: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt744); } break; } match(input,91,FOLLOW_91_in_insertHStmnt747); // druidG.g:116:115: ( WS )? int alt50=2; int LA50_0 = input.LA(1); if ( (LA50_0==WS) ) { alt50=1; } switch (alt50) { case 1 : // druidG.g:116:115: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt749); } break; } listDelim=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt754); bMeta.listDelimiter=unicode(unquote((listDelim!=null?listDelim.getText():null))); } break; } // druidG.g:116:208: ( WS )? int alt52=2; int LA52_0 = input.LA(1); if ( (LA52_0==WS) ) { alt52=1; } switch (alt52) { case 1 : // druidG.g:116:208: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt760); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertHStmnt763); // druidG.g:116:219: ( WS )? int alt53=2; int LA53_0 = input.LA(1); if ( (LA53_0==WS) ) { int LA53_1 = input.LA(2); if ( (LA53_1==EOF||LA53_1==WS) ) { alt53=1; } } switch (alt53) { case 1 : // druidG.g:116:219: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt765); } break; } } break; } // druidG.g:117:3: ( WS PARTITION ( WS )? LPARAN ( WS )? type= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? size= LONG ( WS )? RPARAN ( WS )? )? int alt61=2; int LA61_0 = input.LA(1); if ( (LA61_0==WS) ) { int LA61_1 = input.LA(2); if ( (LA61_1==PARTITION) ) { alt61=1; } } switch (alt61) { case 1 : // druidG.g:117:4: WS PARTITION ( WS )? LPARAN ( WS )? type= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? size= LONG ( WS )? RPARAN ( WS )? { match(input,WS,FOLLOW_WS_in_insertHStmnt774); match(input,PARTITION,FOLLOW_PARTITION_in_insertHStmnt776); // druidG.g:117:17: ( WS )? int alt55=2; int LA55_0 = input.LA(1); if ( (LA55_0==WS) ) { alt55=1; } switch (alt55) { case 1 : // druidG.g:117:17: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt778); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertHStmnt781); // druidG.g:117:28: ( WS )? int alt56=2; int LA56_0 = input.LA(1); if ( (LA56_0==WS) ) { alt56=1; } switch (alt56) { case 1 : // druidG.g:117:28: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt783); } break; } type=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt788); // druidG.g:117:57: ( WS )? int alt57=2; int LA57_0 = input.LA(1); if ( (LA57_0==WS) ) { alt57=1; } switch (alt57) { case 1 : // druidG.g:117:57: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt790); } break; } match(input,91,FOLLOW_91_in_insertHStmnt793); // druidG.g:117:65: ( WS )? int alt58=2; int LA58_0 = input.LA(1); if ( (LA58_0==WS) ) { alt58=1; } switch (alt58) { case 1 : // druidG.g:117:65: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt795); } break; } size=(Token)match(input,LONG,FOLLOW_LONG_in_insertHStmnt800); bMeta.partitionsSpec.type=unquote((type!=null?type.getText():null));bMeta.partitionsSpec.targetPartitionSize=Long.valueOf((size!=null?size.getText():null)); // druidG.g:117:195: ( WS )? int alt59=2; int LA59_0 = input.LA(1); if ( (LA59_0==WS) ) { alt59=1; } switch (alt59) { case 1 : // druidG.g:117:195: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt804); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertHStmnt807); // druidG.g:117:206: ( WS )? int alt60=2; int LA60_0 = input.LA(1); if ( (LA60_0==WS) ) { int LA60_1 = input.LA(2); if ( (LA60_1==EOF||LA60_1==WS) ) { alt60=1; } } switch (alt60) { case 1 : // druidG.g:117:206: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt809); } break; } } break; } // druidG.g:118:3: ( WS ROLLUP ( WS )? LPARAN ( WS )? gran= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? boundary= LONG ( WS )? RPARAN ( WS )? )? int alt68=2; int LA68_0 = input.LA(1); if ( (LA68_0==WS) ) { alt68=1; } switch (alt68) { case 1 : // druidG.g:118:4: WS ROLLUP ( WS )? LPARAN ( WS )? gran= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? boundary= LONG ( WS )? RPARAN ( WS )? { match(input,WS,FOLLOW_WS_in_insertHStmnt817); match(input,ROLLUP,FOLLOW_ROLLUP_in_insertHStmnt819); // druidG.g:118:14: ( WS )? int alt62=2; int LA62_0 = input.LA(1); if ( (LA62_0==WS) ) { alt62=1; } switch (alt62) { case 1 : // druidG.g:118:14: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt821); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertHStmnt824); // druidG.g:118:25: ( WS )? int alt63=2; int LA63_0 = input.LA(1); if ( (LA63_0==WS) ) { alt63=1; } switch (alt63) { case 1 : // druidG.g:118:25: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt826); } break; } gran=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt831); // druidG.g:118:54: ( WS )? int alt64=2; int LA64_0 = input.LA(1); if ( (LA64_0==WS) ) { alt64=1; } switch (alt64) { case 1 : // druidG.g:118:54: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt833); } break; } match(input,91,FOLLOW_91_in_insertHStmnt836); // druidG.g:118:62: ( WS )? int alt65=2; int LA65_0 = input.LA(1); if ( (LA65_0==WS) ) { alt65=1; } switch (alt65) { case 1 : // druidG.g:118:62: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt838); } break; } boundary=(Token)match(input,LONG,FOLLOW_LONG_in_insertHStmnt843); bMeta.rollupSpec.rollupGranularity=unquote((gran!=null?gran.getText():null));bMeta.rollupSpec.rowFlushBoundary=Long.valueOf((boundary!=null?boundary.getText():null)); // druidG.g:118:202: ( WS )? int alt66=2; int LA66_0 = input.LA(1); if ( (LA66_0==WS) ) { alt66=1; } switch (alt66) { case 1 : // druidG.g:118:202: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt847); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertHStmnt850); // druidG.g:118:213: ( WS )? int alt67=2; int LA67_0 = input.LA(1); if ( (LA67_0==WS) ) { alt67=1; } switch (alt67) { case 1 : // druidG.g:118:213: WS { match(input,WS,FOLLOW_WS_in_insertHStmnt852); } break; } } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return bMeta; } // $ANTLR end "insertHStmnt" // $ANTLR start "insertRTStmnt" // druidG.g:121:1: insertRTStmnt returns [RTInsertMeta iMeta] : ( INSERT_REALTIME WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ( WHERE WS i= intervalClause )? ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ; public final RTInsertMeta insertRTStmnt() throws RecognitionException { RTInsertMeta iMeta = null; Token id=null; Token gran=null; Object a =null; List<Interval> i =null; iMeta = new RTInsertMeta(); try { // druidG.g:123:2: ( ( INSERT_REALTIME WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ( WHERE WS i= intervalClause )? ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? ) // druidG.g:123:3: ( INSERT_REALTIME WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) VALUES ( WS )? LPARAN ( WS )? (a= anyValue ) ( ( WS )? ',' ( WS )? a= anyValue )* ( WS )? RPARAN ( WS )? ( WHERE WS i= intervalClause )? ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? { // druidG.g:123:3: ( INSERT_REALTIME WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? ) // druidG.g:123:4: INSERT_REALTIME WS INTO WS (id= ID ) ( WS )? LPARAN ( WS )? selectItems[iMeta] ( ( WS )? ',' ( WS )? selectItems[iMeta] )* ( WS )? RPARAN ( WS )? { match(input,INSERT_REALTIME,FOLLOW_INSERT_REALTIME_in_insertRTStmnt875); match(input,WS,FOLLOW_WS_in_insertRTStmnt877); match(input,INTO,FOLLOW_INTO_in_insertRTStmnt879); match(input,WS,FOLLOW_WS_in_insertRTStmnt881); // druidG.g:123:31: (id= ID ) // druidG.g:123:32: id= ID { id=(Token)match(input,ID,FOLLOW_ID_in_insertRTStmnt886); iMeta.dataSource = (id!=null?id.getText():null); } // druidG.g:123:71: ( WS )? int alt69=2; int LA69_0 = input.LA(1); if ( (LA69_0==WS) ) { alt69=1; } switch (alt69) { case 1 : // druidG.g:123:71: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt891); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertRTStmnt894); // druidG.g:123:82: ( WS )? int alt70=2; int LA70_0 = input.LA(1); if ( (LA70_0==WS) ) { alt70=1; } switch (alt70) { case 1 : // druidG.g:123:82: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt896); } break; } pushFollow(FOLLOW_selectItems_in_insertRTStmnt899); selectItems(iMeta); state._fsp--; // druidG.g:123:105: ( ( WS )? ',' ( WS )? selectItems[iMeta] )* loop73: while (true) { int alt73=2; int LA73_0 = input.LA(1); if ( (LA73_0==WS) ) { int LA73_1 = input.LA(2); if ( (LA73_1==91) ) { alt73=1; } } else if ( (LA73_0==91) ) { alt73=1; } switch (alt73) { case 1 : // druidG.g:123:106: ( WS )? ',' ( WS )? selectItems[iMeta] { // druidG.g:123:106: ( WS )? int alt71=2; int LA71_0 = input.LA(1); if ( (LA71_0==WS) ) { alt71=1; } switch (alt71) { case 1 : // druidG.g:123:106: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt903); } break; } match(input,91,FOLLOW_91_in_insertRTStmnt906); // druidG.g:123:114: ( WS )? int alt72=2; int LA72_0 = input.LA(1); if ( (LA72_0==WS) ) { alt72=1; } switch (alt72) { case 1 : // druidG.g:123:114: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt908); } break; } pushFollow(FOLLOW_selectItems_in_insertRTStmnt911); selectItems(iMeta); state._fsp--; } break; default : break loop73; } } // druidG.g:123:139: ( WS )? int alt74=2; int LA74_0 = input.LA(1); if ( (LA74_0==WS) ) { alt74=1; } switch (alt74) { case 1 : // druidG.g:123:139: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt916); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertRTStmnt919); // druidG.g:123:150: ( WS )? int alt75=2; int LA75_0 = input.LA(1); if ( (LA75_0==WS) ) { alt75=1; } switch (alt75) { case 1 : // druidG.g:123:150: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt921); } break; } } match(input,VALUES,FOLLOW_VALUES_in_insertRTStmnt927); // druidG.g:124:10: ( WS )? int alt76=2; int LA76_0 = input.LA(1); if ( (LA76_0==WS) ) { alt76=1; } switch (alt76) { case 1 : // druidG.g:124:10: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt929); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_insertRTStmnt932); // druidG.g:124:21: ( WS )? int alt77=2; int LA77_0 = input.LA(1); if ( (LA77_0==WS) ) { alt77=1; } switch (alt77) { case 1 : // druidG.g:124:21: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt934); } break; } // druidG.g:124:25: (a= anyValue ) // druidG.g:124:26: a= anyValue { pushFollow(FOLLOW_anyValue_in_insertRTStmnt940); a=anyValue(); state._fsp--; iMeta.values.add(a); } // druidG.g:124:62: ( ( WS )? ',' ( WS )? a= anyValue )* loop80: while (true) { int alt80=2; int LA80_0 = input.LA(1); if ( (LA80_0==WS) ) { int LA80_1 = input.LA(2); if ( (LA80_1==91) ) { alt80=1; } } else if ( (LA80_0==91) ) { alt80=1; } switch (alt80) { case 1 : // druidG.g:124:63: ( WS )? ',' ( WS )? a= anyValue { // druidG.g:124:63: ( WS )? int alt78=2; int LA78_0 = input.LA(1); if ( (LA78_0==WS) ) { alt78=1; } switch (alt78) { case 1 : // druidG.g:124:63: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt947); } break; } match(input,91,FOLLOW_91_in_insertRTStmnt950); // druidG.g:124:71: ( WS )? int alt79=2; int LA79_0 = input.LA(1); if ( (LA79_0==WS) ) { alt79=1; } switch (alt79) { case 1 : // druidG.g:124:71: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt952); } break; } pushFollow(FOLLOW_anyValue_in_insertRTStmnt957); a=anyValue(); state._fsp--; iMeta.values.add(a); } break; default : break loop80; } } // druidG.g:124:111: ( WS )? int alt81=2; int LA81_0 = input.LA(1); if ( (LA81_0==WS) ) { alt81=1; } switch (alt81) { case 1 : // druidG.g:124:111: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt963); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_insertRTStmnt966); // druidG.g:124:122: ( WS )? int alt82=2; int LA82_0 = input.LA(1); if ( (LA82_0==WS) ) { alt82=1; } switch (alt82) { case 1 : // druidG.g:124:122: WS { match(input,WS,FOLLOW_WS_in_insertRTStmnt968); } break; } // druidG.g:125:3: ( WHERE WS i= intervalClause )? int alt83=2; int LA83_0 = input.LA(1); if ( (LA83_0==WHERE) ) { alt83=1; } switch (alt83) { case 1 : // druidG.g:125:4: WHERE WS i= intervalClause { match(input,WHERE,FOLLOW_WHERE_in_insertRTStmnt974); match(input,WS,FOLLOW_WS_in_insertRTStmnt976); pushFollow(FOLLOW_intervalClause_in_insertRTStmnt980); i=intervalClause(); state._fsp--; } break; } // druidG.g:126:4: ( WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING )? int alt84=2; int LA84_0 = input.LA(1); if ( (LA84_0==WS) ) { int LA84_1 = input.LA(2); if ( (LA84_1==BREAK) ) { alt84=1; } } switch (alt84) { case 1 : // druidG.g:126:5: WS BREAK WS BY WS gran= SINGLE_QUOTE_STRING { match(input,WS,FOLLOW_WS_in_insertRTStmnt988); match(input,BREAK,FOLLOW_BREAK_in_insertRTStmnt990); match(input,WS,FOLLOW_WS_in_insertRTStmnt992); match(input,BY,FOLLOW_BY_in_insertRTStmnt994); match(input,WS,FOLLOW_WS_in_insertRTStmnt996); gran=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_insertRTStmnt1000); iMeta.granularitySpec = new GranularitySpec(unquote((gran!=null?gran.getText():null))); } break; } // We set this later after granularitySpec object is fully formed. if (i!= null && !i.isEmpty()) { iMeta.granularitySpec.interval = i.get(0);// We already checked for list's emptiness(it is safe to access get(0). } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return iMeta; } // $ANTLR end "insertRTStmnt" // $ANTLR start "grandQuery" // druidG.g:134:1: grandQuery returns [QueryProgram program] : (s1= queryStmnt ) ( WS j= ( JOIN | LEFT_JOIN | RIGHT_JOIN ) ( WS )? LPARAN ( WS )? (s2= queryStmnt ) ( WS )? RPARAN ( WS )? ON ( WS )? LPARAN ( WS )? (a= ID ) ( ( WS )? ',' ( WS )? a= ID )* ( WS )? RPARAN )? ( WS )? ( OPT_SEMI_COLON )? ; public final QueryProgram grandQuery() throws RecognitionException { QueryProgram program = null; Token j=null; Token a=null; QueryMeta s1 =null; QueryMeta s2 =null; program = null; try { // druidG.g:136:2: ( (s1= queryStmnt ) ( WS j= ( JOIN | LEFT_JOIN | RIGHT_JOIN ) ( WS )? LPARAN ( WS )? (s2= queryStmnt ) ( WS )? RPARAN ( WS )? ON ( WS )? LPARAN ( WS )? (a= ID ) ( ( WS )? ',' ( WS )? a= ID )* ( WS )? RPARAN )? ( WS )? ( OPT_SEMI_COLON )? ) // druidG.g:136:4: (s1= queryStmnt ) ( WS j= ( JOIN | LEFT_JOIN | RIGHT_JOIN ) ( WS )? LPARAN ( WS )? (s2= queryStmnt ) ( WS )? RPARAN ( WS )? ON ( WS )? LPARAN ( WS )? (a= ID ) ( ( WS )? ',' ( WS )? a= ID )* ( WS )? RPARAN )? ( WS )? ( OPT_SEMI_COLON )? { // druidG.g:136:4: (s1= queryStmnt ) // druidG.g:136:5: s1= queryStmnt { pushFollow(FOLLOW_queryStmnt_in_grandQuery1034); s1=queryStmnt(); state._fsp--; } program = new QueryProgram();program.addStmnt(s1); // druidG.g:137:4: ( WS j= ( JOIN | LEFT_JOIN | RIGHT_JOIN ) ( WS )? LPARAN ( WS )? (s2= queryStmnt ) ( WS )? RPARAN ( WS )? ON ( WS )? LPARAN ( WS )? (a= ID ) ( ( WS )? ',' ( WS )? a= ID )* ( WS )? RPARAN )? int alt95=2; int LA95_0 = input.LA(1); if ( (LA95_0==WS) ) { int LA95_1 = input.LA(2); if ( (LA95_1==JOIN||LA95_1==LEFT_JOIN||LA95_1==RIGHT_JOIN) ) { alt95=1; } } switch (alt95) { case 1 : // druidG.g:137:5: WS j= ( JOIN | LEFT_JOIN | RIGHT_JOIN ) ( WS )? LPARAN ( WS )? (s2= queryStmnt ) ( WS )? RPARAN ( WS )? ON ( WS )? LPARAN ( WS )? (a= ID ) ( ( WS )? ',' ( WS )? a= ID )* ( WS )? RPARAN { match(input,WS,FOLLOW_WS_in_grandQuery1044); j=input.LT(1); if ( input.LA(1)==JOIN||input.LA(1)==LEFT_JOIN||input.LA(1)==RIGHT_JOIN ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } program.addJoinType((j!=null?j.getText():null).toUpperCase()); // druidG.g:139:5: ( WS )? int alt85=2; int LA85_0 = input.LA(1); if ( (LA85_0==WS) ) { alt85=1; } switch (alt85) { case 1 : // druidG.g:139:5: WS { match(input,WS,FOLLOW_WS_in_grandQuery1069); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_grandQuery1072); // druidG.g:139:16: ( WS )? int alt86=2; int LA86_0 = input.LA(1); if ( (LA86_0==WS) ) { alt86=1; } switch (alt86) { case 1 : // druidG.g:139:16: WS { match(input,WS,FOLLOW_WS_in_grandQuery1074); } break; } // druidG.g:139:20: (s2= queryStmnt ) // druidG.g:139:21: s2= queryStmnt { pushFollow(FOLLOW_queryStmnt_in_grandQuery1080); s2=queryStmnt(); state._fsp--; } program.addStmnt(s2); // druidG.g:139:60: ( WS )? int alt87=2; int LA87_0 = input.LA(1); if ( (LA87_0==WS) ) { alt87=1; } switch (alt87) { case 1 : // druidG.g:139:60: WS { match(input,WS,FOLLOW_WS_in_grandQuery1085); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_grandQuery1088); // druidG.g:139:71: ( WS )? int alt88=2; int LA88_0 = input.LA(1); if ( (LA88_0==WS) ) { alt88=1; } switch (alt88) { case 1 : // druidG.g:139:71: WS { match(input,WS,FOLLOW_WS_in_grandQuery1090); } break; } match(input,ON,FOLLOW_ON_in_grandQuery1093); // druidG.g:140:5: ( WS )? int alt89=2; int LA89_0 = input.LA(1); if ( (LA89_0==WS) ) { alt89=1; } switch (alt89) { case 1 : // druidG.g:140:5: WS { match(input,WS,FOLLOW_WS_in_grandQuery1100); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_grandQuery1103); // druidG.g:140:16: ( WS )? int alt90=2; int LA90_0 = input.LA(1); if ( (LA90_0==WS) ) { alt90=1; } switch (alt90) { case 1 : // druidG.g:140:16: WS { match(input,WS,FOLLOW_WS_in_grandQuery1105); } break; } // druidG.g:140:20: (a= ID ) // druidG.g:140:21: a= ID { a=(Token)match(input,ID,FOLLOW_ID_in_grandQuery1111); program.addJoinHook((a!=null?a.getText():null)); } // druidG.g:140:60: ( ( WS )? ',' ( WS )? a= ID )* loop93: while (true) { int alt93=2; int LA93_0 = input.LA(1); if ( (LA93_0==WS) ) { int LA93_1 = input.LA(2); if ( (LA93_1==91) ) { alt93=1; } } else if ( (LA93_0==91) ) { alt93=1; } switch (alt93) { case 1 : // druidG.g:140:61: ( WS )? ',' ( WS )? a= ID { // druidG.g:140:61: ( WS )? int alt91=2; int LA91_0 = input.LA(1); if ( (LA91_0==WS) ) { alt91=1; } switch (alt91) { case 1 : // druidG.g:140:61: WS { match(input,WS,FOLLOW_WS_in_grandQuery1116); } break; } match(input,91,FOLLOW_91_in_grandQuery1119); // druidG.g:140:69: ( WS )? int alt92=2; int LA92_0 = input.LA(1); if ( (LA92_0==WS) ) { alt92=1; } switch (alt92) { case 1 : // druidG.g:140:69: WS { match(input,WS,FOLLOW_WS_in_grandQuery1121); } break; } a=(Token)match(input,ID,FOLLOW_ID_in_grandQuery1126); program.addJoinHook((a!=null?a.getText():null)); } break; default : break loop93; } } // druidG.g:140:114: ( WS )? int alt94=2; int LA94_0 = input.LA(1); if ( (LA94_0==WS) ) { alt94=1; } switch (alt94) { case 1 : // druidG.g:140:114: WS { match(input,WS,FOLLOW_WS_in_grandQuery1132); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_grandQuery1135); } break; } // druidG.g:142:4: ( WS )? int alt96=2; int LA96_0 = input.LA(1); if ( (LA96_0==WS) ) { alt96=1; } switch (alt96) { case 1 : // druidG.g:142:4: WS { match(input,WS,FOLLOW_WS_in_grandQuery1154); } break; } // druidG.g:142:8: ( OPT_SEMI_COLON )? int alt97=2; int LA97_0 = input.LA(1); if ( (LA97_0==OPT_SEMI_COLON) ) { alt97=1; } switch (alt97) { case 1 : // druidG.g:142:8: OPT_SEMI_COLON { match(input,OPT_SEMI_COLON,FOLLOW_OPT_SEMI_COLON_in_grandQuery1157); } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return program; } // $ANTLR end "grandQuery" // $ANTLR start "queryStmnt" // druidG.g:145:1: queryStmnt returns [QueryMeta qMeta] : SELECT ( ( WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* ) | ( WS '*' ) )? WS FROM ( ( WS id= ID ) | ( WS LPARAN (fromQuery= queryStmnt ) RPARAN ) ) ( WS WHERE WS whereClause[qMeta] ( ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? ) ( WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN )? ( WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN )? )? ; public final QueryMeta queryStmnt() throws RecognitionException { QueryMeta qMeta = null; Token id=null; Token dir=null; Token l=null; Token s1=null; Token s2=null; Token s=null; QueryMeta fromQuery =null; Pair<Granularity, List<Pair<Integer, Integer>>> gran =null; Having h =null; PostAggItem p =null; qMeta = GroupByQueryMeta.promote(new QueryMeta()); ((BaseAggQueryMeta)qMeta).aggregations = new ArrayList<>(); qMeta.intervals = new ArrayList<>(); try { // druidG.g:150:2: ( SELECT ( ( WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* ) | ( WS '*' ) )? WS FROM ( ( WS id= ID ) | ( WS LPARAN (fromQuery= queryStmnt ) RPARAN ) ) ( WS WHERE WS whereClause[qMeta] ( ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? ) ( WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN )? ( WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN )? )? ) // druidG.g:150:4: SELECT ( ( WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* ) | ( WS '*' ) )? WS FROM ( ( WS id= ID ) | ( WS LPARAN (fromQuery= queryStmnt ) RPARAN ) ) ( WS WHERE WS whereClause[qMeta] ( ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? ) ( WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN )? ( WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN )? )? { match(input,SELECT,FOLLOW_SELECT_in_queryStmnt1180); // druidG.g:151:7: ( ( WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* ) | ( WS '*' ) )? int alt101=3; int LA101_0 = input.LA(1); if ( (LA101_0==WS) ) { int LA101_1 = input.LA(2); if ( (LA101_1==90) ) { alt101=2; } else if ( (LA101_1==COUNT||LA101_1==DOUBLE_SUM||(LA101_1 >= HYPER_UNIQUE && LA101_1 <= ID)||LA101_1==JAVASCRIPT||LA101_1==LONG_SUM||LA101_1==MAX||LA101_1==MIN||LA101_1==UNIQUE) ) { alt101=1; } } switch (alt101) { case 1 : // druidG.g:152:8: ( WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* ) { // druidG.g:152:8: ( WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* ) // druidG.g:153:9: WS selectItems[qMeta] ( ( WS )? ',' ( WS )? selectItems[qMeta] )* { match(input,WS,FOLLOW_WS_in_queryStmnt1208); pushFollow(FOLLOW_selectItems_in_queryStmnt1210); selectItems(qMeta); state._fsp--; // druidG.g:153:31: ( ( WS )? ',' ( WS )? selectItems[qMeta] )* loop100: while (true) { int alt100=2; int LA100_0 = input.LA(1); if ( (LA100_0==WS) ) { int LA100_1 = input.LA(2); if ( (LA100_1==91) ) { alt100=1; } } else if ( (LA100_0==91) ) { alt100=1; } switch (alt100) { case 1 : // druidG.g:153:32: ( WS )? ',' ( WS )? selectItems[qMeta] { // druidG.g:153:32: ( WS )? int alt98=2; int LA98_0 = input.LA(1); if ( (LA98_0==WS) ) { alt98=1; } switch (alt98) { case 1 : // druidG.g:153:32: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1214); } break; } match(input,91,FOLLOW_91_in_queryStmnt1217); // druidG.g:153:40: ( WS )? int alt99=2; int LA99_0 = input.LA(1); if ( (LA99_0==WS) ) { alt99=1; } switch (alt99) { case 1 : // druidG.g:153:40: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1219); } break; } pushFollow(FOLLOW_selectItems_in_queryStmnt1222); selectItems(qMeta); state._fsp--; } break; default : break loop100; } } } } break; case 2 : // druidG.g:156:8: ( WS '*' ) { // druidG.g:156:8: ( WS '*' ) // druidG.g:156:9: WS '*' { match(input,WS,FOLLOW_WS_in_queryStmnt1253); match(input,90,FOLLOW_90_in_queryStmnt1255); } } break; } match(input,WS,FOLLOW_WS_in_queryStmnt1270); match(input,FROM,FOLLOW_FROM_in_queryStmnt1272); // druidG.g:159:4: ( ( WS id= ID ) | ( WS LPARAN (fromQuery= queryStmnt ) RPARAN ) ) int alt102=2; int LA102_0 = input.LA(1); if ( (LA102_0==WS) ) { int LA102_1 = input.LA(2); if ( (LA102_1==ID) ) { alt102=1; } else if ( (LA102_1==LPARAN) ) { alt102=2; } else { int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 102, 1, input); throw nvae; } finally { input.rewind(nvaeMark); } } } else { NoViableAltException nvae = new NoViableAltException("", 102, 0, input); throw nvae; } switch (alt102) { case 1 : // druidG.g:160:13: ( WS id= ID ) { // druidG.g:160:13: ( WS id= ID ) // druidG.g:160:14: WS id= ID { match(input,WS,FOLLOW_WS_in_queryStmnt1293); id=(Token)match(input,ID,FOLLOW_ID_in_queryStmnt1297); qMeta.dataSource = (id!=null?id.getText():null); } } break; case 2 : // druidG.g:162:11: ( WS LPARAN (fromQuery= queryStmnt ) RPARAN ) { // druidG.g:162:11: ( WS LPARAN (fromQuery= queryStmnt ) RPARAN ) // druidG.g:162:12: WS LPARAN (fromQuery= queryStmnt ) RPARAN { match(input,WS,FOLLOW_WS_in_queryStmnt1334); match(input,LPARAN,FOLLOW_LPARAN_in_queryStmnt1336); // druidG.g:162:22: (fromQuery= queryStmnt ) // druidG.g:162:23: fromQuery= queryStmnt { pushFollow(FOLLOW_queryStmnt_in_queryStmnt1341); fromQuery=queryStmnt(); state._fsp--; } match(input,RPARAN,FOLLOW_RPARAN_in_queryStmnt1344); qMeta.queryDataSource = fromQuery; } } break; } if (((BaseAggQueryMeta)qMeta).aggregations.isEmpty()) { qMeta = SelectQueryMeta.promote(qMeta); } // druidG.g:168:2: ( WS WHERE WS whereClause[qMeta] ( ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? ) ( WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN )? ( WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN )? )? int alt127=2; int LA127_0 = input.LA(1); if ( (LA127_0==WS) ) { int LA127_1 = input.LA(2); if ( (LA127_1==WHERE) ) { alt127=1; } } switch (alt127) { case 1 : // druidG.g:169:4: WS WHERE WS whereClause[qMeta] ( ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? ) ( WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN )? ( WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN )? { match(input,WS,FOLLOW_WS_in_queryStmnt1363); match(input,WHERE,FOLLOW_WHERE_in_queryStmnt1365); match(input,WS,FOLLOW_WS_in_queryStmnt1367); pushFollow(FOLLOW_whereClause_in_queryStmnt1369); whereClause(qMeta); state._fsp--; // druidG.g:170:4: ( ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? ) // druidG.g:171:5: ( WS BREAK WS BY WS gran= granularityClause )? ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? ( WS LIMIT WS (l= LONG ) )? ( WS THEN WS p= postAggItem )? { // druidG.g:171:5: ( WS BREAK WS BY WS gran= granularityClause )? int alt103=2; int LA103_0 = input.LA(1); if ( (LA103_0==WS) ) { int LA103_1 = input.LA(2); if ( (LA103_1==BREAK) ) { alt103=1; } } switch (alt103) { case 1 : // druidG.g:171:6: WS BREAK WS BY WS gran= granularityClause { match(input,WS,FOLLOW_WS_in_queryStmnt1387); match(input,BREAK,FOLLOW_BREAK_in_queryStmnt1389); match(input,WS,FOLLOW_WS_in_queryStmnt1391); match(input,BY,FOLLOW_BY_in_queryStmnt1393); match(input,WS,FOLLOW_WS_in_queryStmnt1395); pushFollow(FOLLOW_granularityClause_in_queryStmnt1399); gran=granularityClause(); state._fsp--; qMeta.granularity = gran.a; if (gran.b != null) { qMeta.microIntervals.addAll(gran.b); } } break; } // druidG.g:178:5: ( WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? )? int alt108=2; int LA108_0 = input.LA(1); if ( (LA108_0==WS) ) { int LA108_1 = input.LA(2); if ( (LA108_1==GROUP) ) { alt108=1; } } switch (alt108) { case 1 : // druidG.g:178:6: WS GROUP WS BY WS (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) ( WS HAVING WS h= havingClause )? { match(input,WS,FOLLOW_WS_in_queryStmnt1416); match(input,GROUP,FOLLOW_GROUP_in_queryStmnt1418); match(input,WS,FOLLOW_WS_in_queryStmnt1420); match(input,BY,FOLLOW_BY_in_queryStmnt1422); match(input,WS,FOLLOW_WS_in_queryStmnt1424); qMeta = GroupByQueryMeta.promote(qMeta); if (((GroupByQueryMeta)qMeta).fetchDimensions == null) { System.err.println("No dimensions !! "); } // druidG.g:185:10: (id= ID ( ( WS )? ',' ( WS )? id= ID )* ) // druidG.g:185:11: id= ID ( ( WS )? ',' ( WS )? id= ID )* { id=(Token)match(input,ID,FOLLOW_ID_in_queryStmnt1450); if (!((GroupByQueryMeta)qMeta).checkDimOrAlias((id!=null?id.getText():null))) { System.err.println("Dimension/Alias " + (id!=null?id.getText():null) + " not valid.."); } // druidG.g:191:14: ( ( WS )? ',' ( WS )? id= ID )* loop106: while (true) { int alt106=2; int LA106_0 = input.LA(1); if ( (LA106_0==WS) ) { int LA106_1 = input.LA(2); if ( (LA106_1==91) ) { alt106=1; } } else if ( (LA106_0==91) ) { alt106=1; } switch (alt106) { case 1 : // druidG.g:191:15: ( WS )? ',' ( WS )? id= ID { // druidG.g:191:15: ( WS )? int alt104=2; int LA104_0 = input.LA(1); if ( (LA104_0==WS) ) { alt104=1; } switch (alt104) { case 1 : // druidG.g:191:15: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1482); } break; } match(input,91,FOLLOW_91_in_queryStmnt1485); // druidG.g:191:23: ( WS )? int alt105=2; int LA105_0 = input.LA(1); if ( (LA105_0==WS) ) { alt105=1; } switch (alt105) { case 1 : // druidG.g:191:23: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1487); } break; } id=(Token)match(input,ID,FOLLOW_ID_in_queryStmnt1492); if (!((GroupByQueryMeta)qMeta).checkDimOrAlias((id!=null?id.getText():null))) { System.err.println("Dimension/Alias " + (id!=null?id.getText():null) + " not valid.."); } } break; default : break loop106; } } } // druidG.g:199:10: ( WS HAVING WS h= havingClause )? int alt107=2; int LA107_0 = input.LA(1); if ( (LA107_0==WS) ) { int LA107_1 = input.LA(2); if ( (LA107_1==HAVING) ) { alt107=1; } } switch (alt107) { case 1 : // druidG.g:199:11: WS HAVING WS h= havingClause { match(input,WS,FOLLOW_WS_in_queryStmnt1549); match(input,HAVING,FOLLOW_HAVING_in_queryStmnt1551); match(input,WS,FOLLOW_WS_in_queryStmnt1553); pushFollow(FOLLOW_havingClause_in_queryStmnt1557); h=havingClause(); state._fsp--; ((GroupByQueryMeta)qMeta).having = h; } break; } } break; } qMeta = QueryUtils.checkAndPromoteToTimeSeries(qMeta); // druidG.g:203:5: ( WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? )? int alt110=2; int LA110_0 = input.LA(1); if ( (LA110_0==WS) ) { int LA110_1 = input.LA(2); if ( (LA110_1==ORDER) ) { alt110=1; } } switch (alt110) { case 1 : // druidG.g:203:6: WS ORDER WS BY WS (id= ID ) ( WS dir= ( ASC | DESC ) )? { match(input,WS,FOLLOW_WS_in_queryStmnt1601); match(input,ORDER,FOLLOW_ORDER_in_queryStmnt1603); match(input,WS,FOLLOW_WS_in_queryStmnt1605); match(input,BY,FOLLOW_BY_in_queryStmnt1607); match(input,WS,FOLLOW_WS_in_queryStmnt1609); // druidG.g:203:24: (id= ID ) // druidG.g:203:25: id= ID { id=(Token)match(input,ID,FOLLOW_ID_in_queryStmnt1614); } if (((PlainDimQueryMeta)qMeta).fetchDimensions.size() != 1) { ((GroupByQueryMeta)qMeta).limitSpec = new LimitSpec(); } else {// If fetchDimensions = 1 then TopN is more optimal. qMeta = TopNQueryMeta.promote(qMeta); ((TopNQueryMeta)qMeta).metric = (id!=null?id.getText():null); } // druidG.g:214:9: ( WS dir= ( ASC | DESC ) )? int alt109=2; int LA109_0 = input.LA(1); if ( (LA109_0==WS) ) { int LA109_1 = input.LA(2); if ( (LA109_1==ASC||LA109_1==DESC) ) { alt109=1; } } switch (alt109) { case 1 : // druidG.g:214:10: WS dir= ( ASC | DESC ) { match(input,WS,FOLLOW_WS_in_queryStmnt1647); dir=input.LT(1); if ( input.LA(1)==ASC||input.LA(1)==DESC ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } if (qMeta instanceof GroupByQueryMeta && ((GroupByQueryMeta)qMeta).limitSpec != null) { if (dir != null && (dir!=null?dir.getText():null) != null) { ((GroupByQueryMeta)qMeta).limitSpec.addColumn((id!=null?id.getText():null), (dir!=null?dir.getText():null)); } else { ((GroupByQueryMeta)qMeta).limitSpec.addColumn((id!=null?id.getText():null), "ASC"); } } } break; } // At this point if the qMeta is not TopN and is still GroupBy then do the following(default is ascending sort). if (qMeta instanceof GroupByQueryMeta && ((GroupByQueryMeta)qMeta).limitSpec != null) { if (!((GroupByQueryMeta)qMeta).limitSpec.columns.containsKey((id!=null?id.getText():null))) { ((GroupByQueryMeta)qMeta).limitSpec.addColumn((id!=null?id.getText():null), "ASC"); } } } break; } // druidG.g:235:5: ( WS LIMIT WS (l= LONG ) )? int alt111=2; int LA111_0 = input.LA(1); if ( (LA111_0==WS) ) { int LA111_1 = input.LA(2); if ( (LA111_1==LIMIT) ) { alt111=1; } } switch (alt111) { case 1 : // druidG.g:236:6: WS LIMIT WS (l= LONG ) { match(input,WS,FOLLOW_WS_in_queryStmnt1701); match(input,LIMIT,FOLLOW_LIMIT_in_queryStmnt1703); match(input,WS,FOLLOW_WS_in_queryStmnt1705); // druidG.g:236:18: (l= LONG ) // druidG.g:236:19: l= LONG { l=(Token)match(input,LONG,FOLLOW_LONG_in_queryStmnt1710); } if (qMeta instanceof SelectQueryMeta) { ((SelectQueryMeta)qMeta).pagingSpec.threshold = Integer.valueOf((l!=null?l.getText():null)); } else if (qMeta instanceof TopNQueryMeta) { ((TopNQueryMeta)qMeta).threshold = Integer.valueOf((l!=null?l.getText():null)); } else if (((PlainDimQueryMeta)qMeta).fetchDimensions.size() != 1) { if (((GroupByQueryMeta)qMeta).limitSpec != null) { ((GroupByQueryMeta)qMeta).limitSpec.limit = Long.valueOf((l!=null?l.getText():null)); } } } break; } // druidG.g:250:7: ( WS THEN WS p= postAggItem )? int alt112=2; int LA112_0 = input.LA(1); if ( (LA112_0==WS) ) { int LA112_1 = input.LA(2); if ( (LA112_1==THEN) ) { alt112=1; } } switch (alt112) { case 1 : // druidG.g:250:8: WS THEN WS p= postAggItem { match(input,WS,FOLLOW_WS_in_queryStmnt1748); match(input,THEN,FOLLOW_THEN_in_queryStmnt1750); match(input,WS,FOLLOW_WS_in_queryStmnt1752); pushFollow(FOLLOW_postAggItem_in_queryStmnt1756); p=postAggItem(); state._fsp--; QueryUtils.setPostAggregation(qMeta, p); } break; } } // druidG.g:252:4: ( WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN )? int alt122=2; int LA122_0 = input.LA(1); if ( (LA122_0==WS) ) { int LA122_1 = input.LA(2); if ( (LA122_1==WHICH) ) { alt122=1; } } switch (alt122) { case 1 : // druidG.g:252:5: WS WHICH WS CONTAINS ( WS )? LPARAN ( WS )? (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) ( WS )? RPARAN WS SORT ( WS )? LPARAN ( WS )? (s= SINGLE_QUOTE_STRING ) ( WS )? RPARAN { match(input,WS,FOLLOW_WS_in_queryStmnt1771); match(input,WHICH,FOLLOW_WHICH_in_queryStmnt1773); match(input,WS,FOLLOW_WS_in_queryStmnt1775); match(input,CONTAINS,FOLLOW_CONTAINS_in_queryStmnt1777); qMeta = SearchQueryMeta.promote(qMeta); // druidG.g:252:68: ( WS )? int alt113=2; int LA113_0 = input.LA(1); if ( (LA113_0==WS) ) { alt113=1; } switch (alt113) { case 1 : // druidG.g:252:68: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1781); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_queryStmnt1784); // druidG.g:252:79: ( WS )? int alt114=2; int LA114_0 = input.LA(1); if ( (LA114_0==WS) ) { alt114=1; } switch (alt114) { case 1 : // druidG.g:252:79: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1786); } break; } // druidG.g:252:83: (s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* ) // druidG.g:252:84: s1= SINGLE_QUOTE_STRING ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* { s1=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1792); ((SearchQueryMeta)qMeta).type = "insensitive_contains";((SearchQueryMeta)qMeta).addValue((s1!=null?s1.getText():null)); // druidG.g:252:208: ( ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING )* loop117: while (true) { int alt117=2; int LA117_0 = input.LA(1); if ( (LA117_0==WS) ) { int LA117_1 = input.LA(2); if ( (LA117_1==91) ) { alt117=1; } } else if ( (LA117_0==91) ) { alt117=1; } switch (alt117) { case 1 : // druidG.g:252:209: ( WS )? ',' ( WS )? s2= SINGLE_QUOTE_STRING { // druidG.g:252:209: ( WS )? int alt115=2; int LA115_0 = input.LA(1); if ( (LA115_0==WS) ) { alt115=1; } switch (alt115) { case 1 : // druidG.g:252:209: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1796); } break; } match(input,91,FOLLOW_91_in_queryStmnt1799); // druidG.g:252:217: ( WS )? int alt116=2; int LA116_0 = input.LA(1); if ( (LA116_0==WS) ) { alt116=1; } switch (alt116) { case 1 : // druidG.g:252:217: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1801); } break; } s2=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1806); ((SearchQueryMeta)qMeta).type = "fragment";((SearchQueryMeta)qMeta).addValue((s2!=null?s2.getText():null)); } break; default : break loop117; } } } // druidG.g:252:337: ( WS )? int alt118=2; int LA118_0 = input.LA(1); if ( (LA118_0==WS) ) { alt118=1; } switch (alt118) { case 1 : // druidG.g:252:337: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1813); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_queryStmnt1816); match(input,WS,FOLLOW_WS_in_queryStmnt1822); match(input,SORT,FOLLOW_SORT_in_queryStmnt1824); // druidG.g:253:13: ( WS )? int alt119=2; int LA119_0 = input.LA(1); if ( (LA119_0==WS) ) { alt119=1; } switch (alt119) { case 1 : // druidG.g:253:13: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1826); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_queryStmnt1829); // druidG.g:253:24: ( WS )? int alt120=2; int LA120_0 = input.LA(1); if ( (LA120_0==WS) ) { alt120=1; } switch (alt120) { case 1 : // druidG.g:253:24: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1831); } break; } // druidG.g:253:28: (s= SINGLE_QUOTE_STRING ) // druidG.g:253:29: s= SINGLE_QUOTE_STRING { s=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1837); } ((SearchQueryMeta)qMeta).setSort((s!=null?s.getText():null)); // druidG.g:253:97: ( WS )? int alt121=2; int LA121_0 = input.LA(1); if ( (LA121_0==WS) ) { alt121=1; } switch (alt121) { case 1 : // druidG.g:253:97: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1842); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_queryStmnt1845); } break; } // druidG.g:255:4: ( WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN )? int alt126=2; int LA126_0 = input.LA(1); if ( (LA126_0==WS) ) { int LA126_1 = input.LA(2); if ( (LA126_1==HINT) ) { alt126=1; } } switch (alt126) { case 1 : // druidG.g:255:5: WS HINT ( WS )? LPARAN ( WS )? s= SINGLE_QUOTE_STRING ( WS )? RPARAN { match(input,WS,FOLLOW_WS_in_queryStmnt1857); match(input,HINT,FOLLOW_HINT_in_queryStmnt1859); // druidG.g:255:13: ( WS )? int alt123=2; int LA123_0 = input.LA(1); if ( (LA123_0==WS) ) { alt123=1; } switch (alt123) { case 1 : // druidG.g:255:13: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1861); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_queryStmnt1864); // druidG.g:255:24: ( WS )? int alt124=2; int LA124_0 = input.LA(1); if ( (LA124_0==WS) ) { alt124=1; } switch (alt124) { case 1 : // druidG.g:255:24: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1866); } break; } s=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1871); qMeta = HintProcessor.process(qMeta, (s!=null?s.getText():null)); // druidG.g:255:99: ( WS )? int alt125=2; int LA125_0 = input.LA(1); if ( (LA125_0==WS) ) { alt125=1; } switch (alt125) { case 1 : // druidG.g:255:99: WS { match(input,WS,FOLLOW_WS_in_queryStmnt1875); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_queryStmnt1878); } break; } } break; } if (qMeta.intervals == null || qMeta.intervals.isEmpty()) { qMeta = TimeBoundaryQueryMeta.promote(qMeta); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return qMeta; } // $ANTLR end "queryStmnt" // $ANTLR start "anyValue" // druidG.g:265:1: anyValue returns [Object obj] : (a= SINGLE_QUOTE_STRING |b= ( LONG | FLOAT ) ); public final Object anyValue() throws RecognitionException { Object obj = null; Token a=null; Token b=null; try { // druidG.g:266:2: (a= SINGLE_QUOTE_STRING |b= ( LONG | FLOAT ) ) int alt128=2; int LA128_0 = input.LA(1); if ( (LA128_0==SINGLE_QUOTE_STRING) ) { alt128=1; } else if ( (LA128_0==FLOAT||LA128_0==LONG) ) { alt128=2; } else { NoViableAltException nvae = new NoViableAltException("", 128, 0, input); throw nvae; } switch (alt128) { case 1 : // druidG.g:266:3: a= SINGLE_QUOTE_STRING { a=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_anyValue1912); obj = unquote((a!=null?a.getText():null)); } break; case 2 : // druidG.g:266:53: b= ( LONG | FLOAT ) { b=input.LT(1); if ( input.LA(1)==FLOAT||input.LA(1)==LONG ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } obj = (b!=null?b.getText():null); } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return obj; } // $ANTLR end "anyValue" // $ANTLR start "selectItems" // druidG.g:269:1: selectItems[BaseStatementMeta meta] : (ai= aggItem |sd= simpleDim ); public final void selectItems(BaseStatementMeta meta) throws RecognitionException { AggItem ai =null; Pair<String, String> sd =null; try { // druidG.g:270:2: (ai= aggItem |sd= simpleDim ) int alt129=2; int LA129_0 = input.LA(1); if ( (LA129_0==COUNT||LA129_0==DOUBLE_SUM||LA129_0==HYPER_UNIQUE||LA129_0==JAVASCRIPT||LA129_0==LONG_SUM||LA129_0==MAX||LA129_0==MIN||LA129_0==UNIQUE) ) { alt129=1; } else if ( (LA129_0==ID) ) { alt129=2; } else { NoViableAltException nvae = new NoViableAltException("", 129, 0, input); throw nvae; } switch (alt129) { case 1 : // druidG.g:270:5: ai= aggItem { pushFollow(FOLLOW_aggItem_in_selectItems1943); ai=aggItem(); state._fsp--; if (meta instanceof QueryMeta) { ((BaseAggQueryMeta)meta).aggregations.add(ai); } else if (meta instanceof InsertMeta) { ((InsertMeta)meta).aggregations.add(ai); if (ai.isDirectMetric()) {//Unique, hyperUnique, Count etc are not part of the data ((InsertMeta)meta).addColumnInOrder(ai.getCanonicalName()); } } } break; case 2 : // druidG.g:281:5: sd= simpleDim { pushFollow(FOLLOW_simpleDim_in_selectItems1953); sd=simpleDim(); state._fsp--; if (meta instanceof QueryMeta) { ((PlainDimQueryMeta)meta).fetchDimensions.put(sd.a, sd.b); } else if (meta instanceof InsertMeta) { ((InsertMeta)meta).fetchDimensions.put(sd.a, sd.b); ((InsertMeta)meta).addColumnInOrder((sd.b != null)? sd.b : sd.a); } } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } } // $ANTLR end "selectItems" // $ANTLR start "simpleDim" // druidG.g:291:1: simpleDim returns [Pair<String, String> dims] : (a= ID ( WS AS WS b= ID )? ) ; public final Pair<String, String> simpleDim() throws RecognitionException { Pair<String, String> dims = null; Token a=null; Token b=null; try { // druidG.g:292:2: ( (a= ID ( WS AS WS b= ID )? ) ) // druidG.g:292:4: (a= ID ( WS AS WS b= ID )? ) { // druidG.g:292:4: (a= ID ( WS AS WS b= ID )? ) // druidG.g:292:5: a= ID ( WS AS WS b= ID )? { a=(Token)match(input,ID,FOLLOW_ID_in_simpleDim1974); // druidG.g:292:10: ( WS AS WS b= ID )? int alt130=2; int LA130_0 = input.LA(1); if ( (LA130_0==WS) ) { int LA130_1 = input.LA(2); if ( (LA130_1==AS) ) { alt130=1; } } switch (alt130) { case 1 : // druidG.g:292:11: WS AS WS b= ID { match(input,WS,FOLLOW_WS_in_simpleDim1977); match(input,AS,FOLLOW_AS_in_simpleDim1979); match(input,WS,FOLLOW_WS_in_simpleDim1981); b=(Token)match(input,ID,FOLLOW_ID_in_simpleDim1985); } break; } dims = (b != null)? new Pair<String, String>((a!=null?a.getText():null), (b!=null?b.getText():null)): new Pair<String, String>((a!=null?a.getText():null), null); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return dims; } // $ANTLR end "simpleDim" // $ANTLR start "whereClause" // druidG.g:299:1: whereClause[QueryMeta qMeta] : intls= intervalClause ( WS AND WS f= grandFilter )? ; public final void whereClause(QueryMeta qMeta) throws RecognitionException { List<Interval> intls =null; Filter f =null; try { // druidG.g:300:2: (intls= intervalClause ( WS AND WS f= grandFilter )? ) // druidG.g:300:3: intls= intervalClause ( WS AND WS f= grandFilter )? { pushFollow(FOLLOW_intervalClause_in_whereClause2008); intls=intervalClause(); state._fsp--; qMeta.intervals.addAll(intls); // druidG.g:300:57: ( WS AND WS f= grandFilter )? int alt131=2; int LA131_0 = input.LA(1); if ( (LA131_0==WS) ) { int LA131_1 = input.LA(2); if ( (LA131_1==AND) ) { alt131=1; } } switch (alt131) { case 1 : // druidG.g:300:58: WS AND WS f= grandFilter { match(input,WS,FOLLOW_WS_in_whereClause2013); match(input,AND,FOLLOW_AND_in_whereClause2015); match(input,WS,FOLLOW_WS_in_whereClause2017); pushFollow(FOLLOW_grandFilter_in_whereClause2021); f=grandFilter(); state._fsp--; qMeta.filter = f; } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } } // $ANTLR end "whereClause" // $ANTLR start "intervalClause" // druidG.g:304:1: intervalClause returns [List<Interval> intervals] : 'interval' WS BETWEEN WS ( ( ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) ) | ( LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN ) ) ; public final List<Interval> intervalClause() throws RecognitionException { List<Interval> intervals = null; Token st2=null; Token et2=null; ParserRuleReturnScope st =null; ParserRuleReturnScope et =null; Pair<String, String> p1 =null; Pair<String, String> p2 =null; intervals = new ArrayList<>(); try { // druidG.g:306:2: ( 'interval' WS BETWEEN WS ( ( ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) ) | ( LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN ) ) ) // druidG.g:306:4: 'interval' WS BETWEEN WS ( ( ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) ) | ( LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN ) ) { match(input,92,FOLLOW_92_in_intervalClause2047); match(input,WS,FOLLOW_WS_in_intervalClause2049); match(input,BETWEEN,FOLLOW_BETWEEN_in_intervalClause2051); match(input,WS,FOLLOW_WS_in_intervalClause2053); // druidG.g:307:2: ( ( ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) ) | ( LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN ) ) int alt139=2; int LA139_0 = input.LA(1); if ( ((LA139_0 >= DATE && LA139_0 <= DATE_YEAR_ONLY)||LA139_0==SINGLE_QUOTE_STRING) ) { alt139=1; } else if ( (LA139_0==LPARAN) ) { alt139=2; } else { NoViableAltException nvae = new NoViableAltException("", 139, 0, input); throw nvae; } switch (alt139) { case 1 : // druidG.g:308:4: ( ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) ) { // druidG.g:308:4: ( ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) ) // druidG.g:309:6: ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) { // druidG.g:309:6: ( (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) ) // druidG.g:309:7: (st= isoTime |st2= SINGLE_QUOTE_STRING ) WS AND WS (et= isoTime |et2= SINGLE_QUOTE_STRING ) { // druidG.g:309:7: (st= isoTime |st2= SINGLE_QUOTE_STRING ) int alt132=2; int LA132_0 = input.LA(1); if ( ((LA132_0 >= DATE && LA132_0 <= DATE_YEAR_ONLY)) ) { alt132=1; } else if ( (LA132_0==SINGLE_QUOTE_STRING) ) { alt132=2; } else { NoViableAltException nvae = new NoViableAltException("", 132, 0, input); throw nvae; } switch (alt132) { case 1 : // druidG.g:309:8: st= isoTime { pushFollow(FOLLOW_isoTime_in_intervalClause2073); st=isoTime(); state._fsp--; } break; case 2 : // druidG.g:309:22: st2= SINGLE_QUOTE_STRING { st2=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_intervalClause2080); } break; } match(input,WS,FOLLOW_WS_in_intervalClause2084); match(input,AND,FOLLOW_AND_in_intervalClause2086); match(input,WS,FOLLOW_WS_in_intervalClause2088); // druidG.g:309:58: (et= isoTime |et2= SINGLE_QUOTE_STRING ) int alt133=2; int LA133_0 = input.LA(1); if ( ((LA133_0 >= DATE && LA133_0 <= DATE_YEAR_ONLY)) ) { alt133=1; } else if ( (LA133_0==SINGLE_QUOTE_STRING) ) { alt133=2; } else { NoViableAltException nvae = new NoViableAltException("", 133, 0, input); throw nvae; } switch (alt133) { case 1 : // druidG.g:309:59: et= isoTime { pushFollow(FOLLOW_isoTime_in_intervalClause2093); et=isoTime(); state._fsp--; } break; case 2 : // druidG.g:309:73: et2= SINGLE_QUOTE_STRING { et2=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_intervalClause2100); } break; } } if (st2 != null) { if (et2 != null) { intervals.add(new Interval((st2!=null?st2.getText():null), (et2!=null?et2.getText():null))); } else { intervals.add(new Interval((st2!=null?st2.getText():null), (et!=null?input.toString(et.start,et.stop):null))); } } else { if (et2 != null) { intervals.add(new Interval((st!=null?input.toString(st.start,st.stop):null), (et2!=null?et2.getText():null))); } else { intervals.add(new Interval((st!=null?input.toString(st.start,st.stop):null), (et!=null?input.toString(et.start,et.stop):null))); } } } } break; case 2 : // druidG.g:326:4: ( LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN ) { // druidG.g:326:4: ( LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN ) // druidG.g:326:5: LPARAN ( WS )? p1= pairString ( ( WS )? ',' ( WS )? p2= pairString )* ( WS )? RPARAN { match(input,LPARAN,FOLLOW_LPARAN_in_intervalClause2126); // druidG.g:326:12: ( WS )? int alt134=2; int LA134_0 = input.LA(1); if ( (LA134_0==WS) ) { alt134=1; } switch (alt134) { case 1 : // druidG.g:326:12: WS { match(input,WS,FOLLOW_WS_in_intervalClause2128); } break; } pushFollow(FOLLOW_pairString_in_intervalClause2133); p1=pairString(); state._fsp--; intervals.add(new Interval(p1.a, p1.b)); // druidG.g:327:7: ( ( WS )? ',' ( WS )? p2= pairString )* loop137: while (true) { int alt137=2; int LA137_0 = input.LA(1); if ( (LA137_0==WS) ) { int LA137_1 = input.LA(2); if ( (LA137_1==91) ) { alt137=1; } } else if ( (LA137_0==91) ) { alt137=1; } switch (alt137) { case 1 : // druidG.g:327:8: ( WS )? ',' ( WS )? p2= pairString { // druidG.g:327:8: ( WS )? int alt135=2; int LA135_0 = input.LA(1); if ( (LA135_0==WS) ) { alt135=1; } switch (alt135) { case 1 : // druidG.g:327:8: WS { match(input,WS,FOLLOW_WS_in_intervalClause2145); } break; } match(input,91,FOLLOW_91_in_intervalClause2148); // druidG.g:327:16: ( WS )? int alt136=2; int LA136_0 = input.LA(1); if ( (LA136_0==WS) ) { alt136=1; } switch (alt136) { case 1 : // druidG.g:327:16: WS { match(input,WS,FOLLOW_WS_in_intervalClause2150); } break; } pushFollow(FOLLOW_pairString_in_intervalClause2155); p2=pairString(); state._fsp--; intervals.add(new Interval(p2.a, p2.b)); } break; default : break loop137; } } // druidG.g:327:79: ( WS )? int alt138=2; int LA138_0 = input.LA(1); if ( (LA138_0==WS) ) { alt138=1; } switch (alt138) { case 1 : // druidG.g:327:79: WS { match(input,WS,FOLLOW_WS_in_intervalClause2161); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_intervalClause2164); } } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return intervals; } // $ANTLR end "intervalClause" // $ANTLR start "getEquals" // druidG.g:332:1: getEquals returns [EqualsToHolder holder] : (a= ID ( WS )? EQUALS ( WS )? b= ( SINGLE_QUOTE_STRING | FLOAT | LONG ) ) ; public final EqualsToHolder getEquals() throws RecognitionException { EqualsToHolder holder = null; Token a=null; Token b=null; try { // druidG.g:333:2: ( (a= ID ( WS )? EQUALS ( WS )? b= ( SINGLE_QUOTE_STRING | FLOAT | LONG ) ) ) // druidG.g:333:4: (a= ID ( WS )? EQUALS ( WS )? b= ( SINGLE_QUOTE_STRING | FLOAT | LONG ) ) { // druidG.g:333:4: (a= ID ( WS )? EQUALS ( WS )? b= ( SINGLE_QUOTE_STRING | FLOAT | LONG ) ) // druidG.g:333:5: a= ID ( WS )? EQUALS ( WS )? b= ( SINGLE_QUOTE_STRING | FLOAT | LONG ) { a=(Token)match(input,ID,FOLLOW_ID_in_getEquals2187); // druidG.g:333:10: ( WS )? int alt140=2; int LA140_0 = input.LA(1); if ( (LA140_0==WS) ) { alt140=1; } switch (alt140) { case 1 : // druidG.g:333:10: WS { match(input,WS,FOLLOW_WS_in_getEquals2189); } break; } match(input,EQUALS,FOLLOW_EQUALS_in_getEquals2192); // druidG.g:333:21: ( WS )? int alt141=2; int LA141_0 = input.LA(1); if ( (LA141_0==WS) ) { alt141=1; } switch (alt141) { case 1 : // druidG.g:333:21: WS { match(input,WS,FOLLOW_WS_in_getEquals2194); } break; } b=input.LT(1); if ( input.LA(1)==FLOAT||input.LA(1)==LONG||input.LA(1)==SINGLE_QUOTE_STRING ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } holder = new EqualsToHolder((a!=null?a.getText():null), (b!=null?b.getText():null)); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return holder; } // $ANTLR end "getEquals" // $ANTLR start "granularityClause" // druidG.g:338:1: granularityClause returns [Pair<Granularity, List<Pair<Integer, Integer>>> clause] : ( ( (s= SINGLE_QUOTE_STRING ) ) | ( ( DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) | ( PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) ) ); public final Pair<Granularity, List<Pair<Integer, Integer>>> granularityClause() throws RecognitionException { Pair<Granularity, List<Pair<Integer, Integer>>> clause = null; Token s=null; Token dur=null; Token orig=null; Token per=null; Token tz=null; List<Pair<Integer, Integer>> inc =null; Granularity granularity = new Granularity("all");clause = new Pair<>(granularity, null); try { // druidG.g:340:2: ( ( (s= SINGLE_QUOTE_STRING ) ) | ( ( DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) | ( PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) ) ) int alt164=2; int LA164_0 = input.LA(1); if ( (LA164_0==SINGLE_QUOTE_STRING) ) { alt164=1; } else if ( (LA164_0==DURATION||LA164_0==PERIOD) ) { alt164=2; } else { NoViableAltException nvae = new NoViableAltException("", 164, 0, input); throw nvae; } switch (alt164) { case 1 : // druidG.g:340:3: ( (s= SINGLE_QUOTE_STRING ) ) { // druidG.g:340:3: ( (s= SINGLE_QUOTE_STRING ) ) // druidG.g:340:4: (s= SINGLE_QUOTE_STRING ) { // druidG.g:340:4: (s= SINGLE_QUOTE_STRING ) // druidG.g:340:5: s= SINGLE_QUOTE_STRING { s=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2239); } granularity = new Granularity((s!=null?s.getText():null));clause = new Pair<>(granularity, null); } } break; case 2 : // druidG.g:342:3: ( ( DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) | ( PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) ) { // druidG.g:342:3: ( ( DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) | ( PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) ) int alt163=2; int LA163_0 = input.LA(1); if ( (LA163_0==DURATION) ) { alt163=1; } else if ( (LA163_0==PERIOD) ) { alt163=2; } else { NoViableAltException nvae = new NoViableAltException("", 163, 0, input); throw nvae; } switch (alt163) { case 1 : // druidG.g:343:5: ( DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) { // druidG.g:343:5: ( DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) // druidG.g:343:7: DURATION ( WS )? LPARAN ( WS )? dur= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN { match(input,DURATION,FOLLOW_DURATION_in_granularityClause2263); // druidG.g:343:16: ( WS )? int alt142=2; int LA142_0 = input.LA(1); if ( (LA142_0==WS) ) { alt142=1; } switch (alt142) { case 1 : // druidG.g:343:16: WS { match(input,WS,FOLLOW_WS_in_granularityClause2265); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_granularityClause2268); // druidG.g:343:27: ( WS )? int alt143=2; int LA143_0 = input.LA(1); if ( (LA143_0==WS) ) { alt143=1; } switch (alt143) { case 1 : // druidG.g:343:27: WS { match(input,WS,FOLLOW_WS_in_granularityClause2270); } break; } dur=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2275); granularity.setDuration((dur!=null?dur.getText():null)); // druidG.g:343:93: ( WS )? int alt144=2; int LA144_0 = input.LA(1); if ( (LA144_0==WS) ) { alt144=1; } switch (alt144) { case 1 : // druidG.g:343:93: WS { match(input,WS,FOLLOW_WS_in_granularityClause2279); } break; } // druidG.g:343:97: ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? int alt146=2; int LA146_0 = input.LA(1); if ( (LA146_0==91) ) { int LA146_1 = input.LA(2); if ( (LA146_1==WS) ) { int LA146_4 = input.LA(3); if ( (LA146_4==SINGLE_QUOTE_STRING) ) { alt146=1; } } else if ( (LA146_1==SINGLE_QUOTE_STRING) ) { alt146=1; } } switch (alt146) { case 1 : // druidG.g:343:98: ',' ( WS )? orig= SINGLE_QUOTE_STRING { match(input,91,FOLLOW_91_in_granularityClause2283); // druidG.g:343:102: ( WS )? int alt145=2; int LA145_0 = input.LA(1); if ( (LA145_0==WS) ) { alt145=1; } switch (alt145) { case 1 : // druidG.g:343:102: WS { match(input,WS,FOLLOW_WS_in_granularityClause2285); } break; } orig=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2290); granularity.setOrigin((orig!=null?orig.getText():null)); } break; } clause = new Pair<>(granularity, null); // druidG.g:343:211: ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? int alt150=2; int LA150_0 = input.LA(1); if ( (LA150_0==WS||LA150_0==91) ) { alt150=1; } switch (alt150) { case 1 : // druidG.g:343:212: ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? { // druidG.g:343:212: ( WS )? int alt147=2; int LA147_0 = input.LA(1); if ( (LA147_0==WS) ) { alt147=1; } switch (alt147) { case 1 : // druidG.g:343:212: WS { match(input,WS,FOLLOW_WS_in_granularityClause2298); } break; } match(input,91,FOLLOW_91_in_granularityClause2301); // druidG.g:343:220: ( WS )? int alt148=2; int LA148_0 = input.LA(1); if ( (LA148_0==WS) ) { int LA148_1 = input.LA(2); if ( (LA148_1==WS) ) { alt148=1; } } switch (alt148) { case 1 : // druidG.g:343:220: WS { match(input,WS,FOLLOW_WS_in_granularityClause2303); } break; } pushFollow(FOLLOW_granularityInclude_in_granularityClause2308); inc=granularityInclude(); state._fsp--; clause = new Pair<>(granularity, inc); // druidG.g:343:288: ( WS )? int alt149=2; int LA149_0 = input.LA(1); if ( (LA149_0==WS) ) { alt149=1; } switch (alt149) { case 1 : // druidG.g:343:288: WS { match(input,WS,FOLLOW_WS_in_granularityClause2312); } break; } } break; } match(input,RPARAN,FOLLOW_RPARAN_in_granularityClause2317); } } break; case 2 : // druidG.g:345:5: ( PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) { // druidG.g:345:5: ( PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN ) // druidG.g:345:7: PERIOD ( WS )? LPARAN ( WS )? per= SINGLE_QUOTE_STRING ( WS )? ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? ( WS )? ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? RPARAN { match(input,PERIOD,FOLLOW_PERIOD_in_granularityClause2336); // druidG.g:345:14: ( WS )? int alt151=2; int LA151_0 = input.LA(1); if ( (LA151_0==WS) ) { alt151=1; } switch (alt151) { case 1 : // druidG.g:345:14: WS { match(input,WS,FOLLOW_WS_in_granularityClause2338); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_granularityClause2341); // druidG.g:345:25: ( WS )? int alt152=2; int LA152_0 = input.LA(1); if ( (LA152_0==WS) ) { alt152=1; } switch (alt152) { case 1 : // druidG.g:345:25: WS { match(input,WS,FOLLOW_WS_in_granularityClause2343); } break; } per=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2348); granularity.setPeriod((per!=null?per.getText():null)); // druidG.g:345:89: ( WS )? int alt153=2; int LA153_0 = input.LA(1); if ( (LA153_0==WS) ) { alt153=1; } switch (alt153) { case 1 : // druidG.g:345:89: WS { match(input,WS,FOLLOW_WS_in_granularityClause2352); } break; } // druidG.g:345:93: ( ',' ( WS )? tz= SINGLE_QUOTE_STRING )? int alt155=2; int LA155_0 = input.LA(1); if ( (LA155_0==91) ) { int LA155_1 = input.LA(2); if ( (LA155_1==WS) ) { int LA155_4 = input.LA(3); if ( (LA155_4==SINGLE_QUOTE_STRING) ) { alt155=1; } } else if ( (LA155_1==SINGLE_QUOTE_STRING) ) { alt155=1; } } switch (alt155) { case 1 : // druidG.g:345:94: ',' ( WS )? tz= SINGLE_QUOTE_STRING { match(input,91,FOLLOW_91_in_granularityClause2356); // druidG.g:345:98: ( WS )? int alt154=2; int LA154_0 = input.LA(1); if ( (LA154_0==WS) ) { alt154=1; } switch (alt154) { case 1 : // druidG.g:345:98: WS { match(input,WS,FOLLOW_WS_in_granularityClause2358); } break; } tz=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2363); granularity.setTimeZone((tz!=null?tz.getText():null)); } break; } // druidG.g:345:164: ( WS )? int alt156=2; int LA156_0 = input.LA(1); if ( (LA156_0==WS) ) { alt156=1; } switch (alt156) { case 1 : // druidG.g:345:164: WS { match(input,WS,FOLLOW_WS_in_granularityClause2369); } break; } // druidG.g:345:168: ( ',' ( WS )? orig= SINGLE_QUOTE_STRING )? int alt158=2; int LA158_0 = input.LA(1); if ( (LA158_0==91) ) { int LA158_1 = input.LA(2); if ( (LA158_1==WS) ) { int LA158_4 = input.LA(3); if ( (LA158_4==SINGLE_QUOTE_STRING) ) { alt158=1; } } else if ( (LA158_1==SINGLE_QUOTE_STRING) ) { alt158=1; } } switch (alt158) { case 1 : // druidG.g:345:169: ',' ( WS )? orig= SINGLE_QUOTE_STRING { match(input,91,FOLLOW_91_in_granularityClause2373); // druidG.g:345:173: ( WS )? int alt157=2; int LA157_0 = input.LA(1); if ( (LA157_0==WS) ) { alt157=1; } switch (alt157) { case 1 : // druidG.g:345:173: WS { match(input,WS,FOLLOW_WS_in_granularityClause2375); } break; } orig=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2380); granularity.setOrigin((orig!=null?orig.getText():null)); } break; } clause = new Pair<>(granularity, null); // druidG.g:345:283: ( ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? )? int alt162=2; int LA162_0 = input.LA(1); if ( (LA162_0==WS||LA162_0==91) ) { alt162=1; } switch (alt162) { case 1 : // druidG.g:345:284: ( WS )? ',' ( WS )? inc= granularityInclude ( WS )? { // druidG.g:345:284: ( WS )? int alt159=2; int LA159_0 = input.LA(1); if ( (LA159_0==WS) ) { alt159=1; } switch (alt159) { case 1 : // druidG.g:345:284: WS { match(input,WS,FOLLOW_WS_in_granularityClause2389); } break; } match(input,91,FOLLOW_91_in_granularityClause2392); // druidG.g:345:292: ( WS )? int alt160=2; int LA160_0 = input.LA(1); if ( (LA160_0==WS) ) { int LA160_1 = input.LA(2); if ( (LA160_1==WS) ) { alt160=1; } } switch (alt160) { case 1 : // druidG.g:345:292: WS { match(input,WS,FOLLOW_WS_in_granularityClause2394); } break; } pushFollow(FOLLOW_granularityInclude_in_granularityClause2399); inc=granularityInclude(); state._fsp--; clause = new Pair<>(granularity, inc); // druidG.g:345:360: ( WS )? int alt161=2; int LA161_0 = input.LA(1); if ( (LA161_0==WS) ) { alt161=1; } switch (alt161) { case 1 : // druidG.g:345:360: WS { match(input,WS,FOLLOW_WS_in_granularityClause2403); } break; } } break; } match(input,RPARAN,FOLLOW_RPARAN_in_granularityClause2408); } } break; } } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return clause; } // $ANTLR end "granularityClause" // $ANTLR start "granularityInclude" // druidG.g:349:1: granularityInclude returns [List<Pair<Integer, Integer>> microIntervals] : ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN ) ; public final List<Pair<Integer, Integer>> granularityInclude() throws RecognitionException { List<Pair<Integer, Integer>> microIntervals = null; Pair<Integer, Integer> p1 =null; Pair<Integer, Integer> p2 =null; microIntervals = new ArrayList<>(); try { // druidG.g:351:2: ( ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN ) ) // druidG.g:352:2: ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN ) { // druidG.g:352:2: ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN ) // druidG.g:352:4: WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN { match(input,WS,FOLLOW_WS_in_granularityInclude2436); match(input,INCLUDE,FOLLOW_INCLUDE_in_granularityInclude2438); // druidG.g:352:15: ( WS )? int alt165=2; int LA165_0 = input.LA(1); if ( (LA165_0==WS) ) { alt165=1; } switch (alt165) { case 1 : // druidG.g:352:15: WS { match(input,WS,FOLLOW_WS_in_granularityInclude2440); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_granularityInclude2443); // druidG.g:352:26: ( WS )? int alt166=2; int LA166_0 = input.LA(1); if ( (LA166_0==WS) ) { alt166=1; } switch (alt166) { case 1 : // druidG.g:352:26: WS { match(input,WS,FOLLOW_WS_in_granularityInclude2445); } break; } // druidG.g:352:30: (p1= pairNums ( ',' p2= pairNums )* ) // druidG.g:352:31: p1= pairNums ( ',' p2= pairNums )* { pushFollow(FOLLOW_pairNums_in_granularityInclude2451); p1=pairNums(); state._fsp--; microIntervals.add(p1); // druidG.g:352:69: ( ',' p2= pairNums )* loop167: while (true) { int alt167=2; int LA167_0 = input.LA(1); if ( (LA167_0==91) ) { alt167=1; } switch (alt167) { case 1 : // druidG.g:352:70: ',' p2= pairNums { match(input,91,FOLLOW_91_in_granularityInclude2456); pushFollow(FOLLOW_pairNums_in_granularityInclude2460); p2=pairNums(); state._fsp--; microIntervals.add(p2); } break; default : break loop167; } } } // druidG.g:352:115: ( WS )? int alt168=2; int LA168_0 = input.LA(1); if ( (LA168_0==WS) ) { alt168=1; } switch (alt168) { case 1 : // druidG.g:352:115: WS { match(input,WS,FOLLOW_WS_in_granularityInclude2467); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_granularityInclude2470); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return microIntervals; } // $ANTLR end "granularityInclude" // $ANTLR start "pairNums" // druidG.g:355:1: pairNums returns [Pair<Integer, Integer> pair] : ( LSQUARE ( WS )? i= LONG ( WS )? ',' ( WS )? j= LONG ( WS )? RSQUARE ) ; public final Pair<Integer, Integer> pairNums() throws RecognitionException { Pair<Integer, Integer> pair = null; Token i=null; Token j=null; try { // druidG.g:356:2: ( ( LSQUARE ( WS )? i= LONG ( WS )? ',' ( WS )? j= LONG ( WS )? RSQUARE ) ) // druidG.g:356:4: ( LSQUARE ( WS )? i= LONG ( WS )? ',' ( WS )? j= LONG ( WS )? RSQUARE ) { // druidG.g:356:4: ( LSQUARE ( WS )? i= LONG ( WS )? ',' ( WS )? j= LONG ( WS )? RSQUARE ) // druidG.g:356:5: LSQUARE ( WS )? i= LONG ( WS )? ',' ( WS )? j= LONG ( WS )? RSQUARE { match(input,LSQUARE,FOLLOW_LSQUARE_in_pairNums2489); // druidG.g:356:13: ( WS )? int alt169=2; int LA169_0 = input.LA(1); if ( (LA169_0==WS) ) { alt169=1; } switch (alt169) { case 1 : // druidG.g:356:13: WS { match(input,WS,FOLLOW_WS_in_pairNums2491); } break; } i=(Token)match(input,LONG,FOLLOW_LONG_in_pairNums2496); // druidG.g:356:25: ( WS )? int alt170=2; int LA170_0 = input.LA(1); if ( (LA170_0==WS) ) { alt170=1; } switch (alt170) { case 1 : // druidG.g:356:25: WS { match(input,WS,FOLLOW_WS_in_pairNums2499); } break; } match(input,91,FOLLOW_91_in_pairNums2502); // druidG.g:356:33: ( WS )? int alt171=2; int LA171_0 = input.LA(1); if ( (LA171_0==WS) ) { alt171=1; } switch (alt171) { case 1 : // druidG.g:356:33: WS { match(input,WS,FOLLOW_WS_in_pairNums2504); } break; } j=(Token)match(input,LONG,FOLLOW_LONG_in_pairNums2509); // druidG.g:356:44: ( WS )? int alt172=2; int LA172_0 = input.LA(1); if ( (LA172_0==WS) ) { alt172=1; } switch (alt172) { case 1 : // druidG.g:356:44: WS { match(input,WS,FOLLOW_WS_in_pairNums2511); } break; } match(input,RSQUARE,FOLLOW_RSQUARE_in_pairNums2514); } pair = new Pair<>(Integer.parseInt((i!=null?i.getText():null)), Integer.parseInt((j!=null?j.getText():null))); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return pair; } // $ANTLR end "pairNums" // $ANTLR start "pairString" // druidG.g:359:1: pairString returns [Pair<String, String> pair] : ( LSQUARE ( WS )? i= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? j= SINGLE_QUOTE_STRING ( WS )? RSQUARE ) ; public final Pair<String, String> pairString() throws RecognitionException { Pair<String, String> pair = null; Token i=null; Token j=null; try { // druidG.g:360:2: ( ( LSQUARE ( WS )? i= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? j= SINGLE_QUOTE_STRING ( WS )? RSQUARE ) ) // druidG.g:360:4: ( LSQUARE ( WS )? i= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? j= SINGLE_QUOTE_STRING ( WS )? RSQUARE ) { // druidG.g:360:4: ( LSQUARE ( WS )? i= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? j= SINGLE_QUOTE_STRING ( WS )? RSQUARE ) // druidG.g:360:5: LSQUARE ( WS )? i= SINGLE_QUOTE_STRING ( WS )? ',' ( WS )? j= SINGLE_QUOTE_STRING ( WS )? RSQUARE { match(input,LSQUARE,FOLLOW_LSQUARE_in_pairString2534); // druidG.g:360:13: ( WS )? int alt173=2; int LA173_0 = input.LA(1); if ( (LA173_0==WS) ) { alt173=1; } switch (alt173) { case 1 : // druidG.g:360:13: WS { match(input,WS,FOLLOW_WS_in_pairString2536); } break; } i=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_pairString2541); // druidG.g:360:40: ( WS )? int alt174=2; int LA174_0 = input.LA(1); if ( (LA174_0==WS) ) { alt174=1; } switch (alt174) { case 1 : // druidG.g:360:40: WS { match(input,WS,FOLLOW_WS_in_pairString2544); } break; } match(input,91,FOLLOW_91_in_pairString2547); // druidG.g:360:48: ( WS )? int alt175=2; int LA175_0 = input.LA(1); if ( (LA175_0==WS) ) { alt175=1; } switch (alt175) { case 1 : // druidG.g:360:48: WS { match(input,WS,FOLLOW_WS_in_pairString2549); } break; } j=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_pairString2554); // druidG.g:360:74: ( WS )? int alt176=2; int LA176_0 = input.LA(1); if ( (LA176_0==WS) ) { alt176=1; } switch (alt176) { case 1 : // druidG.g:360:74: WS { match(input,WS,FOLLOW_WS_in_pairString2556); } break; } match(input,RSQUARE,FOLLOW_RSQUARE_in_pairString2559); } pair = new Pair<>(((i!=null?i.getText():null)).replaceAll("'", ""), ((j!=null?j.getText():null)).replaceAll("'", "")); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return pair; } // $ANTLR end "pairString" // $ANTLR start "havingClause" // druidG.g:367:1: havingClause returns [Having having] : h= complexHaving ; public final Having havingClause() throws RecognitionException { Having having = null; Having h =null; try { // druidG.g:368:2: (h= complexHaving ) // druidG.g:368:4: h= complexHaving { pushFollow(FOLLOW_complexHaving_in_havingClause2584); h=complexHaving(); state._fsp--; having = h; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return having; } // $ANTLR end "havingClause" // $ANTLR start "simpleHaving" // druidG.g:371:1: simpleHaving returns [Having having] : ( (a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) | (e= getEquals ) | (n= NOT WS a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) ); public final Having simpleHaving() throws RecognitionException { Having having = null; Token a=null; Token t=null; Token v=null; Token n=null; EqualsToHolder e =null; try { // druidG.g:372:2: ( (a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) | (e= getEquals ) | (n= NOT WS a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) ) int alt181=3; int LA181_0 = input.LA(1); if ( (LA181_0==ID) ) { switch ( input.LA(2) ) { case WS: { int LA181_3 = input.LA(3); if ( (LA181_3==COMPARE_OPER) ) { alt181=1; } else if ( (LA181_3==EQUALS) ) { alt181=2; } else { int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 181, 3, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case COMPARE_OPER: { alt181=1; } break; case EQUALS: { alt181=2; } break; default: int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 181, 1, input); throw nvae; } finally { input.rewind(nvaeMark); } } } else if ( (LA181_0==NOT) ) { alt181=3; } else { NoViableAltException nvae = new NoViableAltException("", 181, 0, input); throw nvae; } switch (alt181) { case 1 : // druidG.g:372:4: (a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) { // druidG.g:372:4: (a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) // druidG.g:372:5: a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) { a=(Token)match(input,ID,FOLLOW_ID_in_simpleHaving2605); // druidG.g:372:10: ( WS )? int alt177=2; int LA177_0 = input.LA(1); if ( (LA177_0==WS) ) { alt177=1; } switch (alt177) { case 1 : // druidG.g:372:10: WS { match(input,WS,FOLLOW_WS_in_simpleHaving2607); } break; } t=(Token)match(input,COMPARE_OPER,FOLLOW_COMPARE_OPER_in_simpleHaving2612); // druidG.g:372:29: ( WS )? int alt178=2; int LA178_0 = input.LA(1); if ( (LA178_0==WS) ) { alt178=1; } switch (alt178) { case 1 : // druidG.g:372:29: WS { match(input,WS,FOLLOW_WS_in_simpleHaving2614); } break; } v=input.LT(1); if ( input.LA(1)==FLOAT||input.LA(1)==LONG ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } having = new Having((t!=null?t.getText():null), (a!=null?a.getText():null), (v!=null?v.getText():null)); } break; case 2 : // druidG.g:373:4: (e= getEquals ) { // druidG.g:373:4: (e= getEquals ) // druidG.g:373:5: e= getEquals { pushFollow(FOLLOW_getEquals_in_simpleHaving2636); e=getEquals(); state._fsp--; } having = new Having("=", e.name, e.value); } break; case 3 : // druidG.g:374:4: (n= NOT WS a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) { // druidG.g:374:4: (n= NOT WS a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) ) // druidG.g:374:5: n= NOT WS a= ID ( WS )? t= COMPARE_OPER ( WS )? v= ( LONG | FLOAT ) { n=(Token)match(input,NOT,FOLLOW_NOT_in_simpleHaving2647); match(input,WS,FOLLOW_WS_in_simpleHaving2649); a=(Token)match(input,ID,FOLLOW_ID_in_simpleHaving2653); // druidG.g:374:19: ( WS )? int alt179=2; int LA179_0 = input.LA(1); if ( (LA179_0==WS) ) { alt179=1; } switch (alt179) { case 1 : // druidG.g:374:19: WS { match(input,WS,FOLLOW_WS_in_simpleHaving2655); } break; } t=(Token)match(input,COMPARE_OPER,FOLLOW_COMPARE_OPER_in_simpleHaving2660); // druidG.g:374:38: ( WS )? int alt180=2; int LA180_0 = input.LA(1); if ( (LA180_0==WS) ) { alt180=1; } switch (alt180) { case 1 : // druidG.g:374:38: WS { match(input,WS,FOLLOW_WS_in_simpleHaving2662); } break; } v=input.LT(1); if ( input.LA(1)==FLOAT||input.LA(1)==LONG ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } having = new Having((n!=null?n.getText():null).toLowerCase()); having.havingSpecs = Arrays.asList(new Having((t!=null?t.getText():null), (a!=null?a.getText():null), (v!=null?v.getText():null))); } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return having; } // $ANTLR end "simpleHaving" // $ANTLR start "complexHaving" // druidG.g:377:1: complexHaving returns [Having having] : ( (s= simpleHaving ) | (a= simpleHaving WS o= ( AND | OR ) WS b= complexHaving ) ); public final Having complexHaving() throws RecognitionException { Having having = null; Token o=null; Having s =null; Having a =null; Having b =null; try { // druidG.g:378:2: ( (s= simpleHaving ) | (a= simpleHaving WS o= ( AND | OR ) WS b= complexHaving ) ) int alt182=2; alt182 = dfa182.predict(input); switch (alt182) { case 1 : // druidG.g:378:4: (s= simpleHaving ) { // druidG.g:378:4: (s= simpleHaving ) // druidG.g:378:5: s= simpleHaving { pushFollow(FOLLOW_simpleHaving_in_complexHaving2695); s=simpleHaving(); state._fsp--; } having = s; } break; case 2 : // druidG.g:379:4: (a= simpleHaving WS o= ( AND | OR ) WS b= complexHaving ) { // druidG.g:379:4: (a= simpleHaving WS o= ( AND | OR ) WS b= complexHaving ) // druidG.g:379:5: a= simpleHaving WS o= ( AND | OR ) WS b= complexHaving { pushFollow(FOLLOW_simpleHaving_in_complexHaving2706); a=simpleHaving(); state._fsp--; match(input,WS,FOLLOW_WS_in_complexHaving2708); o=input.LT(1); if ( input.LA(1)==AND||input.LA(1)==OR ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } match(input,WS,FOLLOW_WS_in_complexHaving2718); pushFollow(FOLLOW_complexHaving_in_complexHaving2722); b=complexHaving(); state._fsp--; } having = new Having((o!=null?o.getText():null).toLowerCase()); having.havingSpecs = Arrays.asList(a,b); } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return having; } // $ANTLR end "complexHaving" // $ANTLR start "grandFilter" // druidG.g:386:1: grandFilter returns [Filter filter] : a= semiGrandFilter ( WS o= ( AND | OR ) WS b= semiGrandFilter )* ; public final Filter grandFilter() throws RecognitionException { Filter filter = null; Token o=null; Filter a =null; Filter b =null; try { // druidG.g:387:2: (a= semiGrandFilter ( WS o= ( AND | OR ) WS b= semiGrandFilter )* ) // druidG.g:387:3: a= semiGrandFilter ( WS o= ( AND | OR ) WS b= semiGrandFilter )* { pushFollow(FOLLOW_semiGrandFilter_in_grandFilter2751); a=semiGrandFilter(); state._fsp--; filter = a; // druidG.g:387:35: ( WS o= ( AND | OR ) WS b= semiGrandFilter )* loop183: while (true) { int alt183=2; int LA183_0 = input.LA(1); if ( (LA183_0==WS) ) { int LA183_1 = input.LA(2); if ( (LA183_1==AND||LA183_1==OR) ) { alt183=1; } } switch (alt183) { case 1 : // druidG.g:387:36: WS o= ( AND | OR ) WS b= semiGrandFilter { match(input,WS,FOLLOW_WS_in_grandFilter2756); o=input.LT(1); if ( input.LA(1)==AND||input.LA(1)==OR ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } match(input,WS,FOLLOW_WS_in_grandFilter2766); pushFollow(FOLLOW_semiGrandFilter_in_grandFilter2770); b=semiGrandFilter(); state._fsp--; Filter tmpFilter = filter; filter = new Filter((o!=null?o.getText():null).toLowerCase()); filter.fields = new ArrayList<>(); filter.fields.add(tmpFilter); if (b != null) { filter.fields.add(b); } } break; default : break loop183; } } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return filter; } // $ANTLR end "grandFilter" // $ANTLR start "semiGrandFilter" // druidG.g:399:1: semiGrandFilter returns [Filter filter] : (a= simpleLogicalFilter | LPARAN ( WS )? a= semiGrandFilter ( WS o= ( AND | OR ) WS b= semiGrandFilter )* ( WS )? RPARAN ); public final Filter semiGrandFilter() throws RecognitionException { Filter filter = null; Token o=null; Filter a =null; Filter b =null; try { // druidG.g:400:2: (a= simpleLogicalFilter | LPARAN ( WS )? a= semiGrandFilter ( WS o= ( AND | OR ) WS b= semiGrandFilter )* ( WS )? RPARAN ) int alt187=2; int LA187_0 = input.LA(1); if ( (LA187_0==ID||LA187_0==NOT) ) { alt187=1; } else if ( (LA187_0==LPARAN) ) { alt187=2; } else { NoViableAltException nvae = new NoViableAltException("", 187, 0, input); throw nvae; } switch (alt187) { case 1 : // druidG.g:401:2: a= simpleLogicalFilter { pushFollow(FOLLOW_simpleLogicalFilter_in_semiGrandFilter2801); a=simpleLogicalFilter(); state._fsp--; filter = a; } break; case 2 : // druidG.g:402:3: LPARAN ( WS )? a= semiGrandFilter ( WS o= ( AND | OR ) WS b= semiGrandFilter )* ( WS )? RPARAN { match(input,LPARAN,FOLLOW_LPARAN_in_semiGrandFilter2808); // druidG.g:402:10: ( WS )? int alt184=2; int LA184_0 = input.LA(1); if ( (LA184_0==WS) ) { alt184=1; } switch (alt184) { case 1 : // druidG.g:402:10: WS { match(input,WS,FOLLOW_WS_in_semiGrandFilter2810); } break; } pushFollow(FOLLOW_semiGrandFilter_in_semiGrandFilter2815); a=semiGrandFilter(); state._fsp--; filter = a; // druidG.g:402:47: ( WS o= ( AND | OR ) WS b= semiGrandFilter )* loop185: while (true) { int alt185=2; int LA185_0 = input.LA(1); if ( (LA185_0==WS) ) { int LA185_1 = input.LA(2); if ( (LA185_1==AND||LA185_1==OR) ) { alt185=1; } } switch (alt185) { case 1 : // druidG.g:402:48: WS o= ( AND | OR ) WS b= semiGrandFilter { match(input,WS,FOLLOW_WS_in_semiGrandFilter2821); o=input.LT(1); if ( input.LA(1)==AND||input.LA(1)==OR ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } match(input,WS,FOLLOW_WS_in_semiGrandFilter2831); pushFollow(FOLLOW_semiGrandFilter_in_semiGrandFilter2835); b=semiGrandFilter(); state._fsp--; Filter tmpFilter = filter; filter = new Filter((o!=null?o.getText():null).toLowerCase()); filter.fields = new ArrayList<>(); filter.fields.add(tmpFilter); if (b != null) { filter.fields.add(b); } } break; default : break loop185; } } // druidG.g:410:7: ( WS )? int alt186=2; int LA186_0 = input.LA(1); if ( (LA186_0==WS) ) { alt186=1; } switch (alt186) { case 1 : // druidG.g:410:7: WS { match(input,WS,FOLLOW_WS_in_semiGrandFilter2851); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_semiGrandFilter2854); } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return filter; } // $ANTLR end "semiGrandFilter" // $ANTLR start "simpleLogicalFilter" // druidG.g:413:1: simpleLogicalFilter returns [Filter filter] : ( (a= simpleFilter ) | ( (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) | (o= NOT WS b= simpleFilter ) ) ); public final Filter simpleLogicalFilter() throws RecognitionException { Filter filter = null; Token o=null; Filter a =null; Filter b =null; try { // druidG.g:414:2: ( (a= simpleFilter ) | ( (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) | (o= NOT WS b= simpleFilter ) ) ) int alt189=2; alt189 = dfa189.predict(input); switch (alt189) { case 1 : // druidG.g:415:2: (a= simpleFilter ) { // druidG.g:415:2: (a= simpleFilter ) // druidG.g:415:3: a= simpleFilter { pushFollow(FOLLOW_simpleFilter_in_simpleLogicalFilter2873); a=simpleFilter(); state._fsp--; } filter = a; } break; case 2 : // druidG.g:416:3: ( (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) | (o= NOT WS b= simpleFilter ) ) { // druidG.g:416:3: ( (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) | (o= NOT WS b= simpleFilter ) ) int alt188=2; int LA188_0 = input.LA(1); if ( (LA188_0==ID) ) { alt188=1; } else if ( (LA188_0==NOT) ) { alt188=2; } else { NoViableAltException nvae = new NoViableAltException("", 188, 0, input); throw nvae; } switch (alt188) { case 1 : // druidG.g:416:4: (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) { // druidG.g:416:4: (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) // druidG.g:416:5: a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter { pushFollow(FOLLOW_simpleFilter_in_simpleLogicalFilter2885); a=simpleFilter(); state._fsp--; match(input,WS,FOLLOW_WS_in_simpleLogicalFilter2887); o=input.LT(1); if ( input.LA(1)==AND||input.LA(1)==OR ) { input.consume(); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } match(input,WS,FOLLOW_WS_in_simpleLogicalFilter2897); pushFollow(FOLLOW_simpleFilter_in_simpleLogicalFilter2901); b=simpleFilter(); state._fsp--; } } break; case 2 : // druidG.g:416:55: (o= NOT WS b= simpleFilter ) { // druidG.g:416:55: (o= NOT WS b= simpleFilter ) // druidG.g:416:56: o= NOT WS b= simpleFilter { o=(Token)match(input,NOT,FOLLOW_NOT_in_simpleLogicalFilter2909); match(input,WS,FOLLOW_WS_in_simpleLogicalFilter2911); pushFollow(FOLLOW_simpleFilter_in_simpleLogicalFilter2915); b=simpleFilter(); state._fsp--; } } break; } filter = new Filter((o!=null?o.getText():null).toLowerCase()); filter.fields = new ArrayList<>(); if (a != null) { filter.fields.add(a); } if (b != null) { filter.fields.add(b); } } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return filter; } // $ANTLR end "simpleLogicalFilter" // $ANTLR start "simpleFilter" // druidG.g:429:1: simpleFilter returns [Filter filter] : (a= selectorFilter |a= regexFilter ) ; public final Filter simpleFilter() throws RecognitionException { Filter filter = null; Filter a =null; try { // druidG.g:430:2: ( (a= selectorFilter |a= regexFilter ) ) // druidG.g:430:4: (a= selectorFilter |a= regexFilter ) { // druidG.g:430:4: (a= selectorFilter |a= regexFilter ) int alt190=2; int LA190_0 = input.LA(1); if ( (LA190_0==ID) ) { int LA190_1 = input.LA(2); if ( (LA190_1==WS) ) { int LA190_2 = input.LA(3); if ( (LA190_2==LIKE) ) { alt190=2; } else if ( (LA190_2==EQUALS) ) { alt190=1; } else { int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 190, 2, input); throw nvae; } finally { input.rewind(nvaeMark); } } } else if ( (LA190_1==EQUALS) ) { alt190=1; } else { int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 190, 1, input); throw nvae; } finally { input.rewind(nvaeMark); } } } else { NoViableAltException nvae = new NoViableAltException("", 190, 0, input); throw nvae; } switch (alt190) { case 1 : // druidG.g:430:5: a= selectorFilter { pushFollow(FOLLOW_selectorFilter_in_simpleFilter2942); a=selectorFilter(); state._fsp--; } break; case 2 : // druidG.g:430:24: a= regexFilter { pushFollow(FOLLOW_regexFilter_in_simpleFilter2948); a=regexFilter(); state._fsp--; } break; } filter = a; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return filter; } // $ANTLR end "simpleFilter" // $ANTLR start "selectorFilter" // druidG.g:433:1: selectorFilter returns [Filter filter] : e= getEquals ; public final Filter selectorFilter() throws RecognitionException { Filter filter = null; EqualsToHolder e =null; filter = new Filter("selector"); try { // druidG.g:435:2: (e= getEquals ) // druidG.g:435:4: e= getEquals { pushFollow(FOLLOW_getEquals_in_selectorFilter2973); e=getEquals(); state._fsp--; filter.dimension = e.name; filter.value = unquote(e.value); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return filter; } // $ANTLR end "selectorFilter" // $ANTLR start "regexFilter" // druidG.g:441:1: regexFilter returns [Filter filter] : (a= ID WS LIKE WS b= ( SINGLE_QUOTE_STRING ) ) ; public final Filter regexFilter() throws RecognitionException { Filter filter = null; Token a=null; Token b=null; filter = new Filter("regex"); try { // druidG.g:443:2: ( (a= ID WS LIKE WS b= ( SINGLE_QUOTE_STRING ) ) ) // druidG.g:443:4: (a= ID WS LIKE WS b= ( SINGLE_QUOTE_STRING ) ) { // druidG.g:443:4: (a= ID WS LIKE WS b= ( SINGLE_QUOTE_STRING ) ) // druidG.g:443:5: a= ID WS LIKE WS b= ( SINGLE_QUOTE_STRING ) { a=(Token)match(input,ID,FOLLOW_ID_in_regexFilter3002); match(input,WS,FOLLOW_WS_in_regexFilter3004); match(input,LIKE,FOLLOW_LIKE_in_regexFilter3006); match(input,WS,FOLLOW_WS_in_regexFilter3008); // druidG.g:443:24: ( SINGLE_QUOTE_STRING ) // druidG.g:443:25: SINGLE_QUOTE_STRING { b=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_regexFilter3014); } } filter.dimension = (a!=null?a.getText():null); filter.pattern = unquote((b!=null?b.getText():null)); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return filter; } // $ANTLR end "regexFilter" // $ANTLR start "aggItem" // druidG.g:453:1: aggItem returns [AggItem aggItem] : aggCallSite[aggItem] ( WS AS WS x= ID )? ; public final AggItem aggItem() throws RecognitionException { AggItem aggItem = null; Token x=null; aggItem = new AggItem(); try { // druidG.g:455:2: ( aggCallSite[aggItem] ( WS AS WS x= ID )? ) // druidG.g:455:4: aggCallSite[aggItem] ( WS AS WS x= ID )? { pushFollow(FOLLOW_aggCallSite_in_aggItem3045); aggCallSite(aggItem); state._fsp--; // druidG.g:455:25: ( WS AS WS x= ID )? int alt191=2; int LA191_0 = input.LA(1); if ( (LA191_0==WS) ) { int LA191_1 = input.LA(2); if ( (LA191_1==AS) ) { alt191=1; } } switch (alt191) { case 1 : // druidG.g:455:26: WS AS WS x= ID { match(input,WS,FOLLOW_WS_in_aggItem3049); match(input,AS,FOLLOW_AS_in_aggItem3051); match(input,WS,FOLLOW_WS_in_aggItem3053); x=(Token)match(input,ID,FOLLOW_ID_in_aggItem3057); aggItem.setAsName((x!=null?x.getText():null)); } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return aggItem; } // $ANTLR end "aggItem" // $ANTLR start "aggCallSite" // druidG.g:457:1: aggCallSite[AggItem aggItem] : (p= aggFunc ( ( WS )? LPARAN ( WS )? (x= ID ) ( ( WS )? ',' ( WS )? y= ID )* ( WS )? RPARAN ) | COUNT ( '(*)' ) ); public final void aggCallSite(AggItem aggItem) throws RecognitionException { Token x=null; Token y=null; String p =null; try { // druidG.g:458:2: (p= aggFunc ( ( WS )? LPARAN ( WS )? (x= ID ) ( ( WS )? ',' ( WS )? y= ID )* ( WS )? RPARAN ) | COUNT ( '(*)' ) ) int alt198=2; int LA198_0 = input.LA(1); if ( (LA198_0==DOUBLE_SUM||LA198_0==HYPER_UNIQUE||LA198_0==JAVASCRIPT||LA198_0==LONG_SUM||LA198_0==MAX||LA198_0==MIN||LA198_0==UNIQUE) ) { alt198=1; } else if ( (LA198_0==COUNT) ) { alt198=2; } else { NoViableAltException nvae = new NoViableAltException("", 198, 0, input); throw nvae; } switch (alt198) { case 1 : // druidG.g:458:4: p= aggFunc ( ( WS )? LPARAN ( WS )? (x= ID ) ( ( WS )? ',' ( WS )? y= ID )* ( WS )? RPARAN ) { pushFollow(FOLLOW_aggFunc_in_aggCallSite3076); p=aggFunc(); state._fsp--; aggItem.setAggType(p); // druidG.g:458:39: ( ( WS )? LPARAN ( WS )? (x= ID ) ( ( WS )? ',' ( WS )? y= ID )* ( WS )? RPARAN ) // druidG.g:458:40: ( WS )? LPARAN ( WS )? (x= ID ) ( ( WS )? ',' ( WS )? y= ID )* ( WS )? RPARAN { // druidG.g:458:40: ( WS )? int alt192=2; int LA192_0 = input.LA(1); if ( (LA192_0==WS) ) { alt192=1; } switch (alt192) { case 1 : // druidG.g:458:40: WS { match(input,WS,FOLLOW_WS_in_aggCallSite3081); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_aggCallSite3084); // druidG.g:458:51: ( WS )? int alt193=2; int LA193_0 = input.LA(1); if ( (LA193_0==WS) ) { alt193=1; } switch (alt193) { case 1 : // druidG.g:458:51: WS { match(input,WS,FOLLOW_WS_in_aggCallSite3086); } break; } // druidG.g:458:55: (x= ID ) // druidG.g:458:57: x= ID { x=(Token)match(input,ID,FOLLOW_ID_in_aggCallSite3093); aggItem.setFieldName((x!=null?x.getText():null)); } // druidG.g:458:96: ( ( WS )? ',' ( WS )? y= ID )* loop196: while (true) { int alt196=2; int LA196_0 = input.LA(1); if ( (LA196_0==WS) ) { int LA196_1 = input.LA(2); if ( (LA196_1==91) ) { alt196=1; } } else if ( (LA196_0==91) ) { alt196=1; } switch (alt196) { case 1 : // druidG.g:458:97: ( WS )? ',' ( WS )? y= ID { // druidG.g:458:97: ( WS )? int alt194=2; int LA194_0 = input.LA(1); if ( (LA194_0==WS) ) { alt194=1; } switch (alt194) { case 1 : // druidG.g:458:97: WS { match(input,WS,FOLLOW_WS_in_aggCallSite3099); } break; } match(input,91,FOLLOW_91_in_aggCallSite3102); // druidG.g:458:105: ( WS )? int alt195=2; int LA195_0 = input.LA(1); if ( (LA195_0==WS) ) { alt195=1; } switch (alt195) { case 1 : // druidG.g:458:105: WS { match(input,WS,FOLLOW_WS_in_aggCallSite3104); } break; } y=(Token)match(input,ID,FOLLOW_ID_in_aggCallSite3109); if (aggItem.fieldNames == null || aggItem.fieldNames.isEmpty()) { aggItem.fieldNames = new ArrayList<>(); aggItem.fieldNames.add(aggItem.fieldName); aggItem.fieldName = null; } aggItem.fieldNames.add((y!=null?y.getText():null)); } break; default : break loop196; } } // druidG.g:465:6: ( WS )? int alt197=2; int LA197_0 = input.LA(1); if ( (LA197_0==WS) ) { alt197=1; } switch (alt197) { case 1 : // druidG.g:465:6: WS { match(input,WS,FOLLOW_WS_in_aggCallSite3115); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_aggCallSite3118); } } break; case 2 : // druidG.g:466:4: COUNT ( '(*)' ) { match(input,COUNT,FOLLOW_COUNT_in_aggCallSite3125); aggItem.setAggType("count"); // druidG.g:466:41: ( '(*)' ) // druidG.g:466:42: '(*)' { match(input,89,FOLLOW_89_in_aggCallSite3130); } } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } } // $ANTLR end "aggCallSite" // $ANTLR start "aggFunc" // druidG.g:469:1: aggFunc returns [String name] : ( LONG_SUM | DOUBLE_SUM | UNIQUE | HYPER_UNIQUE | MIN | MAX | JAVASCRIPT ); public final String aggFunc() throws RecognitionException { String name = null; try { // druidG.g:470:2: ( LONG_SUM | DOUBLE_SUM | UNIQUE | HYPER_UNIQUE | MIN | MAX | JAVASCRIPT ) int alt199=7; switch ( input.LA(1) ) { case LONG_SUM: { alt199=1; } break; case DOUBLE_SUM: { alt199=2; } break; case UNIQUE: { alt199=3; } break; case HYPER_UNIQUE: { alt199=4; } break; case MIN: { alt199=5; } break; case MAX: { alt199=6; } break; case JAVASCRIPT: { alt199=7; } break; default: NoViableAltException nvae = new NoViableAltException("", 199, 0, input); throw nvae; } switch (alt199) { case 1 : // druidG.g:470:4: LONG_SUM { match(input,LONG_SUM,FOLLOW_LONG_SUM_in_aggFunc3148); name = "longSum"; } break; case 2 : // druidG.g:471:4: DOUBLE_SUM { match(input,DOUBLE_SUM,FOLLOW_DOUBLE_SUM_in_aggFunc3155); name = "doubleSum"; } break; case 3 : // druidG.g:472:4: UNIQUE { match(input,UNIQUE,FOLLOW_UNIQUE_in_aggFunc3162); name = "unique"; } break; case 4 : // druidG.g:473:4: HYPER_UNIQUE { match(input,HYPER_UNIQUE,FOLLOW_HYPER_UNIQUE_in_aggFunc3169); name = "hyperUnique"; } break; case 5 : // druidG.g:474:4: MIN { match(input,MIN,FOLLOW_MIN_in_aggFunc3176); name = "min"; } break; case 6 : // druidG.g:475:4: MAX { match(input,MAX,FOLLOW_MAX_in_aggFunc3183); name = "max"; } break; case 7 : // druidG.g:476:4: JAVASCRIPT { match(input,JAVASCRIPT,FOLLOW_JAVASCRIPT_in_aggFunc3190); name = "javascript"; } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return name; } // $ANTLR end "aggFunc" // $ANTLR start "postAggItem" // druidG.g:482:1: postAggItem returns [PostAggItem postAggItem] : ( (a= simpleArith ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) | ( ( LPARAN ( WS )? a= postAggItem ( WS )? RPARAN ) ( postAggLabel[postAggItem] )? ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) ); public final PostAggItem postAggItem() throws RecognitionException { PostAggItem postAggItem = null; PostAggItem a =null; PostAggItem b =null; postAggItem = new PostAggItem("arithmetic"); try { // druidG.g:484:2: ( (a= simpleArith ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) | ( ( LPARAN ( WS )? a= postAggItem ( WS )? RPARAN ) ( postAggLabel[postAggItem] )? ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) ) int alt209=2; int LA209_0 = input.LA(1); if ( (LA209_0==FLOAT||LA209_0==ID||LA209_0==JAVASCRIPT||LA209_0==LONG||LA209_0==UNIQUE) ) { alt209=1; } else if ( (LA209_0==LPARAN) ) { alt209=2; } else { NoViableAltException nvae = new NoViableAltException("", 209, 0, input); throw nvae; } switch (alt209) { case 1 : // druidG.g:484:4: (a= simpleArith ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) { // druidG.g:484:4: (a= simpleArith ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) // druidG.g:484:5: a= simpleArith ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? { pushFollow(FOLLOW_simpleArith_in_postAggItem3218); a=simpleArith(); state._fsp--; // druidG.g:484:20: ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? int alt202=2; int LA202_0 = input.LA(1); if ( (LA202_0==WS) ) { int LA202_1 = input.LA(2); if ( (LA202_1==ARITH_OPER) ) { alt202=1; } } else if ( (LA202_0==ARITH_OPER) ) { alt202=1; } switch (alt202) { case 1 : // druidG.g:484:21: ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem { // druidG.g:484:21: ( WS )? int alt200=2; int LA200_0 = input.LA(1); if ( (LA200_0==WS) ) { alt200=1; } switch (alt200) { case 1 : // druidG.g:484:21: WS { match(input,WS,FOLLOW_WS_in_postAggItem3222); } break; } pushFollow(FOLLOW_postAggArithOper_in_postAggItem3225); postAggArithOper(postAggItem); state._fsp--; // druidG.g:484:55: ( WS )? int alt201=2; int LA201_0 = input.LA(1); if ( (LA201_0==WS) ) { alt201=1; } switch (alt201) { case 1 : // druidG.g:484:55: WS { match(input,WS,FOLLOW_WS_in_postAggItem3228); } break; } pushFollow(FOLLOW_postAggItem_in_postAggItem3233); b=postAggItem(); state._fsp--; } break; } } if (b == null) { postAggItem = a; } else { postAggItem.fields = Arrays.asList(a, b); } } break; case 2 : // druidG.g:491:4: ( ( LPARAN ( WS )? a= postAggItem ( WS )? RPARAN ) ( postAggLabel[postAggItem] )? ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) { // druidG.g:491:4: ( ( LPARAN ( WS )? a= postAggItem ( WS )? RPARAN ) ( postAggLabel[postAggItem] )? ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? ) // druidG.g:491:5: ( LPARAN ( WS )? a= postAggItem ( WS )? RPARAN ) ( postAggLabel[postAggItem] )? ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? { // druidG.g:491:5: ( LPARAN ( WS )? a= postAggItem ( WS )? RPARAN ) // druidG.g:491:6: LPARAN ( WS )? a= postAggItem ( WS )? RPARAN { match(input,LPARAN,FOLLOW_LPARAN_in_postAggItem3251); // druidG.g:491:13: ( WS )? int alt203=2; int LA203_0 = input.LA(1); if ( (LA203_0==WS) ) { alt203=1; } switch (alt203) { case 1 : // druidG.g:491:13: WS { match(input,WS,FOLLOW_WS_in_postAggItem3253); } break; } pushFollow(FOLLOW_postAggItem_in_postAggItem3258); a=postAggItem(); state._fsp--; // druidG.g:491:31: ( WS )? int alt204=2; int LA204_0 = input.LA(1); if ( (LA204_0==WS) ) { alt204=1; } switch (alt204) { case 1 : // druidG.g:491:31: WS { match(input,WS,FOLLOW_WS_in_postAggItem3260); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_postAggItem3263); } // druidG.g:491:43: ( postAggLabel[postAggItem] )? int alt205=2; int LA205_0 = input.LA(1); if ( (LA205_0==AS) ) { alt205=1; } switch (alt205) { case 1 : // druidG.g:491:44: postAggLabel[postAggItem] { pushFollow(FOLLOW_postAggLabel_in_postAggItem3267); postAggLabel(postAggItem); state._fsp--; } break; } // druidG.g:491:72: ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem )? int alt208=2; int LA208_0 = input.LA(1); if ( (LA208_0==WS) ) { int LA208_1 = input.LA(2); if ( (LA208_1==ARITH_OPER) ) { alt208=1; } } else if ( (LA208_0==ARITH_OPER) ) { alt208=1; } switch (alt208) { case 1 : // druidG.g:491:73: ( WS )? postAggArithOper[postAggItem] ( WS )? b= postAggItem { // druidG.g:491:73: ( WS )? int alt206=2; int LA206_0 = input.LA(1); if ( (LA206_0==WS) ) { alt206=1; } switch (alt206) { case 1 : // druidG.g:491:73: WS { match(input,WS,FOLLOW_WS_in_postAggItem3273); } break; } pushFollow(FOLLOW_postAggArithOper_in_postAggItem3276); postAggArithOper(postAggItem); state._fsp--; // druidG.g:491:107: ( WS )? int alt207=2; int LA207_0 = input.LA(1); if ( (LA207_0==WS) ) { alt207=1; } switch (alt207) { case 1 : // druidG.g:491:107: WS { match(input,WS,FOLLOW_WS_in_postAggItem3279); } break; } pushFollow(FOLLOW_postAggItem_in_postAggItem3284); b=postAggItem(); state._fsp--; } break; } } if (b == null) { postAggItem = a; } else { postAggItem.fields = Arrays.asList(a, b); } } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "postAggItem" // $ANTLR start "simpleArith" // druidG.g:502:1: simpleArith returns [PostAggItem postAggItem] : (a= simplePostAggAccess ) ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= simplePostAggAccess )? ; public final PostAggItem simpleArith() throws RecognitionException { PostAggItem postAggItem = null; PostAggItem a =null; PostAggItem b =null; postAggItem = new PostAggItem("arithmetic"); try { // druidG.g:504:2: ( (a= simplePostAggAccess ) ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= simplePostAggAccess )? ) // druidG.g:504:4: (a= simplePostAggAccess ) ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= simplePostAggAccess )? { // druidG.g:504:4: (a= simplePostAggAccess ) // druidG.g:504:5: a= simplePostAggAccess { pushFollow(FOLLOW_simplePostAggAccess_in_simpleArith3320); a=simplePostAggAccess(); state._fsp--; postAggItem=a; } // druidG.g:504:45: ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= simplePostAggAccess )? int alt212=2; alt212 = dfa212.predict(input); switch (alt212) { case 1 : // druidG.g:504:46: ( WS )? postAggArithOper[postAggItem] ( WS )? b= simplePostAggAccess { // druidG.g:504:46: ( WS )? int alt210=2; int LA210_0 = input.LA(1); if ( (LA210_0==WS) ) { alt210=1; } switch (alt210) { case 1 : // druidG.g:504:46: WS { match(input,WS,FOLLOW_WS_in_simpleArith3326); } break; } pushFollow(FOLLOW_postAggArithOper_in_simpleArith3329); postAggArithOper(postAggItem); state._fsp--; // druidG.g:504:80: ( WS )? int alt211=2; int LA211_0 = input.LA(1); if ( (LA211_0==WS) ) { alt211=1; } switch (alt211) { case 1 : // druidG.g:504:80: WS { match(input,WS,FOLLOW_WS_in_simpleArith3332); } break; } pushFollow(FOLLOW_simplePostAggAccess_in_simpleArith3337); b=simplePostAggAccess(); state._fsp--; postAggItem = new PostAggItem("arithmetic"); if (postAggItem.fields == null) { postAggItem.fields = new ArrayList<>(); } postAggItem.fields.add(a); postAggItem.fields.add(b); } break; } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "simpleArith" // $ANTLR start "simplePostAggAccess" // druidG.g:516:1: simplePostAggAccess returns [PostAggItem postAggItem] : (c= constantAccess |f= fieldAccess |h= hyperUniqueCardinality |js= postAggJavascriptDef ); public final PostAggItem simplePostAggAccess() throws RecognitionException { PostAggItem postAggItem = null; PostAggItem c =null; PostAggItem f =null; PostAggItem h =null; PostAggItem js =null; try { // druidG.g:517:2: (c= constantAccess |f= fieldAccess |h= hyperUniqueCardinality |js= postAggJavascriptDef ) int alt213=4; switch ( input.LA(1) ) { case FLOAT: case LONG: { alt213=1; } break; case ID: { alt213=2; } break; case UNIQUE: { alt213=3; } break; case JAVASCRIPT: { alt213=4; } break; default: NoViableAltException nvae = new NoViableAltException("", 213, 0, input); throw nvae; } switch (alt213) { case 1 : // druidG.g:517:4: c= constantAccess { pushFollow(FOLLOW_constantAccess_in_simplePostAggAccess3366); c=constantAccess(); state._fsp--; postAggItem = c; } break; case 2 : // druidG.g:518:4: f= fieldAccess { pushFollow(FOLLOW_fieldAccess_in_simplePostAggAccess3383); f=fieldAccess(); state._fsp--; postAggItem = f; } break; case 3 : // druidG.g:519:4: h= hyperUniqueCardinality { pushFollow(FOLLOW_hyperUniqueCardinality_in_simplePostAggAccess3396); h=hyperUniqueCardinality(); state._fsp--; postAggItem = h; } break; case 4 : // druidG.g:520:4: js= postAggJavascriptDef { pushFollow(FOLLOW_postAggJavascriptDef_in_simplePostAggAccess3405); js=postAggJavascriptDef(); state._fsp--; postAggItem = js; } break; } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "simplePostAggAccess" // $ANTLR start "constantAccess" // druidG.g:525:1: constantAccess returns [PostAggItem postAggItem] : ( (a= FLOAT |a= LONG ) ( WS postAggLabel[postAggItem] )? ) ; public final PostAggItem constantAccess() throws RecognitionException { PostAggItem postAggItem = null; Token a=null; postAggItem = new PostAggItem("constant"); try { // druidG.g:527:2: ( ( (a= FLOAT |a= LONG ) ( WS postAggLabel[postAggItem] )? ) ) // druidG.g:527:4: ( (a= FLOAT |a= LONG ) ( WS postAggLabel[postAggItem] )? ) { // druidG.g:527:4: ( (a= FLOAT |a= LONG ) ( WS postAggLabel[postAggItem] )? ) // druidG.g:527:5: (a= FLOAT |a= LONG ) ( WS postAggLabel[postAggItem] )? { // druidG.g:527:5: (a= FLOAT |a= LONG ) int alt214=2; int LA214_0 = input.LA(1); if ( (LA214_0==FLOAT) ) { alt214=1; } else if ( (LA214_0==LONG) ) { alt214=2; } else { NoViableAltException nvae = new NoViableAltException("", 214, 0, input); throw nvae; } switch (alt214) { case 1 : // druidG.g:527:6: a= FLOAT { a=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_constantAccess3435); } break; case 2 : // druidG.g:527:16: a= LONG { a=(Token)match(input,LONG,FOLLOW_LONG_in_constantAccess3441); } break; } postAggItem.constantValue = Double.valueOf((a!=null?a.getText():null)); // druidG.g:529:5: ( WS postAggLabel[postAggItem] )? int alt215=2; int LA215_0 = input.LA(1); if ( (LA215_0==WS) ) { int LA215_1 = input.LA(2); if ( (LA215_1==AS) ) { alt215=1; } } switch (alt215) { case 1 : // druidG.g:529:6: WS postAggLabel[postAggItem] { match(input,WS,FOLLOW_WS_in_constantAccess3454); pushFollow(FOLLOW_postAggLabel_in_constantAccess3456); postAggLabel(postAggItem); state._fsp--; } break; } } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "constantAccess" // $ANTLR start "fieldAccess" // druidG.g:532:1: fieldAccess returns [PostAggItem postAggItem] : (a= ID ( WS postAggLabel[postAggItem] )? ) ; public final PostAggItem fieldAccess() throws RecognitionException { PostAggItem postAggItem = null; Token a=null; postAggItem = new PostAggItem("fieldAccess"); try { // druidG.g:534:2: ( (a= ID ( WS postAggLabel[postAggItem] )? ) ) // druidG.g:534:4: (a= ID ( WS postAggLabel[postAggItem] )? ) { // druidG.g:534:4: (a= ID ( WS postAggLabel[postAggItem] )? ) // druidG.g:534:5: a= ID ( WS postAggLabel[postAggItem] )? { a=(Token)match(input,ID,FOLLOW_ID_in_fieldAccess3484); // druidG.g:534:10: ( WS postAggLabel[postAggItem] )? int alt216=2; int LA216_0 = input.LA(1); if ( (LA216_0==WS) ) { int LA216_1 = input.LA(2); if ( (LA216_1==AS) ) { alt216=1; } } switch (alt216) { case 1 : // druidG.g:534:11: WS postAggLabel[postAggItem] { match(input,WS,FOLLOW_WS_in_fieldAccess3487); pushFollow(FOLLOW_postAggLabel_in_fieldAccess3489); postAggLabel(postAggItem); state._fsp--; } break; } } postAggItem.fieldName = (a!=null?a.getText():null); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "fieldAccess" // $ANTLR start "hyperUniqueCardinality" // druidG.g:537:1: hyperUniqueCardinality returns [PostAggItem postAggItem] : ( UNIQUE ( WS )? LPARAN ( WS )? a= ID ( WS )? RPARAN ) ; public final PostAggItem hyperUniqueCardinality() throws RecognitionException { PostAggItem postAggItem = null; Token a=null; postAggItem = new PostAggItem("hyperUniqueCardinality"); try { // druidG.g:539:2: ( ( UNIQUE ( WS )? LPARAN ( WS )? a= ID ( WS )? RPARAN ) ) // druidG.g:539:4: ( UNIQUE ( WS )? LPARAN ( WS )? a= ID ( WS )? RPARAN ) { // druidG.g:539:4: ( UNIQUE ( WS )? LPARAN ( WS )? a= ID ( WS )? RPARAN ) // druidG.g:539:5: UNIQUE ( WS )? LPARAN ( WS )? a= ID ( WS )? RPARAN { match(input,UNIQUE,FOLLOW_UNIQUE_in_hyperUniqueCardinality3518); // druidG.g:539:12: ( WS )? int alt217=2; int LA217_0 = input.LA(1); if ( (LA217_0==WS) ) { alt217=1; } switch (alt217) { case 1 : // druidG.g:539:12: WS { match(input,WS,FOLLOW_WS_in_hyperUniqueCardinality3520); } break; } match(input,LPARAN,FOLLOW_LPARAN_in_hyperUniqueCardinality3523); // druidG.g:539:23: ( WS )? int alt218=2; int LA218_0 = input.LA(1); if ( (LA218_0==WS) ) { alt218=1; } switch (alt218) { case 1 : // druidG.g:539:23: WS { match(input,WS,FOLLOW_WS_in_hyperUniqueCardinality3525); } break; } a=(Token)match(input,ID,FOLLOW_ID_in_hyperUniqueCardinality3530); // druidG.g:539:32: ( WS )? int alt219=2; int LA219_0 = input.LA(1); if ( (LA219_0==WS) ) { alt219=1; } switch (alt219) { case 1 : // druidG.g:539:32: WS { match(input,WS,FOLLOW_WS_in_hyperUniqueCardinality3532); } break; } match(input,RPARAN,FOLLOW_RPARAN_in_hyperUniqueCardinality3535); postAggItem.fieldName = (a!=null?a.getText():null); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "hyperUniqueCardinality" // $ANTLR start "postAggJavascriptDef" // druidG.g:544:1: postAggJavascriptDef returns [PostAggItem postAggItem] : JAVASCRIPT ( WS )? str= SINGLE_QUOTE_STRING ; public final PostAggItem postAggJavascriptDef() throws RecognitionException { PostAggItem postAggItem = null; Token str=null; postAggItem = new PostAggItem("javascript"); try { // druidG.g:546:2: ( JAVASCRIPT ( WS )? str= SINGLE_QUOTE_STRING ) // druidG.g:546:4: JAVASCRIPT ( WS )? str= SINGLE_QUOTE_STRING { match(input,JAVASCRIPT,FOLLOW_JAVASCRIPT_in_postAggJavascriptDef3561); // druidG.g:546:15: ( WS )? int alt220=2; int LA220_0 = input.LA(1); if ( (LA220_0==WS) ) { alt220=1; } switch (alt220) { case 1 : // druidG.g:546:15: WS { match(input,WS,FOLLOW_WS_in_postAggJavascriptDef3563); } break; } str=(Token)match(input,SINGLE_QUOTE_STRING,FOLLOW_SINGLE_QUOTE_STRING_in_postAggJavascriptDef3568); postAggItem.parseToJs((str!=null?str.getText():null)); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return postAggItem; } // $ANTLR end "postAggJavascriptDef" // $ANTLR start "postAggLabel" // druidG.g:549:1: postAggLabel[PostAggItem postAggItem] : ( AS WS id= ID ) ; public final void postAggLabel(PostAggItem postAggItem) throws RecognitionException { Token id=null; try { // druidG.g:550:2: ( ( AS WS id= ID ) ) // druidG.g:550:4: ( AS WS id= ID ) { // druidG.g:550:4: ( AS WS id= ID ) // druidG.g:550:5: AS WS id= ID { match(input,AS,FOLLOW_AS_in_postAggLabel3584); match(input,WS,FOLLOW_WS_in_postAggLabel3586); id=(Token)match(input,ID,FOLLOW_ID_in_postAggLabel3590); } postAggItem.name = (id!=null?id.getText():null); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } } // $ANTLR end "postAggLabel" // $ANTLR start "postAggArithOper" // druidG.g:553:1: postAggArithOper[PostAggItem postAggItem] : arith= ARITH_OPER ; public final void postAggArithOper(PostAggItem postAggItem) throws RecognitionException { Token arith=null; try { // druidG.g:554:2: (arith= ARITH_OPER ) // druidG.g:554:3: arith= ARITH_OPER { arith=(Token)match(input,ARITH_OPER,FOLLOW_ARITH_OPER_in_postAggArithOper3606); postAggItem.fn = (arith!=null?arith.getText():null); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } } // $ANTLR end "postAggArithOper" public static class isoTime_return extends ParserRuleReturnScope { public String date; }; // $ANTLR start "isoTime" // druidG.g:559:1: isoTime returns [String date] : (d= DATE_YEAR_ONLY |d= DATE_YEAR_MONTH_ONLY |d= DATE |d= DATE_HOUR |d= DATE_HOUR_MIN |d= DATE_HOUR_MIN_SEC |d= DATE_HOUR_MIN_SEC_SUB |d= DATE_HOUR_MIN_SEC_SUB_TZ |d= DATE_HOUR_MIN_SEC_SUB_UTC_TZ ); public final druidGParser.isoTime_return isoTime() throws RecognitionException { druidGParser.isoTime_return retval = new druidGParser.isoTime_return(); retval.start = input.LT(1); Token d=null; try { // druidG.g:560:2: (d= DATE_YEAR_ONLY |d= DATE_YEAR_MONTH_ONLY |d= DATE |d= DATE_HOUR |d= DATE_HOUR_MIN |d= DATE_HOUR_MIN_SEC |d= DATE_HOUR_MIN_SEC_SUB |d= DATE_HOUR_MIN_SEC_SUB_TZ |d= DATE_HOUR_MIN_SEC_SUB_UTC_TZ ) int alt221=9; switch ( input.LA(1) ) { case DATE_YEAR_ONLY: { alt221=1; } break; case DATE_YEAR_MONTH_ONLY: { alt221=2; } break; case DATE: { alt221=3; } break; case DATE_HOUR: { alt221=4; } break; case DATE_HOUR_MIN: { alt221=5; } break; case DATE_HOUR_MIN_SEC: { alt221=6; } break; case DATE_HOUR_MIN_SEC_SUB: { alt221=7; } break; case DATE_HOUR_MIN_SEC_SUB_TZ: { alt221=8; } break; case DATE_HOUR_MIN_SEC_SUB_UTC_TZ: { alt221=9; } break; default: NoViableAltException nvae = new NoViableAltException("", 221, 0, input); throw nvae; } switch (alt221) { case 1 : // druidG.g:560:3: d= DATE_YEAR_ONLY { d=(Token)match(input,DATE_YEAR_ONLY,FOLLOW_DATE_YEAR_ONLY_in_isoTime3625); retval.date = (d!=null?d.getText():null); } break; case 2 : // druidG.g:561:3: d= DATE_YEAR_MONTH_ONLY { d=(Token)match(input,DATE_YEAR_MONTH_ONLY,FOLLOW_DATE_YEAR_MONTH_ONLY_in_isoTime3633); retval.date = (d!=null?d.getText():null); } break; case 3 : // druidG.g:562:3: d= DATE { d=(Token)match(input,DATE,FOLLOW_DATE_in_isoTime3641); retval.date = (d!=null?d.getText():null); } break; case 4 : // druidG.g:563:3: d= DATE_HOUR { d=(Token)match(input,DATE_HOUR,FOLLOW_DATE_HOUR_in_isoTime3649); retval.date = (d!=null?d.getText():null); } break; case 5 : // druidG.g:564:3: d= DATE_HOUR_MIN { d=(Token)match(input,DATE_HOUR_MIN,FOLLOW_DATE_HOUR_MIN_in_isoTime3657); retval.date = (d!=null?d.getText():null); } break; case 6 : // druidG.g:565:3: d= DATE_HOUR_MIN_SEC { d=(Token)match(input,DATE_HOUR_MIN_SEC,FOLLOW_DATE_HOUR_MIN_SEC_in_isoTime3665); retval.date = (d!=null?d.getText():null); } break; case 7 : // druidG.g:566:3: d= DATE_HOUR_MIN_SEC_SUB { d=(Token)match(input,DATE_HOUR_MIN_SEC_SUB,FOLLOW_DATE_HOUR_MIN_SEC_SUB_in_isoTime3673); retval.date = (d!=null?d.getText():null); } break; case 8 : // druidG.g:567:3: d= DATE_HOUR_MIN_SEC_SUB_TZ { d=(Token)match(input,DATE_HOUR_MIN_SEC_SUB_TZ,FOLLOW_DATE_HOUR_MIN_SEC_SUB_TZ_in_isoTime3681); retval.date = (d!=null?d.getText():null); } break; case 9 : // druidG.g:568:3: d= DATE_HOUR_MIN_SEC_SUB_UTC_TZ { d=(Token)match(input,DATE_HOUR_MIN_SEC_SUB_UTC_TZ,FOLLOW_DATE_HOUR_MIN_SEC_SUB_UTC_TZ_in_isoTime3689); retval.date = (d!=null?d.getText():null); } break; } retval.stop = input.LT(-1); } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving } return retval; } // $ANTLR end "isoTime" // Delegated rules protected DFA182 dfa182 = new DFA182(this); protected DFA189 dfa189 = new DFA189(this); protected DFA212 dfa212 = new DFA212(this); static final String DFA182_eotS = "\176\uffff"; static final String DFA182_eofS = "\12\uffff\1\24\1\uffff\1\24\2\uffff\1\24\1\uffff\3\24\3\uffff\2\24\5\uffff"+ "\2\24\3\uffff\2\24\3\uffff\1\24\15\uffff\1\24\17\uffff\1\24\67\uffff"; static final String DFA182_minS = "\1\50\1\14\1\130\1\14\2\41\1\50\3\41\1\103\1\41\1\103\1\14\1\41\1\103"+ "\1\41\2\103\1\4\3\uffff\1\103\1\4\3\uffff\1\14\1\41\1\103\1\4\3\uffff"+ "\1\103\1\4\3\uffff\1\4\15\uffff\1\4\15\uffff\2\41\1\103\67\uffff"; static final String DFA182_maxS = "\1\76\2\130\1\36\2\130\1\50\2\130\1\66\1\130\1\116\2\130\1\66\1\130\1"+ "\116\2\130\1\127\3\uffff\1\130\1\127\3\uffff\1\14\2\130\1\127\3\uffff"+ "\1\130\1\127\3\uffff\1\127\15\uffff\1\127\15\uffff\1\130\1\66\1\130\67"+ "\uffff"; static final String DFA182_acceptS = "\24\uffff\1\1\35\uffff\1\2\24\uffff\1\1\15\uffff\1\1\41\uffff\4\1\3\uffff"; static final String DFA182_specialS = "\176\uffff}>"; static final String[] DFA182_transitionS = { "\1\1\25\uffff\1\2", "\1\4\21\uffff\1\5\71\uffff\1\3", "\1\6", "\1\7\21\uffff\1\10", "\1\12\24\uffff\1\12\41\uffff\1\11", "\1\14\24\uffff\1\14\27\uffff\1\14\11\uffff\1\13", "\1\15", "\1\17\24\uffff\1\17\41\uffff\1\16", "\1\21\24\uffff\1\21\27\uffff\1\21\11\uffff\1\20", "\1\22\24\uffff\1\22", "\1\24\7\uffff\1\24\14\uffff\1\23", "\1\27\24\uffff\1\27\27\uffff\1\27", "\1\24\7\uffff\1\24\14\uffff\1\30", "\1\35\113\uffff\1\34", "\1\36\24\uffff\1\36", "\1\24\7\uffff\1\24\14\uffff\1\37", "\1\43\24\uffff\1\43\27\uffff\1\43", "\1\24\7\uffff\1\24\14\uffff\1\44", "\1\24\7\uffff\1\24\14\uffff\1\50", "\1\62\41\uffff\1\24\11\uffff\1\24\2\uffff\1\24\1\uffff\1\24\15\uffff"+ "\1\24\1\62\1\24\3\uffff\1\24\1\uffff\1\24\6\uffff\1\24\4\uffff\1\24", "", "", "", "\1\24\7\uffff\1\24\14\uffff\1\66", "\1\62\41\uffff\1\24\11\uffff\1\24\2\uffff\1\24\1\uffff\1\24\15\uffff"+ "\1\24\1\62\1\24\3\uffff\1\24\1\uffff\1\24\6\uffff\1\24\4\uffff\1\24", "", "", "", "\1\104", "\1\106\24\uffff\1\106\41\uffff\1\105", "\1\24\7\uffff\1\24\14\uffff\1\107", "\1\62\41\uffff\1\24\11\uffff\1\24\2\uffff\1\24\1\uffff\1\24\15\uffff"+ "\1\24\1\62\1\24\3\uffff\1\24\1\uffff\1\24\6\uffff\1\24\4\uffff\1\24", "", "", "", "\1\24\7\uffff\1\24\14\uffff\1\125", "\1\62\41\uffff\1\24\11\uffff\1\24\2\uffff\1\24\1\uffff\1\24\15\uffff"+ "\1\24\1\62\1\24\3\uffff\1\24\1\uffff\1\24\6\uffff\1\24\4\uffff\1\24", "", "", "", "\1\62\41\uffff\1\24\11\uffff\1\24\2\uffff\1\24\1\uffff\1\24\15\uffff"+ "\1\24\1\62\1\24\3\uffff\1\24\1\uffff\1\24\6\uffff\1\24\4\uffff\1\24", "", "", "", "", "", "", "", "", "", "", "", "", "", "\1\62\41\uffff\1\24\11\uffff\1\24\2\uffff\1\24\1\uffff\1\24\15\uffff"+ "\1\24\1\62\1\24\3\uffff\1\24\1\uffff\1\24\6\uffff\1\24\4\uffff\1\24", "", "", "", "", "", "", "", "", "", "", "", "", "", "\1\170\24\uffff\1\170\41\uffff\1\167", "\1\171\24\uffff\1\171", "\1\24\7\uffff\1\24\14\uffff\1\172", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }; static final short[] DFA182_eot = DFA.unpackEncodedString(DFA182_eotS); static final short[] DFA182_eof = DFA.unpackEncodedString(DFA182_eofS); static final char[] DFA182_min = DFA.unpackEncodedStringToUnsignedChars(DFA182_minS); static final char[] DFA182_max = DFA.unpackEncodedStringToUnsignedChars(DFA182_maxS); static final short[] DFA182_accept = DFA.unpackEncodedString(DFA182_acceptS); static final short[] DFA182_special = DFA.unpackEncodedString(DFA182_specialS); static final short[][] DFA182_transition; static { int numStates = DFA182_transitionS.length; DFA182_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA182_transition[i] = DFA.unpackEncodedString(DFA182_transitionS[i]); } } protected class DFA182 extends DFA { public DFA182(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 182; this.eot = DFA182_eot; this.eof = DFA182_eof; this.min = DFA182_min; this.max = DFA182_max; this.accept = DFA182_accept; this.special = DFA182_special; this.transition = DFA182_transition; } @Override public String getDescription() { return "377:1: complexHaving returns [Having having] : ( (s= simpleHaving ) | (a= simpleHaving WS o= ( AND | OR ) WS b= complexHaving ) );"; } } static final String DFA189_eotS = "\110\uffff"; static final String DFA189_eofS = "\10\uffff\1\16\2\uffff\3\16\3\uffff\3\16\3\uffff\1\16\60\uffff"; static final String DFA189_minS = "\1\50\1\36\1\uffff\1\36\1\41\1\130\2\41\1\103\1\116\1\41\2\103\1\4\3\uffff"+ "\2\103\1\4\3\uffff\1\4\3\uffff\1\130\54\uffff"; static final String DFA189_maxS = "\1\76\1\130\1\uffff\1\64\3\130\1\116\1\130\2\116\2\130\1\127\3\uffff\2"+ "\130\1\127\3\uffff\1\127\3\uffff\1\130\54\uffff"; static final String DFA189_acceptS = "\2\uffff\1\2\13\uffff\1\1\30\uffff\1\1\3\uffff\1\1\3\uffff\1\1\13\uffff"+ "\1\1\13\uffff\1\1"; static final String DFA189_specialS = "\110\uffff}>"; static final String[] DFA189_transitionS = { "\1\1\25\uffff\1\2", "\1\4\71\uffff\1\3", "", "\1\6\25\uffff\1\5", "\1\10\24\uffff\1\10\27\uffff\1\10\11\uffff\1\7", "\1\11", "\1\13\24\uffff\1\13\27\uffff\1\13\11\uffff\1\12", "\1\14\24\uffff\1\14\27\uffff\1\14", "\1\16\7\uffff\1\16\14\uffff\1\15", "\1\21", "\1\22\24\uffff\1\22\27\uffff\1\22", "\1\16\7\uffff\1\16\14\uffff\1\23", "\1\16\7\uffff\1\16\14\uffff\1\27", "\1\33\5\uffff\1\16\30\uffff\1\16\2\uffff\1\16\11\uffff\1\16\2\uffff"+ "\1\16\1\uffff\1\16\15\uffff\1\16\1\33\1\16\3\uffff\1\16\1\uffff\1\16"+ "\6\uffff\1\16\4\uffff\1\16", "", "", "", "\1\16\7\uffff\1\16\14\uffff\1\47", "\1\16\7\uffff\1\16\14\uffff\1\53", "\1\57\5\uffff\1\16\30\uffff\1\16\2\uffff\1\16\11\uffff\1\16\2\uffff"+ "\1\16\1\uffff\1\16\15\uffff\1\16\1\57\1\16\3\uffff\1\16\1\uffff\1\16"+ "\6\uffff\1\16\4\uffff\1\16", "", "", "", "\1\73\5\uffff\1\16\30\uffff\1\16\2\uffff\1\16\11\uffff\1\16\2\uffff"+ "\1\16\1\uffff\1\16\15\uffff\1\16\1\73\1\16\3\uffff\1\16\1\uffff\1\16"+ "\6\uffff\1\16\4\uffff\1\16", "", "", "", "\1\107", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }; static final short[] DFA189_eot = DFA.unpackEncodedString(DFA189_eotS); static final short[] DFA189_eof = DFA.unpackEncodedString(DFA189_eofS); static final char[] DFA189_min = DFA.unpackEncodedStringToUnsignedChars(DFA189_minS); static final char[] DFA189_max = DFA.unpackEncodedStringToUnsignedChars(DFA189_maxS); static final short[] DFA189_accept = DFA.unpackEncodedString(DFA189_acceptS); static final short[] DFA189_special = DFA.unpackEncodedString(DFA189_specialS); static final short[][] DFA189_transition; static { int numStates = DFA189_transitionS.length; DFA189_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA189_transition[i] = DFA.unpackEncodedString(DFA189_transitionS[i]); } } protected class DFA189 extends DFA { public DFA189(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 189; this.eot = DFA189_eot; this.eof = DFA189_eof; this.min = DFA189_min; this.max = DFA189_max; this.accept = DFA189_accept; this.special = DFA189_special; this.transition = DFA189_transition; } @Override public String getDescription() { return "413:1: simpleLogicalFilter returns [Filter filter] : ( (a= simpleFilter ) | ( (a= simpleFilter WS o= ( AND | OR ) WS b= simpleFilter ) | (o= NOT WS b= simpleFilter ) ) );"; } } static final String DFA212_eotS = "\134\uffff"; static final String DFA212_eofS = "\2\3\132\uffff"; static final String DFA212_minS = "\2\5\1\41\6\uffff\1\41\3\uffff\1\41\3\uffff\1\70\1\116\1\uffff\1\41\3"+ "\uffff\1\70\1\116\4\uffff\1\70\1\116\1\uffff\1\70\1\50\1\116\4\uffff\1"+ "\70\1\116\1\uffff\1\70\1\50\1\116\1\uffff\1\70\1\50\1\116\1\uffff\2\50"+ "\1\113\1\uffff\1\70\1\50\1\116\1\uffff\2\50\1\113\1\uffff\2\50\1\113\1"+ "\uffff\1\50\3\113\25\uffff"; static final String DFA212_maxS = "\1\130\1\127\1\130\6\uffff\1\130\3\uffff\1\124\3\uffff\2\130\1\uffff\1"+ "\124\3\uffff\2\130\4\uffff\2\130\1\uffff\1\70\1\130\1\116\4\uffff\2\130"+ "\1\uffff\1\70\1\130\1\116\1\uffff\1\70\1\130\1\116\1\uffff\1\130\1\50"+ "\1\130\1\uffff\1\70\1\130\1\116\1\uffff\1\130\1\50\1\130\1\uffff\1\130"+ "\1\50\1\130\1\uffff\1\50\2\130\1\113\25\uffff"; static final String DFA212_acceptS = "\3\uffff\1\2\12\uffff\3\1\4\uffff\3\1\3\uffff\3\1\6\uffff\4\1\6\uffff"+ "\1\1\3\uffff\1\1\3\uffff\1\1\3\uffff\1\1\3\uffff\1\1\3\uffff\1\1\4\uffff"+ "\25\1"; static final String DFA212_specialS = "\134\uffff}>"; static final String[] DFA212_transitionS = { "\1\2\75\uffff\1\3\7\uffff\1\3\14\uffff\1\1", "\1\11\40\uffff\1\3\11\uffff\1\3\2\uffff\1\3\17\uffff\1\3\5\uffff\1\3"+ "\1\uffff\1\3\13\uffff\1\3", "\1\16\6\uffff\1\20\6\uffff\1\22\6\uffff\1\17\1\uffff\1\3\33\uffff\1"+ "\21\3\uffff\1\15", "", "", "", "", "", "", "\1\25\6\uffff\1\27\6\uffff\1\31\6\uffff\1\26\1\uffff\1\3\33\uffff\1"+ "\30\3\uffff\1\24", "", "", "", "\1\33\6\uffff\1\35\6\uffff\1\37\6\uffff\1\34\1\uffff\1\3\33\uffff\1"+ "\36", "", "", "", "\1\42\37\uffff\1\41", "\1\44\11\uffff\1\43", "", "\1\45\6\uffff\1\47\6\uffff\1\51\6\uffff\1\46\1\uffff\1\3\33\uffff\1"+ "\50", "", "", "", "\1\54\37\uffff\1\53", "\1\56\11\uffff\1\55", "", "", "", "", "\1\60\37\uffff\1\57", "\1\62\11\uffff\1\61", "", "\1\63", "\1\65\57\uffff\1\64", "\1\66", "", "", "", "", "\1\70\37\uffff\1\67", "\1\72\11\uffff\1\71", "", "\1\73", "\1\75\57\uffff\1\74", "\1\76", "", "\1\77", "\1\101\57\uffff\1\100", "\1\102", "", "\1\104\57\uffff\1\103", "\1\105", "\1\107\14\uffff\1\106", "", "\1\110", "\1\112\57\uffff\1\111", "\1\113", "", "\1\115\57\uffff\1\114", "\1\116", "\1\120\14\uffff\1\117", "", "\1\122\57\uffff\1\121", "\1\123", "\1\125\14\uffff\1\124", "", "\1\126", "\1\130\14\uffff\1\127", "\1\132\14\uffff\1\131", "\1\133", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }; static final short[] DFA212_eot = DFA.unpackEncodedString(DFA212_eotS); static final short[] DFA212_eof = DFA.unpackEncodedString(DFA212_eofS); static final char[] DFA212_min = DFA.unpackEncodedStringToUnsignedChars(DFA212_minS); static final char[] DFA212_max = DFA.unpackEncodedStringToUnsignedChars(DFA212_maxS); static final short[] DFA212_accept = DFA.unpackEncodedString(DFA212_acceptS); static final short[] DFA212_special = DFA.unpackEncodedString(DFA212_specialS); static final short[][] DFA212_transition; static { int numStates = DFA212_transitionS.length; DFA212_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA212_transition[i] = DFA.unpackEncodedString(DFA212_transitionS[i]); } } protected class DFA212 extends DFA { public DFA212(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 212; this.eot = DFA212_eot; this.eof = DFA212_eof; this.min = DFA212_min; this.max = DFA212_max; this.accept = DFA212_accept; this.special = DFA212_special; this.transition = DFA212_transition; } @Override public String getDescription() { return "504:45: ( ( WS )? postAggArithOper[postAggItem] ( WS )? b= simplePostAggAccess )?"; } } public static final BitSet FOLLOW_grandQuery_in_program49 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_grandInsert_in_program61 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_grandDelete_in_program73 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_grandDrop_in_program85 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_deleteStmnt_in_grandDelete113 = new BitSet(new long[]{0x0000000000000002L,0x000000000100000CL}); public static final BitSet FOLLOW_WS_in_grandDelete122 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000CL}); public static final BitSet FOLLOW_OPT_SEMI_COLON_in_grandDelete126 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPT_AMPERSAND_in_grandDelete132 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_dropStmnt_in_grandDrop164 = new BitSet(new long[]{0x0000000000000002L,0x000000000100000CL}); public static final BitSet FOLLOW_WS_in_grandDrop173 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000CL}); public static final BitSet FOLLOW_OPT_SEMI_COLON_in_grandDrop177 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPT_AMPERSAND_in_grandDrop183 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_insertStmnt_in_grandInsert214 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_insertHStmnt_in_grandInsert226 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_insertRTStmnt_in_grandInsert238 = new BitSet(new long[]{0x0000000000000002L,0x000000000100000CL}); public static final BitSet FOLLOW_WS_in_grandInsert247 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000CL}); public static final BitSet FOLLOW_OPT_SEMI_COLON_in_grandInsert251 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPT_AMPERSAND_in_grandInsert257 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DELETE_in_deleteStmnt283 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_deleteStmnt285 = new BitSet(new long[]{0x0000000400000000L}); public static final BitSet FOLLOW_FROM_in_deleteStmnt287 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_deleteStmnt289 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_deleteStmnt294 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_deleteStmnt298 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_WHERE_in_deleteStmnt303 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_deleteStmnt305 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); public static final BitSet FOLLOW_intervalClause_in_deleteStmnt309 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DROP_in_dropStmnt337 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_dropStmnt339 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L}); public static final BitSet FOLLOW_TABLE_in_dropStmnt341 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_dropStmnt343 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_dropStmnt348 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSERT_in_insertStmnt375 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt377 = new BitSet(new long[]{0x0000200000000000L}); public static final BitSet FOLLOW_INTO_in_insertStmnt379 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt381 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_insertStmnt386 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt391 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertStmnt394 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_insertStmnt396 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_insertStmnt399 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertStmnt403 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertStmnt406 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_insertStmnt408 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_insertStmnt411 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertStmnt416 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertStmnt419 = new BitSet(new long[]{0x0000000400000000L,0x0000000001200000L}); public static final BitSet FOLLOW_WS_in_insertStmnt421 = new BitSet(new long[]{0x0000000400000000L,0x0000000000200000L}); public static final BitSet FOLLOW_VALUES_in_insertStmnt434 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt436 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertStmnt439 = new BitSet(new long[]{0x0040000200000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertStmnt441 = new BitSet(new long[]{0x0040000200000000L,0x0000000000004000L}); public static final BitSet FOLLOW_anyValue_in_insertStmnt447 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertStmnt454 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertStmnt457 = new BitSet(new long[]{0x0040000200000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertStmnt459 = new BitSet(new long[]{0x0040000200000000L,0x0000000000004000L}); public static final BitSet FOLLOW_anyValue_in_insertStmnt464 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertStmnt470 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertStmnt473 = new BitSet(new long[]{0x0000000000000000L,0x0000000001400000L}); public static final BitSet FOLLOW_WS_in_insertStmnt475 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_FROM_in_insertStmnt492 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt494 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt499 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt504 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_WHERE_in_insertStmnt514 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt516 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); public static final BitSet FOLLOW_intervalClause_in_insertStmnt520 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt527 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_BREAK_in_insertStmnt529 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt531 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_BY_in_insertStmnt533 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt535 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt539 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt553 = new BitSet(new long[]{0x0000000002000000L}); public static final BitSet FOLLOW_DELIMITER_in_insertStmnt555 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt557 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertStmnt560 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertStmnt562 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt567 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertStmnt571 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertStmnt574 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertStmnt576 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertStmnt581 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_insertStmnt587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertStmnt590 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertStmnt592 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSERT_HADOOP_in_insertHStmnt616 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt618 = new BitSet(new long[]{0x0000200000000000L}); public static final BitSet FOLLOW_INTO_in_insertHStmnt620 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt622 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_insertHStmnt627 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt632 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertHStmnt635 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt637 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_insertHStmnt640 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertHStmnt644 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertHStmnt647 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt649 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_insertHStmnt652 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertHStmnt657 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertHStmnt660 = new BitSet(new long[]{0x0000000400000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt662 = new BitSet(new long[]{0x0000000400000000L}); public static final BitSet FOLLOW_FROM_in_insertHStmnt669 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt671 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt676 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt681 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_WHERE_in_insertHStmnt686 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt688 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); public static final BitSet FOLLOW_intervalClause_in_insertHStmnt692 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt699 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_BREAK_in_insertHStmnt701 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt703 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_BY_in_insertHStmnt705 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt707 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt711 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt726 = new BitSet(new long[]{0x0000000002000000L}); public static final BitSet FOLLOW_DELIMITER_in_insertHStmnt728 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt730 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertHStmnt733 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt735 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt740 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertHStmnt744 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertHStmnt747 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt749 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt754 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_insertHStmnt760 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertHStmnt763 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt765 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt774 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L}); public static final BitSet FOLLOW_PARTITION_in_insertHStmnt776 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt778 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertHStmnt781 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt783 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt788 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt790 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertHStmnt793 = new BitSet(new long[]{0x0040000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt795 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_LONG_in_insertHStmnt800 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_insertHStmnt804 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertHStmnt807 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt809 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L}); public static final BitSet FOLLOW_ROLLUP_in_insertHStmnt819 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt821 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertHStmnt824 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt826 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertHStmnt831 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt833 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertHStmnt836 = new BitSet(new long[]{0x0040000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt838 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_LONG_in_insertHStmnt843 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_insertHStmnt847 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertHStmnt850 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertHStmnt852 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSERT_REALTIME_in_insertRTStmnt875 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt877 = new BitSet(new long[]{0x0000200000000000L}); public static final BitSet FOLLOW_INTO_in_insertRTStmnt879 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt881 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_insertRTStmnt886 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt891 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertRTStmnt894 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt896 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_insertRTStmnt899 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt903 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertRTStmnt906 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt908 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_insertRTStmnt911 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt916 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertRTStmnt919 = new BitSet(new long[]{0x0000000000000000L,0x0000000001200000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt921 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L}); public static final BitSet FOLLOW_VALUES_in_insertRTStmnt927 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt929 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_insertRTStmnt932 = new BitSet(new long[]{0x0040000200000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt934 = new BitSet(new long[]{0x0040000200000000L,0x0000000000004000L}); public static final BitSet FOLLOW_anyValue_in_insertRTStmnt940 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt947 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_insertRTStmnt950 = new BitSet(new long[]{0x0040000200000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt952 = new BitSet(new long[]{0x0040000200000000L,0x0000000000004000L}); public static final BitSet FOLLOW_anyValue_in_insertRTStmnt957 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt963 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_insertRTStmnt966 = new BitSet(new long[]{0x0000000000000002L,0x0000000001400000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt968 = new BitSet(new long[]{0x0000000000000002L,0x0000000001400000L}); public static final BitSet FOLLOW_WHERE_in_insertRTStmnt974 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt976 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); public static final BitSet FOLLOW_intervalClause_in_insertRTStmnt980 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt988 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_BREAK_in_insertRTStmnt990 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt992 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_BY_in_insertRTStmnt994 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_insertRTStmnt996 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_insertRTStmnt1000 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_queryStmnt_in_grandQuery1034 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000008L}); public static final BitSet FOLLOW_WS_in_grandQuery1044 = new BitSet(new long[]{0x0009000000000000L,0x0000000000000200L}); public static final BitSet FOLLOW_set_in_grandQuery1048 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_grandQuery1069 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_grandQuery1072 = new BitSet(new long[]{0x0000000000000000L,0x0000000001002000L}); public static final BitSet FOLLOW_WS_in_grandQuery1074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L}); public static final BitSet FOLLOW_queryStmnt_in_grandQuery1080 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_grandQuery1085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_grandQuery1088 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000002L}); public static final BitSet FOLLOW_WS_in_grandQuery1090 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L}); public static final BitSet FOLLOW_ON_in_grandQuery1093 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_grandQuery1100 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_grandQuery1103 = new BitSet(new long[]{0x0000010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_grandQuery1105 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_grandQuery1111 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_grandQuery1116 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_grandQuery1119 = new BitSet(new long[]{0x0000010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_grandQuery1121 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_grandQuery1126 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_grandQuery1132 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_grandQuery1135 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000008L}); public static final BitSet FOLLOW_WS_in_grandQuery1154 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L}); public static final BitSet FOLLOW_OPT_SEMI_COLON_in_grandQuery1157 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SELECT_in_queryStmnt1180 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1208 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_queryStmnt1210 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1214 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_queryStmnt1217 = new BitSet(new long[]{0x1480818008004000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1219 = new BitSet(new long[]{0x1480818008004000L,0x0000000000100000L}); public static final BitSet FOLLOW_selectItems_in_queryStmnt1222 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1253 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L}); public static final BitSet FOLLOW_90_in_queryStmnt1255 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1270 = new BitSet(new long[]{0x0000000400000000L}); public static final BitSet FOLLOW_FROM_in_queryStmnt1272 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1293 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_queryStmnt1297 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1334 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_queryStmnt1336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L}); public static final BitSet FOLLOW_queryStmnt_in_queryStmnt1341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_queryStmnt1344 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1363 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_WHERE_in_queryStmnt1365 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1367 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); public static final BitSet FOLLOW_whereClause_in_queryStmnt1369 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1387 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_BREAK_in_queryStmnt1389 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1391 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_BY_in_queryStmnt1393 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1395 = new BitSet(new long[]{0x0000000020000000L,0x0000000000004080L}); public static final BitSet FOLLOW_granularityClause_in_queryStmnt1399 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1416 = new BitSet(new long[]{0x0000000800000000L}); public static final BitSet FOLLOW_GROUP_in_queryStmnt1418 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1420 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_BY_in_queryStmnt1422 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1424 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_queryStmnt1450 = new BitSet(new long[]{0x0000000000000002L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1482 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_queryStmnt1485 = new BitSet(new long[]{0x0000010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1487 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_queryStmnt1492 = new BitSet(new long[]{0x0000000000000002L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1549 = new BitSet(new long[]{0x0000001000000000L}); public static final BitSet FOLLOW_HAVING_in_queryStmnt1551 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1553 = new BitSet(new long[]{0x4000010000000000L}); public static final BitSet FOLLOW_havingClause_in_queryStmnt1557 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1601 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L}); public static final BitSet FOLLOW_ORDER_in_queryStmnt1603 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1605 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_BY_in_queryStmnt1607 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1609 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_queryStmnt1614 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1647 = new BitSet(new long[]{0x0000000004000080L}); public static final BitSet FOLLOW_set_in_queryStmnt1651 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1701 = new BitSet(new long[]{0x0020000000000000L}); public static final BitSet FOLLOW_LIMIT_in_queryStmnt1703 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1705 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_LONG_in_queryStmnt1710 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1748 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L}); public static final BitSet FOLLOW_THEN_in_queryStmnt1750 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1752 = new BitSet(new long[]{0x0140810200000000L,0x0000000000100000L}); public static final BitSet FOLLOW_postAggItem_in_queryStmnt1756 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1771 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); public static final BitSet FOLLOW_WHICH_in_queryStmnt1773 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1775 = new BitSet(new long[]{0x0000000000002000L}); public static final BitSet FOLLOW_CONTAINS_in_queryStmnt1777 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1781 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_queryStmnt1784 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1792 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_queryStmnt1796 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_queryStmnt1799 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1801 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1806 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_queryStmnt1813 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_queryStmnt1816 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1822 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L}); public static final BitSet FOLLOW_SORT_in_queryStmnt1824 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1826 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_queryStmnt1829 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1831 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1837 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_queryStmnt1842 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_queryStmnt1845 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1857 = new BitSet(new long[]{0x0000004000000000L}); public static final BitSet FOLLOW_HINT_in_queryStmnt1859 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1861 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_queryStmnt1864 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_queryStmnt1866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_queryStmnt1871 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_queryStmnt1875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_queryStmnt1878 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_anyValue1912 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_set_in_anyValue1920 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_aggItem_in_selectItems1943 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simpleDim_in_selectItems1953 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_simpleDim1974 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleDim1977 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_AS_in_simpleDim1979 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleDim1981 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_simpleDim1985 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_intervalClause_in_whereClause2008 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_whereClause2013 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_AND_in_whereClause2015 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_whereClause2017 = new BitSet(new long[]{0x4100010000000000L}); public static final BitSet FOLLOW_grandFilter_in_whereClause2021 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_92_in_intervalClause2047 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_intervalClause2049 = new BitSet(new long[]{0x0000000000000200L}); public static final BitSet FOLLOW_BETWEEN_in_intervalClause2051 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_intervalClause2053 = new BitSet(new long[]{0x0100000000FF8000L,0x0000000000004000L}); public static final BitSet FOLLOW_isoTime_in_intervalClause2073 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_intervalClause2080 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_intervalClause2084 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_AND_in_intervalClause2086 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_intervalClause2088 = new BitSet(new long[]{0x0000000000FF8000L,0x0000000000004000L}); public static final BitSet FOLLOW_isoTime_in_intervalClause2093 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_intervalClause2100 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LPARAN_in_intervalClause2126 = new BitSet(new long[]{0x0200000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_intervalClause2128 = new BitSet(new long[]{0x0200000000000000L}); public static final BitSet FOLLOW_pairString_in_intervalClause2133 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_intervalClause2145 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_intervalClause2148 = new BitSet(new long[]{0x0200000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_intervalClause2150 = new BitSet(new long[]{0x0200000000000000L}); public static final BitSet FOLLOW_pairString_in_intervalClause2155 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_intervalClause2161 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_intervalClause2164 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_getEquals2187 = new BitSet(new long[]{0x0000000040000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_getEquals2189 = new BitSet(new long[]{0x0000000040000000L}); public static final BitSet FOLLOW_EQUALS_in_getEquals2192 = new BitSet(new long[]{0x0040000200000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_getEquals2194 = new BitSet(new long[]{0x0040000200000000L,0x0000000000004000L}); public static final BitSet FOLLOW_set_in_getEquals2200 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2239 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DURATION_in_granularityClause2263 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_granularityClause2265 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_granularityClause2268 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_granularityClause2270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2275 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2279 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_91_in_granularityClause2283 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_granularityClause2285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2290 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2298 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_granularityClause2301 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_granularityClause2303 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_granularityInclude_in_granularityClause2308 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2312 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_granularityClause2317 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PERIOD_in_granularityClause2336 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_granularityClause2338 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_granularityClause2341 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_granularityClause2343 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2348 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2352 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_91_in_granularityClause2356 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_granularityClause2358 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2363 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2369 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_91_in_granularityClause2373 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_granularityClause2375 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_granularityClause2380 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2389 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_granularityClause2392 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_granularityClause2394 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_granularityInclude_in_granularityClause2399 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_granularityClause2403 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_granularityClause2408 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_WS_in_granularityInclude2436 = new BitSet(new long[]{0x0000020000000000L}); public static final BitSet FOLLOW_INCLUDE_in_granularityInclude2438 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_granularityInclude2440 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_granularityInclude2443 = new BitSet(new long[]{0x0200000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_granularityInclude2445 = new BitSet(new long[]{0x0200000000000000L}); public static final BitSet FOLLOW_pairNums_in_granularityInclude2451 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_91_in_granularityInclude2456 = new BitSet(new long[]{0x0200000000000000L}); public static final BitSet FOLLOW_pairNums_in_granularityInclude2460 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_granularityInclude2467 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_granularityInclude2470 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LSQUARE_in_pairNums2489 = new BitSet(new long[]{0x0040000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_pairNums2491 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_LONG_in_pairNums2496 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_pairNums2499 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_pairNums2502 = new BitSet(new long[]{0x0040000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_pairNums2504 = new BitSet(new long[]{0x0040000000000000L}); public static final BitSet FOLLOW_LONG_in_pairNums2509 = new BitSet(new long[]{0x0000000000000000L,0x0000000001001000L}); public static final BitSet FOLLOW_WS_in_pairNums2511 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L}); public static final BitSet FOLLOW_RSQUARE_in_pairNums2514 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LSQUARE_in_pairString2534 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_pairString2536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_pairString2541 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000000L}); public static final BitSet FOLLOW_WS_in_pairString2544 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_pairString2547 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_pairString2549 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_pairString2554 = new BitSet(new long[]{0x0000000000000000L,0x0000000001001000L}); public static final BitSet FOLLOW_WS_in_pairString2556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L}); public static final BitSet FOLLOW_RSQUARE_in_pairString2559 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_complexHaving_in_havingClause2584 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_simpleHaving2605 = new BitSet(new long[]{0x0000000000001000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleHaving2607 = new BitSet(new long[]{0x0000000000001000L}); public static final BitSet FOLLOW_COMPARE_OPER_in_simpleHaving2612 = new BitSet(new long[]{0x0040000200000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleHaving2614 = new BitSet(new long[]{0x0040000200000000L}); public static final BitSet FOLLOW_set_in_simpleHaving2619 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_getEquals_in_simpleHaving2636 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NOT_in_simpleHaving2647 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleHaving2649 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_simpleHaving2653 = new BitSet(new long[]{0x0000000000001000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleHaving2655 = new BitSet(new long[]{0x0000000000001000L}); public static final BitSet FOLLOW_COMPARE_OPER_in_simpleHaving2660 = new BitSet(new long[]{0x0040000200000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleHaving2662 = new BitSet(new long[]{0x0040000200000000L}); public static final BitSet FOLLOW_set_in_simpleHaving2667 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simpleHaving_in_complexHaving2695 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simpleHaving_in_complexHaving2706 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_complexHaving2708 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000010L}); public static final BitSet FOLLOW_set_in_complexHaving2712 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_complexHaving2718 = new BitSet(new long[]{0x4000010000000000L}); public static final BitSet FOLLOW_complexHaving_in_complexHaving2722 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_semiGrandFilter_in_grandFilter2751 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_grandFilter2756 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000010L}); public static final BitSet FOLLOW_set_in_grandFilter2760 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_grandFilter2766 = new BitSet(new long[]{0x4100010000000000L}); public static final BitSet FOLLOW_semiGrandFilter_in_grandFilter2770 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_simpleLogicalFilter_in_semiGrandFilter2801 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LPARAN_in_semiGrandFilter2808 = new BitSet(new long[]{0x4100010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_semiGrandFilter2810 = new BitSet(new long[]{0x4100010000000000L}); public static final BitSet FOLLOW_semiGrandFilter_in_semiGrandFilter2815 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_semiGrandFilter2821 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000010L}); public static final BitSet FOLLOW_set_in_semiGrandFilter2825 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_semiGrandFilter2831 = new BitSet(new long[]{0x4100010000000000L}); public static final BitSet FOLLOW_semiGrandFilter_in_semiGrandFilter2835 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_semiGrandFilter2851 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_semiGrandFilter2854 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simpleFilter_in_simpleLogicalFilter2873 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simpleFilter_in_simpleLogicalFilter2885 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleLogicalFilter2887 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000010L}); public static final BitSet FOLLOW_set_in_simpleLogicalFilter2891 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleLogicalFilter2897 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_simpleFilter_in_simpleLogicalFilter2901 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NOT_in_simpleLogicalFilter2909 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleLogicalFilter2911 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_simpleFilter_in_simpleLogicalFilter2915 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_selectorFilter_in_simpleFilter2942 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_regexFilter_in_simpleFilter2948 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_getEquals_in_selectorFilter2973 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_regexFilter3002 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_regexFilter3004 = new BitSet(new long[]{0x0010000000000000L}); public static final BitSet FOLLOW_LIKE_in_regexFilter3006 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_regexFilter3008 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_regexFilter3014 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_aggCallSite_in_aggItem3045 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_aggItem3049 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_AS_in_aggItem3051 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_aggItem3053 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_aggItem3057 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_aggFunc_in_aggCallSite3076 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_aggCallSite3081 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_aggCallSite3084 = new BitSet(new long[]{0x0000010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_aggCallSite3086 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_aggCallSite3093 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_aggCallSite3099 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L}); public static final BitSet FOLLOW_91_in_aggCallSite3102 = new BitSet(new long[]{0x0000010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_aggCallSite3104 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_aggCallSite3109 = new BitSet(new long[]{0x0000000000000000L,0x0000000009000800L}); public static final BitSet FOLLOW_WS_in_aggCallSite3115 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_aggCallSite3118 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COUNT_in_aggCallSite3125 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L}); public static final BitSet FOLLOW_89_in_aggCallSite3130 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LONG_SUM_in_aggFunc3148 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOUBLE_SUM_in_aggFunc3155 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_UNIQUE_in_aggFunc3162 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_HYPER_UNIQUE_in_aggFunc3169 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_MIN_in_aggFunc3176 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_MAX_in_aggFunc3183 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_JAVASCRIPT_in_aggFunc3190 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simpleArith_in_postAggItem3218 = new BitSet(new long[]{0x0000000000000022L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_postAggItem3222 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_postAggArithOper_in_postAggItem3225 = new BitSet(new long[]{0x0140810200000000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_postAggItem3228 = new BitSet(new long[]{0x0140810200000000L,0x0000000000100000L}); public static final BitSet FOLLOW_postAggItem_in_postAggItem3233 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LPARAN_in_postAggItem3251 = new BitSet(new long[]{0x0140810200000000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_postAggItem3253 = new BitSet(new long[]{0x0140810200000000L,0x0000000000100000L}); public static final BitSet FOLLOW_postAggItem_in_postAggItem3258 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_postAggItem3260 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_postAggItem3263 = new BitSet(new long[]{0x0000000000000062L,0x0000000001000000L}); public static final BitSet FOLLOW_postAggLabel_in_postAggItem3267 = new BitSet(new long[]{0x0000000000000022L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_postAggItem3273 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_postAggArithOper_in_postAggItem3276 = new BitSet(new long[]{0x0140810200000000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_postAggItem3279 = new BitSet(new long[]{0x0140810200000000L,0x0000000000100000L}); public static final BitSet FOLLOW_postAggItem_in_postAggItem3284 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simplePostAggAccess_in_simpleArith3320 = new BitSet(new long[]{0x0000000000000022L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_simpleArith3326 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_postAggArithOper_in_simpleArith3329 = new BitSet(new long[]{0x0040810200000000L,0x0000000001100000L}); public static final BitSet FOLLOW_WS_in_simpleArith3332 = new BitSet(new long[]{0x0040810200000000L,0x0000000000100000L}); public static final BitSet FOLLOW_simplePostAggAccess_in_simpleArith3337 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_constantAccess_in_simplePostAggAccess3366 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_fieldAccess_in_simplePostAggAccess3383 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_hyperUniqueCardinality_in_simplePostAggAccess3396 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_postAggJavascriptDef_in_simplePostAggAccess3405 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FLOAT_in_constantAccess3435 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_LONG_in_constantAccess3441 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_constantAccess3454 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_postAggLabel_in_constantAccess3456 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ID_in_fieldAccess3484 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_fieldAccess3487 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_postAggLabel_in_fieldAccess3489 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_UNIQUE_in_hyperUniqueCardinality3518 = new BitSet(new long[]{0x0100000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_hyperUniqueCardinality3520 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_LPARAN_in_hyperUniqueCardinality3523 = new BitSet(new long[]{0x0000010000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_hyperUniqueCardinality3525 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_hyperUniqueCardinality3530 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000800L}); public static final BitSet FOLLOW_WS_in_hyperUniqueCardinality3532 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_RPARAN_in_hyperUniqueCardinality3535 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_JAVASCRIPT_in_postAggJavascriptDef3561 = new BitSet(new long[]{0x0000000000000000L,0x0000000001004000L}); public static final BitSet FOLLOW_WS_in_postAggJavascriptDef3563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L}); public static final BitSet FOLLOW_SINGLE_QUOTE_STRING_in_postAggJavascriptDef3568 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_AS_in_postAggLabel3584 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); public static final BitSet FOLLOW_WS_in_postAggLabel3586 = new BitSet(new long[]{0x0000010000000000L}); public static final BitSet FOLLOW_ID_in_postAggLabel3590 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ARITH_OPER_in_postAggArithOper3606 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_YEAR_ONLY_in_isoTime3625 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_YEAR_MONTH_ONLY_in_isoTime3633 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_in_isoTime3641 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_HOUR_in_isoTime3649 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_HOUR_MIN_in_isoTime3657 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_HOUR_MIN_SEC_in_isoTime3665 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_HOUR_MIN_SEC_SUB_in_isoTime3673 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_HOUR_MIN_SEC_SUB_TZ_in_isoTime3681 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DATE_HOUR_MIN_SEC_SUB_UTC_TZ_in_isoTime3689 = new BitSet(new long[]{0x0000000000000002L}); }