// $ANTLR start "caseExpr" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:379:1: caseExpr : ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ); public HqlSqlWalker.caseExpr_return caseExpr() // throws RecognitionException [1] { HqlSqlWalker.caseExpr_return retval = new HqlSqlWalker.caseExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode CASE171 = null; IASTNode WHEN172 = null; IASTNode ELSE175 = null; IASTNode CASE2177 = null; IASTNode WHEN179 = null; IASTNode ELSE182 = null; HqlSqlWalker.logicalExpr_return logicalExpr173 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.expr_return expr174 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr176 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr178 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr180 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr181 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr183 = default(HqlSqlWalker.expr_return); IASTNode CASE171_tree=null; IASTNode WHEN172_tree=null; IASTNode ELSE175_tree=null; IASTNode CASE2177_tree=null; IASTNode WHEN179_tree=null; IASTNode ELSE182_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:380:2: ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ) int alt54 = 2; int LA54_0 = input.LA(1); if ( (LA54_0 == CASE) ) { alt54 = 1; } else if ( (LA54_0 == CASE2) ) { alt54 = 2; } else { NoViableAltException nvae_d54s0 = new NoViableAltException("", 54, 0, input); throw nvae_d54s0; } switch (alt54) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:380:4: ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE171=(IASTNode)Match(input,CASE,FOLLOW_CASE_in_caseExpr1934); CASE171_tree = (IASTNode)adaptor.DupNode(CASE171); root_1 = (IASTNode)adaptor.BecomeRoot(CASE171_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:380:31: ( ^( WHEN logicalExpr expr ) )+ int cnt50 = 0; do { int alt50 = 2; int LA50_0 = input.LA(1); if ( (LA50_0 == WHEN) ) { alt50 = 1; } switch (alt50) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:380:32: ^( WHEN logicalExpr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN172=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr1940); WHEN172_tree = (IASTNode)adaptor.DupNode(WHEN172); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN172_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_caseExpr1942); logicalExpr173 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_2, logicalExpr173.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1944); expr174 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr174.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt50 >= 1 ) goto loop50; EarlyExitException eee50 = new EarlyExitException(50, input); throw eee50; } cnt50++; } while (true); loop50: ; // Stops C# compiler whinging that label 'loop50' has no statements // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:380:59: ( ^( ELSE expr ) )? int alt51 = 2; int LA51_0 = input.LA(1); if ( (LA51_0 == ELSE) ) { alt51 = 1; } switch (alt51) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:380:60: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE175=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr1951); ELSE175_tree = (IASTNode)adaptor.DupNode(ELSE175); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE175_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1953); expr176 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr176.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:381:4: ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE2177=(IASTNode)Match(input,CASE2,FOLLOW_CASE2_in_caseExpr1965); CASE2177_tree = (IASTNode)adaptor.DupNode(CASE2177); root_1 = (IASTNode)adaptor.BecomeRoot(CASE2177_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1969); expr178 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr178.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:381:37: ( ^( WHEN expr expr ) )+ int cnt52 = 0; do { int alt52 = 2; int LA52_0 = input.LA(1); if ( (LA52_0 == WHEN) ) { alt52 = 1; } switch (alt52) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:381:38: ^( WHEN expr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN179=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr1973); WHEN179_tree = (IASTNode)adaptor.DupNode(WHEN179); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN179_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1975); expr180 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr180.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1977); expr181 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr181.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt52 >= 1 ) goto loop52; EarlyExitException eee52 = new EarlyExitException(52, input); throw eee52; } cnt52++; } while (true); loop52: ; // Stops C# compiler whinging that label 'loop52' has no statements // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:381:58: ( ^( ELSE expr ) )? int alt53 = 2; int LA53_0 = input.LA(1); if ( (LA53_0 == ELSE) ) { alt53 = 1; } switch (alt53) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:381:59: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE182=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr1984); ELSE182_tree = (IASTNode)adaptor.DupNode(ELSE182); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE182_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1986); expr183 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr183.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "caseExpr" // HqlSqlWalker.g:403:1: caseExpr : ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ); public HqlSqlWalker.caseExpr_return caseExpr() // throws RecognitionException [1] { HqlSqlWalker.caseExpr_return retval = new HqlSqlWalker.caseExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode CASE177 = null; IASTNode WHEN178 = null; IASTNode ELSE181 = null; IASTNode CASE2183 = null; IASTNode WHEN185 = null; IASTNode ELSE188 = null; HqlSqlWalker.logicalExpr_return logicalExpr179 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.expr_return expr180 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr182 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr184 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr186 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr187 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr189 = default(HqlSqlWalker.expr_return); IASTNode CASE177_tree=null; IASTNode WHEN178_tree=null; IASTNode ELSE181_tree=null; IASTNode CASE2183_tree=null; IASTNode WHEN185_tree=null; IASTNode ELSE188_tree=null; try { // HqlSqlWalker.g:404:2: ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ) int alt56 = 2; int LA56_0 = input.LA(1); if ( (LA56_0 == CASE) ) { alt56 = 1; } else if ( (LA56_0 == CASE2) ) { alt56 = 2; } else { NoViableAltException nvae_d56s0 = new NoViableAltException("", 56, 0, input); throw nvae_d56s0; } switch (alt56) { case 1 : // HqlSqlWalker.g:404:4: ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE177=(IASTNode)Match(input,CASE,FOLLOW_CASE_in_caseExpr2054); CASE177_tree = (IASTNode)adaptor.DupNode(CASE177); root_1 = (IASTNode)adaptor.BecomeRoot(CASE177_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); // HqlSqlWalker.g:404:31: ( ^( WHEN logicalExpr expr ) )+ int cnt52 = 0; do { int alt52 = 2; int LA52_0 = input.LA(1); if ( (LA52_0 == WHEN) ) { alt52 = 1; } switch (alt52) { case 1 : // HqlSqlWalker.g:404:32: ^( WHEN logicalExpr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN178=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr2060); WHEN178_tree = (IASTNode)adaptor.DupNode(WHEN178); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN178_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_caseExpr2062); logicalExpr179 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_2, logicalExpr179.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2064); expr180 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr180.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt52 >= 1 ) goto loop52; EarlyExitException eee52 = new EarlyExitException(52, input); throw eee52; } cnt52++; } while (true); loop52: ; // Stops C# compiler whining that label 'loop52' has no statements // HqlSqlWalker.g:404:59: ( ^( ELSE expr ) )? int alt53 = 2; int LA53_0 = input.LA(1); if ( (LA53_0 == ELSE) ) { alt53 = 1; } switch (alt53) { case 1 : // HqlSqlWalker.g:404:60: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE181=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr2071); ELSE181_tree = (IASTNode)adaptor.DupNode(ELSE181); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE181_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2073); expr182 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr182.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; case 2 : // HqlSqlWalker.g:405:4: ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE2183=(IASTNode)Match(input,CASE2,FOLLOW_CASE2_in_caseExpr2085); CASE2183_tree = (IASTNode)adaptor.DupNode(CASE2183); root_1 = (IASTNode)adaptor.BecomeRoot(CASE2183_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2089); expr184 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr184.Tree); // HqlSqlWalker.g:405:37: ( ^( WHEN expr expr ) )+ int cnt54 = 0; do { int alt54 = 2; int LA54_0 = input.LA(1); if ( (LA54_0 == WHEN) ) { alt54 = 1; } switch (alt54) { case 1 : // HqlSqlWalker.g:405:38: ^( WHEN expr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN185=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr2093); WHEN185_tree = (IASTNode)adaptor.DupNode(WHEN185); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN185_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2095); expr186 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr186.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2097); expr187 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr187.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt54 >= 1 ) goto loop54; EarlyExitException eee54 = new EarlyExitException(54, input); throw eee54; } cnt54++; } while (true); loop54: ; // Stops C# compiler whining that label 'loop54' has no statements // HqlSqlWalker.g:405:58: ( ^( ELSE expr ) )? int alt55 = 2; int LA55_0 = input.LA(1); if ( (LA55_0 == ELSE) ) { alt55 = 1; } switch (alt55) { case 1 : // HqlSqlWalker.g:405:59: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE188=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr2104); ELSE188_tree = (IASTNode)adaptor.DupNode(ELSE188); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE188_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2106); expr189 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr189.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "caseExpr" // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:387:1: caseExpr : ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ); public HqlSqlWalker.caseExpr_return caseExpr() // throws RecognitionException [1] { HqlSqlWalker.caseExpr_return retval = new HqlSqlWalker.caseExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode CASE172 = null; IASTNode WHEN173 = null; IASTNode ELSE176 = null; IASTNode CASE2178 = null; IASTNode WHEN180 = null; IASTNode ELSE183 = null; HqlSqlWalker.logicalExpr_return logicalExpr174 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.expr_return expr175 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr177 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr179 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr181 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr182 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr184 = default(HqlSqlWalker.expr_return); IASTNode CASE172_tree=null; IASTNode WHEN173_tree=null; IASTNode ELSE176_tree=null; IASTNode CASE2178_tree=null; IASTNode WHEN180_tree=null; IASTNode ELSE183_tree=null; try { // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:388:2: ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ) int alt54 = 2; int LA54_0 = input.LA(1); if ( (LA54_0 == CASE) ) { alt54 = 1; } else if ( (LA54_0 == CASE2) ) { alt54 = 2; } else { NoViableAltException nvae_d54s0 = new NoViableAltException("", 54, 0, input); throw nvae_d54s0; } switch (alt54) { case 1 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:388:4: ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE172=(IASTNode)Match(input,CASE,FOLLOW_CASE_in_caseExpr1973); CASE172_tree = (IASTNode)adaptor.DupNode(CASE172); root_1 = (IASTNode)adaptor.BecomeRoot(CASE172_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:388:31: ( ^( WHEN logicalExpr expr ) )+ int cnt50 = 0; do { int alt50 = 2; int LA50_0 = input.LA(1); if ( (LA50_0 == WHEN) ) { alt50 = 1; } switch (alt50) { case 1 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:388:32: ^( WHEN logicalExpr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN173=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr1979); WHEN173_tree = (IASTNode)adaptor.DupNode(WHEN173); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN173_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_caseExpr1981); logicalExpr174 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_2, logicalExpr174.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1983); expr175 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr175.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt50 >= 1 ) goto loop50; EarlyExitException eee50 = new EarlyExitException(50, input); throw eee50; } cnt50++; } while (true); loop50: ; // Stops C# compiler whining that label 'loop50' has no statements // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:388:59: ( ^( ELSE expr ) )? int alt51 = 2; int LA51_0 = input.LA(1); if ( (LA51_0 == ELSE) ) { alt51 = 1; } switch (alt51) { case 1 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:388:60: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE176=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr1990); ELSE176_tree = (IASTNode)adaptor.DupNode(ELSE176); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE176_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr1992); expr177 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr177.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; case 2 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:389:4: ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE2178=(IASTNode)Match(input,CASE2,FOLLOW_CASE2_in_caseExpr2004); CASE2178_tree = (IASTNode)adaptor.DupNode(CASE2178); root_1 = (IASTNode)adaptor.BecomeRoot(CASE2178_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2008); expr179 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr179.Tree); // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:389:37: ( ^( WHEN expr expr ) )+ int cnt52 = 0; do { int alt52 = 2; int LA52_0 = input.LA(1); if ( (LA52_0 == WHEN) ) { alt52 = 1; } switch (alt52) { case 1 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:389:38: ^( WHEN expr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN180=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr2012); WHEN180_tree = (IASTNode)adaptor.DupNode(WHEN180); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN180_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2014); expr181 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr181.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2016); expr182 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr182.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt52 >= 1 ) goto loop52; EarlyExitException eee52 = new EarlyExitException(52, input); throw eee52; } cnt52++; } while (true); loop52: ; // Stops C# compiler whining that label 'loop52' has no statements // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:389:58: ( ^( ELSE expr ) )? int alt53 = 2; int LA53_0 = input.LA(1); if ( (LA53_0 == ELSE) ) { alt53 = 1; } switch (alt53) { case 1 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:389:59: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE183=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr2023); ELSE183_tree = (IASTNode)adaptor.DupNode(ELSE183); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE183_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2025); expr184 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr184.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "caseExpr" // HqlSqlWalker.g:403:1: caseExpr : ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ); public HqlSqlWalker.caseExpr_return caseExpr() // throws RecognitionException [1] { HqlSqlWalker.caseExpr_return retval = new HqlSqlWalker.caseExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode CASE181 = null; IASTNode WHEN182 = null; IASTNode ELSE185 = null; IASTNode CASE2187 = null; IASTNode WHEN189 = null; IASTNode ELSE192 = null; HqlSqlWalker.logicalExpr_return logicalExpr183 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.expr_return expr184 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr186 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr188 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr190 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr191 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr193 = default(HqlSqlWalker.expr_return); IASTNode CASE181_tree=null; IASTNode WHEN182_tree=null; IASTNode ELSE185_tree=null; IASTNode CASE2187_tree=null; IASTNode WHEN189_tree=null; IASTNode ELSE192_tree=null; try { // HqlSqlWalker.g:404:2: ( ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) | ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) ) int alt60 = 2; int LA60_0 = input.LA(1); if ( (LA60_0 == CASE) ) { alt60 = 1; } else if ( (LA60_0 == CASE2) ) { alt60 = 2; } else { NoViableAltException nvae_d60s0 = new NoViableAltException("", 60, 0, input); throw nvae_d60s0; } switch (alt60) { case 1 : // HqlSqlWalker.g:404:4: ^( CASE ( ^( WHEN logicalExpr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE181=(IASTNode)Match(input,CASE,FOLLOW_CASE_in_caseExpr2082); CASE181_tree = (IASTNode)adaptor.DupNode(CASE181); root_1 = (IASTNode)adaptor.BecomeRoot(CASE181_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); // HqlSqlWalker.g:404:31: ( ^( WHEN logicalExpr expr ) )+ int cnt56 = 0; do { int alt56 = 2; int LA56_0 = input.LA(1); if ( (LA56_0 == WHEN) ) { alt56 = 1; } switch (alt56) { case 1 : // HqlSqlWalker.g:404:32: ^( WHEN logicalExpr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN182=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr2088); WHEN182_tree = (IASTNode)adaptor.DupNode(WHEN182); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN182_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_caseExpr2090); logicalExpr183 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_2, logicalExpr183.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2092); expr184 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr184.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt56 >= 1 ) goto loop56; EarlyExitException eee56 = new EarlyExitException(56, input); throw eee56; } cnt56++; } while (true); loop56: ; // Stops C# compiler whining that label 'loop56' has no statements // HqlSqlWalker.g:404:59: ( ^( ELSE expr ) )? int alt57 = 2; int LA57_0 = input.LA(1); if ( (LA57_0 == ELSE) ) { alt57 = 1; } switch (alt57) { case 1 : // HqlSqlWalker.g:404:60: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE185=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr2099); ELSE185_tree = (IASTNode)adaptor.DupNode(ELSE185); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE185_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2101); expr186 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr186.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; case 2 : // HqlSqlWalker.g:405:4: ^( CASE2 expr ( ^( WHEN expr expr ) )+ ( ^( ELSE expr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); CASE2187=(IASTNode)Match(input,CASE2,FOLLOW_CASE2_in_caseExpr2113); CASE2187_tree = (IASTNode)adaptor.DupNode(CASE2187); root_1 = (IASTNode)adaptor.BecomeRoot(CASE2187_tree, root_1); _inCase = true; Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2117); expr188 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr188.Tree); // HqlSqlWalker.g:405:37: ( ^( WHEN expr expr ) )+ int cnt58 = 0; do { int alt58 = 2; int LA58_0 = input.LA(1); if ( (LA58_0 == WHEN) ) { alt58 = 1; } switch (alt58) { case 1 : // HqlSqlWalker.g:405:38: ^( WHEN expr expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); WHEN189=(IASTNode)Match(input,WHEN,FOLLOW_WHEN_in_caseExpr2121); WHEN189_tree = (IASTNode)adaptor.DupNode(WHEN189); root_2 = (IASTNode)adaptor.BecomeRoot(WHEN189_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2123); expr190 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr190.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2125); expr191 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr191.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; default: if ( cnt58 >= 1 ) goto loop58; EarlyExitException eee58 = new EarlyExitException(58, input); throw eee58; } cnt58++; } while (true); loop58: ; // Stops C# compiler whining that label 'loop58' has no statements // HqlSqlWalker.g:405:58: ( ^( ELSE expr ) )? int alt59 = 2; int LA59_0 = input.LA(1); if ( (LA59_0 == ELSE) ) { alt59 = 1; } switch (alt59) { case 1 : // HqlSqlWalker.g:405:59: ^( ELSE expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); ELSE192=(IASTNode)Match(input,ELSE,FOLLOW_ELSE_in_caseExpr2132); ELSE192_tree = (IASTNode)adaptor.DupNode(ELSE192); root_2 = (IASTNode)adaptor.BecomeRoot(ELSE192_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_caseExpr2134); expr193 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr193.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } _inCase = false; } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }