All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.usergrid.persistence.query.tree.QueryFilterParser Maven / Gradle / Ivy

There is a newer version: 0.0.27.1
Show newest version
// $ANTLR 3.4 org/usergrid/persistence/query/tree/QueryFilter.g 2013-01-24 11:24:09

package org.usergrid.persistence.query.tree;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.usergrid.persistence.Query;
import org.usergrid.persistence.Query.FilterPredicate;
import org.usergrid.persistence.Query.SortPredicate;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

import org.antlr.runtime.tree.*;


@SuppressWarnings({"all", "warnings", "unchecked"})
public class QueryFilterParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "", "", "", "", "AND", "ASC", "BOOLEAN", "CONTAINS", "DESC", "EQ", "ESC_SEQ", "EXPONENT", "FALSE", "FLOAT", "GT", "GTE", "HEX_DIGIT", "ID", "LONG", "LT", "LTE", "NOT", "OCTAL_ESC", "OF", "OR", "STRING", "TRUE", "UNICODE_ESC", "UUID", "WITHIN", "WS", "'('", "')'", "'*'", "','", "':'", "'order by'", "'select'", "'where'", "'{'", "'}'"
    };

    public static final int EOF=-1;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__40=40;
    public static final int AND=4;
    public static final int ASC=5;
    public static final int BOOLEAN=6;
    public static final int CONTAINS=7;
    public static final int DESC=8;
    public static final int EQ=9;
    public static final int ESC_SEQ=10;
    public static final int EXPONENT=11;
    public static final int FALSE=12;
    public static final int FLOAT=13;
    public static final int GT=14;
    public static final int GTE=15;
    public static final int HEX_DIGIT=16;
    public static final int ID=17;
    public static final int LONG=18;
    public static final int LT=19;
    public static final int LTE=20;
    public static final int NOT=21;
    public static final int OCTAL_ESC=22;
    public static final int OF=23;
    public static final int OR=24;
    public static final int STRING=25;
    public static final int TRUE=26;
    public static final int UNICODE_ESC=27;
    public static final int UUID=28;
    public static final int WITHIN=29;
    public static final int WS=30;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public QueryFilterParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public QueryFilterParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

protected TreeAdaptor adaptor = new CommonTreeAdaptor();

public void setTreeAdaptor(TreeAdaptor adaptor) {
    this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
    return adaptor;
}
    public String[] getTokenNames() { return QueryFilterParser.tokenNames; }
    public String getGrammarFileName() { return "org/usergrid/persistence/query/tree/QueryFilter.g"; }


    	Query query = new Query();

      private static final Logger logger = LoggerFactory
          .getLogger(QueryFilterLexer.class);

    	@Override
    	public void emitErrorMessage(String msg) {
    		logger.info(msg);
    	}


    public static class property_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "property"
    // org/usergrid/persistence/query/tree/QueryFilter.g:157:1: property : ID ;
    public final QueryFilterParser.property_return property() throws RecognitionException {
        QueryFilterParser.property_return retval = new QueryFilterParser.property_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token ID1=null;

        Object ID1_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:157:10: ( ID )
            // org/usergrid/persistence/query/tree/QueryFilter.g:157:12: ID
            {
            root_0 = (Object)adaptor.nil();


            ID1=(Token)match(input,ID,FOLLOW_ID_in_property987); 
            ID1_tree = 
            new Property(ID1) 
            ;
            adaptor.addChild(root_0, ID1_tree);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "property"


    public static class booleanliteral_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "booleanliteral"
    // org/usergrid/persistence/query/tree/QueryFilter.g:159:1: booleanliteral : BOOLEAN ;
    public final QueryFilterParser.booleanliteral_return booleanliteral() throws RecognitionException {
        QueryFilterParser.booleanliteral_return retval = new QueryFilterParser.booleanliteral_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token BOOLEAN2=null;

        Object BOOLEAN2_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:159:15: ( BOOLEAN )
            // org/usergrid/persistence/query/tree/QueryFilter.g:159:17: BOOLEAN
            {
            root_0 = (Object)adaptor.nil();


            BOOLEAN2=(Token)match(input,BOOLEAN,FOLLOW_BOOLEAN_in_booleanliteral998); 
            BOOLEAN2_tree = 
            new BooleanLiteral(BOOLEAN2) 
            ;
            adaptor.addChild(root_0, BOOLEAN2_tree);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "booleanliteral"


    public static class longliteral_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "longliteral"
    // org/usergrid/persistence/query/tree/QueryFilter.g:162:1: longliteral : LONG ;
    public final QueryFilterParser.longliteral_return longliteral() throws RecognitionException {
        QueryFilterParser.longliteral_return retval = new QueryFilterParser.longliteral_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token LONG3=null;

        Object LONG3_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:162:13: ( LONG )
            // org/usergrid/persistence/query/tree/QueryFilter.g:163:3: LONG
            {
            root_0 = (Object)adaptor.nil();


            LONG3=(Token)match(input,LONG,FOLLOW_LONG_in_longliteral1012); 
            LONG3_tree = 
            new LongLiteral(LONG3) 
            ;
            adaptor.addChild(root_0, LONG3_tree);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "longliteral"


    public static class uuidliteral_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "uuidliteral"
    // org/usergrid/persistence/query/tree/QueryFilter.g:165:1: uuidliteral : UUID ;
    public final QueryFilterParser.uuidliteral_return uuidliteral() throws RecognitionException {
        QueryFilterParser.uuidliteral_return retval = new QueryFilterParser.uuidliteral_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token UUID4=null;

        Object UUID4_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:165:13: ( UUID )
            // org/usergrid/persistence/query/tree/QueryFilter.g:166:3: UUID
            {
            root_0 = (Object)adaptor.nil();


            UUID4=(Token)match(input,UUID,FOLLOW_UUID_in_uuidliteral1026); 
            UUID4_tree = 
            new UUIDLiteral(UUID4) 
            ;
            adaptor.addChild(root_0, UUID4_tree);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "uuidliteral"


    public static class stringliteral_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "stringliteral"
    // org/usergrid/persistence/query/tree/QueryFilter.g:168:1: stringliteral : STRING ;
    public final QueryFilterParser.stringliteral_return stringliteral() throws RecognitionException {
        QueryFilterParser.stringliteral_return retval = new QueryFilterParser.stringliteral_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token STRING5=null;

        Object STRING5_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:168:15: ( STRING )
            // org/usergrid/persistence/query/tree/QueryFilter.g:169:3: STRING
            {
            root_0 = (Object)adaptor.nil();


            STRING5=(Token)match(input,STRING,FOLLOW_STRING_in_stringliteral1039); 
            STRING5_tree = 
            new StringLiteral(STRING5) 
            ;
            adaptor.addChild(root_0, STRING5_tree);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "stringliteral"


    public static class floatliteral_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "floatliteral"
    // org/usergrid/persistence/query/tree/QueryFilter.g:171:1: floatliteral : FLOAT ;
    public final QueryFilterParser.floatliteral_return floatliteral() throws RecognitionException {
        QueryFilterParser.floatliteral_return retval = new QueryFilterParser.floatliteral_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token FLOAT6=null;

        Object FLOAT6_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:171:14: ( FLOAT )
            // org/usergrid/persistence/query/tree/QueryFilter.g:172:3: FLOAT
            {
            root_0 = (Object)adaptor.nil();


            FLOAT6=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_floatliteral1054); 
            FLOAT6_tree = 
            new FloatLiteral(FLOAT6) 
            ;
            adaptor.addChild(root_0, FLOAT6_tree);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "floatliteral"


    public static class value_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "value"
    // org/usergrid/persistence/query/tree/QueryFilter.g:175:1: value : ( booleanliteral | longliteral | uuidliteral | stringliteral | floatliteral );
    public final QueryFilterParser.value_return value() throws RecognitionException {
        QueryFilterParser.value_return retval = new QueryFilterParser.value_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        QueryFilterParser.booleanliteral_return booleanliteral7 =null;

        QueryFilterParser.longliteral_return longliteral8 =null;

        QueryFilterParser.uuidliteral_return uuidliteral9 =null;

        QueryFilterParser.stringliteral_return stringliteral10 =null;

        QueryFilterParser.floatliteral_return floatliteral11 =null;



        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:175:7: ( booleanliteral | longliteral | uuidliteral | stringliteral | floatliteral )
            int alt1=5;
            switch ( input.LA(1) ) {
            case BOOLEAN:
                {
                alt1=1;
                }
                break;
            case LONG:
                {
                alt1=2;
                }
                break;
            case UUID:
                {
                alt1=3;
                }
                break;
            case STRING:
                {
                alt1=4;
                }
                break;
            case FLOAT:
                {
                alt1=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;

            }

            switch (alt1) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:176:3: booleanliteral
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_booleanliteral_in_value1070);
                    booleanliteral7=booleanliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, booleanliteral7.getTree());

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:177:5: longliteral
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_longliteral_in_value1076);
                    longliteral8=longliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, longliteral8.getTree());

                    }
                    break;
                case 3 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:178:5: uuidliteral
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_uuidliteral_in_value1082);
                    uuidliteral9=uuidliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, uuidliteral9.getTree());

                    }
                    break;
                case 4 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:179:5: stringliteral
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_stringliteral_in_value1088);
                    stringliteral10=stringliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, stringliteral10.getTree());

                    }
                    break;
                case 5 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:180:5: floatliteral
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_floatliteral_in_value1094);
                    floatliteral11=floatliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, floatliteral11.getTree());

                    }
                    break;

            }
            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "value"


    public static class equalityop_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "equalityop"
    // org/usergrid/persistence/query/tree/QueryFilter.g:191:1: equalityop : ( property LT ^ value | property LTE ^ value | property EQ ^ value | property GT ^ value | property GTE ^ value );
    public final QueryFilterParser.equalityop_return equalityop() throws RecognitionException {
        QueryFilterParser.equalityop_return retval = new QueryFilterParser.equalityop_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token LT13=null;
        Token LTE16=null;
        Token EQ19=null;
        Token GT22=null;
        Token GTE25=null;
        QueryFilterParser.property_return property12 =null;

        QueryFilterParser.value_return value14 =null;

        QueryFilterParser.property_return property15 =null;

        QueryFilterParser.value_return value17 =null;

        QueryFilterParser.property_return property18 =null;

        QueryFilterParser.value_return value20 =null;

        QueryFilterParser.property_return property21 =null;

        QueryFilterParser.value_return value23 =null;

        QueryFilterParser.property_return property24 =null;

        QueryFilterParser.value_return value26 =null;


        Object LT13_tree=null;
        Object LTE16_tree=null;
        Object EQ19_tree=null;
        Object GT22_tree=null;
        Object GTE25_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:191:12: ( property LT ^ value | property LTE ^ value | property EQ ^ value | property GT ^ value | property GTE ^ value )
            int alt2=5;
            switch ( input.LA(1) ) {
            case ID:
                {
                switch ( input.LA(2) ) {
                case LT:
                    {
                    alt2=1;
                    }
                    break;
                case LTE:
                    {
                    alt2=2;
                    }
                    break;
                case EQ:
                    {
                    alt2=3;
                    }
                    break;
                case GT:
                    {
                    alt2=4;
                    }
                    break;
                case GTE:
                    {
                    alt2=5;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 2, 1, input);

                    throw nvae;

                }

                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;

            }

            switch (alt2) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:192:3: property LT ^ value
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_property_in_equalityop1119);
                    property12=property();

                    state._fsp--;

                    adaptor.addChild(root_0, property12.getTree());

                    LT13=(Token)match(input,LT,FOLLOW_LT_in_equalityop1121); 
                    LT13_tree = 
                    new LessThan(LT13) 
                    ;
                    root_0 = (Object)adaptor.becomeRoot(LT13_tree, root_0);


                    pushFollow(FOLLOW_value_in_equalityop1127);
                    value14=value();

                    state._fsp--;

                    adaptor.addChild(root_0, value14.getTree());

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:193:4: property LTE ^ value
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_property_in_equalityop1132);
                    property15=property();

                    state._fsp--;

                    adaptor.addChild(root_0, property15.getTree());

                    LTE16=(Token)match(input,LTE,FOLLOW_LTE_in_equalityop1134); 
                    LTE16_tree = 
                    new LessThanEqual(LTE16) 
                    ;
                    root_0 = (Object)adaptor.becomeRoot(LTE16_tree, root_0);


                    pushFollow(FOLLOW_value_in_equalityop1140);
                    value17=value();

                    state._fsp--;

                    adaptor.addChild(root_0, value17.getTree());

                    }
                    break;
                case 3 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:194:4: property EQ ^ value
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_property_in_equalityop1145);
                    property18=property();

                    state._fsp--;

                    adaptor.addChild(root_0, property18.getTree());

                    EQ19=(Token)match(input,EQ,FOLLOW_EQ_in_equalityop1147); 
                    EQ19_tree = 
                    new Equal(EQ19) 
                    ;
                    root_0 = (Object)adaptor.becomeRoot(EQ19_tree, root_0);


                    pushFollow(FOLLOW_value_in_equalityop1153);
                    value20=value();

                    state._fsp--;

                    adaptor.addChild(root_0, value20.getTree());

                    }
                    break;
                case 4 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:195:4: property GT ^ value
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_property_in_equalityop1158);
                    property21=property();

                    state._fsp--;

                    adaptor.addChild(root_0, property21.getTree());

                    GT22=(Token)match(input,GT,FOLLOW_GT_in_equalityop1160); 
                    GT22_tree = 
                    new GreaterThan(GT22) 
                    ;
                    root_0 = (Object)adaptor.becomeRoot(GT22_tree, root_0);


                    pushFollow(FOLLOW_value_in_equalityop1166);
                    value23=value();

                    state._fsp--;

                    adaptor.addChild(root_0, value23.getTree());

                    }
                    break;
                case 5 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:196:4: property GTE ^ value
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_property_in_equalityop1171);
                    property24=property();

                    state._fsp--;

                    adaptor.addChild(root_0, property24.getTree());

                    GTE25=(Token)match(input,GTE,FOLLOW_GTE_in_equalityop1173); 
                    GTE25_tree = 
                    new GreaterThanEqual(GTE25) 
                    ;
                    root_0 = (Object)adaptor.becomeRoot(GTE25_tree, root_0);


                    pushFollow(FOLLOW_value_in_equalityop1179);
                    value26=value();

                    state._fsp--;

                    adaptor.addChild(root_0, value26.getTree());

                    }
                    break;

            }
            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "equalityop"


    public static class locationop_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "locationop"
    // org/usergrid/persistence/query/tree/QueryFilter.g:200:1: locationop : property WITHIN ^ ( floatliteral | longliteral ) OF ! ( floatliteral | longliteral ) ',' ! ( floatliteral | longliteral ) ;
    public final QueryFilterParser.locationop_return locationop() throws RecognitionException {
        QueryFilterParser.locationop_return retval = new QueryFilterParser.locationop_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token WITHIN28=null;
        Token OF31=null;
        Token char_literal34=null;
        QueryFilterParser.property_return property27 =null;

        QueryFilterParser.floatliteral_return floatliteral29 =null;

        QueryFilterParser.longliteral_return longliteral30 =null;

        QueryFilterParser.floatliteral_return floatliteral32 =null;

        QueryFilterParser.longliteral_return longliteral33 =null;

        QueryFilterParser.floatliteral_return floatliteral35 =null;

        QueryFilterParser.longliteral_return longliteral36 =null;


        Object WITHIN28_tree=null;
        Object OF31_tree=null;
        Object char_literal34_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:200:12: ( property WITHIN ^ ( floatliteral | longliteral ) OF ! ( floatliteral | longliteral ) ',' ! ( floatliteral | longliteral ) )
            // org/usergrid/persistence/query/tree/QueryFilter.g:201:3: property WITHIN ^ ( floatliteral | longliteral ) OF ! ( floatliteral | longliteral ) ',' ! ( floatliteral | longliteral )
            {
            root_0 = (Object)adaptor.nil();


            pushFollow(FOLLOW_property_in_locationop1194);
            property27=property();

            state._fsp--;

            adaptor.addChild(root_0, property27.getTree());

            WITHIN28=(Token)match(input,WITHIN,FOLLOW_WITHIN_in_locationop1196); 
            WITHIN28_tree = 
            new WithinOperand(WITHIN28) 
            ;
            root_0 = (Object)adaptor.becomeRoot(WITHIN28_tree, root_0);


            // org/usergrid/persistence/query/tree/QueryFilter.g:201:35: ( floatliteral | longliteral )
            int alt3=2;
            switch ( input.LA(1) ) {
            case FLOAT:
                {
                alt3=1;
                }
                break;
            case LONG:
                {
                alt3=2;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;

            }

            switch (alt3) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:201:36: floatliteral
                    {
                    pushFollow(FOLLOW_floatliteral_in_locationop1203);
                    floatliteral29=floatliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, floatliteral29.getTree());

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:201:49: longliteral
                    {
                    pushFollow(FOLLOW_longliteral_in_locationop1205);
                    longliteral30=longliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, longliteral30.getTree());

                    }
                    break;

            }


            OF31=(Token)match(input,OF,FOLLOW_OF_in_locationop1208); 

            // org/usergrid/persistence/query/tree/QueryFilter.g:201:66: ( floatliteral | longliteral )
            int alt4=2;
            switch ( input.LA(1) ) {
            case FLOAT:
                {
                alt4=1;
                }
                break;
            case LONG:
                {
                alt4=2;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;

            }

            switch (alt4) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:201:67: floatliteral
                    {
                    pushFollow(FOLLOW_floatliteral_in_locationop1212);
                    floatliteral32=floatliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, floatliteral32.getTree());

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:201:80: longliteral
                    {
                    pushFollow(FOLLOW_longliteral_in_locationop1214);
                    longliteral33=longliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, longliteral33.getTree());

                    }
                    break;

            }


            char_literal34=(Token)match(input,34,FOLLOW_34_in_locationop1217); 

            // org/usergrid/persistence/query/tree/QueryFilter.g:201:98: ( floatliteral | longliteral )
            int alt5=2;
            switch ( input.LA(1) ) {
            case FLOAT:
                {
                alt5=1;
                }
                break;
            case LONG:
                {
                alt5=2;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;

            }

            switch (alt5) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:201:99: floatliteral
                    {
                    pushFollow(FOLLOW_floatliteral_in_locationop1221);
                    floatliteral35=floatliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, floatliteral35.getTree());

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:201:112: longliteral
                    {
                    pushFollow(FOLLOW_longliteral_in_locationop1223);
                    longliteral36=longliteral();

                    state._fsp--;

                    adaptor.addChild(root_0, longliteral36.getTree());

                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "locationop"


    public static class containsop_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "containsop"
    // org/usergrid/persistence/query/tree/QueryFilter.g:204:1: containsop : property CONTAINS ^ stringliteral ;
    public final QueryFilterParser.containsop_return containsop() throws RecognitionException {
        QueryFilterParser.containsop_return retval = new QueryFilterParser.containsop_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token CONTAINS38=null;
        QueryFilterParser.property_return property37 =null;

        QueryFilterParser.stringliteral_return stringliteral39 =null;


        Object CONTAINS38_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:204:12: ( property CONTAINS ^ stringliteral )
            // org/usergrid/persistence/query/tree/QueryFilter.g:205:3: property CONTAINS ^ stringliteral
            {
            root_0 = (Object)adaptor.nil();


            pushFollow(FOLLOW_property_in_containsop1237);
            property37=property();

            state._fsp--;

            adaptor.addChild(root_0, property37.getTree());

            CONTAINS38=(Token)match(input,CONTAINS,FOLLOW_CONTAINS_in_containsop1239); 
            CONTAINS38_tree = 
            new ContainsOperand(CONTAINS38) 
            ;
            root_0 = (Object)adaptor.becomeRoot(CONTAINS38_tree, root_0);


            pushFollow(FOLLOW_stringliteral_in_containsop1245);
            stringliteral39=stringliteral();

            state._fsp--;

            adaptor.addChild(root_0, stringliteral39.getTree());

            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "containsop"


    public static class operation_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "operation"
    // org/usergrid/persistence/query/tree/QueryFilter.g:207:1: operation : ( '(' ! expression ')' !| equalityop | locationop | containsop );
    public final QueryFilterParser.operation_return operation() throws RecognitionException {
        QueryFilterParser.operation_return retval = new QueryFilterParser.operation_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token char_literal40=null;
        Token char_literal42=null;
        QueryFilterParser.expression_return expression41 =null;

        QueryFilterParser.equalityop_return equalityop43 =null;

        QueryFilterParser.locationop_return locationop44 =null;

        QueryFilterParser.containsop_return containsop45 =null;


        Object char_literal40_tree=null;
        Object char_literal42_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:207:11: ( '(' ! expression ')' !| equalityop | locationop | containsop )
            int alt6=4;
            switch ( input.LA(1) ) {
            case 31:
                {
                alt6=1;
                }
                break;
            case ID:
                {
                switch ( input.LA(2) ) {
                case EQ:
                case GT:
                case GTE:
                case LT:
                case LTE:
                    {
                    alt6=2;
                    }
                    break;
                case WITHIN:
                    {
                    alt6=3;
                    }
                    break;
                case CONTAINS:
                    {
                    alt6=4;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 6, 2, input);

                    throw nvae;

                }

                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;

            }

            switch (alt6) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:208:2: '(' ! expression ')' !
                    {
                    root_0 = (Object)adaptor.nil();


                    char_literal40=(Token)match(input,31,FOLLOW_31_in_operation1254); 

                    pushFollow(FOLLOW_expression_in_operation1257);
                    expression41=expression();

                    state._fsp--;

                    adaptor.addChild(root_0, expression41.getTree());

                    char_literal42=(Token)match(input,32,FOLLOW_32_in_operation1259); 

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:209:6: equalityop
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_equalityop_in_operation1267);
                    equalityop43=equalityop();

                    state._fsp--;

                    adaptor.addChild(root_0, equalityop43.getTree());

                    }
                    break;
                case 3 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:210:6: locationop
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_locationop_in_operation1275);
                    locationop44=locationop();

                    state._fsp--;

                    adaptor.addChild(root_0, locationop44.getTree());

                    }
                    break;
                case 4 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:211:6: containsop
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_containsop_in_operation1283);
                    containsop45=containsop();

                    state._fsp--;

                    adaptor.addChild(root_0, containsop45.getTree());

                    }
                    break;

            }
            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "operation"


    public static class notexp_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "notexp"
    // org/usergrid/persistence/query/tree/QueryFilter.g:215:1: notexp : ( NOT ^ operation | operation );
    public final QueryFilterParser.notexp_return notexp() throws RecognitionException {
        QueryFilterParser.notexp_return retval = new QueryFilterParser.notexp_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token NOT46=null;
        QueryFilterParser.operation_return operation47 =null;

        QueryFilterParser.operation_return operation48 =null;


        Object NOT46_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:215:8: ( NOT ^ operation | operation )
            int alt7=2;
            switch ( input.LA(1) ) {
            case NOT:
                {
                alt7=1;
                }
                break;
            case ID:
            case 31:
                {
                alt7=2;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;

            }

            switch (alt7) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:217:2: NOT ^ operation
                    {
                    root_0 = (Object)adaptor.nil();


                    NOT46=(Token)match(input,NOT,FOLLOW_NOT_in_notexp1299); 
                    NOT46_tree = 
                    new NotOperand(NOT46) 
                    ;
                    root_0 = (Object)adaptor.becomeRoot(NOT46_tree, root_0);


                    pushFollow(FOLLOW_operation_in_notexp1305);
                    operation47=operation();

                    state._fsp--;

                    adaptor.addChild(root_0, operation47.getTree());

                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:218:3: operation
                    {
                    root_0 = (Object)adaptor.nil();


                    pushFollow(FOLLOW_operation_in_notexp1311);
                    operation48=operation();

                    state._fsp--;

                    adaptor.addChild(root_0, operation48.getTree());

                    }
                    break;

            }
            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "notexp"


    public static class andexp_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "andexp"
    // org/usergrid/persistence/query/tree/QueryFilter.g:223:1: andexp : notexp ( AND ^ notexp )* ;
    public final QueryFilterParser.andexp_return andexp() throws RecognitionException {
        QueryFilterParser.andexp_return retval = new QueryFilterParser.andexp_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token AND50=null;
        QueryFilterParser.notexp_return notexp49 =null;

        QueryFilterParser.notexp_return notexp51 =null;


        Object AND50_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:223:8: ( notexp ( AND ^ notexp )* )
            // org/usergrid/persistence/query/tree/QueryFilter.g:224:2: notexp ( AND ^ notexp )*
            {
            root_0 = (Object)adaptor.nil();


            pushFollow(FOLLOW_notexp_in_andexp1325);
            notexp49=notexp();

            state._fsp--;

            adaptor.addChild(root_0, notexp49.getTree());

            // org/usergrid/persistence/query/tree/QueryFilter.g:224:9: ( AND ^ notexp )*
            loop8:
            do {
                int alt8=2;
                switch ( input.LA(1) ) {
                case AND:
                    {
                    alt8=1;
                    }
                    break;

                }

                switch (alt8) {
            	case 1 :
            	    // org/usergrid/persistence/query/tree/QueryFilter.g:224:10: AND ^ notexp
            	    {
            	    AND50=(Token)match(input,AND,FOLLOW_AND_in_andexp1328); 
            	    AND50_tree = 
            	    new AndOperand(AND50) 
            	    ;
            	    root_0 = (Object)adaptor.becomeRoot(AND50_tree, root_0);


            	    pushFollow(FOLLOW_notexp_in_andexp1334);
            	    notexp51=notexp();

            	    state._fsp--;

            	    adaptor.addChild(root_0, notexp51.getTree());

            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "andexp"


    public static class expression_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "expression"
    // org/usergrid/persistence/query/tree/QueryFilter.g:229:1: expression : andexp ( OR ^ andexp )* ;
    public final QueryFilterParser.expression_return expression() throws RecognitionException {
        QueryFilterParser.expression_return retval = new QueryFilterParser.expression_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token OR53=null;
        QueryFilterParser.andexp_return andexp52 =null;

        QueryFilterParser.andexp_return andexp54 =null;


        Object OR53_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:229:12: ( andexp ( OR ^ andexp )* )
            // org/usergrid/persistence/query/tree/QueryFilter.g:230:2: andexp ( OR ^ andexp )*
            {
            root_0 = (Object)adaptor.nil();


            pushFollow(FOLLOW_andexp_in_expression1351);
            andexp52=andexp();

            state._fsp--;

            adaptor.addChild(root_0, andexp52.getTree());

            // org/usergrid/persistence/query/tree/QueryFilter.g:230:9: ( OR ^ andexp )*
            loop9:
            do {
                int alt9=2;
                switch ( input.LA(1) ) {
                case OR:
                    {
                    alt9=1;
                    }
                    break;

                }

                switch (alt9) {
            	case 1 :
            	    // org/usergrid/persistence/query/tree/QueryFilter.g:230:10: OR ^ andexp
            	    {
            	    OR53=(Token)match(input,OR,FOLLOW_OR_in_expression1354); 
            	    OR53_tree = 
            	    new OrOperand(OR53) 
            	    ;
            	    root_0 = (Object)adaptor.becomeRoot(OR53_tree, root_0);


            	    pushFollow(FOLLOW_andexp_in_expression1360);
            	    andexp54=andexp();

            	    state._fsp--;

            	    adaptor.addChild(root_0, andexp54.getTree());

            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "expression"


    public static class direction_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "direction"
    // org/usergrid/persistence/query/tree/QueryFilter.g:239:1: direction : ( ASC | DESC ) ;
    public final QueryFilterParser.direction_return direction() throws RecognitionException {
        QueryFilterParser.direction_return retval = new QueryFilterParser.direction_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token set55=null;

        Object set55_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:239:12: ( ( ASC | DESC ) )
            // org/usergrid/persistence/query/tree/QueryFilter.g:
            {
            root_0 = (Object)adaptor.nil();


            set55=(Token)input.LT(1);

            if ( input.LA(1)==ASC||input.LA(1)==DESC ) {
                input.consume();
                adaptor.addChild(root_0, 
                (Object)adaptor.create(set55)
                );
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "direction"


    public static class order_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "order"
    // org/usergrid/persistence/query/tree/QueryFilter.g:242:1: order : ( property ( direction )? ) ;
    public final QueryFilterParser.order_return order() throws RecognitionException {
        QueryFilterParser.order_return retval = new QueryFilterParser.order_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        QueryFilterParser.property_return property56 =null;

        QueryFilterParser.direction_return direction57 =null;



        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:243:3: ( ( property ( direction )? ) )
            // org/usergrid/persistence/query/tree/QueryFilter.g:243:5: ( property ( direction )? )
            {
            root_0 = (Object)adaptor.nil();


            // org/usergrid/persistence/query/tree/QueryFilter.g:243:5: ( property ( direction )? )
            // org/usergrid/persistence/query/tree/QueryFilter.g:243:6: property ( direction )?
            {
            pushFollow(FOLLOW_property_in_order1397);
            property56=property();

            state._fsp--;

            adaptor.addChild(root_0, property56.getTree());

            // org/usergrid/persistence/query/tree/QueryFilter.g:243:15: ( direction )?
            int alt10=2;
            switch ( input.LA(1) ) {
                case ASC:
                case DESC:
                    {
                    alt10=1;
                    }
                    break;
            }

            switch (alt10) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:243:15: direction
                    {
                    pushFollow(FOLLOW_direction_in_order1399);
                    direction57=direction();

                    state._fsp--;

                    adaptor.addChild(root_0, direction57.getTree());

                    }
                    break;

            }


            }



            		String property = (property56!=null?input.toString(property56.start,property56.stop):null); 
            		String direction = (direction57!=null?input.toString(direction57.start,direction57.stop):null);
            		query.addSort(new SortPredicate(property, direction));
                
              

            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "order"


    public static class select_subject_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "select_subject"
    // org/usergrid/persistence/query/tree/QueryFilter.g:254:1: select_subject : ID ;
    public final QueryFilterParser.select_subject_return select_subject() throws RecognitionException {
        QueryFilterParser.select_subject_return retval = new QueryFilterParser.select_subject_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token ID58=null;

        Object ID58_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:255:3: ( ID )
            // org/usergrid/persistence/query/tree/QueryFilter.g:255:5: ID
            {
            root_0 = (Object)adaptor.nil();


            ID58=(Token)match(input,ID,FOLLOW_ID_in_select_subject1418); 
            ID58_tree = 
            (Object)adaptor.create(ID58)
            ;
            adaptor.addChild(root_0, ID58_tree);




              query.addSelect((ID58!=null?ID58.getText():null));



            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "select_subject"


    public static class select_assign_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "select_assign"
    // org/usergrid/persistence/query/tree/QueryFilter.g:263:1: select_assign : target= ID ':' source= ID ;
    public final QueryFilterParser.select_assign_return select_assign() throws RecognitionException {
        QueryFilterParser.select_assign_return retval = new QueryFilterParser.select_assign_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token target=null;
        Token source=null;
        Token char_literal59=null;

        Object target_tree=null;
        Object source_tree=null;
        Object char_literal59_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:264:3: (target= ID ':' source= ID )
            // org/usergrid/persistence/query/tree/QueryFilter.g:264:5: target= ID ':' source= ID
            {
            root_0 = (Object)adaptor.nil();


            target=(Token)match(input,ID,FOLLOW_ID_in_select_assign1435); 
            target_tree = 
            (Object)adaptor.create(target)
            ;
            adaptor.addChild(root_0, target_tree);


            char_literal59=(Token)match(input,35,FOLLOW_35_in_select_assign1437); 
            char_literal59_tree = 
            (Object)adaptor.create(char_literal59)
            ;
            adaptor.addChild(root_0, char_literal59_tree);


            source=(Token)match(input,ID,FOLLOW_ID_in_select_assign1441); 
            source_tree = 
            (Object)adaptor.create(source)
            ;
            adaptor.addChild(root_0, source_tree);




              query.addSelect((target!=null?target.getText():null), (source!=null?source.getText():null));



            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "select_assign"


    public static class select_expr_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "select_expr"
    // org/usergrid/persistence/query/tree/QueryFilter.g:270:1: select_expr : ( '*' | select_subject ( ',' select_subject )* | '{' select_assign ( ',' select_assign )* '}' ) ;
    public final QueryFilterParser.select_expr_return select_expr() throws RecognitionException {
        QueryFilterParser.select_expr_return retval = new QueryFilterParser.select_expr_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token char_literal60=null;
        Token char_literal62=null;
        Token char_literal64=null;
        Token char_literal66=null;
        Token char_literal68=null;
        QueryFilterParser.select_subject_return select_subject61 =null;

        QueryFilterParser.select_subject_return select_subject63 =null;

        QueryFilterParser.select_assign_return select_assign65 =null;

        QueryFilterParser.select_assign_return select_assign67 =null;


        Object char_literal60_tree=null;
        Object char_literal62_tree=null;
        Object char_literal64_tree=null;
        Object char_literal66_tree=null;
        Object char_literal68_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:271:3: ( ( '*' | select_subject ( ',' select_subject )* | '{' select_assign ( ',' select_assign )* '}' ) )
            // org/usergrid/persistence/query/tree/QueryFilter.g:271:5: ( '*' | select_subject ( ',' select_subject )* | '{' select_assign ( ',' select_assign )* '}' )
            {
            root_0 = (Object)adaptor.nil();


            // org/usergrid/persistence/query/tree/QueryFilter.g:271:5: ( '*' | select_subject ( ',' select_subject )* | '{' select_assign ( ',' select_assign )* '}' )
            int alt13=3;
            switch ( input.LA(1) ) {
            case 33:
                {
                alt13=1;
                }
                break;
            case ID:
                {
                alt13=2;
                }
                break;
            case 39:
                {
                alt13=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;

            }

            switch (alt13) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:271:6: '*'
                    {
                    char_literal60=(Token)match(input,33,FOLLOW_33_in_select_expr1455); 
                    char_literal60_tree = 
                    (Object)adaptor.create(char_literal60)
                    ;
                    adaptor.addChild(root_0, char_literal60_tree);


                    }
                    break;
                case 2 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:271:12: select_subject ( ',' select_subject )*
                    {
                    pushFollow(FOLLOW_select_subject_in_select_expr1459);
                    select_subject61=select_subject();

                    state._fsp--;

                    adaptor.addChild(root_0, select_subject61.getTree());

                    // org/usergrid/persistence/query/tree/QueryFilter.g:271:27: ( ',' select_subject )*
                    loop11:
                    do {
                        int alt11=2;
                        switch ( input.LA(1) ) {
                        case 34:
                            {
                            alt11=1;
                            }
                            break;

                        }

                        switch (alt11) {
                    	case 1 :
                    	    // org/usergrid/persistence/query/tree/QueryFilter.g:271:28: ',' select_subject
                    	    {
                    	    char_literal62=(Token)match(input,34,FOLLOW_34_in_select_expr1462); 
                    	    char_literal62_tree = 
                    	    (Object)adaptor.create(char_literal62)
                    	    ;
                    	    adaptor.addChild(root_0, char_literal62_tree);


                    	    pushFollow(FOLLOW_select_subject_in_select_expr1464);
                    	    select_subject63=select_subject();

                    	    state._fsp--;

                    	    adaptor.addChild(root_0, select_subject63.getTree());

                    	    }
                    	    break;

                    	default :
                    	    break loop11;
                        }
                    } while (true);


                    }
                    break;
                case 3 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:271:52: '{' select_assign ( ',' select_assign )* '}'
                    {
                    char_literal64=(Token)match(input,39,FOLLOW_39_in_select_expr1471); 
                    char_literal64_tree = 
                    (Object)adaptor.create(char_literal64)
                    ;
                    adaptor.addChild(root_0, char_literal64_tree);


                    pushFollow(FOLLOW_select_assign_in_select_expr1473);
                    select_assign65=select_assign();

                    state._fsp--;

                    adaptor.addChild(root_0, select_assign65.getTree());

                    // org/usergrid/persistence/query/tree/QueryFilter.g:271:70: ( ',' select_assign )*
                    loop12:
                    do {
                        int alt12=2;
                        switch ( input.LA(1) ) {
                        case 34:
                            {
                            alt12=1;
                            }
                            break;

                        }

                        switch (alt12) {
                    	case 1 :
                    	    // org/usergrid/persistence/query/tree/QueryFilter.g:271:71: ',' select_assign
                    	    {
                    	    char_literal66=(Token)match(input,34,FOLLOW_34_in_select_expr1476); 
                    	    char_literal66_tree = 
                    	    (Object)adaptor.create(char_literal66)
                    	    ;
                    	    adaptor.addChild(root_0, char_literal66_tree);


                    	    pushFollow(FOLLOW_select_assign_in_select_expr1478);
                    	    select_assign67=select_assign();

                    	    state._fsp--;

                    	    adaptor.addChild(root_0, select_assign67.getTree());

                    	    }
                    	    break;

                    	default :
                    	    break loop12;
                        }
                    } while (true);


                    char_literal68=(Token)match(input,40,FOLLOW_40_in_select_expr1483); 
                    char_literal68_tree = 
                    (Object)adaptor.create(char_literal68)
                    ;
                    adaptor.addChild(root_0, char_literal68_tree);


                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "select_expr"


    public static class ql_return extends ParserRuleReturnScope {
        public Query query;
        Object tree;
        public Object getTree() { return tree; }
    };


    // $ANTLR start "ql"
    // org/usergrid/persistence/query/tree/QueryFilter.g:275:1: ql returns [Query query] : ( 'select' ! select_expr !)? ( ( 'where' !)? expression )? ( 'order by' ! order ! ( ',' ! order !)* )? ;
    public final QueryFilterParser.ql_return ql() throws RecognitionException {
        QueryFilterParser.ql_return retval = new QueryFilterParser.ql_return();
        retval.start = input.LT(1);


        Object root_0 = null;

        Token string_literal69=null;
        Token string_literal71=null;
        Token string_literal73=null;
        Token char_literal75=null;
        QueryFilterParser.select_expr_return select_expr70 =null;

        QueryFilterParser.expression_return expression72 =null;

        QueryFilterParser.order_return order74 =null;

        QueryFilterParser.order_return order76 =null;


        Object string_literal69_tree=null;
        Object string_literal71_tree=null;
        Object string_literal73_tree=null;
        Object char_literal75_tree=null;

        try {
            // org/usergrid/persistence/query/tree/QueryFilter.g:276:3: ( ( 'select' ! select_expr !)? ( ( 'where' !)? expression )? ( 'order by' ! order ! ( ',' ! order !)* )? )
            // org/usergrid/persistence/query/tree/QueryFilter.g:276:5: ( 'select' ! select_expr !)? ( ( 'where' !)? expression )? ( 'order by' ! order ! ( ',' ! order !)* )?
            {
            root_0 = (Object)adaptor.nil();


            // org/usergrid/persistence/query/tree/QueryFilter.g:276:5: ( 'select' ! select_expr !)?
            int alt14=2;
            switch ( input.LA(1) ) {
                case 37:
                    {
                    alt14=1;
                    }
                    break;
            }

            switch (alt14) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:276:6: 'select' ! select_expr !
                    {
                    string_literal69=(Token)match(input,37,FOLLOW_37_in_ql1506); 

                    pushFollow(FOLLOW_select_expr_in_ql1509);
                    select_expr70=select_expr();

                    state._fsp--;


                    }
                    break;

            }


            // org/usergrid/persistence/query/tree/QueryFilter.g:276:31: ( ( 'where' !)? expression )?
            int alt16=2;
            switch ( input.LA(1) ) {
                case ID:
                case NOT:
                case 31:
                case 38:
                    {
                    alt16=1;
                    }
                    break;
            }

            switch (alt16) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:276:32: ( 'where' !)? expression
                    {
                    // org/usergrid/persistence/query/tree/QueryFilter.g:276:39: ( 'where' !)?
                    int alt15=2;
                    switch ( input.LA(1) ) {
                        case 38:
                            {
                            alt15=1;
                            }
                            break;
                    }

                    switch (alt15) {
                        case 1 :
                            // org/usergrid/persistence/query/tree/QueryFilter.g:276:39: 'where' !
                            {
                            string_literal71=(Token)match(input,38,FOLLOW_38_in_ql1515); 

                            }
                            break;

                    }


                    pushFollow(FOLLOW_expression_in_ql1519);
                    expression72=expression();

                    state._fsp--;

                    adaptor.addChild(root_0, expression72.getTree());

                    }
                    break;

            }


            // org/usergrid/persistence/query/tree/QueryFilter.g:276:55: ( 'order by' ! order ! ( ',' ! order !)* )?
            int alt18=2;
            switch ( input.LA(1) ) {
                case 36:
                    {
                    alt18=1;
                    }
                    break;
            }

            switch (alt18) {
                case 1 :
                    // org/usergrid/persistence/query/tree/QueryFilter.g:276:56: 'order by' ! order ! ( ',' ! order !)*
                    {
                    string_literal73=(Token)match(input,36,FOLLOW_36_in_ql1524); 

                    pushFollow(FOLLOW_order_in_ql1527);
                    order74=order();

                    state._fsp--;


                    // org/usergrid/persistence/query/tree/QueryFilter.g:276:75: ( ',' ! order !)*
                    loop17:
                    do {
                        int alt17=2;
                        switch ( input.LA(1) ) {
                        case 34:
                            {
                            alt17=1;
                            }
                            break;

                        }

                        switch (alt17) {
                    	case 1 :
                    	    // org/usergrid/persistence/query/tree/QueryFilter.g:276:76: ',' ! order !
                    	    {
                    	    char_literal75=(Token)match(input,34,FOLLOW_34_in_ql1531); 

                    	    pushFollow(FOLLOW_order_in_ql1534);
                    	    order76=order();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop17;
                        }
                    } while (true);


                    }
                    break;

            }




              if((expression72!=null?((Object)expression72.tree):null) instanceof Operand){
                query.setRootOperand((Operand)(expression72!=null?((Object)expression72.tree):null));
              }
              
              retval.query = query;




            }

            retval.stop = input.LT(-1);


            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
         
        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "ql"

    // Delegated rules


 

    public static final BitSet FOLLOW_ID_in_property987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_BOOLEAN_in_booleanliteral998 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LONG_in_longliteral1012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_UUID_in_uuidliteral1026 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRING_in_stringliteral1039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FLOAT_in_floatliteral1054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_booleanliteral_in_value1070 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_longliteral_in_value1076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_uuidliteral_in_value1082 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_stringliteral_in_value1088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_floatliteral_in_value1094 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_equalityop1119 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_LT_in_equalityop1121 = new BitSet(new long[]{0x0000000012042040L});
    public static final BitSet FOLLOW_value_in_equalityop1127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_equalityop1132 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_LTE_in_equalityop1134 = new BitSet(new long[]{0x0000000012042040L});
    public static final BitSet FOLLOW_value_in_equalityop1140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_equalityop1145 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_EQ_in_equalityop1147 = new BitSet(new long[]{0x0000000012042040L});
    public static final BitSet FOLLOW_value_in_equalityop1153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_equalityop1158 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_GT_in_equalityop1160 = new BitSet(new long[]{0x0000000012042040L});
    public static final BitSet FOLLOW_value_in_equalityop1166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_equalityop1171 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_GTE_in_equalityop1173 = new BitSet(new long[]{0x0000000012042040L});
    public static final BitSet FOLLOW_value_in_equalityop1179 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_locationop1194 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_WITHIN_in_locationop1196 = new BitSet(new long[]{0x0000000000042000L});
    public static final BitSet FOLLOW_floatliteral_in_locationop1203 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_longliteral_in_locationop1205 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_OF_in_locationop1208 = new BitSet(new long[]{0x0000000000042000L});
    public static final BitSet FOLLOW_floatliteral_in_locationop1212 = new BitSet(new long[]{0x0000000400000000L});
    public static final BitSet FOLLOW_longliteral_in_locationop1214 = new BitSet(new long[]{0x0000000400000000L});
    public static final BitSet FOLLOW_34_in_locationop1217 = new BitSet(new long[]{0x0000000000042000L});
    public static final BitSet FOLLOW_floatliteral_in_locationop1221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_longliteral_in_locationop1223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_property_in_containsop1237 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_CONTAINS_in_containsop1239 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_stringliteral_in_containsop1245 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_operation1254 = new BitSet(new long[]{0x0000000080220000L});
    public static final BitSet FOLLOW_expression_in_operation1257 = new BitSet(new long[]{0x0000000100000000L});
    public static final BitSet FOLLOW_32_in_operation1259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_equalityop_in_operation1267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_locationop_in_operation1275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_containsop_in_operation1283 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NOT_in_notexp1299 = new BitSet(new long[]{0x0000000080020000L});
    public static final BitSet FOLLOW_operation_in_notexp1305 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_operation_in_notexp1311 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_notexp_in_andexp1325 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_AND_in_andexp1328 = new BitSet(new long[]{0x0000000080220000L});
    public static final BitSet FOLLOW_notexp_in_andexp1334 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_andexp_in_expression1351 = new BitSet(new long[]{0x0000000001000002L});
    public static final BitSet FOLLOW_OR_in_expression1354 = new BitSet(new long[]{0x0000000080220000L});
    public static final BitSet FOLLOW_andexp_in_expression1360 = new BitSet(new long[]{0x0000000001000002L});
    public static final BitSet FOLLOW_property_in_order1397 = new BitSet(new long[]{0x0000000000000122L});
    public static final BitSet FOLLOW_direction_in_order1399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ID_in_select_subject1418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ID_in_select_assign1435 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_35_in_select_assign1437 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_ID_in_select_assign1441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_select_expr1455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_select_subject_in_select_expr1459 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_34_in_select_expr1462 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_select_subject_in_select_expr1464 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_39_in_select_expr1471 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_select_assign_in_select_expr1473 = new BitSet(new long[]{0x0000010400000000L});
    public static final BitSet FOLLOW_34_in_select_expr1476 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_select_assign_in_select_expr1478 = new BitSet(new long[]{0x0000010400000000L});
    public static final BitSet FOLLOW_40_in_select_expr1483 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_ql1506 = new BitSet(new long[]{0x0000008200020000L});
    public static final BitSet FOLLOW_select_expr_in_ql1509 = new BitSet(new long[]{0x0000005080220002L});
    public static final BitSet FOLLOW_38_in_ql1515 = new BitSet(new long[]{0x0000000080220000L});
    public static final BitSet FOLLOW_expression_in_ql1519 = new BitSet(new long[]{0x0000001000000002L});
    public static final BitSet FOLLOW_36_in_ql1524 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_order_in_ql1527 = new BitSet(new long[]{0x0000000400000002L});
    public static final BitSet FOLLOW_34_in_ql1531 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_order_in_ql1534 = new BitSet(new long[]{0x0000000400000002L});

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy