// $ANTLR start "exprList" // Hql.g:619:1: exprList : ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? ; public HqlParser.exprList_return exprList() // throws RecognitionException [1] { HqlParser.exprList_return retval = new HqlParser.exprList_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IToken f = null; IToken f2 = null; IToken TRAILING287 = null; IToken LEADING288 = null; IToken BOTH289 = null; IToken COMMA291 = null; IToken AS294 = null; HqlParser.expression_return expression290 = default(HqlParser.expression_return); HqlParser.expression_return expression292 = default(HqlParser.expression_return); HqlParser.expression_return expression293 = default(HqlParser.expression_return); HqlParser.identifier_return identifier295 = default(HqlParser.identifier_return); HqlParser.expression_return expression296 = default(HqlParser.expression_return); IASTNode f_tree=null; IASTNode f2_tree=null; IASTNode TRAILING287_tree=null; IASTNode LEADING288_tree=null; IASTNode BOTH289_tree=null; IASTNode COMMA291_tree=null; IASTNode AS294_tree=null; try { // Hql.g:625:2: ( ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? ) // Hql.g:625:4: ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? { root_0 = (IASTNode)adaptor.GetNilNode(); // Hql.g:625:4: ( TRAILING | LEADING | BOTH )? int alt103 = 4; switch ( input.LA(1) ) { case TRAILING: { alt103 = 1; } break; case LEADING: { alt103 = 2; } break; case BOTH: { alt103 = 3; } break; } switch (alt103) { case 1 : // Hql.g:625:5: TRAILING { TRAILING287=(IToken)Match(input,TRAILING,FOLLOW_TRAILING_in_exprList3387); TRAILING287_tree = (IASTNode)adaptor.Create(TRAILING287); adaptor.AddChild(root_0, TRAILING287_tree); TRAILING287.Type = IDENT; } break; case 2 : // Hql.g:626:10: LEADING { LEADING288=(IToken)Match(input,LEADING,FOLLOW_LEADING_in_exprList3400); LEADING288_tree = (IASTNode)adaptor.Create(LEADING288); adaptor.AddChild(root_0, LEADING288_tree); LEADING288.Type = IDENT; } break; case 3 : // Hql.g:627:10: BOTH { BOTH289=(IToken)Match(input,BOTH,FOLLOW_BOTH_in_exprList3413); BOTH289_tree = (IASTNode)adaptor.Create(BOTH289); adaptor.AddChild(root_0, BOTH289_tree); BOTH289.Type = IDENT; } break; } // Hql.g:629:4: ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? int alt106 = 3; int LA106_0 = input.LA(1); if ( ((LA106_0 >= ALL && LA106_0 <= ANY) || LA106_0 == AVG || LA106_0 == COUNT || LA106_0 == ELEMENTS || (LA106_0 >= EXISTS && LA106_0 <= FALSE) || LA106_0 == INDICES || (LA106_0 >= MAX && LA106_0 <= MIN) || (LA106_0 >= NOT && LA106_0 <= NULL) || (LA106_0 >= SOME && LA106_0 <= SUM) || LA106_0 == TRUE || LA106_0 == CASE || LA106_0 == EMPTY || (LA106_0 >= NUM_INT && LA106_0 <= NUM_LONG) || LA106_0 == OPEN || (LA106_0 >= COLON && LA106_0 <= PARAM) || LA106_0 == BNOT || (LA106_0 >= PLUS && LA106_0 <= MINUS) || (LA106_0 >= QUOTED_String && LA106_0 <= IDENT)) ) { alt106 = 1; } else if ( (LA106_0 == FROM) ) { alt106 = 2; } switch (alt106) { case 1 : // Hql.g:630:5: expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? { PushFollow(FOLLOW_expression_in_exprList3437); expression290 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression290.Tree); // Hql.g:630:16: ( ( COMMA expression )+ | f= FROM expression | AS identifier )? int alt105 = 4; switch ( input.LA(1) ) { case COMMA: { alt105 = 1; } break; case FROM: { alt105 = 2; } break; case AS: { alt105 = 3; } break; } switch (alt105) { case 1 : // Hql.g:630:18: ( COMMA expression )+ { // Hql.g:630:18: ( COMMA expression )+ int cnt104 = 0; do { int alt104 = 2; int LA104_0 = input.LA(1); if ( (LA104_0 == COMMA) ) { alt104 = 1; } switch (alt104) { case 1 : // Hql.g:630:19: COMMA expression { COMMA291=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_exprList3442); PushFollow(FOLLOW_expression_in_exprList3445); expression292 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression292.Tree); } break; default: if ( cnt104 >= 1 ) goto loop104; EarlyExitException eee104 = new EarlyExitException(104, input); throw eee104; } cnt104++; } while (true); loop104: ; // Stops C# compiler whining that label 'loop104' has no statements } break; case 2 : // Hql.g:631:9: f= FROM expression { f=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3460); f_tree = (IASTNode)adaptor.Create(f); adaptor.AddChild(root_0, f_tree); PushFollow(FOLLOW_expression_in_exprList3462); expression293 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression293.Tree); f.Type = IDENT; } break; case 3 : // Hql.g:632:9: AS identifier { AS294=(IToken)Match(input,AS,FOLLOW_AS_in_exprList3474); PushFollow(FOLLOW_identifier_in_exprList3477); identifier295 = identifier(); state.followingStackPointer--; adaptor.AddChild(root_0, identifier295.Tree); } break; } } break; case 2 : // Hql.g:633:7: f2= FROM expression { f2=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3491); f2_tree = (IASTNode)adaptor.Create(f2); adaptor.AddChild(root_0, f2_tree); PushFollow(FOLLOW_expression_in_exprList3493); expression296 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression296.Tree); f2.Type = IDENT; } break; } } retval.Stop = input.LT(-1); retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); IASTNode root = (IASTNode) adaptor.Create(EXPR_LIST, "exprList"); root.AddChild((IASTNode)retval.Tree); retval.Tree = root; } 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 "exprList" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:601:1: exprList : ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? ; public HqlParser.exprList_return exprList() // throws RecognitionException [1] { HqlParser.exprList_return retval = new HqlParser.exprList_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IToken f = null; IToken f2 = null; IToken TRAILING274 = null; IToken LEADING275 = null; IToken BOTH276 = null; IToken COMMA278 = null; IToken AS281 = null; HqlParser.expression_return expression277 = default(HqlParser.expression_return); HqlParser.expression_return expression279 = default(HqlParser.expression_return); HqlParser.expression_return expression280 = default(HqlParser.expression_return); HqlParser.identifier_return identifier282 = default(HqlParser.identifier_return); HqlParser.expression_return expression283 = default(HqlParser.expression_return); IASTNode f_tree=null; IASTNode f2_tree=null; IASTNode TRAILING274_tree=null; IASTNode LEADING275_tree=null; IASTNode BOTH276_tree=null; IASTNode COMMA278_tree=null; IASTNode AS281_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:607:2: ( ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:607:4: ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? { root_0 = (IASTNode)adaptor.GetNilNode(); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:607:4: ( TRAILING | LEADING | BOTH )? int alt97 = 4; switch ( input.LA(1) ) { case TRAILING: { alt97 = 1; } break; case LEADING: { alt97 = 2; } break; case BOTH: { alt97 = 3; } break; } switch (alt97) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:607:5: TRAILING { TRAILING274=(IToken)Match(input,TRAILING,FOLLOW_TRAILING_in_exprList3288); TRAILING274_tree = (IASTNode)adaptor.Create(TRAILING274); adaptor.AddChild(root_0, TRAILING274_tree); TRAILING274.Type = IDENT; } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:608:10: LEADING { LEADING275=(IToken)Match(input,LEADING,FOLLOW_LEADING_in_exprList3301); LEADING275_tree = (IASTNode)adaptor.Create(LEADING275); adaptor.AddChild(root_0, LEADING275_tree); LEADING275.Type = IDENT; } break; case 3 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:609:10: BOTH { BOTH276=(IToken)Match(input,BOTH,FOLLOW_BOTH_in_exprList3314); BOTH276_tree = (IASTNode)adaptor.Create(BOTH276); adaptor.AddChild(root_0, BOTH276_tree); BOTH276.Type = IDENT; } break; } // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:611:4: ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? int alt100 = 3; int LA100_0 = input.LA(1); if ( ((LA100_0 >= ALL && LA100_0 <= ANY) || LA100_0 == AVG || LA100_0 == COUNT || LA100_0 == ELEMENTS || (LA100_0 >= EXISTS && LA100_0 <= FALSE) || LA100_0 == INDICES || (LA100_0 >= MAX && LA100_0 <= MIN) || (LA100_0 >= NOT && LA100_0 <= NULL) || (LA100_0 >= SOME && LA100_0 <= TRUE) || LA100_0 == CASE || LA100_0 == EMPTY || (LA100_0 >= NUM_INT && LA100_0 <= NUM_LONG) || LA100_0 == OPEN || LA100_0 == BNOT || (LA100_0 >= PLUS && LA100_0 <= MINUS) || (LA100_0 >= COLON && LA100_0 <= IDENT)) ) { alt100 = 1; } else if ( (LA100_0 == FROM) ) { alt100 = 2; } switch (alt100) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:612:5: expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? { PushFollow(FOLLOW_expression_in_exprList3338); expression277 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression277.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:612:16: ( ( COMMA expression )+ | f= FROM expression | AS identifier )? int alt99 = 4; switch ( input.LA(1) ) { case COMMA: { alt99 = 1; } break; case FROM: { alt99 = 2; } break; case AS: { alt99 = 3; } break; } switch (alt99) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:612:18: ( COMMA expression )+ { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:612:18: ( COMMA expression )+ int cnt98 = 0; do { int alt98 = 2; int LA98_0 = input.LA(1); if ( (LA98_0 == COMMA) ) { alt98 = 1; } switch (alt98) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:612:19: COMMA expression { COMMA278=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_exprList3343); PushFollow(FOLLOW_expression_in_exprList3346); expression279 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression279.Tree); } break; default: if ( cnt98 >= 1 ) goto loop98; EarlyExitException eee98 = new EarlyExitException(98, input); throw eee98; } cnt98++; } while (true); loop98: ; // Stops C# compiler whinging that label 'loop98' has no statements } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:613:9: f= FROM expression { f=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3361); f_tree = (IASTNode)adaptor.Create(f); adaptor.AddChild(root_0, f_tree); PushFollow(FOLLOW_expression_in_exprList3363); expression280 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression280.Tree); f.Type = IDENT; } break; case 3 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:614:9: AS identifier { AS281=(IToken)Match(input,AS,FOLLOW_AS_in_exprList3375); PushFollow(FOLLOW_identifier_in_exprList3378); identifier282 = identifier(); state.followingStackPointer--; adaptor.AddChild(root_0, identifier282.Tree); } break; } } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g:615:7: f2= FROM expression { f2=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3392); f2_tree = (IASTNode)adaptor.Create(f2); adaptor.AddChild(root_0, f2_tree); PushFollow(FOLLOW_expression_in_exprList3394); expression283 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression283.Tree); f2.Type = IDENT; } break; } } retval.Stop = input.LT(-1); retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); IASTNode root = (IASTNode) adaptor.Create(EXPR_LIST, "exprList"); root.AddChild((IASTNode)retval.Tree); retval.Tree = root; } 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 "exprList" // Hql.g:614:1: exprList : ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? ; public HqlParser.exprList_return exprList() // throws RecognitionException [1] { HqlParser.exprList_return retval = new HqlParser.exprList_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IToken f = null; IToken f2 = null; IToken TRAILING281 = null; IToken LEADING282 = null; IToken BOTH283 = null; IToken COMMA285 = null; IToken AS288 = null; HqlParser.expression_return expression284 = default(HqlParser.expression_return); HqlParser.expression_return expression286 = default(HqlParser.expression_return); HqlParser.expression_return expression287 = default(HqlParser.expression_return); HqlParser.identifier_return identifier289 = default(HqlParser.identifier_return); HqlParser.expression_return expression290 = default(HqlParser.expression_return); IASTNode f_tree=null; IASTNode f2_tree=null; IASTNode TRAILING281_tree=null; IASTNode LEADING282_tree=null; IASTNode BOTH283_tree=null; IASTNode COMMA285_tree=null; IASTNode AS288_tree=null; try { // Hql.g:620:2: ( ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? ) // Hql.g:620:4: ( TRAILING | LEADING | BOTH )? ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? { root_0 = (IASTNode)adaptor.GetNilNode(); // Hql.g:620:4: ( TRAILING | LEADING | BOTH )? int alt99 = 4; switch ( input.LA(1) ) { case TRAILING: { alt99 = 1; } break; case LEADING: { alt99 = 2; } break; case BOTH: { alt99 = 3; } break; } switch (alt99) { case 1 : // Hql.g:620:5: TRAILING { TRAILING281=(IToken)Match(input,TRAILING,FOLLOW_TRAILING_in_exprList3350); TRAILING281_tree = (IASTNode)adaptor.Create(TRAILING281); adaptor.AddChild(root_0, TRAILING281_tree); TRAILING281.Type = IDENT; } break; case 2 : // Hql.g:621:10: LEADING { LEADING282=(IToken)Match(input,LEADING,FOLLOW_LEADING_in_exprList3363); LEADING282_tree = (IASTNode)adaptor.Create(LEADING282); adaptor.AddChild(root_0, LEADING282_tree); LEADING282.Type = IDENT; } break; case 3 : // Hql.g:622:10: BOTH { BOTH283=(IToken)Match(input,BOTH,FOLLOW_BOTH_in_exprList3376); BOTH283_tree = (IASTNode)adaptor.Create(BOTH283); adaptor.AddChild(root_0, BOTH283_tree); BOTH283.Type = IDENT; } break; } // Hql.g:624:4: ( expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? | f2= FROM expression )? int alt102 = 3; int LA102_0 = input.LA(1); if ( ((LA102_0 >= ALL && LA102_0 <= ANY) || LA102_0 == AVG || LA102_0 == COUNT || LA102_0 == ELEMENTS || (LA102_0 >= EXISTS && LA102_0 <= FALSE) || LA102_0 == INDICES || (LA102_0 >= MAX && LA102_0 <= MIN) || (LA102_0 >= NOT && LA102_0 <= NULL) || (LA102_0 >= SOME && LA102_0 <= SUM) || LA102_0 == TRUE || LA102_0 == CASE || LA102_0 == EMPTY || (LA102_0 >= NUM_INT && LA102_0 <= NUM_LONG) || LA102_0 == OPEN || LA102_0 == BNOT || (LA102_0 >= PLUS && LA102_0 <= MINUS) || (LA102_0 >= COLON && LA102_0 <= IDENT)) ) { alt102 = 1; } else if ( (LA102_0 == FROM) ) { alt102 = 2; } switch (alt102) { case 1 : // Hql.g:625:5: expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? { PushFollow(FOLLOW_expression_in_exprList3400); expression284 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression284.Tree); // Hql.g:625:16: ( ( COMMA expression )+ | f= FROM expression | AS identifier )? int alt101 = 4; switch ( input.LA(1) ) { case COMMA: { alt101 = 1; } break; case FROM: { alt101 = 2; } break; case AS: { alt101 = 3; } break; } switch (alt101) { case 1 : // Hql.g:625:18: ( COMMA expression )+ { // Hql.g:625:18: ( COMMA expression )+ int cnt100 = 0; do { int alt100 = 2; int LA100_0 = input.LA(1); if ( (LA100_0 == COMMA) ) { alt100 = 1; } switch (alt100) { case 1 : // Hql.g:625:19: COMMA expression { COMMA285=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_exprList3405); PushFollow(FOLLOW_expression_in_exprList3408); expression286 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression286.Tree); } break; default: if ( cnt100 >= 1 ) goto loop100; EarlyExitException eee100 = new EarlyExitException(100, input); throw eee100; } cnt100++; } while (true); loop100: ; // Stops C# compiler whining that label 'loop100' has no statements } break; case 2 : // Hql.g:626:9: f= FROM expression { f=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3423); f_tree = (IASTNode)adaptor.Create(f); adaptor.AddChild(root_0, f_tree); PushFollow(FOLLOW_expression_in_exprList3425); expression287 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression287.Tree); f.Type = IDENT; } break; case 3 : // Hql.g:627:9: AS identifier { AS288=(IToken)Match(input,AS,FOLLOW_AS_in_exprList3437); PushFollow(FOLLOW_identifier_in_exprList3440); identifier289 = identifier(); state.followingStackPointer--; adaptor.AddChild(root_0, identifier289.Tree); } break; } } break; case 2 : // Hql.g:628:7: f2= FROM expression { f2=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3454); f2_tree = (IASTNode)adaptor.Create(f2); adaptor.AddChild(root_0, f2_tree); PushFollow(FOLLOW_expression_in_exprList3456); expression290 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression290.Tree); f2.Type = IDENT; } break; } } retval.Stop = input.LT(-1); retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop); IASTNode root = (IASTNode) adaptor.Create(EXPR_LIST, "exprList"); root.AddChild((IASTNode)retval.Tree); retval.Tree = root; } 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; }