// $ANTLR start "arithmeticExpr" // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:367:1: arithmeticExpr : ( ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( DIV expr expr ) | ^( STAR expr expr ) | ^( BNOT expr ) | ^( BAND expr expr ) | ^( BOR expr expr ) | ^( BXOR expr expr ) | ^( UNARY_MINUS expr ) | c= caseExpr ); public HqlSqlWalker.arithmeticExpr_return arithmeticExpr() // throws RecognitionException [1] { HqlSqlWalker.arithmeticExpr_return retval = new HqlSqlWalker.arithmeticExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode PLUS147 = null; IASTNode MINUS150 = null; IASTNode DIV153 = null; IASTNode STAR156 = null; IASTNode BNOT159 = null; IASTNode BAND161 = null; IASTNode BOR164 = null; IASTNode BXOR167 = null; IASTNode UNARY_MINUS170 = null; HqlSqlWalker.caseExpr_return c = default(HqlSqlWalker.caseExpr_return); HqlSqlWalker.expr_return expr148 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr149 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr151 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr152 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr154 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr155 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr157 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr158 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr160 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr162 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr163 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr165 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr166 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr168 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr169 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr171 = default(HqlSqlWalker.expr_return); IASTNode PLUS147_tree=null; IASTNode MINUS150_tree=null; IASTNode DIV153_tree=null; IASTNode STAR156_tree=null; IASTNode BNOT159_tree=null; IASTNode BAND161_tree=null; IASTNode BOR164_tree=null; IASTNode BXOR167_tree=null; IASTNode UNARY_MINUS170_tree=null; try { // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:374:2: ( ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( DIV expr expr ) | ^( STAR expr expr ) | ^( BNOT expr ) | ^( BAND expr expr ) | ^( BOR expr expr ) | ^( BXOR expr expr ) | ^( UNARY_MINUS expr ) | c= caseExpr ) int alt49 = 10; switch ( input.LA(1) ) { case PLUS: { alt49 = 1; } break; case MINUS: { alt49 = 2; } break; case DIV: { alt49 = 3; } break; case STAR: { alt49 = 4; } break; case BNOT: { alt49 = 5; } break; case BAND: { alt49 = 6; } break; case BOR: { alt49 = 7; } break; case BXOR: { alt49 = 8; } break; case UNARY_MINUS: { alt49 = 9; } break; case CASE: case CASE2: { alt49 = 10; } break; default: NoViableAltException nvae_d49s0 = new NoViableAltException("", 49, 0, input); throw nvae_d49s0; } switch (alt49) { case 1 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:374:4: ^( PLUS expr 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); PLUS147=(IASTNode)Match(input,PLUS,FOLLOW_PLUS_in_arithmeticExpr1864); PLUS147_tree = (IASTNode)adaptor.DupNode(PLUS147); root_1 = (IASTNode)adaptor.BecomeRoot(PLUS147_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1866); expr148 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr148.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1868); expr149 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr149.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 2 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:375:4: ^( MINUS expr 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); MINUS150=(IASTNode)Match(input,MINUS,FOLLOW_MINUS_in_arithmeticExpr1875); MINUS150_tree = (IASTNode)adaptor.DupNode(MINUS150); root_1 = (IASTNode)adaptor.BecomeRoot(MINUS150_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1877); expr151 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr151.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1879); expr152 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr152.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 3 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:376:4: ^( DIV expr 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); DIV153=(IASTNode)Match(input,DIV,FOLLOW_DIV_in_arithmeticExpr1886); DIV153_tree = (IASTNode)adaptor.DupNode(DIV153); root_1 = (IASTNode)adaptor.BecomeRoot(DIV153_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1888); expr154 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr154.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1890); expr155 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr155.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 4 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:377:4: ^( STAR expr 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); STAR156=(IASTNode)Match(input,STAR,FOLLOW_STAR_in_arithmeticExpr1897); STAR156_tree = (IASTNode)adaptor.DupNode(STAR156); root_1 = (IASTNode)adaptor.BecomeRoot(STAR156_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1899); expr157 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr157.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1901); expr158 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr158.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 5 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:378:4: ^( BNOT 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); BNOT159=(IASTNode)Match(input,BNOT,FOLLOW_BNOT_in_arithmeticExpr1908); BNOT159_tree = (IASTNode)adaptor.DupNode(BNOT159); root_1 = (IASTNode)adaptor.BecomeRoot(BNOT159_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1910); expr160 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr160.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 6 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:379:4: ^( BAND expr 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); BAND161=(IASTNode)Match(input,BAND,FOLLOW_BAND_in_arithmeticExpr1917); BAND161_tree = (IASTNode)adaptor.DupNode(BAND161); root_1 = (IASTNode)adaptor.BecomeRoot(BAND161_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1919); expr162 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr162.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1921); expr163 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr163.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 7 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:380:4: ^( BOR expr 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); BOR164=(IASTNode)Match(input,BOR,FOLLOW_BOR_in_arithmeticExpr1928); BOR164_tree = (IASTNode)adaptor.DupNode(BOR164); root_1 = (IASTNode)adaptor.BecomeRoot(BOR164_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1930); expr165 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr165.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1932); expr166 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr166.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 8 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:381:4: ^( BXOR expr 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); BXOR167=(IASTNode)Match(input,BXOR,FOLLOW_BXOR_in_arithmeticExpr1939); BXOR167_tree = (IASTNode)adaptor.DupNode(BXOR167); root_1 = (IASTNode)adaptor.BecomeRoot(BXOR167_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1941); expr168 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr168.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1943); expr169 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr169.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 9 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:383:4: ^( UNARY_MINUS 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); UNARY_MINUS170=(IASTNode)Match(input,UNARY_MINUS,FOLLOW_UNARY_MINUS_in_arithmeticExpr1951); UNARY_MINUS170_tree = (IASTNode)adaptor.DupNode(UNARY_MINUS170); root_1 = (IASTNode)adaptor.BecomeRoot(UNARY_MINUS170_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1953); expr171 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr171.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 10 : // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:384:4: c= caseExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_caseExpr_in_arithmeticExpr1961); c = caseExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, c.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); if (((c != null) ? ((IASTNode)c.Tree) : null) == null) { PrepareArithmeticOperator( ((IASTNode)retval.Tree) ); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "arithmeticExpr" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:359:1: arithmeticExpr : ( ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( DIV expr expr ) | ^( STAR expr expr ) | ^( BNOT expr ) | ^( BAND expr expr ) | ^( BOR expr expr ) | ^( BXOR expr expr ) | ^( UNARY_MINUS expr ) | c= caseExpr ); public HqlSqlWalker.arithmeticExpr_return arithmeticExpr() // throws RecognitionException [1] { HqlSqlWalker.arithmeticExpr_return retval = new HqlSqlWalker.arithmeticExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode PLUS146 = null; IASTNode MINUS149 = null; IASTNode DIV152 = null; IASTNode STAR155 = null; IASTNode BNOT158 = null; IASTNode BAND160 = null; IASTNode BOR163 = null; IASTNode BXOR166 = null; IASTNode UNARY_MINUS169 = null; HqlSqlWalker.caseExpr_return c = default(HqlSqlWalker.caseExpr_return); HqlSqlWalker.expr_return expr147 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr148 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr150 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr151 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr153 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr154 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr156 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr157 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr159 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr161 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr162 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr164 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr165 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr167 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr168 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr170 = default(HqlSqlWalker.expr_return); IASTNode PLUS146_tree=null; IASTNode MINUS149_tree=null; IASTNode DIV152_tree=null; IASTNode STAR155_tree=null; IASTNode BNOT158_tree=null; IASTNode BAND160_tree=null; IASTNode BOR163_tree=null; IASTNode BXOR166_tree=null; IASTNode UNARY_MINUS169_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:366:2: ( ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( DIV expr expr ) | ^( STAR expr expr ) | ^( BNOT expr ) | ^( BAND expr expr ) | ^( BOR expr expr ) | ^( BXOR expr expr ) | ^( UNARY_MINUS expr ) | c= caseExpr ) int alt49 = 10; switch ( input.LA(1) ) { case PLUS: { alt49 = 1; } break; case MINUS: { alt49 = 2; } break; case DIV: { alt49 = 3; } break; case STAR: { alt49 = 4; } break; case BNOT: { alt49 = 5; } break; case BAND: { alt49 = 6; } break; case BOR: { alt49 = 7; } break; case BXOR: { alt49 = 8; } break; case UNARY_MINUS: { alt49 = 9; } break; case CASE: case CASE2: { alt49 = 10; } break; default: NoViableAltException nvae_d49s0 = new NoViableAltException("", 49, 0, input); throw nvae_d49s0; } switch (alt49) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:366:4: ^( PLUS expr 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); PLUS146=(IASTNode)Match(input,PLUS,FOLLOW_PLUS_in_arithmeticExpr1825); PLUS146_tree = (IASTNode)adaptor.DupNode(PLUS146); root_1 = (IASTNode)adaptor.BecomeRoot(PLUS146_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1827); expr147 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr147.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1829); expr148 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr148.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:367:4: ^( MINUS expr 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); MINUS149=(IASTNode)Match(input,MINUS,FOLLOW_MINUS_in_arithmeticExpr1836); MINUS149_tree = (IASTNode)adaptor.DupNode(MINUS149); root_1 = (IASTNode)adaptor.BecomeRoot(MINUS149_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1838); expr150 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr150.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1840); expr151 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr151.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 3 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:368:4: ^( DIV expr 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); DIV152=(IASTNode)Match(input,DIV,FOLLOW_DIV_in_arithmeticExpr1847); DIV152_tree = (IASTNode)adaptor.DupNode(DIV152); root_1 = (IASTNode)adaptor.BecomeRoot(DIV152_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1849); expr153 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr153.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1851); expr154 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr154.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 4 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:369:4: ^( STAR expr 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); STAR155=(IASTNode)Match(input,STAR,FOLLOW_STAR_in_arithmeticExpr1858); STAR155_tree = (IASTNode)adaptor.DupNode(STAR155); root_1 = (IASTNode)adaptor.BecomeRoot(STAR155_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1860); expr156 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr156.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1862); expr157 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr157.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 5 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:370:4: ^( BNOT 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); BNOT158=(IASTNode)Match(input,BNOT,FOLLOW_BNOT_in_arithmeticExpr1869); BNOT158_tree = (IASTNode)adaptor.DupNode(BNOT158); root_1 = (IASTNode)adaptor.BecomeRoot(BNOT158_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1871); expr159 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr159.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 6 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:371:4: ^( BAND expr 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); BAND160=(IASTNode)Match(input,BAND,FOLLOW_BAND_in_arithmeticExpr1878); BAND160_tree = (IASTNode)adaptor.DupNode(BAND160); root_1 = (IASTNode)adaptor.BecomeRoot(BAND160_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1880); expr161 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr161.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1882); expr162 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr162.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 7 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:372:4: ^( BOR expr 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); BOR163=(IASTNode)Match(input,BOR,FOLLOW_BOR_in_arithmeticExpr1889); BOR163_tree = (IASTNode)adaptor.DupNode(BOR163); root_1 = (IASTNode)adaptor.BecomeRoot(BOR163_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1891); expr164 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr164.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1893); expr165 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr165.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 8 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:373:4: ^( BXOR expr 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); BXOR166=(IASTNode)Match(input,BXOR,FOLLOW_BXOR_in_arithmeticExpr1900); BXOR166_tree = (IASTNode)adaptor.DupNode(BXOR166); root_1 = (IASTNode)adaptor.BecomeRoot(BXOR166_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1902); expr167 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr167.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1904); expr168 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr168.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 9 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:375:4: ^( UNARY_MINUS 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); UNARY_MINUS169=(IASTNode)Match(input,UNARY_MINUS,FOLLOW_UNARY_MINUS_in_arithmeticExpr1912); UNARY_MINUS169_tree = (IASTNode)adaptor.DupNode(UNARY_MINUS169); root_1 = (IASTNode)adaptor.BecomeRoot(UNARY_MINUS169_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_arithmeticExpr1914); expr170 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr170.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 10 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:376:4: c= caseExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_caseExpr_in_arithmeticExpr1922); c = caseExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, c.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); if (((c != null) ? ((IASTNode)c.Tree) : null) == null) { PrepareArithmeticOperator( ((IASTNode)retval.Tree) ); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "arithmeticExpr" // HqlSqlWalker.g:383:1: arithmeticExpr : ( ^( PLUS exprOrSubquery exprOrSubquery ) | ^( MINUS exprOrSubquery exprOrSubquery ) | ^( DIV exprOrSubquery exprOrSubquery ) | ^( STAR exprOrSubquery exprOrSubquery ) | ^( BNOT exprOrSubquery ) | ^( BAND exprOrSubquery exprOrSubquery ) | ^( BOR exprOrSubquery exprOrSubquery ) | ^( BXOR exprOrSubquery exprOrSubquery ) | ^( UNARY_MINUS exprOrSubquery ) | c= caseExpr ); public HqlSqlWalker.arithmeticExpr_return arithmeticExpr() // throws RecognitionException [1] { HqlSqlWalker.arithmeticExpr_return retval = new HqlSqlWalker.arithmeticExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode PLUS152 = null; IASTNode MINUS155 = null; IASTNode DIV158 = null; IASTNode STAR161 = null; IASTNode BNOT164 = null; IASTNode BAND166 = null; IASTNode BOR169 = null; IASTNode BXOR172 = null; IASTNode UNARY_MINUS175 = null; HqlSqlWalker.caseExpr_return c = default(HqlSqlWalker.caseExpr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery153 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery154 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery156 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery157 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery159 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery160 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery162 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery163 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery165 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery167 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery168 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery170 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery171 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery173 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery174 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery176 = default(HqlSqlWalker.exprOrSubquery_return); IASTNode PLUS152_tree=null; IASTNode MINUS155_tree=null; IASTNode DIV158_tree=null; IASTNode STAR161_tree=null; IASTNode BNOT164_tree=null; IASTNode BAND166_tree=null; IASTNode BOR169_tree=null; IASTNode BXOR172_tree=null; IASTNode UNARY_MINUS175_tree=null; try { // HqlSqlWalker.g:390:2: ( ^( PLUS exprOrSubquery exprOrSubquery ) | ^( MINUS exprOrSubquery exprOrSubquery ) | ^( DIV exprOrSubquery exprOrSubquery ) | ^( STAR exprOrSubquery exprOrSubquery ) | ^( BNOT exprOrSubquery ) | ^( BAND exprOrSubquery exprOrSubquery ) | ^( BOR exprOrSubquery exprOrSubquery ) | ^( BXOR exprOrSubquery exprOrSubquery ) | ^( UNARY_MINUS exprOrSubquery ) | c= caseExpr ) int alt51 = 10; switch ( input.LA(1) ) { case PLUS: { alt51 = 1; } break; case MINUS: { alt51 = 2; } break; case DIV: { alt51 = 3; } break; case STAR: { alt51 = 4; } break; case BNOT: { alt51 = 5; } break; case BAND: { alt51 = 6; } break; case BOR: { alt51 = 7; } break; case BXOR: { alt51 = 8; } break; case UNARY_MINUS: { alt51 = 9; } break; case CASE: case CASE2: { alt51 = 10; } break; default: NoViableAltException nvae_d51s0 = new NoViableAltException("", 51, 0, input); throw nvae_d51s0; } switch (alt51) { case 1 : // HqlSqlWalker.g:390:4: ^( PLUS exprOrSubquery exprOrSubquery ) { 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); PLUS152=(IASTNode)Match(input,PLUS,FOLLOW_PLUS_in_arithmeticExpr1945); PLUS152_tree = (IASTNode)adaptor.DupNode(PLUS152); root_1 = (IASTNode)adaptor.BecomeRoot(PLUS152_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1947); exprOrSubquery153 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery153.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1949); exprOrSubquery154 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery154.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 2 : // HqlSqlWalker.g:391:4: ^( MINUS exprOrSubquery exprOrSubquery ) { 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); MINUS155=(IASTNode)Match(input,MINUS,FOLLOW_MINUS_in_arithmeticExpr1956); MINUS155_tree = (IASTNode)adaptor.DupNode(MINUS155); root_1 = (IASTNode)adaptor.BecomeRoot(MINUS155_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1958); exprOrSubquery156 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery156.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1960); exprOrSubquery157 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery157.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 3 : // HqlSqlWalker.g:392:4: ^( DIV exprOrSubquery exprOrSubquery ) { 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); DIV158=(IASTNode)Match(input,DIV,FOLLOW_DIV_in_arithmeticExpr1967); DIV158_tree = (IASTNode)adaptor.DupNode(DIV158); root_1 = (IASTNode)adaptor.BecomeRoot(DIV158_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1969); exprOrSubquery159 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery159.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1971); exprOrSubquery160 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery160.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 4 : // HqlSqlWalker.g:393:4: ^( STAR exprOrSubquery exprOrSubquery ) { 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); STAR161=(IASTNode)Match(input,STAR,FOLLOW_STAR_in_arithmeticExpr1978); STAR161_tree = (IASTNode)adaptor.DupNode(STAR161); root_1 = (IASTNode)adaptor.BecomeRoot(STAR161_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1980); exprOrSubquery162 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery162.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1982); exprOrSubquery163 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery163.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 5 : // HqlSqlWalker.g:394:4: ^( BNOT exprOrSubquery ) { 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); BNOT164=(IASTNode)Match(input,BNOT,FOLLOW_BNOT_in_arithmeticExpr1989); BNOT164_tree = (IASTNode)adaptor.DupNode(BNOT164); root_1 = (IASTNode)adaptor.BecomeRoot(BNOT164_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1991); exprOrSubquery165 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery165.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 6 : // HqlSqlWalker.g:395:4: ^( BAND exprOrSubquery exprOrSubquery ) { 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); BAND166=(IASTNode)Match(input,BAND,FOLLOW_BAND_in_arithmeticExpr1998); BAND166_tree = (IASTNode)adaptor.DupNode(BAND166); root_1 = (IASTNode)adaptor.BecomeRoot(BAND166_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2000); exprOrSubquery167 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery167.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2002); exprOrSubquery168 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery168.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 7 : // HqlSqlWalker.g:396:4: ^( BOR exprOrSubquery exprOrSubquery ) { 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); BOR169=(IASTNode)Match(input,BOR,FOLLOW_BOR_in_arithmeticExpr2009); BOR169_tree = (IASTNode)adaptor.DupNode(BOR169); root_1 = (IASTNode)adaptor.BecomeRoot(BOR169_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2011); exprOrSubquery170 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery170.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2013); exprOrSubquery171 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery171.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 8 : // HqlSqlWalker.g:397:4: ^( BXOR exprOrSubquery exprOrSubquery ) { 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); BXOR172=(IASTNode)Match(input,BXOR,FOLLOW_BXOR_in_arithmeticExpr2020); BXOR172_tree = (IASTNode)adaptor.DupNode(BXOR172); root_1 = (IASTNode)adaptor.BecomeRoot(BXOR172_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2022); exprOrSubquery173 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery173.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2024); exprOrSubquery174 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery174.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 9 : // HqlSqlWalker.g:399:4: ^( UNARY_MINUS exprOrSubquery ) { 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); UNARY_MINUS175=(IASTNode)Match(input,UNARY_MINUS,FOLLOW_UNARY_MINUS_in_arithmeticExpr2032); UNARY_MINUS175_tree = (IASTNode)adaptor.DupNode(UNARY_MINUS175); root_1 = (IASTNode)adaptor.BecomeRoot(UNARY_MINUS175_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr2034); exprOrSubquery176 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery176.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 10 : // HqlSqlWalker.g:400:4: c= caseExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_caseExpr_in_arithmeticExpr2042); c = caseExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, c.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); if (((c != null) ? ((IASTNode)c.Tree) : null) == null) { PrepareArithmeticOperator( ((IASTNode)retval.Tree) ); } } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }