Exemplo n.º 1
0
    // $ANTLR start "quantifiedExpression"
    // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:518:1: quantifiedExpression : ( SOME | EXISTS | ALL | ANY ) ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) ) ;
    public HqlParser.quantifiedExpression_return quantifiedExpression() // throws RecognitionException [1]
    {   
        HqlParser.quantifiedExpression_return retval = new HqlParser.quantifiedExpression_return();
        retval.Start = input.LT(1);

        IASTNode root_0 = null;

        IToken SOME213 = null;
        IToken EXISTS214 = null;
        IToken ALL215 = null;
        IToken ANY216 = null;
        IToken OPEN219 = null;
        IToken CLOSE221 = null;
        HqlParser.identifier_return identifier217 = default(HqlParser.identifier_return);

        HqlParser.collectionExpr_return collectionExpr218 = default(HqlParser.collectionExpr_return);

        HqlParser.subQuery_return subQuery220 = default(HqlParser.subQuery_return);


        IASTNode SOME213_tree=null;
        IASTNode EXISTS214_tree=null;
        IASTNode ALL215_tree=null;
        IASTNode ANY216_tree=null;
        IASTNode OPEN219_tree=null;
        IASTNode CLOSE221_tree=null;

        try 
    	{
            // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:2: ( ( SOME | EXISTS | ALL | ANY ) ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) ) )
            // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:4: ( SOME | EXISTS | ALL | ANY ) ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) )
            {
            	root_0 = (IASTNode)adaptor.GetNilNode();

            	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:4: ( SOME | EXISTS | ALL | ANY )
            	int alt74 = 4;
            	switch ( input.LA(1) ) 
            	{
            	case SOME:
            		{
            	    alt74 = 1;
            	    }
            	    break;
            	case EXISTS:
            		{
            	    alt74 = 2;
            	    }
            	    break;
            	case ALL:
            		{
            	    alt74 = 3;
            	    }
            	    break;
            	case ANY:
            		{
            	    alt74 = 4;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d74s0 =
            		        new NoViableAltException("", 74, 0, input);

            		    throw nvae_d74s0;
            	}

            	switch (alt74) 
            	{
            	    case 1 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:6: SOME
            	        {
            	        	SOME213=(IToken)Match(input,SOME,FOLLOW_SOME_in_quantifiedExpression2626); 
            	        		SOME213_tree = (IASTNode)adaptor.Create(SOME213);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(SOME213_tree, root_0);


            	        }
            	        break;
            	    case 2 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:14: EXISTS
            	        {
            	        	EXISTS214=(IToken)Match(input,EXISTS,FOLLOW_EXISTS_in_quantifiedExpression2631); 
            	        		EXISTS214_tree = (IASTNode)adaptor.Create(EXISTS214);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(EXISTS214_tree, root_0);


            	        }
            	        break;
            	    case 3 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:24: ALL
            	        {
            	        	ALL215=(IToken)Match(input,ALL,FOLLOW_ALL_in_quantifiedExpression2636); 
            	        		ALL215_tree = (IASTNode)adaptor.Create(ALL215);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(ALL215_tree, root_0);


            	        }
            	        break;
            	    case 4 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:519:31: ANY
            	        {
            	        	ANY216=(IToken)Match(input,ANY,FOLLOW_ANY_in_quantifiedExpression2641); 
            	        		ANY216_tree = (IASTNode)adaptor.Create(ANY216);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(ANY216_tree, root_0);


            	        }
            	        break;

            	}

            	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:2: ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) )
            	int alt75 = 3;
            	switch ( input.LA(1) ) 
            	{
            	case IDENT:
            		{
            	    alt75 = 1;
            	    }
            	    break;
            	case ELEMENTS:
            	case INDICES:
            		{
            	    alt75 = 2;
            	    }
            	    break;
            	case OPEN:
            		{
            	    alt75 = 3;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d75s0 =
            		        new NoViableAltException("", 75, 0, input);

            		    throw nvae_d75s0;
            	}

            	switch (alt75) 
            	{
            	    case 1 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:4: identifier
            	        {
            	        	PushFollow(FOLLOW_identifier_in_quantifiedExpression2650);
            	        	identifier217 = identifier();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, identifier217.Tree);

            	        }
            	        break;
            	    case 2 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:17: collectionExpr
            	        {
            	        	PushFollow(FOLLOW_collectionExpr_in_quantifiedExpression2654);
            	        	collectionExpr218 = collectionExpr();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, collectionExpr218.Tree);

            	        }
            	        break;
            	    case 3 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:34: ( OPEN ( subQuery ) CLOSE )
            	        {
            	        	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:34: ( OPEN ( subQuery ) CLOSE )
            	        	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:35: OPEN ( subQuery ) CLOSE
            	        	{
            	        		OPEN219=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_quantifiedExpression2659); 
            	        		// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:41: ( subQuery )
            	        		// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:520:43: subQuery
            	        		{
            	        			PushFollow(FOLLOW_subQuery_in_quantifiedExpression2664);
            	        			subQuery220 = subQuery();
            	        			state.followingStackPointer--;

            	        			adaptor.AddChild(root_0, subQuery220.Tree);

            	        		}

            	        		CLOSE221=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_quantifiedExpression2668); 

            	        	}


            	        }
            	        break;

            	}


            }

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

            	retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (IASTNode)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }
    // $ANTLR start "quantifiedExpression"
    // Hql.g:536:1: quantifiedExpression : ( SOME | EXISTS | ALL | ANY ) ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) ) ;
    public HqlParser.quantifiedExpression_return quantifiedExpression() // throws RecognitionException [1]
    {   
        HqlParser.quantifiedExpression_return retval = new HqlParser.quantifiedExpression_return();
        retval.Start = input.LT(1);

        IASTNode root_0 = null;

        IToken SOME226 = null;
        IToken EXISTS227 = null;
        IToken ALL228 = null;
        IToken ANY229 = null;
        IToken OPEN232 = null;
        IToken CLOSE234 = null;
        HqlParser.identifier_return identifier230 = default(HqlParser.identifier_return);

        HqlParser.collectionExpr_return collectionExpr231 = default(HqlParser.collectionExpr_return);

        HqlParser.subQuery_return subQuery233 = default(HqlParser.subQuery_return);


        IASTNode SOME226_tree=null;
        IASTNode EXISTS227_tree=null;
        IASTNode ALL228_tree=null;
        IASTNode ANY229_tree=null;
        IASTNode OPEN232_tree=null;
        IASTNode CLOSE234_tree=null;

        try 
    	{
            // Hql.g:537:2: ( ( SOME | EXISTS | ALL | ANY ) ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) ) )
            // Hql.g:537:4: ( SOME | EXISTS | ALL | ANY ) ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) )
            {
            	root_0 = (IASTNode)adaptor.GetNilNode();

            	// Hql.g:537:4: ( SOME | EXISTS | ALL | ANY )
            	int alt80 = 4;
            	switch ( input.LA(1) ) 
            	{
            	case SOME:
            		{
            	    alt80 = 1;
            	    }
            	    break;
            	case EXISTS:
            		{
            	    alt80 = 2;
            	    }
            	    break;
            	case ALL:
            		{
            	    alt80 = 3;
            	    }
            	    break;
            	case ANY:
            		{
            	    alt80 = 4;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d80s0 =
            		        new NoViableAltException("", 80, 0, input);

            		    throw nvae_d80s0;
            	}

            	switch (alt80) 
            	{
            	    case 1 :
            	        // Hql.g:537:6: SOME
            	        {
            	        	SOME226=(IToken)Match(input,SOME,FOLLOW_SOME_in_quantifiedExpression2725); 
            	        		SOME226_tree = (IASTNode)adaptor.Create(SOME226);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(SOME226_tree, root_0);


            	        }
            	        break;
            	    case 2 :
            	        // Hql.g:537:14: EXISTS
            	        {
            	        	EXISTS227=(IToken)Match(input,EXISTS,FOLLOW_EXISTS_in_quantifiedExpression2730); 
            	        		EXISTS227_tree = (IASTNode)adaptor.Create(EXISTS227);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(EXISTS227_tree, root_0);


            	        }
            	        break;
            	    case 3 :
            	        // Hql.g:537:24: ALL
            	        {
            	        	ALL228=(IToken)Match(input,ALL,FOLLOW_ALL_in_quantifiedExpression2735); 
            	        		ALL228_tree = (IASTNode)adaptor.Create(ALL228);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(ALL228_tree, root_0);


            	        }
            	        break;
            	    case 4 :
            	        // Hql.g:537:31: ANY
            	        {
            	        	ANY229=(IToken)Match(input,ANY,FOLLOW_ANY_in_quantifiedExpression2740); 
            	        		ANY229_tree = (IASTNode)adaptor.Create(ANY229);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(ANY229_tree, root_0);


            	        }
            	        break;

            	}

            	// Hql.g:538:2: ( identifier | collectionExpr | ( OPEN ( subQuery ) CLOSE ) )
            	int alt81 = 3;
            	switch ( input.LA(1) ) 
            	{
            	case IDENT:
            		{
            	    alt81 = 1;
            	    }
            	    break;
            	case ELEMENTS:
            	case INDICES:
            		{
            	    alt81 = 2;
            	    }
            	    break;
            	case OPEN:
            		{
            	    alt81 = 3;
            	    }
            	    break;
            		default:
            		    NoViableAltException nvae_d81s0 =
            		        new NoViableAltException("", 81, 0, input);

            		    throw nvae_d81s0;
            	}

            	switch (alt81) 
            	{
            	    case 1 :
            	        // Hql.g:538:4: identifier
            	        {
            	        	PushFollow(FOLLOW_identifier_in_quantifiedExpression2749);
            	        	identifier230 = identifier();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, identifier230.Tree);

            	        }
            	        break;
            	    case 2 :
            	        // Hql.g:538:17: collectionExpr
            	        {
            	        	PushFollow(FOLLOW_collectionExpr_in_quantifiedExpression2753);
            	        	collectionExpr231 = collectionExpr();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, collectionExpr231.Tree);

            	        }
            	        break;
            	    case 3 :
            	        // Hql.g:538:34: ( OPEN ( subQuery ) CLOSE )
            	        {
            	        	// Hql.g:538:34: ( OPEN ( subQuery ) CLOSE )
            	        	// Hql.g:538:35: OPEN ( subQuery ) CLOSE
            	        	{
            	        		OPEN232=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_quantifiedExpression2758); 
            	        		// Hql.g:538:41: ( subQuery )
            	        		// Hql.g:538:43: subQuery
            	        		{
            	        			PushFollow(FOLLOW_subQuery_in_quantifiedExpression2763);
            	        			subQuery233 = subQuery();
            	        			state.followingStackPointer--;

            	        			adaptor.AddChild(root_0, subQuery233.Tree);

            	        		}

            	        		CLOSE234=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_quantifiedExpression2767); 

            	        	}


            	        }
            	        break;

            	}


            }

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

            	retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (IASTNode)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }