// $ANTLR start "selectExpr" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:173:1: selectExpr : (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | count | collectionFunction | literal | arithmeticExpr | query ); public HqlSqlWalker.selectExpr_return selectExpr() // throws RecognitionException [1] { HqlSqlWalker.selectExpr_return retval = new HqlSqlWalker.selectExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode ALL40 = null; IASTNode OBJECT41 = null; HqlSqlWalker.propertyRef_return p = default(HqlSqlWalker.propertyRef_return); HqlSqlWalker.aliasRef_return ar2 = default(HqlSqlWalker.aliasRef_return); HqlSqlWalker.aliasRef_return ar3 = default(HqlSqlWalker.aliasRef_return); HqlSqlWalker.constructor_return con = default(HqlSqlWalker.constructor_return); HqlSqlWalker.functionCall_return functionCall42 = default(HqlSqlWalker.functionCall_return); HqlSqlWalker.count_return count43 = default(HqlSqlWalker.count_return); HqlSqlWalker.collectionFunction_return collectionFunction44 = default(HqlSqlWalker.collectionFunction_return); HqlSqlWalker.literal_return literal45 = default(HqlSqlWalker.literal_return); HqlSqlWalker.arithmeticExpr_return arithmeticExpr46 = default(HqlSqlWalker.arithmeticExpr_return); HqlSqlWalker.query_return query47 = default(HqlSqlWalker.query_return); IASTNode ALL40_tree=null; IASTNode OBJECT41_tree=null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:174:2: (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | count | collectionFunction | literal | arithmeticExpr | query ) int alt19 = 10; switch ( input.LA(1) ) { case DOT: case WEIRD_IDENT: case IDENT: { alt19 = 1; } break; case ALL: { alt19 = 2; } break; case OBJECT: { alt19 = 3; } break; case CONSTRUCTOR: { alt19 = 4; } break; case AGGREGATE: case METHOD_CALL: { alt19 = 5; } break; case COUNT: { alt19 = 6; } break; case ELEMENTS: case INDICES: { alt19 = 7; } break; case NUM_INT: case NUM_DOUBLE: case NUM_FLOAT: case NUM_LONG: case QUOTED_String: { alt19 = 8; } break; case CASE: case CASE2: case UNARY_MINUS: case BNOT: case BOR: case BXOR: case BAND: case PLUS: case MINUS: case STAR: case DIV: { alt19 = 9; } break; case UNION: case QUERY: { alt19 = 10; } break; default: NoViableAltException nvae_d19s0 = new NoViableAltException("", 19, 0, input); throw nvae_d19s0; } switch (alt19) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:174:4: p= propertyRef { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_propertyRef_in_selectExpr788); p = propertyRef(); state.followingStackPointer--; adaptor.AddChild(root_0, p.Tree); ResolveSelectExpression(((p != null) ? ((IASTNode)p.Tree) : null)); } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:175:4: ^( ALL ar2= aliasRef ) { 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); ALL40=(IASTNode)Match(input,ALL,FOLLOW_ALL_in_selectExpr800); ALL40_tree = (IASTNode)adaptor.DupNode(ALL40); root_1 = (IASTNode)adaptor.BecomeRoot(ALL40_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aliasRef_in_selectExpr804); ar2 = aliasRef(); state.followingStackPointer--; adaptor.AddChild(root_1, ar2.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } ResolveSelectExpression(((ar2 != null) ? ((IASTNode)ar2.Tree) : null)); retval.Tree = ((ar2 != null) ? ((IASTNode)ar2.Tree) : null); } break; case 3 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:176:4: ^( OBJECT ar3= aliasRef ) { 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); OBJECT41=(IASTNode)Match(input,OBJECT,FOLLOW_OBJECT_in_selectExpr816); OBJECT41_tree = (IASTNode)adaptor.DupNode(OBJECT41); root_1 = (IASTNode)adaptor.BecomeRoot(OBJECT41_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aliasRef_in_selectExpr820); ar3 = aliasRef(); state.followingStackPointer--; adaptor.AddChild(root_1, ar3.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } ResolveSelectExpression(((ar3 != null) ? ((IASTNode)ar3.Tree) : null)); retval.Tree = ((ar3 != null) ? ((IASTNode)ar3.Tree) : null); } break; case 4 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:177:4: con= constructor { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_constructor_in_selectExpr831); con = constructor(); state.followingStackPointer--; adaptor.AddChild(root_0, con.Tree); ProcessConstructor(((con != null) ? ((IASTNode)con.Tree) : null)); } break; case 5 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:178:4: functionCall { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_functionCall_in_selectExpr842); functionCall42 = functionCall(); state.followingStackPointer--; adaptor.AddChild(root_0, functionCall42.Tree); } break; case 6 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:179:4: count { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_count_in_selectExpr847); count43 = count(); state.followingStackPointer--; adaptor.AddChild(root_0, count43.Tree); } break; case 7 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:180:4: collectionFunction { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_collectionFunction_in_selectExpr852); collectionFunction44 = collectionFunction(); state.followingStackPointer--; adaptor.AddChild(root_0, collectionFunction44.Tree); } break; case 8 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:181:4: literal { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_literal_in_selectExpr860); literal45 = literal(); state.followingStackPointer--; adaptor.AddChild(root_0, literal45.Tree); } break; case 9 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:182:4: arithmeticExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_arithmeticExpr_in_selectExpr865); arithmeticExpr46 = arithmeticExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, arithmeticExpr46.Tree); } break; case 10 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:183:4: query { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_query_in_selectExpr870); query47 = query(); state.followingStackPointer--; adaptor.AddChild(root_0, query47.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "selectExpr" // HqlSqlWalker.g:188:1: selectExpr : (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | parameter | count | collectionFunction | literal | arithmeticExpr | query ); public HqlSqlWalker.selectExpr_return selectExpr() // throws RecognitionException [1] { HqlSqlWalker.selectExpr_return retval = new HqlSqlWalker.selectExpr_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode ALL44 = null; IASTNode OBJECT45 = null; HqlSqlWalker.propertyRef_return p = default(HqlSqlWalker.propertyRef_return); HqlSqlWalker.aliasRef_return ar2 = default(HqlSqlWalker.aliasRef_return); HqlSqlWalker.aliasRef_return ar3 = default(HqlSqlWalker.aliasRef_return); HqlSqlWalker.constructor_return con = default(HqlSqlWalker.constructor_return); HqlSqlWalker.functionCall_return functionCall46 = default(HqlSqlWalker.functionCall_return); HqlSqlWalker.parameter_return parameter47 = default(HqlSqlWalker.parameter_return); HqlSqlWalker.count_return count48 = default(HqlSqlWalker.count_return); HqlSqlWalker.collectionFunction_return collectionFunction49 = default(HqlSqlWalker.collectionFunction_return); HqlSqlWalker.literal_return literal50 = default(HqlSqlWalker.literal_return); HqlSqlWalker.arithmeticExpr_return arithmeticExpr51 = default(HqlSqlWalker.arithmeticExpr_return); HqlSqlWalker.query_return query52 = default(HqlSqlWalker.query_return); IASTNode ALL44_tree=null; IASTNode OBJECT45_tree=null; try { // HqlSqlWalker.g:189:2: (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | parameter | count | collectionFunction | literal | arithmeticExpr | query ) int alt21 = 11; switch ( input.LA(1) ) { case DOT: case WEIRD_IDENT: case IDENT: { alt21 = 1; } break; case ALL: { alt21 = 2; } break; case OBJECT: { alt21 = 3; } break; case CONSTRUCTOR: { alt21 = 4; } break; case AGGREGATE: case METHOD_CALL: { alt21 = 5; } break; case COLON: case PARAM: { alt21 = 6; } break; case COUNT: { alt21 = 7; } break; case ELEMENTS: case INDICES: { alt21 = 8; } break; case NUM_INT: case NUM_DOUBLE: case NUM_DECIMAL: case NUM_FLOAT: case NUM_LONG: case QUOTED_String: { alt21 = 9; } break; case CASE: case CASE2: case UNARY_MINUS: case BNOT: case BOR: case BXOR: case BAND: case PLUS: case MINUS: case STAR: case DIV: { alt21 = 10; } break; case UNION: case QUERY: { alt21 = 11; } break; default: NoViableAltException nvae_d21s0 = new NoViableAltException("", 21, 0, input); throw nvae_d21s0; } switch (alt21) { case 1 : // HqlSqlWalker.g:189:4: p= propertyRef { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_propertyRef_in_selectExpr864); p = propertyRef(); state.followingStackPointer--; adaptor.AddChild(root_0, p.Tree); ResolveSelectExpression(((p != null) ? ((IASTNode)p.Tree) : null)); } break; case 2 : // HqlSqlWalker.g:190:4: ^( ALL ar2= aliasRef ) { 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); ALL44=(IASTNode)Match(input,ALL,FOLLOW_ALL_in_selectExpr876); ALL44_tree = (IASTNode)adaptor.DupNode(ALL44); root_1 = (IASTNode)adaptor.BecomeRoot(ALL44_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aliasRef_in_selectExpr880); ar2 = aliasRef(); state.followingStackPointer--; adaptor.AddChild(root_1, ar2.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } ResolveSelectExpression(((ar2 != null) ? ((IASTNode)ar2.Tree) : null)); retval.Tree = ((ar2 != null) ? ((IASTNode)ar2.Tree) : null); } break; case 3 : // HqlSqlWalker.g:191:4: ^( OBJECT ar3= aliasRef ) { 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); OBJECT45=(IASTNode)Match(input,OBJECT,FOLLOW_OBJECT_in_selectExpr892); OBJECT45_tree = (IASTNode)adaptor.DupNode(OBJECT45); root_1 = (IASTNode)adaptor.BecomeRoot(OBJECT45_tree, root_1); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aliasRef_in_selectExpr896); ar3 = aliasRef(); state.followingStackPointer--; adaptor.AddChild(root_1, ar3.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } ResolveSelectExpression(((ar3 != null) ? ((IASTNode)ar3.Tree) : null)); retval.Tree = ((ar3 != null) ? ((IASTNode)ar3.Tree) : null); } break; case 4 : // HqlSqlWalker.g:192:4: con= constructor { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_constructor_in_selectExpr907); con = constructor(); state.followingStackPointer--; adaptor.AddChild(root_0, con.Tree); ProcessConstructor(((con != null) ? ((IASTNode)con.Tree) : null)); } break; case 5 : // HqlSqlWalker.g:193:4: functionCall { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_functionCall_in_selectExpr918); functionCall46 = functionCall(); state.followingStackPointer--; adaptor.AddChild(root_0, functionCall46.Tree); } break; case 6 : // HqlSqlWalker.g:194:4: parameter { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_parameter_in_selectExpr923); parameter47 = parameter(); state.followingStackPointer--; adaptor.AddChild(root_0, parameter47.Tree); } break; case 7 : // HqlSqlWalker.g:195:4: count { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_count_in_selectExpr928); count48 = count(); state.followingStackPointer--; adaptor.AddChild(root_0, count48.Tree); } break; case 8 : // HqlSqlWalker.g:196:4: collectionFunction { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_collectionFunction_in_selectExpr933); collectionFunction49 = collectionFunction(); state.followingStackPointer--; adaptor.AddChild(root_0, collectionFunction49.Tree); } break; case 9 : // HqlSqlWalker.g:197:4: literal { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_literal_in_selectExpr941); literal50 = literal(); state.followingStackPointer--; adaptor.AddChild(root_0, literal50.Tree); } break; case 10 : // HqlSqlWalker.g:198:4: arithmeticExpr { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_arithmeticExpr_in_selectExpr946); arithmeticExpr51 = arithmeticExpr(); state.followingStackPointer--; adaptor.AddChild(root_0, arithmeticExpr51.Tree); } break; case 11 : // HqlSqlWalker.g:199:4: query { root_0 = (IASTNode)adaptor.GetNilNode(); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_query_in_selectExpr951); query52 = query(); state.followingStackPointer--; adaptor.AddChild(root_0, query52.Tree); } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }