示例#1
0
    // $ANTLR start "queryRule"
    // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:198:1: queryRule : selectFrom ( whereClause )? ( groupByClause )? ( orderByClause )? ;
    public HqlParser.queryRule_return queryRule() // throws RecognitionException [1]
    {   
        HqlParser.queryRule_return retval = new HqlParser.queryRule_return();
        retval.Start = input.LT(1);

        IASTNode root_0 = null;

        HqlParser.selectFrom_return selectFrom37 = default(HqlParser.selectFrom_return);

        HqlParser.whereClause_return whereClause38 = default(HqlParser.whereClause_return);

        HqlParser.groupByClause_return groupByClause39 = default(HqlParser.groupByClause_return);

        HqlParser.orderByClause_return orderByClause40 = default(HqlParser.orderByClause_return);



        try 
    	{
            // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:199:2: ( selectFrom ( whereClause )? ( groupByClause )? ( orderByClause )? )
            // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:199:4: selectFrom ( whereClause )? ( groupByClause )? ( orderByClause )?
            {
            	root_0 = (IASTNode)adaptor.GetNilNode();

            	PushFollow(FOLLOW_selectFrom_in_queryRule897);
            	selectFrom37 = selectFrom();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, selectFrom37.Tree);
            	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:200:3: ( whereClause )?
            	int alt9 = 2;
            	int LA9_0 = input.LA(1);

            	if ( (LA9_0 == WHERE) )
            	{
            	    alt9 = 1;
            	}
            	switch (alt9) 
            	{
            	    case 1 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:200:4: whereClause
            	        {
            	        	PushFollow(FOLLOW_whereClause_in_queryRule902);
            	        	whereClause38 = whereClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, whereClause38.Tree);

            	        }
            	        break;

            	}

            	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:201:3: ( groupByClause )?
            	int alt10 = 2;
            	int LA10_0 = input.LA(1);

            	if ( (LA10_0 == GROUP) )
            	{
            	    alt10 = 1;
            	}
            	switch (alt10) 
            	{
            	    case 1 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:201:4: groupByClause
            	        {
            	        	PushFollow(FOLLOW_groupByClause_in_queryRule909);
            	        	groupByClause39 = groupByClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, groupByClause39.Tree);

            	        }
            	        break;

            	}

            	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:202:3: ( orderByClause )?
            	int alt11 = 2;
            	int LA11_0 = input.LA(1);

            	if ( (LA11_0 == ORDER) )
            	{
            	    alt11 = 1;
            	}
            	switch (alt11) 
            	{
            	    case 1 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:202:4: orderByClause
            	        {
            	        	PushFollow(FOLLOW_orderByClause_in_queryRule916);
            	        	orderByClause40 = orderByClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, orderByClause40.Tree);

            	        }
            	        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 "queryRule"
    // Hql.g:201:1: queryRule : selectFrom ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( skipClause )? ( takeClause )? ;
    public HqlParser.queryRule_return queryRule() // throws RecognitionException [1]
    {   
        HqlParser.queryRule_return retval = new HqlParser.queryRule_return();
        retval.Start = input.LT(1);

        IASTNode root_0 = null;

        HqlParser.selectFrom_return selectFrom38 = default(HqlParser.selectFrom_return);

        HqlParser.whereClause_return whereClause39 = default(HqlParser.whereClause_return);

        HqlParser.groupByClause_return groupByClause40 = default(HqlParser.groupByClause_return);

        HqlParser.havingClause_return havingClause41 = default(HqlParser.havingClause_return);

        HqlParser.orderByClause_return orderByClause42 = default(HqlParser.orderByClause_return);

        HqlParser.skipClause_return skipClause43 = default(HqlParser.skipClause_return);

        HqlParser.takeClause_return takeClause44 = default(HqlParser.takeClause_return);



        try 
    	{
            // Hql.g:202:2: ( selectFrom ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( skipClause )? ( takeClause )? )
            // Hql.g:202:4: selectFrom ( whereClause )? ( groupByClause )? ( havingClause )? ( orderByClause )? ( skipClause )? ( takeClause )?
            {
            	root_0 = (IASTNode)adaptor.GetNilNode();

            	PushFollow(FOLLOW_selectFrom_in_queryRule916);
            	selectFrom38 = selectFrom();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, selectFrom38.Tree);
            	// Hql.g:203:3: ( whereClause )?
            	int alt9 = 2;
            	int LA9_0 = input.LA(1);

            	if ( (LA9_0 == WHERE) )
            	{
            	    alt9 = 1;
            	}
            	switch (alt9) 
            	{
            	    case 1 :
            	        // Hql.g:203:4: whereClause
            	        {
            	        	PushFollow(FOLLOW_whereClause_in_queryRule921);
            	        	whereClause39 = whereClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, whereClause39.Tree);

            	        }
            	        break;

            	}

            	// Hql.g:204:3: ( groupByClause )?
            	int alt10 = 2;
            	int LA10_0 = input.LA(1);

            	if ( (LA10_0 == GROUP) )
            	{
            	    alt10 = 1;
            	}
            	switch (alt10) 
            	{
            	    case 1 :
            	        // Hql.g:204:4: groupByClause
            	        {
            	        	PushFollow(FOLLOW_groupByClause_in_queryRule928);
            	        	groupByClause40 = groupByClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, groupByClause40.Tree);

            	        }
            	        break;

            	}

            	// Hql.g:205:3: ( havingClause )?
            	int alt11 = 2;
            	int LA11_0 = input.LA(1);

            	if ( (LA11_0 == HAVING) )
            	{
            	    alt11 = 1;
            	}
            	switch (alt11) 
            	{
            	    case 1 :
            	        // Hql.g:205:4: havingClause
            	        {
            	        	PushFollow(FOLLOW_havingClause_in_queryRule935);
            	        	havingClause41 = havingClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, havingClause41.Tree);

            	        }
            	        break;

            	}

            	// Hql.g:206:3: ( orderByClause )?
            	int alt12 = 2;
            	int LA12_0 = input.LA(1);

            	if ( (LA12_0 == ORDER) )
            	{
            	    alt12 = 1;
            	}
            	switch (alt12) 
            	{
            	    case 1 :
            	        // Hql.g:206:4: orderByClause
            	        {
            	        	PushFollow(FOLLOW_orderByClause_in_queryRule942);
            	        	orderByClause42 = orderByClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, orderByClause42.Tree);

            	        }
            	        break;

            	}

            	// Hql.g:207:3: ( skipClause )?
            	int alt13 = 2;
            	int LA13_0 = input.LA(1);

            	if ( (LA13_0 == SKIP) )
            	{
            	    alt13 = 1;
            	}
            	switch (alt13) 
            	{
            	    case 1 :
            	        // Hql.g:207:4: skipClause
            	        {
            	        	PushFollow(FOLLOW_skipClause_in_queryRule949);
            	        	skipClause43 = skipClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, skipClause43.Tree);

            	        }
            	        break;

            	}

            	// Hql.g:208:3: ( takeClause )?
            	int alt14 = 2;
            	int LA14_0 = input.LA(1);

            	if ( (LA14_0 == TAKE) )
            	{
            	    alt14 = 1;
            	}
            	switch (alt14) 
            	{
            	    case 1 :
            	        // Hql.g:208:4: takeClause
            	        {
            	        	PushFollow(FOLLOW_takeClause_in_queryRule956);
            	        	takeClause44 = takeClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, takeClause44.Tree);

            	        }
            	        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;
    }