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