Ejemplo n.º 1
0
    // $ANTLR start "concatenation"
    // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:444:1: concatenation : a= bitwiseNotExpression (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )? ;
    public HqlParser.concatenation_return concatenation() // throws RecognitionException [1]
    {   
        HqlParser.concatenation_return retval = new HqlParser.concatenation_return();
        retval.Start = input.LT(1);

        IASTNode root_0 = null;

        IToken c = null;
        IToken CONCAT172 = null;
        HqlParser.bitwiseNotExpression_return a = default(HqlParser.bitwiseNotExpression_return);

        HqlParser.bitwiseNotExpression_return bitwiseNotExpression171 = default(HqlParser.bitwiseNotExpression_return);

        HqlParser.bitwiseNotExpression_return bitwiseNotExpression173 = default(HqlParser.bitwiseNotExpression_return);


        IASTNode c_tree=null;
        IASTNode CONCAT172_tree=null;

        try 
    	{
            // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:455:2: (a= bitwiseNotExpression (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )? )
            // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:455:4: a= bitwiseNotExpression (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )?
            {
            	root_0 = (IASTNode)adaptor.GetNilNode();

            	PushFollow(FOLLOW_bitwiseNotExpression_in_concatenation2203);
            	a = bitwiseNotExpression();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, a.Tree);
            	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:456:2: (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )?
            	int alt59 = 2;
            	int LA59_0 = input.LA(1);

            	if ( (LA59_0 == CONCAT) )
            	{
            	    alt59 = 1;
            	}
            	switch (alt59) 
            	{
            	    case 1 :
            	        // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:456:4: c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )*
            	        {
            	        	c=(IToken)Match(input,CONCAT,FOLLOW_CONCAT_in_concatenation2211); 
            	        		c_tree = (IASTNode)adaptor.Create(c);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(c_tree, root_0);

            	        	 c.Type = EXPR_LIST; c.Text = "concatList"; 
            	        	PushFollow(FOLLOW_bitwiseNotExpression_in_concatenation2220);
            	        	bitwiseNotExpression171 = bitwiseNotExpression();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, bitwiseNotExpression171.Tree);
            	        	// /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:458:4: ( CONCAT bitwiseNotExpression )*
            	        	do 
            	        	{
            	        	    int alt58 = 2;
            	        	    int LA58_0 = input.LA(1);

            	        	    if ( (LA58_0 == CONCAT) )
            	        	    {
            	        	        alt58 = 1;
            	        	    }


            	        	    switch (alt58) 
            	        		{
            	        			case 1 :
            	        			    // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:458:6: CONCAT bitwiseNotExpression
            	        			    {
            	        			    	CONCAT172=(IToken)Match(input,CONCAT,FOLLOW_CONCAT_in_concatenation2227); 
            	        			    	PushFollow(FOLLOW_bitwiseNotExpression_in_concatenation2230);
            	        			    	bitwiseNotExpression173 = bitwiseNotExpression();
            	        			    	state.followingStackPointer--;

            	        			    	adaptor.AddChild(root_0, bitwiseNotExpression173.Tree);

            	        			    }
            	        			    break;

            	        			default:
            	        			    goto loop58;
            	        	    }
            	        	} while (true);

            	        	loop58:
            	        		;	// Stops C# compiler whining that label 'loop58' has no statements


            	        }
            	        break;

            	}


            }

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

            	retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);

               if (c != null)
               {
                  IASTNode mc = (IASTNode) adaptor.Create(METHOD_CALL, "||");
                  IASTNode concat = (IASTNode) adaptor.Create(IDENT, "concat");
                  mc.AddChild(concat);
                  mc.AddChild((IASTNode) retval.Tree);
                  retval.Tree = mc;
               }

        }
        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 "concatenation"
    // Hql.g:462:1: concatenation : a= bitwiseNotExpression (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )? ;
    public HqlParser.concatenation_return concatenation() // throws RecognitionException [1]
    {   
        HqlParser.concatenation_return retval = new HqlParser.concatenation_return();
        retval.Start = input.LT(1);

        IASTNode root_0 = null;

        IToken c = null;
        IToken CONCAT185 = null;
        HqlParser.bitwiseNotExpression_return a = default(HqlParser.bitwiseNotExpression_return);

        HqlParser.bitwiseNotExpression_return bitwiseNotExpression184 = default(HqlParser.bitwiseNotExpression_return);

        HqlParser.bitwiseNotExpression_return bitwiseNotExpression186 = default(HqlParser.bitwiseNotExpression_return);


        IASTNode c_tree=null;
        IASTNode CONCAT185_tree=null;

        try 
    	{
            // Hql.g:473:2: (a= bitwiseNotExpression (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )? )
            // Hql.g:473:4: a= bitwiseNotExpression (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )?
            {
            	root_0 = (IASTNode)adaptor.GetNilNode();

            	PushFollow(FOLLOW_bitwiseNotExpression_in_concatenation2301);
            	a = bitwiseNotExpression();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, a.Tree);
            	// Hql.g:474:2: (c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )* )?
            	int alt65 = 2;
            	int LA65_0 = input.LA(1);

            	if ( (LA65_0 == CONCAT) )
            	{
            	    alt65 = 1;
            	}
            	switch (alt65) 
            	{
            	    case 1 :
            	        // Hql.g:474:4: c= CONCAT bitwiseNotExpression ( CONCAT bitwiseNotExpression )*
            	        {
            	        	c=(IToken)Match(input,CONCAT,FOLLOW_CONCAT_in_concatenation2309); 
            	        		c_tree = (IASTNode)adaptor.Create(c);
            	        		root_0 = (IASTNode)adaptor.BecomeRoot(c_tree, root_0);

            	        	 c.Type = EXPR_LIST; c.Text = "concatList"; 
            	        	PushFollow(FOLLOW_bitwiseNotExpression_in_concatenation2318);
            	        	bitwiseNotExpression184 = bitwiseNotExpression();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, bitwiseNotExpression184.Tree);
            	        	// Hql.g:476:4: ( CONCAT bitwiseNotExpression )*
            	        	do 
            	        	{
            	        	    int alt64 = 2;
            	        	    int LA64_0 = input.LA(1);

            	        	    if ( (LA64_0 == CONCAT) )
            	        	    {
            	        	        alt64 = 1;
            	        	    }


            	        	    switch (alt64) 
            	        		{
            	        			case 1 :
            	        			    // Hql.g:476:6: CONCAT bitwiseNotExpression
            	        			    {
            	        			    	CONCAT185=(IToken)Match(input,CONCAT,FOLLOW_CONCAT_in_concatenation2325); 
            	        			    	PushFollow(FOLLOW_bitwiseNotExpression_in_concatenation2328);
            	        			    	bitwiseNotExpression186 = bitwiseNotExpression();
            	        			    	state.followingStackPointer--;

            	        			    	adaptor.AddChild(root_0, bitwiseNotExpression186.Tree);

            	        			    }
            	        			    break;

            	        			default:
            	        			    goto loop64;
            	        	    }
            	        	} while (true);

            	        	loop64:
            	        		;	// Stops C# compiler whining that label 'loop64' has no statements


            	        }
            	        break;

            	}


            }

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

            	retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);

               if (c != null)
               {
                  IASTNode mc = (IASTNode) adaptor.Create(METHOD_CALL, "||");
                  IASTNode concat = (IASTNode) adaptor.Create(IDENT, "concat");
                  mc.AddChild(concat);
                  mc.AddChild((IASTNode) retval.Tree);
                  retval.Tree = mc;
               }

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