// $ANTLR start "comparisonExpr" // HqlSqlWalker.g:330:1: comparisonExpr : ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ; public HqlSqlWalker.comparisonExpr_return comparisonExpr() // throws RecognitionException [1] { HqlSqlWalker.comparisonExpr_return retval = new HqlSqlWalker.comparisonExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode EQ83 = null; IASTNode NE86 = null; IASTNode LT89 = null; IASTNode GT92 = null; IASTNode LE95 = null; IASTNode GE98 = null; IASTNode LIKE101 = null; IASTNode ESCAPE104 = null; IASTNode NOT_LIKE106 = null; IASTNode ESCAPE109 = null; IASTNode BETWEEN111 = null; IASTNode NOT_BETWEEN115 = null; IASTNode IN119 = null; IASTNode NOT_IN122 = null; IASTNode IS_NULL125 = null; IASTNode IS_NOT_NULL127 = null; IASTNode EXISTS129 = null; HqlSqlWalker.exprOrSubquery_return exprOrSubquery84 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery85 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery87 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery88 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery90 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery91 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery93 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery94 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery96 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery97 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery99 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery100 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery102 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr103 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr105 = default(HqlSqlWalker.expr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery107 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr108 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr110 = default(HqlSqlWalker.expr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery112 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery113 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery114 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery116 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery117 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery118 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery120 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.inRhs_return inRhs121 = default(HqlSqlWalker.inRhs_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery123 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.inRhs_return inRhs124 = default(HqlSqlWalker.inRhs_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery126 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery128 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr130 = default(HqlSqlWalker.expr_return); HqlSqlWalker.collectionFunctionOrSubselect_return collectionFunctionOrSubselect131 = default(HqlSqlWalker.collectionFunctionOrSubselect_return); IASTNode EQ83_tree=null; IASTNode NE86_tree=null; IASTNode LT89_tree=null; IASTNode GT92_tree=null; IASTNode LE95_tree=null; IASTNode GE98_tree=null; IASTNode LIKE101_tree=null; IASTNode ESCAPE104_tree=null; IASTNode NOT_LIKE106_tree=null; IASTNode ESCAPE109_tree=null; IASTNode BETWEEN111_tree=null; IASTNode NOT_BETWEEN115_tree=null; IASTNode IN119_tree=null; IASTNode NOT_IN122_tree=null; IASTNode IS_NULL125_tree=null; IASTNode IS_NOT_NULL127_tree=null; IASTNode EXISTS129_tree=null; try { // HqlSqlWalker.g:334:2: ( ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ) // HqlSqlWalker.g:335:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) { root_0 = (IASTNode)adaptor.GetNilNode(); // HqlSqlWalker.g:335:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) int alt44 = 15; switch ( input.LA(1) ) { case EQ: { alt44 = 1; } break; case NE: { alt44 = 2; } break; case LT: { alt44 = 3; } break; case GT: { alt44 = 4; } break; case LE: { alt44 = 5; } break; case GE: { alt44 = 6; } break; case LIKE: { alt44 = 7; } break; case NOT_LIKE: { alt44 = 8; } break; case BETWEEN: { alt44 = 9; } break; case NOT_BETWEEN: { alt44 = 10; } break; case IN: { alt44 = 11; } break; case NOT_IN: { alt44 = 12; } break; case IS_NULL: { alt44 = 13; } break; case IS_NOT_NULL: { alt44 = 14; } break; case EXISTS: { alt44 = 15; } break; default: NoViableAltException nvae_d44s0 = new NoViableAltException("", 44, 0, input); throw nvae_d44s0; } switch (alt44) { case 1 : // HqlSqlWalker.g:335:4: ^( EQ exprOrSubquery exprOrSubquery ) { _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); EQ83=(IASTNode)Match(input,EQ,FOLLOW_EQ_in_comparisonExpr1565); EQ83_tree = (IASTNode)adaptor.DupNode(EQ83); root_1 = (IASTNode)adaptor.BecomeRoot(EQ83_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1567); exprOrSubquery84 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery84.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1569); exprOrSubquery85 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery85.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 2 : // HqlSqlWalker.g:336:4: ^( NE exprOrSubquery exprOrSubquery ) { _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); NE86=(IASTNode)Match(input,NE,FOLLOW_NE_in_comparisonExpr1576); NE86_tree = (IASTNode)adaptor.DupNode(NE86); root_1 = (IASTNode)adaptor.BecomeRoot(NE86_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1578); exprOrSubquery87 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery87.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1580); exprOrSubquery88 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery88.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 3 : // HqlSqlWalker.g:337:4: ^( LT exprOrSubquery exprOrSubquery ) { _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); LT89=(IASTNode)Match(input,LT,FOLLOW_LT_in_comparisonExpr1587); LT89_tree = (IASTNode)adaptor.DupNode(LT89); root_1 = (IASTNode)adaptor.BecomeRoot(LT89_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1589); exprOrSubquery90 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery90.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1591); exprOrSubquery91 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery91.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 4 : // HqlSqlWalker.g:338:4: ^( GT exprOrSubquery exprOrSubquery ) { _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); GT92=(IASTNode)Match(input,GT,FOLLOW_GT_in_comparisonExpr1598); GT92_tree = (IASTNode)adaptor.DupNode(GT92); root_1 = (IASTNode)adaptor.BecomeRoot(GT92_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1600); exprOrSubquery93 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery93.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1602); exprOrSubquery94 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery94.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 5 : // HqlSqlWalker.g:339:4: ^( LE exprOrSubquery exprOrSubquery ) { _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); LE95=(IASTNode)Match(input,LE,FOLLOW_LE_in_comparisonExpr1609); LE95_tree = (IASTNode)adaptor.DupNode(LE95); root_1 = (IASTNode)adaptor.BecomeRoot(LE95_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1611); exprOrSubquery96 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery96.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1613); exprOrSubquery97 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery97.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 6 : // HqlSqlWalker.g:340:4: ^( GE exprOrSubquery exprOrSubquery ) { _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); GE98=(IASTNode)Match(input,GE,FOLLOW_GE_in_comparisonExpr1620); GE98_tree = (IASTNode)adaptor.DupNode(GE98); root_1 = (IASTNode)adaptor.BecomeRoot(GE98_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1622); exprOrSubquery99 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery99.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1624); exprOrSubquery100 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery100.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 7 : // HqlSqlWalker.g:341:4: ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) { _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); LIKE101=(IASTNode)Match(input,LIKE,FOLLOW_LIKE_in_comparisonExpr1631); LIKE101_tree = (IASTNode)adaptor.DupNode(LIKE101); root_1 = (IASTNode)adaptor.BecomeRoot(LIKE101_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1633); exprOrSubquery102 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery102.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1635); expr103 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr103.Tree); // HqlSqlWalker.g:341:31: ( ^( ESCAPE expr ) )? int alt41 = 2; int LA41_0 = input.LA(1); if ( (LA41_0 == ESCAPE) ) { alt41 = 1; } switch (alt41) { case 1 : // HqlSqlWalker.g:341:33: ^( ESCAPE 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); ESCAPE104=(IASTNode)Match(input,ESCAPE,FOLLOW_ESCAPE_in_comparisonExpr1640); ESCAPE104_tree = (IASTNode)adaptor.DupNode(ESCAPE104); root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE104_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1642); expr105 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr105.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; } } break; case 8 : // HqlSqlWalker.g:342:4: ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) { _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); NOT_LIKE106=(IASTNode)Match(input,NOT_LIKE,FOLLOW_NOT_LIKE_in_comparisonExpr1654); NOT_LIKE106_tree = (IASTNode)adaptor.DupNode(NOT_LIKE106); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_LIKE106_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1656); exprOrSubquery107 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery107.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1658); expr108 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr108.Tree); // HqlSqlWalker.g:342:35: ( ^( ESCAPE expr ) )? int alt42 = 2; int LA42_0 = input.LA(1); if ( (LA42_0 == ESCAPE) ) { alt42 = 1; } switch (alt42) { case 1 : // HqlSqlWalker.g:342:37: ^( ESCAPE 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); ESCAPE109=(IASTNode)Match(input,ESCAPE,FOLLOW_ESCAPE_in_comparisonExpr1663); ESCAPE109_tree = (IASTNode)adaptor.DupNode(ESCAPE109); root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE109_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1665); expr110 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr110.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; } } break; case 9 : // HqlSqlWalker.g:343:4: ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) { _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); BETWEEN111=(IASTNode)Match(input,BETWEEN,FOLLOW_BETWEEN_in_comparisonExpr1677); BETWEEN111_tree = (IASTNode)adaptor.DupNode(BETWEEN111); root_1 = (IASTNode)adaptor.BecomeRoot(BETWEEN111_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1679); exprOrSubquery112 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery112.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1681); exprOrSubquery113 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery113.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1683); exprOrSubquery114 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery114.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 10 : // HqlSqlWalker.g:344:4: ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) { _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); NOT_BETWEEN115=(IASTNode)Match(input,NOT_BETWEEN,FOLLOW_NOT_BETWEEN_in_comparisonExpr1690); NOT_BETWEEN115_tree = (IASTNode)adaptor.DupNode(NOT_BETWEEN115); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_BETWEEN115_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1692); exprOrSubquery116 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery116.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1694); exprOrSubquery117 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery117.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1696); exprOrSubquery118 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery118.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 11 : // HqlSqlWalker.g:345:4: ^( IN exprOrSubquery inRhs ) { _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); IN119=(IASTNode)Match(input,IN,FOLLOW_IN_in_comparisonExpr1703); IN119_tree = (IASTNode)adaptor.DupNode(IN119); root_1 = (IASTNode)adaptor.BecomeRoot(IN119_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1705); exprOrSubquery120 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery120.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_inRhs_in_comparisonExpr1707); inRhs121 = inRhs(); state.followingStackPointer--; adaptor.AddChild(root_1, inRhs121.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 12 : // HqlSqlWalker.g:346:4: ^( NOT_IN exprOrSubquery inRhs ) { _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); NOT_IN122=(IASTNode)Match(input,NOT_IN,FOLLOW_NOT_IN_in_comparisonExpr1715); NOT_IN122_tree = (IASTNode)adaptor.DupNode(NOT_IN122); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_IN122_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1717); exprOrSubquery123 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery123.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_inRhs_in_comparisonExpr1719); inRhs124 = inRhs(); state.followingStackPointer--; adaptor.AddChild(root_1, inRhs124.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 13 : // HqlSqlWalker.g:347:4: ^( IS_NULL exprOrSubquery ) { _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); IS_NULL125=(IASTNode)Match(input,IS_NULL,FOLLOW_IS_NULL_in_comparisonExpr1727); IS_NULL125_tree = (IASTNode)adaptor.DupNode(IS_NULL125); root_1 = (IASTNode)adaptor.BecomeRoot(IS_NULL125_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1729); exprOrSubquery126 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery126.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 14 : // HqlSqlWalker.g:348:4: ^( IS_NOT_NULL exprOrSubquery ) { _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); IS_NOT_NULL127=(IASTNode)Match(input,IS_NOT_NULL,FOLLOW_IS_NOT_NULL_in_comparisonExpr1736); IS_NOT_NULL127_tree = (IASTNode)adaptor.DupNode(IS_NOT_NULL127); root_1 = (IASTNode)adaptor.BecomeRoot(IS_NOT_NULL127_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1738); exprOrSubquery128 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery128.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 15 : // HqlSqlWalker.g:351:4: ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) { _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); EXISTS129=(IASTNode)Match(input,EXISTS,FOLLOW_EXISTS_in_comparisonExpr1747); EXISTS129_tree = (IASTNode)adaptor.DupNode(EXISTS129); root_1 = (IASTNode)adaptor.BecomeRoot(EXISTS129_tree, root_1); Match(input, Token.DOWN, null); // HqlSqlWalker.g:351:13: ( expr | collectionFunctionOrSubselect ) int alt43 = 2; int LA43_0 = input.LA(1); if ( (LA43_0 == COUNT || LA43_0 == DOT || LA43_0 == FALSE || LA43_0 == NULL || LA43_0 == TRUE || LA43_0 == CASE || LA43_0 == AGGREGATE || LA43_0 == CASE2 || LA43_0 == INDEX_OP || LA43_0 == METHOD_CALL || LA43_0 == UNARY_MINUS || (LA43_0 >= VECTOR_EXPR && LA43_0 <= WEIRD_IDENT) || (LA43_0 >= NUM_INT && LA43_0 <= JAVA_CONSTANT) || (LA43_0 >= BNOT && LA43_0 <= DIV) || (LA43_0 >= COLON && LA43_0 <= IDENT)) ) { alt43 = 1; } else if ( (LA43_0 == ELEMENTS || LA43_0 == INDICES || LA43_0 == UNION || LA43_0 == QUERY) ) { alt43 = 2; } else { NoViableAltException nvae_d43s0 = new NoViableAltException("", 43, 0, input); throw nvae_d43s0; } switch (alt43) { case 1 : // HqlSqlWalker.g:351:15: expr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1751); expr130 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr130.Tree); } break; case 2 : // HqlSqlWalker.g:351:22: collectionFunctionOrSubselect { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_collectionFunctionOrSubselect_in_comparisonExpr1755); collectionFunctionOrSubselect131 = collectionFunctionOrSubselect(); state.followingStackPointer--; adaptor.AddChild(root_1, collectionFunctionOrSubselect131.Tree); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; } } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); PrepareLogicOperator( ((IASTNode)retval.Tree) ); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "comparisonExpr" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:306:1: comparisonExpr : ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ; public HqlSqlWalker.comparisonExpr_return comparisonExpr() // throws RecognitionException [1] { HqlSqlWalker.comparisonExpr_return retval = new HqlSqlWalker.comparisonExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode EQ77 = null; IASTNode NE80 = null; IASTNode LT83 = null; IASTNode GT86 = null; IASTNode LE89 = null; IASTNode GE92 = null; IASTNode LIKE95 = null; IASTNode ESCAPE98 = null; IASTNode NOT_LIKE100 = null; IASTNode ESCAPE103 = null; IASTNode BETWEEN105 = null; IASTNode NOT_BETWEEN109 = null; IASTNode IN113 = null; IASTNode NOT_IN116 = null; IASTNode IS_NULL119 = null; IASTNode IS_NOT_NULL121 = null; IASTNode EXISTS123 = null; HqlSqlWalker.exprOrSubquery_return exprOrSubquery78 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery79 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery81 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery82 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery84 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery85 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery87 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery88 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery90 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery91 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery93 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery94 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery96 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr97 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr99 = default(HqlSqlWalker.expr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery101 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr102 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr104 = default(HqlSqlWalker.expr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery106 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery107 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery108 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery110 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery111 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery112 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery114 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.inRhs_return inRhs115 = default(HqlSqlWalker.inRhs_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery117 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.inRhs_return inRhs118 = default(HqlSqlWalker.inRhs_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery120 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery122 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr124 = default(HqlSqlWalker.expr_return); HqlSqlWalker.collectionFunctionOrSubselect_return collectionFunctionOrSubselect125 = default(HqlSqlWalker.collectionFunctionOrSubselect_return); IASTNode EQ77_tree=null; IASTNode NE80_tree=null; IASTNode LT83_tree=null; IASTNode GT86_tree=null; IASTNode LE89_tree=null; IASTNode GE92_tree=null; IASTNode LIKE95_tree=null; IASTNode ESCAPE98_tree=null; IASTNode NOT_LIKE100_tree=null; IASTNode ESCAPE103_tree=null; IASTNode BETWEEN105_tree=null; IASTNode NOT_BETWEEN109_tree=null; IASTNode IN113_tree=null; IASTNode NOT_IN116_tree=null; IASTNode IS_NULL119_tree=null; IASTNode IS_NOT_NULL121_tree=null; IASTNode EXISTS123_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:310:2: ( ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:311:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) { root_0 = (IASTNode)adaptor.GetNilNode(); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:311:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) int alt42 = 15; switch ( input.LA(1) ) { case EQ: { alt42 = 1; } break; case NE: { alt42 = 2; } break; case LT: { alt42 = 3; } break; case GT: { alt42 = 4; } break; case LE: { alt42 = 5; } break; case GE: { alt42 = 6; } break; case LIKE: { alt42 = 7; } break; case NOT_LIKE: { alt42 = 8; } break; case BETWEEN: { alt42 = 9; } break; case NOT_BETWEEN: { alt42 = 10; } break; case IN: { alt42 = 11; } break; case NOT_IN: { alt42 = 12; } break; case IS_NULL: { alt42 = 13; } break; case IS_NOT_NULL: { alt42 = 14; } break; case EXISTS: { alt42 = 15; } break; default: NoViableAltException nvae_d42s0 = new NoViableAltException("", 42, 0, input); throw nvae_d42s0; } switch (alt42) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:311:4: ^( EQ exprOrSubquery exprOrSubquery ) { _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); EQ77=(IASTNode)Match(input,EQ,FOLLOW_EQ_in_comparisonExpr1444); EQ77_tree = (IASTNode)adaptor.DupNode(EQ77); root_1 = (IASTNode)adaptor.BecomeRoot(EQ77_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1446); exprOrSubquery78 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery78.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1448); exprOrSubquery79 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery79.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:312:4: ^( NE exprOrSubquery exprOrSubquery ) { _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); NE80=(IASTNode)Match(input,NE,FOLLOW_NE_in_comparisonExpr1455); NE80_tree = (IASTNode)adaptor.DupNode(NE80); root_1 = (IASTNode)adaptor.BecomeRoot(NE80_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1457); exprOrSubquery81 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery81.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1459); exprOrSubquery82 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery82.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:313:4: ^( LT exprOrSubquery exprOrSubquery ) { _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); LT83=(IASTNode)Match(input,LT,FOLLOW_LT_in_comparisonExpr1466); LT83_tree = (IASTNode)adaptor.DupNode(LT83); root_1 = (IASTNode)adaptor.BecomeRoot(LT83_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1468); exprOrSubquery84 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery84.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1470); exprOrSubquery85 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery85.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:314:4: ^( GT exprOrSubquery exprOrSubquery ) { _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); GT86=(IASTNode)Match(input,GT,FOLLOW_GT_in_comparisonExpr1477); GT86_tree = (IASTNode)adaptor.DupNode(GT86); root_1 = (IASTNode)adaptor.BecomeRoot(GT86_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1479); exprOrSubquery87 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery87.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1481); exprOrSubquery88 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery88.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:315:4: ^( LE exprOrSubquery exprOrSubquery ) { _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); LE89=(IASTNode)Match(input,LE,FOLLOW_LE_in_comparisonExpr1488); LE89_tree = (IASTNode)adaptor.DupNode(LE89); root_1 = (IASTNode)adaptor.BecomeRoot(LE89_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1490); exprOrSubquery90 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery90.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1492); exprOrSubquery91 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery91.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:316:4: ^( GE exprOrSubquery exprOrSubquery ) { _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); GE92=(IASTNode)Match(input,GE,FOLLOW_GE_in_comparisonExpr1499); GE92_tree = (IASTNode)adaptor.DupNode(GE92); root_1 = (IASTNode)adaptor.BecomeRoot(GE92_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1501); exprOrSubquery93 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery93.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1503); exprOrSubquery94 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery94.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:317:4: ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) { _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); LIKE95=(IASTNode)Match(input,LIKE,FOLLOW_LIKE_in_comparisonExpr1510); LIKE95_tree = (IASTNode)adaptor.DupNode(LIKE95); root_1 = (IASTNode)adaptor.BecomeRoot(LIKE95_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1512); exprOrSubquery96 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery96.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1514); expr97 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr97.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:317:31: ( ^( ESCAPE expr ) )? int alt39 = 2; int LA39_0 = input.LA(1); if ( (LA39_0 == ESCAPE) ) { alt39 = 1; } switch (alt39) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:317:33: ^( ESCAPE 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); ESCAPE98=(IASTNode)Match(input,ESCAPE,FOLLOW_ESCAPE_in_comparisonExpr1519); ESCAPE98_tree = (IASTNode)adaptor.DupNode(ESCAPE98); root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE98_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1521); expr99 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr99.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; } } break; case 8 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:318:4: ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) { _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); NOT_LIKE100=(IASTNode)Match(input,NOT_LIKE,FOLLOW_NOT_LIKE_in_comparisonExpr1533); NOT_LIKE100_tree = (IASTNode)adaptor.DupNode(NOT_LIKE100); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_LIKE100_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1535); exprOrSubquery101 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery101.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1537); expr102 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr102.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:318:35: ( ^( ESCAPE expr ) )? int alt40 = 2; int LA40_0 = input.LA(1); if ( (LA40_0 == ESCAPE) ) { alt40 = 1; } switch (alt40) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:318:37: ^( ESCAPE 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); ESCAPE103=(IASTNode)Match(input,ESCAPE,FOLLOW_ESCAPE_in_comparisonExpr1542); ESCAPE103_tree = (IASTNode)adaptor.DupNode(ESCAPE103); root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE103_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1544); expr104 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr104.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; } } break; case 9 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:319:4: ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) { _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); BETWEEN105=(IASTNode)Match(input,BETWEEN,FOLLOW_BETWEEN_in_comparisonExpr1556); BETWEEN105_tree = (IASTNode)adaptor.DupNode(BETWEEN105); root_1 = (IASTNode)adaptor.BecomeRoot(BETWEEN105_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1558); exprOrSubquery106 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery106.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1560); exprOrSubquery107 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery107.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1562); exprOrSubquery108 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery108.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:320:4: ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) { _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); NOT_BETWEEN109=(IASTNode)Match(input,NOT_BETWEEN,FOLLOW_NOT_BETWEEN_in_comparisonExpr1569); NOT_BETWEEN109_tree = (IASTNode)adaptor.DupNode(NOT_BETWEEN109); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_BETWEEN109_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1571); exprOrSubquery110 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery110.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1573); exprOrSubquery111 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery111.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1575); exprOrSubquery112 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery112.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 11 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:321:4: ^( IN exprOrSubquery inRhs ) { _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); IN113=(IASTNode)Match(input,IN,FOLLOW_IN_in_comparisonExpr1582); IN113_tree = (IASTNode)adaptor.DupNode(IN113); root_1 = (IASTNode)adaptor.BecomeRoot(IN113_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1584); exprOrSubquery114 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery114.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_inRhs_in_comparisonExpr1586); inRhs115 = inRhs(); state.followingStackPointer--; adaptor.AddChild(root_1, inRhs115.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 12 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:322:4: ^( NOT_IN exprOrSubquery inRhs ) { _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); NOT_IN116=(IASTNode)Match(input,NOT_IN,FOLLOW_NOT_IN_in_comparisonExpr1594); NOT_IN116_tree = (IASTNode)adaptor.DupNode(NOT_IN116); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_IN116_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1596); exprOrSubquery117 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery117.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_inRhs_in_comparisonExpr1598); inRhs118 = inRhs(); state.followingStackPointer--; adaptor.AddChild(root_1, inRhs118.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 13 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:323:4: ^( IS_NULL exprOrSubquery ) { _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); IS_NULL119=(IASTNode)Match(input,IS_NULL,FOLLOW_IS_NULL_in_comparisonExpr1606); IS_NULL119_tree = (IASTNode)adaptor.DupNode(IS_NULL119); root_1 = (IASTNode)adaptor.BecomeRoot(IS_NULL119_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1608); exprOrSubquery120 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery120.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 14 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:324:4: ^( IS_NOT_NULL exprOrSubquery ) { _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); IS_NOT_NULL121=(IASTNode)Match(input,IS_NOT_NULL,FOLLOW_IS_NOT_NULL_in_comparisonExpr1615); IS_NOT_NULL121_tree = (IASTNode)adaptor.DupNode(IS_NOT_NULL121); root_1 = (IASTNode)adaptor.BecomeRoot(IS_NOT_NULL121_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1617); exprOrSubquery122 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery122.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 15 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:327:4: ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) { _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); EXISTS123=(IASTNode)Match(input,EXISTS,FOLLOW_EXISTS_in_comparisonExpr1626); EXISTS123_tree = (IASTNode)adaptor.DupNode(EXISTS123); root_1 = (IASTNode)adaptor.BecomeRoot(EXISTS123_tree, root_1); Match(input, Token.DOWN, null); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:327:13: ( expr | collectionFunctionOrSubselect ) int alt41 = 2; int LA41_0 = input.LA(1); if ( (LA41_0 == COUNT || LA41_0 == DOT || LA41_0 == FALSE || LA41_0 == NULL || LA41_0 == TRUE || LA41_0 == CASE || LA41_0 == AGGREGATE || LA41_0 == CASE2 || LA41_0 == INDEX_OP || LA41_0 == METHOD_CALL || LA41_0 == UNARY_MINUS || (LA41_0 >= VECTOR_EXPR && LA41_0 <= WEIRD_IDENT) || (LA41_0 >= NUM_INT && LA41_0 <= JAVA_CONSTANT) || (LA41_0 >= BNOT && LA41_0 <= DIV) || (LA41_0 >= COLON && LA41_0 <= IDENT)) ) { alt41 = 1; } else if ( (LA41_0 == ELEMENTS || LA41_0 == INDICES || LA41_0 == UNION || LA41_0 == QUERY) ) { alt41 = 2; } else { NoViableAltException nvae_d41s0 = new NoViableAltException("", 41, 0, input); throw nvae_d41s0; } switch (alt41) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:327:15: expr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1630); expr124 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr124.Tree); } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:327:22: collectionFunctionOrSubselect { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_collectionFunctionOrSubselect_in_comparisonExpr1634); collectionFunctionOrSubselect125 = collectionFunctionOrSubselect(); state.followingStackPointer--; adaptor.AddChild(root_1, collectionFunctionOrSubselect125.Tree); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; } } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); PrepareLogicOperator( ((IASTNode)retval.Tree) ); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "comparisonExpr" // HqlSqlWalker.g:330:1: comparisonExpr : ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ; public HqlSqlWalker.comparisonExpr_return comparisonExpr() // throws RecognitionException [1] { HqlSqlWalker.comparisonExpr_return retval = new HqlSqlWalker.comparisonExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode EQ87 = null; IASTNode NE90 = null; IASTNode LT93 = null; IASTNode GT96 = null; IASTNode LE99 = null; IASTNode GE102 = null; IASTNode LIKE105 = null; IASTNode ESCAPE108 = null; IASTNode NOT_LIKE110 = null; IASTNode ESCAPE113 = null; IASTNode BETWEEN115 = null; IASTNode NOT_BETWEEN119 = null; IASTNode IN123 = null; IASTNode NOT_IN126 = null; IASTNode IS_NULL129 = null; IASTNode IS_NOT_NULL131 = null; IASTNode EXISTS133 = null; HqlSqlWalker.exprOrSubquery_return exprOrSubquery88 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery89 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery91 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery92 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery94 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery95 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery97 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery98 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery100 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery101 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery103 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery104 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery106 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr107 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr109 = default(HqlSqlWalker.expr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery111 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr112 = default(HqlSqlWalker.expr_return); HqlSqlWalker.expr_return expr114 = default(HqlSqlWalker.expr_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery116 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery117 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery118 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery120 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery121 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery122 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery124 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.inRhs_return inRhs125 = default(HqlSqlWalker.inRhs_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery127 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.inRhs_return inRhs128 = default(HqlSqlWalker.inRhs_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery130 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.exprOrSubquery_return exprOrSubquery132 = default(HqlSqlWalker.exprOrSubquery_return); HqlSqlWalker.expr_return expr134 = default(HqlSqlWalker.expr_return); HqlSqlWalker.collectionFunctionOrSubselect_return collectionFunctionOrSubselect135 = default(HqlSqlWalker.collectionFunctionOrSubselect_return); IASTNode EQ87_tree=null; IASTNode NE90_tree=null; IASTNode LT93_tree=null; IASTNode GT96_tree=null; IASTNode LE99_tree=null; IASTNode GE102_tree=null; IASTNode LIKE105_tree=null; IASTNode ESCAPE108_tree=null; IASTNode NOT_LIKE110_tree=null; IASTNode ESCAPE113_tree=null; IASTNode BETWEEN115_tree=null; IASTNode NOT_BETWEEN119_tree=null; IASTNode IN123_tree=null; IASTNode NOT_IN126_tree=null; IASTNode IS_NULL129_tree=null; IASTNode IS_NOT_NULL131_tree=null; IASTNode EXISTS133_tree=null; try { // HqlSqlWalker.g:334:2: ( ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) ) // HqlSqlWalker.g:335:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) { root_0 = (IASTNode)adaptor.GetNilNode(); // HqlSqlWalker.g:335:2: ( ^( EQ exprOrSubquery exprOrSubquery ) | ^( NE exprOrSubquery exprOrSubquery ) | ^( LT exprOrSubquery exprOrSubquery ) | ^( GT exprOrSubquery exprOrSubquery ) | ^( LE exprOrSubquery exprOrSubquery ) | ^( GE exprOrSubquery exprOrSubquery ) | ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) | ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) | ^( IN exprOrSubquery inRhs ) | ^( NOT_IN exprOrSubquery inRhs ) | ^( IS_NULL exprOrSubquery ) | ^( IS_NOT_NULL exprOrSubquery ) | ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) ) int alt48 = 15; switch ( input.LA(1) ) { case EQ: { alt48 = 1; } break; case NE: { alt48 = 2; } break; case LT: { alt48 = 3; } break; case GT: { alt48 = 4; } break; case LE: { alt48 = 5; } break; case GE: { alt48 = 6; } break; case LIKE: { alt48 = 7; } break; case NOT_LIKE: { alt48 = 8; } break; case BETWEEN: { alt48 = 9; } break; case NOT_BETWEEN: { alt48 = 10; } break; case IN: { alt48 = 11; } break; case NOT_IN: { alt48 = 12; } break; case IS_NULL: { alt48 = 13; } break; case IS_NOT_NULL: { alt48 = 14; } break; case EXISTS: { alt48 = 15; } break; default: NoViableAltException nvae_d48s0 = new NoViableAltException("", 48, 0, input); throw nvae_d48s0; } switch (alt48) { case 1 : // HqlSqlWalker.g:335:4: ^( EQ exprOrSubquery exprOrSubquery ) { _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); EQ87=(IASTNode)Match(input,EQ,FOLLOW_EQ_in_comparisonExpr1593); EQ87_tree = (IASTNode)adaptor.DupNode(EQ87); root_1 = (IASTNode)adaptor.BecomeRoot(EQ87_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1595); exprOrSubquery88 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery88.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1597); exprOrSubquery89 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery89.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 2 : // HqlSqlWalker.g:336:4: ^( NE exprOrSubquery exprOrSubquery ) { _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); NE90=(IASTNode)Match(input,NE,FOLLOW_NE_in_comparisonExpr1604); NE90_tree = (IASTNode)adaptor.DupNode(NE90); root_1 = (IASTNode)adaptor.BecomeRoot(NE90_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1606); exprOrSubquery91 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery91.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1608); exprOrSubquery92 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery92.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 3 : // HqlSqlWalker.g:337:4: ^( LT exprOrSubquery exprOrSubquery ) { _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); LT93=(IASTNode)Match(input,LT,FOLLOW_LT_in_comparisonExpr1615); LT93_tree = (IASTNode)adaptor.DupNode(LT93); root_1 = (IASTNode)adaptor.BecomeRoot(LT93_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1617); exprOrSubquery94 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery94.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1619); exprOrSubquery95 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery95.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 4 : // HqlSqlWalker.g:338:4: ^( GT exprOrSubquery exprOrSubquery ) { _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); GT96=(IASTNode)Match(input,GT,FOLLOW_GT_in_comparisonExpr1626); GT96_tree = (IASTNode)adaptor.DupNode(GT96); root_1 = (IASTNode)adaptor.BecomeRoot(GT96_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1628); exprOrSubquery97 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery97.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1630); exprOrSubquery98 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery98.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 5 : // HqlSqlWalker.g:339:4: ^( LE exprOrSubquery exprOrSubquery ) { _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); LE99=(IASTNode)Match(input,LE,FOLLOW_LE_in_comparisonExpr1637); LE99_tree = (IASTNode)adaptor.DupNode(LE99); root_1 = (IASTNode)adaptor.BecomeRoot(LE99_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1639); exprOrSubquery100 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery100.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1641); exprOrSubquery101 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery101.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 6 : // HqlSqlWalker.g:340:4: ^( GE exprOrSubquery exprOrSubquery ) { _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); GE102=(IASTNode)Match(input,GE,FOLLOW_GE_in_comparisonExpr1648); GE102_tree = (IASTNode)adaptor.DupNode(GE102); root_1 = (IASTNode)adaptor.BecomeRoot(GE102_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1650); exprOrSubquery103 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery103.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1652); exprOrSubquery104 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery104.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 7 : // HqlSqlWalker.g:341:4: ^( LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) { _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); LIKE105=(IASTNode)Match(input,LIKE,FOLLOW_LIKE_in_comparisonExpr1659); LIKE105_tree = (IASTNode)adaptor.DupNode(LIKE105); root_1 = (IASTNode)adaptor.BecomeRoot(LIKE105_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1661); exprOrSubquery106 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery106.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1663); expr107 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr107.Tree); // HqlSqlWalker.g:341:31: ( ^( ESCAPE expr ) )? int alt45 = 2; int LA45_0 = input.LA(1); if ( (LA45_0 == ESCAPE) ) { alt45 = 1; } switch (alt45) { case 1 : // HqlSqlWalker.g:341:33: ^( ESCAPE 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); ESCAPE108=(IASTNode)Match(input,ESCAPE,FOLLOW_ESCAPE_in_comparisonExpr1668); ESCAPE108_tree = (IASTNode)adaptor.DupNode(ESCAPE108); root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE108_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1670); expr109 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr109.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; } } break; case 8 : // HqlSqlWalker.g:342:4: ^( NOT_LIKE exprOrSubquery expr ( ^( ESCAPE expr ) )? ) { _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); NOT_LIKE110=(IASTNode)Match(input,NOT_LIKE,FOLLOW_NOT_LIKE_in_comparisonExpr1682); NOT_LIKE110_tree = (IASTNode)adaptor.DupNode(NOT_LIKE110); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_LIKE110_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1684); exprOrSubquery111 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery111.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1686); expr112 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr112.Tree); // HqlSqlWalker.g:342:35: ( ^( ESCAPE expr ) )? int alt46 = 2; int LA46_0 = input.LA(1); if ( (LA46_0 == ESCAPE) ) { alt46 = 1; } switch (alt46) { case 1 : // HqlSqlWalker.g:342:37: ^( ESCAPE 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); ESCAPE113=(IASTNode)Match(input,ESCAPE,FOLLOW_ESCAPE_in_comparisonExpr1691); ESCAPE113_tree = (IASTNode)adaptor.DupNode(ESCAPE113); root_2 = (IASTNode)adaptor.BecomeRoot(ESCAPE113_tree, root_2); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1693); expr114 = expr(); state.followingStackPointer--; adaptor.AddChild(root_2, expr114.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; } } break; case 9 : // HqlSqlWalker.g:343:4: ^( BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) { _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); BETWEEN115=(IASTNode)Match(input,BETWEEN,FOLLOW_BETWEEN_in_comparisonExpr1705); BETWEEN115_tree = (IASTNode)adaptor.DupNode(BETWEEN115); root_1 = (IASTNode)adaptor.BecomeRoot(BETWEEN115_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1707); exprOrSubquery116 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery116.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1709); exprOrSubquery117 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery117.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1711); exprOrSubquery118 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery118.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 10 : // HqlSqlWalker.g:344:4: ^( NOT_BETWEEN exprOrSubquery exprOrSubquery exprOrSubquery ) { _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); NOT_BETWEEN119=(IASTNode)Match(input,NOT_BETWEEN,FOLLOW_NOT_BETWEEN_in_comparisonExpr1718); NOT_BETWEEN119_tree = (IASTNode)adaptor.DupNode(NOT_BETWEEN119); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_BETWEEN119_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1720); exprOrSubquery120 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery120.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1722); exprOrSubquery121 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery121.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1724); exprOrSubquery122 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery122.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 11 : // HqlSqlWalker.g:345:4: ^( IN exprOrSubquery inRhs ) { _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); IN123=(IASTNode)Match(input,IN,FOLLOW_IN_in_comparisonExpr1731); IN123_tree = (IASTNode)adaptor.DupNode(IN123); root_1 = (IASTNode)adaptor.BecomeRoot(IN123_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1733); exprOrSubquery124 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery124.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_inRhs_in_comparisonExpr1735); inRhs125 = inRhs(); state.followingStackPointer--; adaptor.AddChild(root_1, inRhs125.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 12 : // HqlSqlWalker.g:346:4: ^( NOT_IN exprOrSubquery inRhs ) { _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); NOT_IN126=(IASTNode)Match(input,NOT_IN,FOLLOW_NOT_IN_in_comparisonExpr1743); NOT_IN126_tree = (IASTNode)adaptor.DupNode(NOT_IN126); root_1 = (IASTNode)adaptor.BecomeRoot(NOT_IN126_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1745); exprOrSubquery127 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery127.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_inRhs_in_comparisonExpr1747); inRhs128 = inRhs(); state.followingStackPointer--; adaptor.AddChild(root_1, inRhs128.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 13 : // HqlSqlWalker.g:347:4: ^( IS_NULL exprOrSubquery ) { _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); IS_NULL129=(IASTNode)Match(input,IS_NULL,FOLLOW_IS_NULL_in_comparisonExpr1755); IS_NULL129_tree = (IASTNode)adaptor.DupNode(IS_NULL129); root_1 = (IASTNode)adaptor.BecomeRoot(IS_NULL129_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1757); exprOrSubquery130 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery130.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 14 : // HqlSqlWalker.g:348:4: ^( IS_NOT_NULL exprOrSubquery ) { _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); IS_NOT_NULL131=(IASTNode)Match(input,IS_NOT_NULL,FOLLOW_IS_NOT_NULL_in_comparisonExpr1764); IS_NOT_NULL131_tree = (IASTNode)adaptor.DupNode(IS_NOT_NULL131); root_1 = (IASTNode)adaptor.BecomeRoot(IS_NOT_NULL131_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_exprOrSubquery_in_comparisonExpr1766); exprOrSubquery132 = exprOrSubquery(); state.followingStackPointer--; adaptor.AddChild(root_1, exprOrSubquery132.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 15 : // HqlSqlWalker.g:351:4: ^( EXISTS ( expr | collectionFunctionOrSubselect ) ) { _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); EXISTS133=(IASTNode)Match(input,EXISTS,FOLLOW_EXISTS_in_comparisonExpr1775); EXISTS133_tree = (IASTNode)adaptor.DupNode(EXISTS133); root_1 = (IASTNode)adaptor.BecomeRoot(EXISTS133_tree, root_1); Match(input, Token.DOWN, null); // HqlSqlWalker.g:351:13: ( expr | collectionFunctionOrSubselect ) int alt47 = 2; int LA47_0 = input.LA(1); if ( (LA47_0 == COUNT || LA47_0 == DOT || LA47_0 == FALSE || LA47_0 == NULL || LA47_0 == TRUE || LA47_0 == CASE || LA47_0 == AGGREGATE || LA47_0 == CASE2 || LA47_0 == INDEX_OP || LA47_0 == METHOD_CALL || LA47_0 == UNARY_MINUS || (LA47_0 >= VECTOR_EXPR && LA47_0 <= WEIRD_IDENT) || (LA47_0 >= NUM_INT && LA47_0 <= JAVA_CONSTANT) || (LA47_0 >= COLON && LA47_0 <= PARAM) || (LA47_0 >= BNOT && LA47_0 <= DIV) || (LA47_0 >= QUOTED_String && LA47_0 <= IDENT)) ) { alt47 = 1; } else if ( (LA47_0 == ELEMENTS || LA47_0 == INDICES || LA47_0 == UNION || LA47_0 == QUERY) ) { alt47 = 2; } else { NoViableAltException nvae_d47s0 = new NoViableAltException("", 47, 0, input); throw nvae_d47s0; } switch (alt47) { case 1 : // HqlSqlWalker.g:351:15: expr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_comparisonExpr1779); expr134 = expr(); state.followingStackPointer--; adaptor.AddChild(root_1, expr134.Tree); } break; case 2 : // HqlSqlWalker.g:351:22: collectionFunctionOrSubselect { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_collectionFunctionOrSubselect_in_comparisonExpr1783); collectionFunctionOrSubselect135 = collectionFunctionOrSubselect(); state.followingStackPointer--; adaptor.AddChild(root_1, collectionFunctionOrSubselect135.Tree); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; } } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); PrepareLogicOperator( ((IASTNode)retval.Tree) ); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }