// $ANTLR start "logicalExpr" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:297:1: logicalExpr : ( ^( AND logicalExpr logicalExpr ) | ^( OR logicalExpr logicalExpr ) | ^( NOT logicalExpr ) | comparisonExpr | functionCall ); public HqlSqlWalker.logicalExpr_return logicalExpr() // throws RecognitionException [1] { HqlSqlWalker.logicalExpr_return retval = new HqlSqlWalker.logicalExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode AND67 = null; IASTNode OR70 = null; IASTNode NOT73 = null; HqlSqlWalker.logicalExpr_return logicalExpr68 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr69 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr71 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr72 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr74 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.comparisonExpr_return comparisonExpr75 = default(HqlSqlWalker.comparisonExpr_return); HqlSqlWalker.functionCall_return functionCall76 = default(HqlSqlWalker.functionCall_return); IASTNode AND67_tree=null; IASTNode OR70_tree=null; IASTNode NOT73_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:298:2: ( ^( AND logicalExpr logicalExpr ) | ^( OR logicalExpr logicalExpr ) | ^( NOT logicalExpr ) | comparisonExpr | functionCall ) int alt38 = 5; switch ( input.LA(1) ) { case AND: { alt38 = 1; } break; case OR: { alt38 = 2; } break; case NOT: { alt38 = 3; } break; case BETWEEN: case EXISTS: case IN: case LIKE: case IS_NOT_NULL: case IS_NULL: case NOT_BETWEEN: case NOT_IN: case NOT_LIKE: case EQ: case NE: case LT: case GT: case LE: case GE: { alt38 = 4; } break; case AGGREGATE: case METHOD_CALL: { alt38 = 5; } break; default: NoViableAltException nvae_d38s0 = new NoViableAltException("", 38, 0, input); throw nvae_d38s0; } switch (alt38) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:298:4: ^( AND logicalExpr logicalExpr ) { 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); AND67=(IASTNode)Match(input,AND,FOLLOW_AND_in_logicalExpr1387); AND67_tree = (IASTNode)adaptor.DupNode(AND67); root_1 = (IASTNode)adaptor.BecomeRoot(AND67_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1389); logicalExpr68 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr68.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1391); logicalExpr69 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr69.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:299:4: ^( OR logicalExpr logicalExpr ) { 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); OR70=(IASTNode)Match(input,OR,FOLLOW_OR_in_logicalExpr1398); OR70_tree = (IASTNode)adaptor.DupNode(OR70); root_1 = (IASTNode)adaptor.BecomeRoot(OR70_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1400); logicalExpr71 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr71.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1402); logicalExpr72 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr72.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:300:4: ^( NOT logicalExpr ) { 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); NOT73=(IASTNode)Match(input,NOT,FOLLOW_NOT_in_logicalExpr1409); NOT73_tree = (IASTNode)adaptor.DupNode(NOT73); root_1 = (IASTNode)adaptor.BecomeRoot(NOT73_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1411); logicalExpr74 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr74.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:301:4: comparisonExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_comparisonExpr_in_logicalExpr1417); comparisonExpr75 = comparisonExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, comparisonExpr75.Tree); } break; case 5 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:302:4: functionCall { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_functionCall_in_logicalExpr1422); functionCall76 = functionCall(); state.followingStackPointer--; adaptor.AddChild(root_0, functionCall76.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "logicalExpr" // HqlSqlWalker.g:313:1: logicalExpr : ( ^( AND logicalExpr logicalExpr ) | ^( OR logicalExpr logicalExpr ) | ^( NOT logicalExpr ) | comparisonExpr | functionCall | logicalPath ); public HqlSqlWalker.logicalExpr_return logicalExpr() // throws RecognitionException [1] { HqlSqlWalker.logicalExpr_return retval = new HqlSqlWalker.logicalExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode AND72 = null; IASTNode OR75 = null; IASTNode NOT78 = null; HqlSqlWalker.logicalExpr_return logicalExpr73 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr74 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr76 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr77 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.logicalExpr_return logicalExpr79 = default(HqlSqlWalker.logicalExpr_return); HqlSqlWalker.comparisonExpr_return comparisonExpr80 = default(HqlSqlWalker.comparisonExpr_return); HqlSqlWalker.functionCall_return functionCall81 = default(HqlSqlWalker.functionCall_return); HqlSqlWalker.logicalPath_return logicalPath82 = default(HqlSqlWalker.logicalPath_return); IASTNode AND72_tree=null; IASTNode OR75_tree=null; IASTNode NOT78_tree=null; try { // HqlSqlWalker.g:314:2: ( ^( AND logicalExpr logicalExpr ) | ^( OR logicalExpr logicalExpr ) | ^( NOT logicalExpr ) | comparisonExpr | functionCall | logicalPath ) int alt40 = 6; switch ( input.LA(1) ) { case AND: { alt40 = 1; } break; case OR: { alt40 = 2; } break; case NOT: { alt40 = 3; } break; case BETWEEN: case EXISTS: case IN: case LIKE: case IS_NOT_NULL: case IS_NULL: case NOT_BETWEEN: case NOT_IN: case NOT_LIKE: case EQ: case NE: case LT: case GT: case LE: case GE: { alt40 = 4; } break; case AGGREGATE: case METHOD_CALL: { alt40 = 5; } break; case DOT: case INDEX_OP: case WEIRD_IDENT: case IDENT: { alt40 = 6; } break; default: NoViableAltException nvae_d40s0 = new NoViableAltException("", 40, 0, input); throw nvae_d40s0; } switch (alt40) { case 1 : // HqlSqlWalker.g:314:4: ^( AND logicalExpr logicalExpr ) { 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); AND72=(IASTNode)Match(input,AND,FOLLOW_AND_in_logicalExpr1468); AND72_tree = (IASTNode)adaptor.DupNode(AND72); root_1 = (IASTNode)adaptor.BecomeRoot(AND72_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1470); logicalExpr73 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr73.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1472); logicalExpr74 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr74.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 2 : // HqlSqlWalker.g:315:4: ^( OR logicalExpr logicalExpr ) { 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); OR75=(IASTNode)Match(input,OR,FOLLOW_OR_in_logicalExpr1479); OR75_tree = (IASTNode)adaptor.DupNode(OR75); root_1 = (IASTNode)adaptor.BecomeRoot(OR75_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1481); logicalExpr76 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr76.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1483); logicalExpr77 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr77.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 3 : // HqlSqlWalker.g:316:4: ^( NOT logicalExpr ) { 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); NOT78=(IASTNode)Match(input,NOT,FOLLOW_NOT_in_logicalExpr1490); NOT78_tree = (IASTNode)adaptor.DupNode(NOT78); root_1 = (IASTNode)adaptor.BecomeRoot(NOT78_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_logicalExpr1492); logicalExpr79 = logicalExpr(); state.followingStackPointer--; adaptor.AddChild(root_1, logicalExpr79.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } } break; case 4 : // HqlSqlWalker.g:317:4: comparisonExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_comparisonExpr_in_logicalExpr1498); comparisonExpr80 = comparisonExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, comparisonExpr80.Tree); } break; case 5 : // HqlSqlWalker.g:318:4: functionCall { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_functionCall_in_logicalExpr1503); functionCall81 = functionCall(); state.followingStackPointer--; adaptor.AddChild(root_0, functionCall81.Tree); } break; case 6 : // HqlSqlWalker.g:319:4: logicalPath { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalPath_in_logicalExpr1508); logicalPath82 = logicalPath(); state.followingStackPointer--; adaptor.AddChild(root_0, logicalPath82.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }